feat: Empty states in admin

pull/28/head
Boaz Poolman 2021-11-13 14:30:16 +01:00
parent 3be97749f9
commit ccef257c32
3 changed files with 29 additions and 16 deletions

View File

@ -6,6 +6,7 @@ import { TableLabel } from '@strapi/design-system/Text';
import ConfigDiff from '../ConfigDiff'; import ConfigDiff from '../ConfigDiff';
import FirstExport from '../FirstExport'; import FirstExport from '../FirstExport';
import NoChanges from '../NoChanges';
import ConfigListRow from './ConfigListRow'; import ConfigListRow from './ConfigListRow';
const ConfigList = ({ diff, isLoading }) => { const ConfigList = ({ diff, isLoading }) => {
@ -72,6 +73,10 @@ const ConfigList = ({ diff, isLoading }) => {
return <FirstExport />; return <FirstExport />;
} }
if (!isLoading && isEmpty(diff.diff)) {
return <NoChanges />;
}
return ( return (
<div> <div>
<ConfigDiff <ConfigDiff

View File

@ -1,6 +1,6 @@
import React, { useState } from 'react'; import React, { useState } from 'react';
import { useDispatch } from 'react-redux'; import { useDispatch } from 'react-redux';
import { NoContent } from '@strapi/helper-plugin';
import { Button } from '@strapi/design-system/Button'; import { Button } from '@strapi/design-system/Button';
import { exportAllConfig } from '../../state/actions/Config'; import { exportAllConfig } from '../../state/actions/Config';
@ -11,27 +11,21 @@ const FirstExport = () => {
const [modalIsOpen, setModalIsOpen] = useState(false); const [modalIsOpen, setModalIsOpen] = useState(false);
return ( return (
<div style={{ <div>
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
flexDirection: 'column',
textAlign: 'center',
height: '300px',
}}>
<ConfirmModal <ConfirmModal
isOpen={modalIsOpen} isOpen={modalIsOpen}
onClose={() => setModalIsOpen(false)} onClose={() => setModalIsOpen(false)}
type="export" type="export"
onSubmit={() => dispatch(exportAllConfig())} onSubmit={() => dispatch(exportAllConfig())}
/> />
<h3>Looks like this is your first time using config-sync for this project.</h3> <NoContent
<p>Make the initial export!</p> content={{
<Button id: 'emptyState',
onClick={() => setModalIsOpen(true)} defaultMessage:
> 'Looks like this is your first time using config-sync for this project.',
Initial export }}
</Button> action={<Button onClick={() => setModalIsOpen(true)}>Make the initial export</Button>}
/>
</div> </div>
); );
}; };

View File

@ -0,0 +1,14 @@
import React from 'react';
import { NoContent } from '@strapi/helper-plugin';
const NoChanges = () => (
<NoContent
content={{
id: 'emptyState',
defaultMessage:
'No differences between DB and sync directory. You are up-to-date!',
}}
/>
);
export default NoChanges;