Added polling for watcher.

This commit is contained in:
Patrick Fic
2020-10-20 10:53:50 -07:00
parent 900724f660
commit c277f6d32d
20 changed files with 205 additions and 19 deletions

View File

@@ -0,0 +1,26 @@
import React from "react";
export default function DataLabel({
label,
hideIfNull,
children,
vertical,
visible = true,
...props
}) {
if (!visible || (hideIfNull && !!!children)) return null;
return (
<div {...props}>
<div
style={{
display: vertical ? "block" : "inline-block",
marginRight: ".2rem",
}}
>{`${label}: `}</div>
<div style={{ display: vertical ? "block" : "inline-block" }}>
{children}
</div>
</div>
);
}

View File

@@ -1,14 +1,16 @@
export default (part_type) => {
switch (part_type) {
case "PAA":
case "PAL":
case "PAC":
return "A/M";
case "PAE":
return "Exist.";
case "PAN":
case "PAP":
return "OEM";
case "PAL":
return "LKQ";
default:
return "?";
return part_type;
}
};

View File

@@ -0,0 +1,54 @@
import { InputNumber, Switch } from "antd";
import React from "react";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import ipcTypes from "../../../ipc.types";
import { selectSettings } from "../../../redux/application/application.selectors";
import DataLabel from "../../atoms/data-label/data-label.atom";
const { ipcRenderer } = window;
const mapStateToProps = createStructuredSelector({
//currentUser: selectCurrentUser
appSettings: selectSettings,
});
const mapDispatchToProps = (dispatch) => ({
//setUserLanguage: language => dispatch(setUserLanguage(language))
});
export function WatcherPollingMolecule({ appSettings }) {
const handlePollingToggle = (val) => {
ipcRenderer.send(ipcTypes.default.store.set, { "polling.enabled": val });
};
const handleIntervalChange = (val) => {
ipcRenderer.send(ipcTypes.default.store.set, {
"polling.pollingInterval": val,
});
};
return (
<div>
<DataLabel label="Polling Enabled? (Recommended for Network Monitoring)">
<Switch
onChange={handlePollingToggle}
checked={
appSettings && appSettings.polling && appSettings.polling.enabled
}
/>
</DataLabel>
<DataLabel label="Polling Interval">
<InputNumber
onChange={handleIntervalChange}
value={
appSettings &&
appSettings.polling &&
appSettings.polling.pollingInterval
}
/>
</DataLabel>
</div>
);
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(WatcherPollingMolecule);

View File

@@ -21,7 +21,6 @@ export function FilePathsList({ watchedPaths }) {
ipcRenderer.send(ipcTypes.default.fileWatcher.toMain.filepathsGet);
}, []);
console.log("watchedPaths", watchedPaths);
return (
<div>
<Typography.Title>Watcher File Paths</Typography.Title>

View File

@@ -1,10 +1,17 @@
import { Col, Row } from "antd";
import React from "react";
import React, { useEffect } from "react";
import ipcTypes from "../../../ipc.types";
import WatcherPollingMolecule from "../../molecules/watcher-polling/watcher-polling.molecule";
import FilePathsListOrganism from "../../organisms/filepaths-list/filepaths-list.organism";
import ShopSettingsOrganism from "../../organisms/shop-settings/shop-settings.organism";
import WatcherManagerOrganism from "../../organisms/watcher-manager/watcher-manager.organism";
const { ipcRenderer } = window;
export default function SettingsPage() {
useEffect(() => {
ipcRenderer.send(ipcTypes.default.store.getAll);
}, []);
return (
<div>
<Row gutter={[16, 16]}>
@@ -13,6 +20,7 @@ export default function SettingsPage() {
</Col>
<Col span={6}>
<WatcherManagerOrganism />
<WatcherPollingMolecule />
</Col>
</Row>