Skip to content

Commit 0381097

Browse files
committed
Add toast if topic copy to clipboard
1 parent 8b52541 commit 0381097

File tree

5 files changed

+53
-6
lines changed

5 files changed

+53
-6
lines changed

package-lock.json

+37
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@
173173
"react-dom": "^16.13.1",
174174
"react-router-dom": "^5.2.0",
175175
"react-select": "1.2.1",
176+
"react-toastify": "^6.0.8",
176177
"reactstrap": "^8.5.1",
177178
"request": "^2.88.2",
178179
"request-progress": "^3.0.0",

src/background/NodeREDWorker.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ function setup() {
6767
const sourceDir = path.join(__dirname, "..", "assets", "node-red");
6868

6969
copyFolderRecursiveSync(sourceDir, app.getPath("userData") );
70-
var settings = {
70+
var config = {
7171
uiPort: listenPort,
7272
verbose: true,
7373
httpAdminRoot: "/",
@@ -107,9 +107,9 @@ function setup() {
107107

108108
let http_app = express();
109109
let server = http.createServer(http_app);
110-
RED.init(server, settings);
111-
http_app.use(settings.httpAdminRoot, RED.httpAdmin);
112-
http_app.use(settings.httpNodeRoot, RED.httpNode);
110+
RED.init(server, config);
111+
http_app.use(config.httpAdminRoot, RED.httpAdmin);
112+
http_app.use(config.httpNodeRoot, RED.httpNode);
113113

114114
RED.start().then(function () {
115115
server.listen(listenPort, settings.get("node-red-bind"), ()=>{

src/render/App.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { Component } from "react";
22
import { HashRouter, Route, Switch, NavLink } from "react-router-dom";
33
import { ipcRenderer, shell } from "electron";
4-
4+
import { ToastContainer, toast } from 'react-toastify';
55
import { RouteIframe, RouteWithProps } from "./components/Route";
66

77
import RadioManagerModel from "./model/RadioManager";
@@ -20,6 +20,7 @@ import Bridge from "./components/Bridge";
2020

2121
// Import SCSS
2222
import "../assets/scss/index.scss";
23+
import 'react-toastify/dist/ReactToastify.css';
2324

2425
// Import language files
2526
const i18n = require("../utils/i18n");
@@ -133,6 +134,8 @@ export default class extends Component {
133134
<RouteWithProps path="/bridge" component={Bridge} model={this.bridge}/>
134135
<Route path="/firmware" component={Firmware} />
135136
</main>
137+
138+
<ToastContainer position="top-right" autoClose={2000} closeOnClick/>
136139
</div>
137140
</HashRouter>
138141
)

src/render/components/MqttLog.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, { Component } from "react";
22
import ReactDOM from "react-dom";
33
import copy from 'copy-to-clipboard';
4+
import { ToastContainer, toast } from 'react-toastify';
45

56
function formatTime(time) {
67
return time.toTimeString().split(' ')[0];
@@ -112,6 +113,7 @@ export default class extends Component {
112113
copy(message.topic, {
113114
debug: true,
114115
message: 'Press #{key} to copy',
116+
onCopy: () => { toast.success("Copied to clipboard: " + message.topic) }
115117
});
116118
}
117119

@@ -143,7 +145,11 @@ export default class extends Component {
143145
this.state.messages.map((item, index) => {
144146
return (
145147
<li key={item.key}>
146-
<div>{formatTime(item.time)}&nbsp;<i title="Copy topic to Clipboard" onClick={() => this.onClickCopyTopic(item)} className="fa fa-clipboard" aria-hidden="true"></i>&nbsp;<span style={{ fontWeight: "bold" }}>{item.topic}&nbsp;</span></div>
148+
<div>
149+
{formatTime(item.time)}&nbsp;
150+
<i title="Copy topic to Clipboard" onClick={() => this.onClickCopyTopic(item)} className="fa fa-clipboard" aria-hidden="true"></i>&nbsp;
151+
<span onClick={() => this.onClickCopyTopic(item)} style={{ fontWeight: "bold" }}>{item.topic}&nbsp;</span>
152+
</div>
147153
<div>{item.payload}</div>
148154
<div className="ConsoleButton">
149155
{isHighlightedMessages(item.topic) ? null :<i title="pinned topic" onClick={() => this.onClickAdd(item)} className="fa fa-thumb-tack" aria-hidden="true"></i>}

0 commit comments

Comments
 (0)