mirror of
https://github.com/BorysLevytskyi/BitwiseCmd.git
synced 2025-12-23 21:22:48 +01:00
Add support for UnknownCommandResult
This commit is contained in:
@@ -55,8 +55,7 @@ var cmd = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function displayCommandError(input, message) {
|
function displayCommandError(input, message) {
|
||||||
var error = new app.models.ErrorResult(message);
|
console.error('[displayCommandError] not implemented');
|
||||||
cmdController.display(new app.models.DisplayResult(input, error));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function invokeHandler (input, handler) {
|
function invokeHandler (input, handler) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import appState from './appState';
|
import appState from './appState';
|
||||||
import HelpResult from './models/HelpResult';
|
import HelpResult from './models/HelpResult';
|
||||||
|
import UnknownCommandResult from './models/UnknownCommandResult';
|
||||||
|
|
||||||
var cmdConfig = {};
|
var cmdConfig = {};
|
||||||
|
|
||||||
@@ -41,5 +42,10 @@ export default {
|
|||||||
},
|
},
|
||||||
'-notrack': function () {}
|
'-notrack': function () {}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
cmd.command({
|
||||||
|
canHandle: () => true,
|
||||||
|
handle: (c) => appState.addCommandResult(new UnknownCommandResult(c.input))
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,7 @@ export default class AppRoot extends React.Component {
|
|||||||
this.setState(this.props.appState);
|
this.setState(this.props.appState);
|
||||||
}
|
}
|
||||||
render() {
|
render() {
|
||||||
var results = this.state.commandResults.map((r, i) => <DisplayResultView key={i} content={r} input="sad" inputHash="asd" />);
|
var results = this.state.commandResults.map((r, i) => <DisplayResultView key={i} content={r} input={r.input} inputHash={r.inputHash} />);
|
||||||
return <div>
|
return <div>
|
||||||
<div className="header">
|
<div className="header">
|
||||||
<h1>Bitwise<span style={{color: "#c5c5c5"}}>Cmd</span></h1>
|
<h1>Bitwise<span style={{color: "#c5c5c5"}}>Cmd</span></h1>
|
||||||
|
|||||||
@@ -1,9 +1,16 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import HelpResultView from './HelpResultView';
|
import HelpResultView from './HelpResultView';
|
||||||
import HelpResult from '../../models/HelpResult';
|
import HelpResult from '../../models/HelpResult';
|
||||||
|
import UnknownCommandResult from '../../models/UnknownCommandResult';
|
||||||
|
|
||||||
|
|
||||||
export default class DisplayResult extends React.Component {
|
export default class DisplayResult extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
|
|
||||||
|
if(this.props.content instanceof UnknownCommandResult) {
|
||||||
|
return this.renderUnknown();
|
||||||
|
}
|
||||||
|
|
||||||
return <div className="result">
|
return <div className="result">
|
||||||
<div className="input mono"><span className="cur">></span>{this.props.content.input}<a class="hashLink" title="Link for this expression" href={window.location.pathname + '#' + this.props.inputHash}>#</a></div>
|
<div className="input mono"><span className="cur">></span>{this.props.content.input}<a class="hashLink" title="Link for this expression" href={window.location.pathname + '#' + this.props.inputHash}>#</a></div>
|
||||||
<div className="content">
|
<div className="content">
|
||||||
@@ -12,6 +19,10 @@ export default class DisplayResult extends React.Component {
|
|||||||
</div>;
|
</div>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderUnknown() {
|
||||||
|
return <div className="error">Sorry, i don't know what <strong>{this.props.input}</strong> is :(</div>
|
||||||
|
}
|
||||||
|
|
||||||
findResultComponent(result, key) {
|
findResultComponent(result, key) {
|
||||||
if(result instanceof HelpResult) {
|
if(result instanceof HelpResult) {
|
||||||
return <HelpResultView key={key} content={result} />
|
return <HelpResultView key={key} content={result} />
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import AppRoot from './components/AppRoot';
|
|||||||
commands.initialize(cmd);
|
commands.initialize(cmd);
|
||||||
|
|
||||||
cmd.execute('help');
|
cmd.execute('help');
|
||||||
|
cmd.execute('bluh');
|
||||||
|
|
||||||
var root = <AppRoot appState={appState} />;
|
var root = <AppRoot appState={appState} />;
|
||||||
ReactDOM.render(root, document.getElementById('root'));
|
ReactDOM.render(root, document.getElementById('root'));
|
||||||
@@ -1,5 +1,10 @@
|
|||||||
export default class CommandResult {
|
export default class CommandResult {
|
||||||
constructor(input) {
|
constructor(input) {
|
||||||
this.input = input;
|
this.input = input;
|
||||||
|
this.inputHash = this.encodeHash(input);
|
||||||
|
}
|
||||||
|
|
||||||
|
encodeHash (string) {
|
||||||
|
return encodeURI(string.trim().replace(/\s/g,','));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
8
src/app/models/UnknownCommandResult.js
Normal file
8
src/app/models/UnknownCommandResult.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import CommandResult from './CommandResult';
|
||||||
|
|
||||||
|
export default class UnknownCommandResult extends CommandResult {
|
||||||
|
constructor(input) {
|
||||||
|
super(input);
|
||||||
|
this.message = `Sorry, i don''t know what ${input} is :(`;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user