From 7821b6b5a9154ac5e9ab2bcb5558c0a6d619cabb Mon Sep 17 00:00:00 2001 From: John Knox Date: Fri, 16 Nov 2018 03:36:12 -0800 Subject: [PATCH] Sort uninitialized devices in redux state Summary: Stops them from jumping around if they try to connect more than once. Reviewed By: passy Differential Revision: D13084056 fbshipit-source-id: 803538298c45b9c28e5116f072518e8632b0f1cf --- src/reducers/connections.js | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/reducers/connections.js b/src/reducers/connections.js index 301c47f26..748c78910 100644 --- a/src/reducers/connections.js +++ b/src/reducers/connections.js @@ -269,31 +269,36 @@ export default function reducer( ...state, uninitializedClients: state.uninitializedClients .filter(entry => !isEqual(entry.client, payload)) - .concat([{client: payload}]), + .concat([{client: payload}]) + .sort((a, b) => a.client.appName.localeCompare(b.client.appName)), }; } case 'FINISH_CLIENT_SETUP': { const {payload} = action; return { ...state, - uninitializedClients: state.uninitializedClients.map( - c => - isEqual(c.client, payload.client) - ? {...c, deviceId: payload.deviceId} - : c, - ), + uninitializedClients: state.uninitializedClients + .map( + c => + isEqual(c.client, payload.client) + ? {...c, deviceId: payload.deviceId} + : c, + ) + .sort((a, b) => a.client.appName.localeCompare(b.client.appName)), }; } case 'CLIENT_SETUP_ERROR': { const {payload} = action; return { ...state, - uninitializedClients: state.uninitializedClients.map( - c => - isEqual(c.client, payload.client) - ? {...c, error: payload.error.message} - : c, - ), + uninitializedClients: state.uninitializedClients + .map( + c => + isEqual(c.client, payload.client) + ? {...c, error: payload.error.message} + : c, + ) + .sort((a, b) => a.client.appName.localeCompare(b.client.appName)), }; } default: