aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/components/Header/MenuToggle.jsx
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2016-12-16 10:04:12 +1300
committerGitHub <noreply@github.com>2016-12-16 10:04:12 +1300
commit6b5673e84911f3e2b1599c22c9b4f482a55b9ef1 (patch)
treea6f54fdb9d9be4d6b061a3b30069b330d9325fd5 /web/src/js/components/Header/MenuToggle.jsx
parent78c78ce651478072f3b0a4a7d18f2a8de3147d33 (diff)
parentd854e08653ccee12119266e2cc3f5d6c279341e5 (diff)
downloadmitmproxy-6b5673e84911f3e2b1599c22c9b4f482a55b9ef1.tar.gz
mitmproxy-6b5673e84911f3e2b1599c22c9b4f482a55b9ef1.tar.bz2
mitmproxy-6b5673e84911f3e2b1599c22c9b4f482a55b9ef1.zip
Merge pull request #1845 from mhils/mitmweb-improvements
Mitmweb Improvements
Diffstat (limited to 'web/src/js/components/Header/MenuToggle.jsx')
-rw-r--r--web/src/js/components/Header/MenuToggle.jsx69
1 files changed, 69 insertions, 0 deletions
diff --git a/web/src/js/components/Header/MenuToggle.jsx b/web/src/js/components/Header/MenuToggle.jsx
new file mode 100644
index 00000000..91f093c6
--- /dev/null
+++ b/web/src/js/components/Header/MenuToggle.jsx
@@ -0,0 +1,69 @@
+import { PropTypes } from "react"
+import { connect } from "react-redux"
+import { update as updateSettings } from "../../ducks/settings"
+import { toggleVisibility } from "../../ducks/eventLog"
+
+MenuToggle.propTypes = {
+ value: PropTypes.bool.isRequired,
+ onChange: PropTypes.func.isRequired,
+ children: PropTypes.node.isRequired,
+}
+
+export function MenuToggle({ value, onChange, children }) {
+ return (
+ <div className="menu-entry">
+ <label>
+ <input type="checkbox"
+ checked={value}
+ onChange={onChange}/>
+ {children}
+ </label>
+ </div>
+ )
+}
+
+
+SettingsToggle.propTypes = {
+ setting: PropTypes.string.isRequired,
+ children: PropTypes.node.isRequired,
+}
+
+export function SettingsToggle({ setting, children, settings, updateSettings }) {
+ return (
+ <MenuToggle
+ value={settings[setting] || false} // we don't have settings initially, so just pass false.
+ onChange={() => updateSettings({ [setting]: !settings[setting] })}
+ >
+ {children}
+ </MenuToggle>
+ )
+}
+SettingsToggle = connect(
+ state => ({
+ settings: state.settings,
+ }),
+ {
+ updateSettings,
+ }
+)(SettingsToggle)
+
+
+export function EventlogToggle({ toggleVisibility, eventLogVisible }) {
+ return (
+ <MenuToggle
+ value={eventLogVisible}
+ onChange={toggleVisibility}
+ >
+ Display Event Log
+ </MenuToggle>
+ )
+}
+EventlogToggle = connect(
+ state => ({
+ eventLogVisible: state.eventLog.visible,
+ }),
+ {
+ toggleVisibility,
+ }
+)(EventlogToggle)
+