Added /quit, the server IRC client gets cleaned up properly when quitting, pulled command handling out into a separate file
This commit is contained in:
parent
d11aa3ff4e
commit
99ef788906
8 changed files with 83 additions and 49 deletions
|
@ -1,53 +1,10 @@
|
|||
var React = require('react');
|
||||
var Reflux = require('reflux');
|
||||
|
||||
var channelStore = require('../stores/channel');
|
||||
var selectedTabStore = require('../stores/selectedTab');
|
||||
var messageActions = require('../actions/message');
|
||||
var channelActions = require('../actions/channel');
|
||||
var serverActions = require('../actions/server');
|
||||
var tabActions = require('../actions/tab');
|
||||
|
||||
function dispatchCommand(cmd, channel, server) {
|
||||
var params = cmd.slice(1).split(' ');
|
||||
|
||||
switch (params[0].toLowerCase()) {
|
||||
case 'join':
|
||||
if (params[1]) {
|
||||
channelActions.join([params[1]], server);
|
||||
tabActions.select(server, params[1]);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'part':
|
||||
if (channel) {
|
||||
channelActions.part([channel], server);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'me':
|
||||
if (params.length > 1) {
|
||||
messageActions.send('\x01ACTION ' + params.slice(1).join(' ') + '\x01', channel, server);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'topic':
|
||||
var topic = channelStore.getTopic(server, channel);
|
||||
if (topic) {
|
||||
messageActions.inform(topic, server, channel);
|
||||
} else {
|
||||
messageActions.inform('No topic set', server, channel);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'nick':
|
||||
if (params[1]) {
|
||||
serverActions.setNick(params[1], server);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var MessageInput = React.createClass({
|
||||
mixins: [
|
||||
Reflux.connect(selectedTabStore, 'selectedTab')
|
||||
|
@ -64,7 +21,7 @@ var MessageInput = React.createClass({
|
|||
var tab = this.state.selectedTab;
|
||||
|
||||
if (e.target.value[0] === '/') {
|
||||
dispatchCommand(e.target.value, tab.channel, tab.server);
|
||||
messageActions.command(e.target.value, tab.channel, tab.server);
|
||||
} else {
|
||||
messageActions.send(e.target.value, tab.channel, tab.server);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue