diff options
author | Maximilian Hils <git@maximilianhils.com> | 2017-10-29 15:01:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-29 15:01:50 +0100 |
commit | 731b40ce0f31e64e9bff87e00d7bfbee12138d47 (patch) | |
tree | 3b072f0518b14bdc6ffd94dacb31532cb4e89558 /web/src/js/components/Prompt.jsx | |
parent | b32dff7520b67f6f6a93627363d91d4f30cad956 (diff) | |
parent | 9d514330cad64e589987b5e539809ae95d14e137 (diff) | |
download | mitmproxy-731b40ce0f31e64e9bff87e00d7bfbee12138d47.tar.gz mitmproxy-731b40ce0f31e64e9bff87e00d7bfbee12138d47.tar.bz2 mitmproxy-731b40ce0f31e64e9bff87e00d7bfbee12138d47.zip |
Merge pull request #2608 from mhils/web
[web] minor improvements, move options editor
Diffstat (limited to 'web/src/js/components/Prompt.jsx')
-rwxr-xr-x | web/src/js/components/Prompt.jsx | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/web/src/js/components/Prompt.jsx b/web/src/js/components/Prompt.jsx deleted file mode 100755 index 77b07027..00000000 --- a/web/src/js/components/Prompt.jsx +++ /dev/null @@ -1,67 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import ReactDOM from 'react-dom' -import _ from 'lodash' - -import {Key} from '../utils.js' - -Prompt.propTypes = { - options: PropTypes.array.isRequired, - done: PropTypes.func.isRequired, - prompt: PropTypes.string, -} - -export default function Prompt({ prompt, done, options }) { - const opts = [] - - for (let i = 0; i < options.length; i++) { - let opt = options[i] - if (_.isString(opt)) { - let str = opt - while (str.length > 0 && keyTaken(str[0])) { - str = str.substr(1) - } - opt = { text: opt, key: str[0] } - } - if (!opt.text || !opt.key || keyTaken(opt.key)) { - throw 'invalid options' - } - opts.push(opt) - } - - function keyTaken(k) { - return _.map(opts, 'key').includes(k) - } - - function onKeyDown(event) { - event.stopPropagation() - event.preventDefault() - const key = opts.find(opt => Key[opt.key.toUpperCase()] === event.keyCode) - if (!key && event.keyCode !== Key.ESC && event.keyCode !== Key.ENTER) { - return - } - done(key.key || false) - } - - return ( - <div tabIndex="0" onKeyDown={onKeyDown} className="prompt-dialog"> - <div className="prompt-content"> - {prompt || <strong>Select: </strong> } - {opts.map(opt => { - const idx = opt.text.indexOf(opt.key) - function onClick(event) { - done(opt.key) - event.stopPropagation() - } - return ( - <span key={opt.key} className="option" onClick={onClick}> - {idx !== -1 ? opt.text.substring(0, idx) : opt.text + '('} - <strong className="text-primary">{opt.key}</strong> - {idx !== -1 ? opt.text.substring(idx + 1) : ')'} - </span> - ) - })} - </div> - </div> - ) -} |