diff --git a/client/coral-admin/src/actions/auth.js b/client/coral-admin/src/actions/auth.js index 6892080cd..193c6ac44 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,9 +31,9 @@ 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'); - storage.removeItem('exp'); + if (!bowser.safari && !bowser.ios && localStorage) { + localStorage.removeItem('token'); + localStorage.removeItem('exp'); } return dispatch(checkLoginFailure('not logged in')); } @@ -122,14 +122,18 @@ 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'); - storage.removeItem('exp'); + if (!bowser.safari && !bowser.ios && localStorage) { + localStorage.removeItem('token'); + localStorage.removeItem('exp'); } return dispatch(checkLoginFailure('not logged in')); } @@ -150,11 +154,11 @@ 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'); - storage.removeItem('exp'); + if (localStorage) { + localStorage.removeItem('token'); + localStorage.removeItem('exp'); } // Reset the websocket. @@ -168,10 +172,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 4406c744c..d7e2b7826 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,13 +260,13 @@ 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'); - storage.removeItem('exp'); + if (localStorage) { + localStorage.removeItem('token'); + localStorage.removeItem('exp'); } // Reset the websocket. @@ -297,15 +297,15 @@ 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'); - storage.removeItem('exp'); + if (localStorage) { + localStorage.removeItem('token'); + localStorage.removeItem('exp'); } throw ErrNotLoggedIn; } @@ -328,10 +328,10 @@ 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'); - storage.removeItem('exp'); + localStorage.removeItem('token'); + localStorage.removeItem('exp'); } const errorMessage = error.translation_key ? t(`error.${error.translation_key}`) diff --git a/client/coral-embed-stream/src/index.js b/client/coral-embed-stream/src/index.js index 2226f46ab..7100c0d28 100644 --- a/client/coral-embed-stream/src/index.js +++ b/client/coral-embed-stream/src/index.js @@ -14,18 +14,10 @@ import reducers from './reducers'; import TalkProvider from 'coral-framework/components/TalkProvider'; import pluginsConfig from 'pluginsConfig'; -function inIframe() { - try { - return window.self !== window.top; - } catch (e) { - return true; - } -} - // TODO: move init code into `bootstrap` service after auth has been refactored. -function preInit({ store, pym }) { +function preInit({ store, pym, inIframe }) { // TODO: This is popup specific code and needs to be refactored. - if (!inIframe()) { + if (!inIframe) { store.dispatch(addExternalConfig({})); store.dispatch(checkLogin()); return; diff --git a/client/coral-embed-stream/src/tabs/stream/components/CommentForm.js b/client/coral-embed-stream/src/tabs/stream/components/CommentForm.js index 9a84bdbe8..28b8bb668 100644 --- a/client/coral-embed-stream/src/tabs/stream/components/CommentForm.js +++ b/client/coral-embed-stream/src/tabs/stream/components/CommentForm.js @@ -2,13 +2,13 @@ import React from 'react'; import PropTypes from 'prop-types'; import { Button } from 'coral-ui'; import cn from 'classnames'; -import Slot from 'coral-framework/components/Slot'; // TODO: (kiwi) Need to adapt CSS classes post refactor to match the rest. import { name } from '../containers/CommentBox'; import styles from './CommentForm.css'; import t from 'coral-framework/services/i18n'; +import DraftArea from '../containers/DraftArea'; /** * Common UI for Creating or Editing a Comment @@ -61,10 +61,6 @@ export class CommentForm extends React.Component { }; } - onBodyChange = e => { - this.props.onBodyChange(e.target.value); - }; - onClickSubmit = () => { this.props.onSubmit(); }; @@ -107,37 +103,16 @@ export class CommentForm extends React.Component { return (