@@ -10,7 +10,7 @@ import {
1010import { openModal } from 'state/modals' ;
1111import { reconnect } from 'state/servers' ;
1212import { select } from 'state/tab' ;
13- import { find , normalizeChannel } from 'utils' ;
13+ import { find } from 'utils' ;
1414
1515function withReason ( message , reason ) {
1616return message + ( reason ?` (${ reason } )` :'' ) ;
@@ -46,22 +46,7 @@ export default function handleSocket({
4646} ,
4747
4848join ( { user, server, channels} ) {
49- const state = getState ( ) ;
50- const tab = state . tab . selected ;
51- const [ joinedChannel ] = channels ;
52- if ( tab . server && tab . name ) {
53- const { nick} = state . servers [ tab . server ] ;
54- if (
55- tab . server === server &&
56- nick === user &&
57- tab . name !== joinedChannel &&
58- normalizeChannel ( tab . name ) === normalizeChannel ( joinedChannel )
59- ) {
60- dispatch ( select ( server , joinedChannel ) ) ;
61- }
62- }
63-
64- dispatch ( inform ( `${ user } joined the channel` , server , joinedChannel ) ) ;
49+ dispatch ( inform ( `${ user } joined the channel` , server , channels [ 0 ] ) ) ;
6550} ,
6651
6752part ( { user, server, channel, reason} ) {
@@ -123,6 +108,10 @@ export default function handleSocket({
123108dispatch ( addMessage ( message , tab . server , tab . name ) ) ;
124109} ,
125110
111+ error ( { server, target, message} ) {
112+ dispatch ( addMessage ( { content :message , type :'error' } , server , target ) ) ;
113+ } ,
114+
126115connection_update ( { server, errorType} ) {
127116if ( errorType === 'verify' ) {
128117dispatch (
@@ -145,6 +134,16 @@ export default function handleSocket({
145134}
146135} ;
147136
137+ const afterHandlers = {
138+ channel_forward ( forward ) {
139+ const { selected} = getState ( ) . tab ;
140+
141+ if ( selected . server === forward . server && selected . name === forward . old ) {
142+ dispatch ( select ( forward . server , forward . new , true ) ) ;
143+ }
144+ }
145+ } ;
146+
148147socket . onMessage ( ( type , data ) => {
149148let action ;
150149if ( Array . isArray ( data ) ) {
@@ -162,5 +161,9 @@ export default function handleSocket({
162161}
163162
164163dispatch ( action ) ;
164+
165+ if ( type in afterHandlers ) {
166+ afterHandlers [ type ] ( data ) ;
167+ }
165168} ) ;
166169}