From 91e08cb117bae44fd6d96e226a68da6ed15ab433 Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Thu, 1 Feb 2018 13:28:28 +0100 Subject: [PATCH] Rename storage to localStorage in context --- client/coral-admin/src/actions/auth.js | 30 +++++++++++-------- client/coral-admin/src/actions/moderation.js | 6 ++-- client/coral-admin/src/index.js | 4 +-- client/coral-embed-stream/src/actions/auth.js | 24 +++++++-------- .../components/TalkProvider.js | 4 +-- client/coral-framework/services/bootstrap.js | 10 +++---- client/coral-framework/services/i18n.js | 2 +- .../talk-plugin-remember-sort/client/index.js | 8 ++--- 8 files changed, 46 insertions(+), 42 deletions(-) diff --git a/client/coral-admin/src/actions/auth.js b/client/coral-admin/src/actions/auth.js index 332d756c0..3304da85f 100644 --- a/client/coral-admin/src/actions/auth.js +++ b/client/coral-admin/src/actions/auth.js @@ -10,7 +10,7 @@ import jwtDecode from 'jwt-decode'; export const handleLogin = (email, password, recaptchaResponse) => ( dispatch, _, - { rest, client, storage } + { rest, client, localStorage } ) => { dispatch({ type: actions.LOGIN_REQUEST }); @@ -31,8 +31,8 @@ export const handleLogin = (email, password, recaptchaResponse) => ( return rest('/auth/local', params) .then(({ user, token }) => { if (!user) { - if (!bowser.safari && !bowser.ios && storage) { - storage.removeItem('token'); + if (!bowser.safari && !bowser.ios && localStorage) { + localStorage.removeItem('token'); } return dispatch(checkLoginFailure('not logged in')); } @@ -121,13 +121,17 @@ const checkLoginFailure = error => ({ error, }); -export const checkLogin = () => (dispatch, _, { rest, client, storage }) => { +export const checkLogin = () => ( + dispatch, + _, + { rest, client, localStorage } +) => { dispatch(checkLoginRequest()); return rest('/auth') .then(({ user }) => { if (!user) { - if (!bowser.safari && !bowser.ios && storage) { - storage.removeItem('token'); + if (!bowser.safari && !bowser.ios && localStorage) { + localStorage.removeItem('token'); } return dispatch(checkLoginFailure('not logged in')); } @@ -148,10 +152,10 @@ export const checkLogin = () => (dispatch, _, { rest, client, storage }) => { // LOGOUT //============================================================================== -export const logout = () => (dispatch, _, { rest, client, storage }) => { +export const logout = () => (dispatch, _, { rest, client, localStorage }) => { return rest('/auth', { method: 'DELETE' }).then(() => { - if (storage) { - storage.removeItem('token'); + if (localStorage) { + localStorage.removeItem('token'); } // Reset the websocket. @@ -165,10 +169,10 @@ export const logout = () => (dispatch, _, { rest, client, storage }) => { // AUTH TOKEN //============================================================================== -export const handleAuthToken = token => (dispatch, _, { storage }) => { - if (storage) { - storage.setItem('exp', jwtDecode(token).exp); - storage.setItem('token', token); +export const handleAuthToken = token => (dispatch, _, { localStorage }) => { + if (localStorage) { + localStorage.setItem('exp', jwtDecode(token).exp); + localStorage.setItem('token', token); } dispatch({ type: 'HANDLE_AUTH_TOKEN' }); }; diff --git a/client/coral-admin/src/actions/moderation.js b/client/coral-admin/src/actions/moderation.js index 7899b7685..16c2bd2f7 100644 --- a/client/coral-admin/src/actions/moderation.js +++ b/client/coral-admin/src/actions/moderation.js @@ -4,10 +4,10 @@ export const toggleModal = open => ({ type: actions.TOGGLE_MODAL, open }); export const singleView = () => ({ type: actions.SINGLE_VIEW }); // hide shortcuts note -export const hideShortcutsNote = () => (dispatch, _, { storage }) => { +export const hideShortcutsNote = () => (dispatch, _, { localStorage }) => { try { - if (storage) { - storage.setItem('coral:shortcutsNote', 'hide'); + if (localStorage) { + localStorage.setItem('coral:shortcutsNote', 'hide'); } } catch (e) { // above will fail in Safari private mode diff --git a/client/coral-admin/src/index.js b/client/coral-admin/src/index.js index ab9ee32b3..0cf0a8cf9 100644 --- a/client/coral-admin/src/index.js +++ b/client/coral-admin/src/index.js @@ -14,8 +14,8 @@ import { hideShortcutsNote } from './actions/moderation'; smoothscroll.polyfill(); -function init({ store, storage }) { - if (storage && storage.getItem('coral:shortcutsNote') === 'hide') { +function init({ store, localStorage }) { + if (localStorage && localStorage.getItem('coral:shortcutsNote') === 'hide') { store.dispatch(hideShortcutsNote()); } } diff --git a/client/coral-embed-stream/src/actions/auth.js b/client/coral-embed-stream/src/actions/auth.js index e74265026..ac4b96c2c 100644 --- a/client/coral-embed-stream/src/actions/auth.js +++ b/client/coral-embed-stream/src/actions/auth.js @@ -90,10 +90,10 @@ const signInFailure = error => ({ // AUTH TOKEN //============================================================================== -export const handleAuthToken = token => (dispatch, _, { storage }) => { - if (storage) { - storage.setItem('exp', jwtDecode(token).exp); - storage.setItem('token', token); +export const handleAuthToken = token => (dispatch, _, { localStorage }) => { + if (localStorage) { + localStorage.setItem('exp', jwtDecode(token).exp); + localStorage.setItem('token', token); } dispatch({ type: 'HANDLE_AUTH_TOKEN' }); @@ -260,12 +260,12 @@ export const fetchForgotPassword = email => (dispatch, getState, { rest }) => { export const logout = () => async ( dispatch, _, - { rest, client, pym, storage } + { rest, client, pym, localStorage } ) => { await rest('/auth', { method: 'DELETE' }); - if (storage) { - storage.removeItem('token'); + if (localStorage) { + localStorage.removeItem('token'); } // Reset the websocket. @@ -296,14 +296,14 @@ const ErrNotLoggedIn = new Error('Not logged in'); export const checkLogin = () => ( dispatch, _, - { rest, client, pym, storage } + { rest, client, pym, localStorage } ) => { dispatch(checkLoginRequest()); rest('/auth') .then(result => { if (!result.user) { - if (storage) { - storage.removeItem('token'); + if (localStorage) { + localStorage.removeItem('token'); } throw ErrNotLoggedIn; } @@ -326,9 +326,9 @@ export const checkLogin = () => ( if (error !== ErrNotLoggedIn) { console.error(error); } - if (error.status && error.status === 401 && storage) { + if (error.status && error.status === 401 && localStorage) { // Unauthorized. - storage.removeItem('token'); + localStorage.removeItem('token'); } const errorMessage = error.translation_key ? t(`error.${error.translation_key}`) diff --git a/client/coral-framework/components/TalkProvider.js b/client/coral-framework/components/TalkProvider.js index 73dd4d86d..b9654f688 100644 --- a/client/coral-framework/components/TalkProvider.js +++ b/client/coral-framework/components/TalkProvider.js @@ -11,7 +11,7 @@ class TalkProvider extends React.Component { rest: this.props.rest, graphql: this.props.graphql, notification: this.props.notification, - storage: this.props.storage, + localStorage: this.props.localStorage, history: this.props.history, store: this.props.store, }; @@ -30,7 +30,7 @@ TalkProvider.childContextTypes = { rest: PropTypes.func, graphql: PropTypes.object, notification: PropTypes.object, - storage: PropTypes.object, + localStorage: PropTypes.object, history: PropTypes.object, store: PropTypes.object, }; diff --git a/client/coral-framework/services/bootstrap.js b/client/coral-framework/services/bootstrap.js index 66da3ff29..d784cb08c 100644 --- a/client/coral-framework/services/bootstrap.js +++ b/client/coral-framework/services/bootstrap.js @@ -64,8 +64,8 @@ export async function createContext({ init = noop, } = {}) { const eventEmitter = new EventEmitter({ wildcard: true }); - const storage = createStorage(); - const pymStorage = createPymStorage(pym); + const localStorage = createStorage('localStorage'); + const pymLocalStorage = createPymStorage(pym, 'localStorage'); const history = createHistory(BASE_PATH); const introspection = createIntrospection(introspectionData); let store = null; @@ -75,7 +75,7 @@ export async function createContext({ // NOTE: THIS IS ONLY EVER EVALUATED ONCE, IN ORDER TO SEND A DIFFERNT // TOKEN YOU MUST DISCONNECT AND RECONNECT THE WEBSOCKET CLIENT. - return getAuthToken(store, storage); + return getAuthToken(store, localStorage); }; const rest = createRestClient({ @@ -116,10 +116,10 @@ export async function createContext({ rest, graphql, notification, - storage, + localStorage, history, introspection, - pymStorage, + pymLocalStorage, }; // Load framework fragments. diff --git a/client/coral-framework/services/i18n.js b/client/coral-framework/services/i18n.js index ee7ecc266..1ec53c703 100644 --- a/client/coral-framework/services/i18n.js +++ b/client/coral-framework/services/i18n.js @@ -68,7 +68,7 @@ function getLocale(storage) { export function setupTranslations() { // Setup the translation framework with the storage. - const storage = createStorage(); + const storage = createStorage('localStorage'); const locale = getLocale(storage); setLocale(storage, locale); diff --git a/plugins/talk-plugin-remember-sort/client/index.js b/plugins/talk-plugin-remember-sort/client/index.js index 1309a3dc3..a4fb7424c 100644 --- a/plugins/talk-plugin-remember-sort/client/index.js +++ b/plugins/talk-plugin-remember-sort/client/index.js @@ -7,7 +7,7 @@ import { const STORAGE_PATH = 'talkPluginRememberSort'; export default { - init: async ({ store, pymStorage, introspection }) => { + init: async ({ store, pymLocalStorage, introspection }) => { // TODO: workaround as this plugin is included in any target and // embeds (e.g. admin), but should only be included inside the stream. @@ -16,10 +16,10 @@ export default { return; } - // We use pymStorage instead to persist the data directly on the parent page, + // We use pymLocalStorage instead to persist the data directly on the parent page, // in order to mitigate strict cross domain security settings. - let sort = JSON.parse(await pymStorage.getItem(STORAGE_PATH)); + let sort = JSON.parse(await pymLocalStorage.getItem(STORAGE_PATH)); if ( sort && introspection.isValidEnumValue('SORT_ORDER', sort.sortOrder) && @@ -35,7 +35,7 @@ export default { // Save sorting choice to storage if it has changed. if (!sort || sort.sortOrder !== sortOrder || sort.sortBy !== sortBy) { sort = { sortOrder, sortBy }; - pymStorage.setItem(STORAGE_PATH, JSON.stringify(sort)); + pymLocalStorage.setItem(STORAGE_PATH, JSON.stringify(sort)); } }); },