From 3be97749f9a4f75556c64a1728f0ca87d8af0b00 Mon Sep 17 00:00:00 2001 From: Boaz Poolman Date: Sat, 13 Nov 2021 14:15:31 +0100 Subject: [PATCH] refactor(v4): Implement @strapi/design-system --- admin/src/components/ActionButtons/index.js | 2 ++ .../ConfigList/ConfigListRow/index.js | 20 +++++++++------- admin/src/components/ConfirmModal/index.js | 24 ++++++++++++------- admin/src/containers/App/index.js | 8 ++++--- admin/src/containers/ConfigPage/index.js | 5 ++-- admin/src/helpers/configureStore.js | 6 ++--- admin/src/state/actions/Config.js | 16 ++++++------- admin/src/translations/en.json | 9 ++++--- 8 files changed, 54 insertions(+), 36 deletions(-) diff --git a/admin/src/components/ActionButtons/index.js b/admin/src/components/ActionButtons/index.js index dd1e19c..d08194c 100644 --- a/admin/src/components/ActionButtons/index.js +++ b/admin/src/components/ActionButtons/index.js @@ -41,6 +41,8 @@ const ActionButtons = ({ diff }) => { const ActionButtonsStyling = styled.div` padding: 10px 0 20px 0; + display: flex; + align-items: center; > button { margin-right: 10px; diff --git a/admin/src/components/ConfigList/ConfigListRow/index.js b/admin/src/components/ConfigList/ConfigListRow/index.js index 1654126..598bd63 100644 --- a/admin/src/components/ConfigList/ConfigListRow/index.js +++ b/admin/src/components/ConfigList/ConfigListRow/index.js @@ -1,4 +1,5 @@ import React from 'react'; +import { Tr, Td } from '@strapi/design-system/Table'; const CustomRow = ({ row }) => { const { configName, configType, state, onClick } = row; @@ -32,17 +33,20 @@ const CustomRow = ({ row }) => { }; return ( - onClick(configType, configName)}> - + onClick(configType, configName)} + style={{ cursor: 'pointer' }} + > +

{configName}

- - + +

{configType}

- - + +

{state}

- - + + ); }; diff --git a/admin/src/components/ConfirmModal/index.js b/admin/src/components/ConfirmModal/index.js index 4082a18..8d595b4 100644 --- a/admin/src/components/ConfirmModal/index.js +++ b/admin/src/components/ConfirmModal/index.js @@ -1,16 +1,16 @@ import React from 'react'; +import { useIntl } from 'react-intl'; import { Dialog, DialogBody, DialogFooter } from '@strapi/design-system/Dialog'; import { Flex } from '@strapi/design-system/Flex'; import { Text } from '@strapi/design-system/Text'; import { Stack } from '@strapi/design-system/Stack'; import { Button } from '@strapi/design-system/Button'; -import DeleteIcon from '@strapi/icons/Delete'; import AlertWarningIcon from '@strapi/icons/AlertWarningIcon'; -import getTrad from '../../helpers/getTrad'; - const ConfirmModal = ({ isOpen, onClose, onSubmit, type }) => { + const { formatMessage } = useIntl(); + if (!isOpen) return null; return ( @@ -22,7 +22,10 @@ const ConfirmModal = ({ isOpen, onClose, onSubmit, type }) => { }> - {getTrad(`popUpWarning.warning.${type}`)} + + {formatMessage({ id: `config-sync.popUpWarning.warning.${type}_1` })}
+ {formatMessage({ id: `config-sync.popUpWarning.warning.${type}_2` })} +
@@ -31,16 +34,21 @@ const ConfirmModal = ({ isOpen, onClose, onSubmit, type }) => { )} endAction={( - )} /> diff --git a/admin/src/containers/App/index.js b/admin/src/containers/App/index.js index 26778c7..a8c2fba 100644 --- a/admin/src/containers/App/index.js +++ b/admin/src/containers/App/index.js @@ -7,17 +7,19 @@ import React from 'react'; import { Provider } from 'react-redux'; -import { CheckPagePermissions } from '@strapi/helper-plugin'; +import { CheckPagePermissions, useNotification } from '@strapi/helper-plugin'; import pluginPermissions from '../../permissions'; import Header from '../../components/Header'; -import { store } from "../../helpers/configureStore"; +import store from "../../helpers/configureStore"; import ConfigPage from '../ConfigPage'; const App = () => { + const toggleNotification = useNotification(); + return ( - +
diff --git a/admin/src/containers/ConfigPage/index.js b/admin/src/containers/ConfigPage/index.js index cc933aa..ea7067a 100644 --- a/admin/src/containers/ConfigPage/index.js +++ b/admin/src/containers/ConfigPage/index.js @@ -1,6 +1,7 @@ import React, { useEffect } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { Map } from 'immutable'; +import { Box } from '@strapi/design-system/Box'; import { getAllConfigDiff } from '../../state/actions/Config'; import ConfigList from '../../components/ConfigList'; @@ -16,10 +17,10 @@ const ConfigPage = () => { }, []); return ( -
+ -
+ ); }; diff --git a/admin/src/helpers/configureStore.js b/admin/src/helpers/configureStore.js index 7c250cf..371f547 100755 --- a/admin/src/helpers/configureStore.js +++ b/admin/src/helpers/configureStore.js @@ -5,12 +5,12 @@ import { Map } from 'immutable'; import rootReducer from '../state/reducers'; import { __DEBUG__ } from '../config/constants'; -const configureStore = () => { +const configureStore = (toggleNotification) => { const initialStoreState = Map(); const enhancers = []; const middlewares = [ - thunkMiddleware, + thunkMiddleware.withExtraArgument(toggleNotification), ]; let devtools; @@ -43,5 +43,3 @@ const configureStore = () => { }; export default configureStore; - -export const store = configureStore(); diff --git a/admin/src/state/actions/Config.js b/admin/src/state/actions/Config.js index e6f26ca..23a29f4 100644 --- a/admin/src/state/actions/Config.js +++ b/admin/src/state/actions/Config.js @@ -8,14 +8,14 @@ import { request } from '@strapi/helper-plugin'; import { Map } from 'immutable'; export function getAllConfigDiff() { - return async function(dispatch) { + return async function(dispatch, getState, toggleNotification) { dispatch(setLoadingState(true)); try { const configDiff = await request('/config-sync/diff', { method: 'GET' }); dispatch(setConfigDiffInState(configDiff)); dispatch(setLoadingState(false)); } catch (err) { - strapi.notification.error('notification.error'); + toggleNotification({ type: 'warning', message: { id: 'notification.error' } }); dispatch(setLoadingState(false)); } }; @@ -30,32 +30,32 @@ export function setConfigDiffInState(config) { } export function exportAllConfig() { - return async function(dispatch) { + return async function(dispatch, getState, toggleNotification) { dispatch(setLoadingState(true)); try { const { message } = await request('/config-sync/export', { method: 'GET' }); dispatch(setConfigDiffInState(Map({}))); - strapi.notification.success(message); + toggleNotification({ type: 'success', message }); dispatch(setLoadingState(false)); } catch (err) { - strapi.notification.error('notification.error'); + toggleNotification({ type: 'warning', message: { id: 'notification.error' } }); dispatch(setLoadingState(false)); } }; } export function importAllConfig() { - return async function(dispatch) { + return async function(dispatch, getState, toggleNotification) { dispatch(setLoadingState(true)); try { const { message } = await request('/config-sync/import', { method: 'GET' }); dispatch(setConfigDiffInState(Map({}))); - strapi.notification.success(message); + toggleNotification({ type: 'success', message }); dispatch(setLoadingState(false)); } catch (err) { - strapi.notification.error('notification.error'); + toggleNotification({ type: 'warning', message: { id: 'notification.error' } }); dispatch(setLoadingState(false)); } }; diff --git a/admin/src/translations/en.json b/admin/src/translations/en.json index 6a2150d..6e4d977 100644 --- a/admin/src/translations/en.json +++ b/admin/src/translations/en.json @@ -1,11 +1,14 @@ { - "popUpWarning.warning.import": "If you continue all your local config files

will be imported into the database.", - "popUpWarning.warning.export": "If you continue all your database config

will be written into config files.", + "popUpWarning.warning.import_1": "If you continue all your local config files", + "popUpWarning.warning.import_2": "will be imported into the database.", + "popUpWarning.warning.export_1": "If you continue all your database config", + "popUpWarning.warning.export_2": "will be written into config files.", "popUpWarning.button.import": "Yes, import", "popUpWarning.button.export": "Yes, export", + "popUpWarning.button.cancel": "Cancel", "Header.Title": "Config Sync", "Header.Description": "Manage your database config across environments.", "plugin.name": "Config Sync" -} \ No newline at end of file +}