Add production mode to ctb

This commit is contained in:
soupette 2019-12-05 11:59:23 +01:00
parent 2153368bc5
commit 94bd80b59a
7 changed files with 74 additions and 67 deletions

View File

@ -31,7 +31,7 @@ const getDisplayedValue = (type, value, name) => {
case 'time': case 'time':
case 'datetime': case 'datetime':
case 'timestamp': { case 'timestamp': {
if (value === null) { if (value == null) {
return '-'; return '-';
} }

View File

@ -88,7 +88,7 @@ const MultipleMenuList = ({
<div style={{ marginTop: 3 }}> <div style={{ marginTop: 3 }}>
<CheckboxWrapper> <CheckboxWrapper>
<Label <Label
htmlFor="overrideReactSelectBehaviour" htmlFor="overrideReactSelectBehavior"
onClick={() => { onClick={() => {
handleChangeCategory({ target }); handleChangeCategory({ target });
}} }}

View File

@ -35,7 +35,7 @@ const Value = ({ children, ...props }) => {
const message = const message =
valueLength > '0' valueLength > '0'
? getTrad('components.componentSelect.value-components') ? getTrad('components.componentSelect.value-components')
: getTrad('components.componentSelect.value-components'); : getTrad('components.componentSelect.value-component');
return ( return (
<SingleValue {...props}> <SingleValue {...props}>

View File

@ -20,8 +20,7 @@ const ComponentSelect = ({
// Create a ref in order to access the StateManager // Create a ref in order to access the StateManager
// So we can close the menu after clicking on a menu item // So we can close the menu after clicking on a menu item
// This allows us to get rid of the menuIsOpen state management // This allows us to get rid of the menuIsOpen state management
// So we let the lib taking care of it // So we let the custom components taking care of it
// It's not the best practice but it is efficient
const ref = useRef(); const ref = useRef();
const handleChange = (inputValue, actionMeta) => { const handleChange = (inputValue, actionMeta) => {
const { action } = actionMeta; const { action } = actionMeta;
@ -54,7 +53,6 @@ const ComponentSelect = ({
value={{ label: value, value }} value={{ label: value, value }}
options={[]} options={[]}
ref={ref} ref={ref}
// menuIsOpen
refState={ref} refState={ref}
components={{ components={{
MenuList: MenuListCompo, MenuList: MenuListCompo,

View File

@ -37,7 +37,7 @@ import getTrad from '../../utils/getTrad';
const DataManagerProvider = ({ allIcons, children }) => { const DataManagerProvider = ({ allIcons, children }) => {
const [reducerState, dispatch] = useReducer(reducer, initialState, init); const [reducerState, dispatch] = useReducer(reducer, initialState, init);
const [infoModals, toggleInfoModal] = useState({ cancel: false }); const [infoModals, toggleInfoModal] = useState({ cancel: false });
const { updatePlugin } = useGlobalContext(); const { currentEnvironment, updatePlugin } = useGlobalContext();
const { const {
components, components,
contentTypes, contentTypes,
@ -54,6 +54,8 @@ const DataManagerProvider = ({ allIcons, children }) => {
const componentMatch = useRouteMatch( const componentMatch = useRouteMatch(
`/plugins/${pluginId}/component-categories/:categoryUid/:componentUid` `/plugins/${pluginId}/component-categories/:categoryUid/:componentUid`
); );
const isInDevelopmentMode = currentEnvironment === 'development';
const isInContentTypeView = contentTypeMatch !== null; const isInContentTypeView = contentTypeMatch !== null;
const firstKeyToMainSchema = isInContentTypeView const firstKeyToMainSchema = isInContentTypeView
? 'contentType' ? 'contentType'
@ -424,8 +426,6 @@ const DataManagerProvider = ({ allIcons, children }) => {
}); });
}; };
console.log({ modifiedData });
return ( return (
<DataManagerContext.Provider <DataManagerContext.Provider
value={{ value={{
@ -449,6 +449,7 @@ const DataManagerProvider = ({ allIcons, children }) => {
deleteCategory, deleteCategory,
deleteData, deleteData,
editCategory, editCategory,
isInDevelopmentMode,
initialData, initialData,
isInContentTypeView, isInContentTypeView,
modifiedData, modifiedData,
@ -467,22 +468,26 @@ const DataManagerProvider = ({ allIcons, children }) => {
) : ( ) : (
<> <>
{children} {children}
<FormModal /> {isInDevelopmentMode && (
<PopUpWarning <>
isOpen={infoModals.cancel} <FormModal />
toggleModal={toggleModalCancel} <PopUpWarning
content={{ isOpen={infoModals.cancel}
message: getTrad( toggleModal={toggleModalCancel}
`popUpWarning.bodyMessage.cancel-modifications${ content={{
didModifiedComponents ? '.with-components' : '' message: getTrad(
}` `popUpWarning.bodyMessage.cancel-modifications${
), didModifiedComponents ? '.with-components' : ''
}} }`
popUpWarningType="danger" ),
onConfirm={() => { }}
cancelChanges(); popUpWarningType="danger"
}} onConfirm={() => {
/> cancelChanges();
}}
/>
</>
)}
</> </>
)} )}
</DataManagerContext.Provider> </DataManagerContext.Provider>

View File

@ -27,18 +27,17 @@ function LeftMenu({ wait }) {
components, components,
componentsGroupedByCategory, componentsGroupedByCategory,
contentTypes, contentTypes,
isInDevelopmentMode,
sortedContentTypesList, sortedContentTypesList,
} = useDataManager(); } = useDataManager();
const { currentEnvironment, formatMessage } = useGlobalContext(); const { formatMessage } = useGlobalContext();
const { push } = useHistory(); const { push } = useHistory();
const isProduction = currentEnvironment === 'production';
const componentsData = sortBy( const componentsData = sortBy(
Object.keys(componentsGroupedByCategory).map(category => ({ Object.keys(componentsGroupedByCategory).map(category => ({
name: category, name: category,
title: category, title: category,
isEditable: true, isEditable: isInDevelopmentMode,
onClickEdit: (e, data) => { onClickEdit: (e, data) => {
e.stopPropagation(); e.stopPropagation();
const search = makeSearch({ const search = makeSearch({
@ -95,16 +94,17 @@ function LeftMenu({ wait }) {
id: `${pluginId}.menu.section.models.name.`, id: `${pluginId}.menu.section.models.name.`,
}, },
searchable: true, searchable: true,
customLink: { customLink: isInDevelopmentMode
Component: CustomLink, ? {
componentProps: { Component: CustomLink,
disabled: isProduction, componentProps: {
id: `${pluginId}.button.model.create`, id: `${pluginId}.button.model.create`,
onClick: () => { onClick: () => {
handleClickOpenModal('contentType'); handleClickOpenModal('contentType');
}, },
}, },
}, }
: null,
links: sortedContentTypesList, links: sortedContentTypesList,
}, },
{ {
@ -113,16 +113,17 @@ function LeftMenu({ wait }) {
id: `${pluginId}.menu.section.components.name.`, id: `${pluginId}.menu.section.components.name.`,
}, },
searchable: true, searchable: true,
customLink: { customLink: isInDevelopmentMode
Component: CustomLink, ? {
componentProps: { Component: CustomLink,
disabled: isProduction, componentProps: {
id: `${pluginId}.button.component.create`, id: `${pluginId}.button.component.create`,
onClick: () => { onClick: () => {
handleClickOpenModal('component'); handleClickOpenModal('component');
}, },
}, },
}, }
: null,
links: componentsData, links: componentsData,
}, },
]; ];

View File

@ -37,6 +37,7 @@ const ListPage = () => {
isInContentTypeView, isInContentTypeView,
// removeAttribute, // removeAttribute,
// removeComponentFromDynamicZone, // removeComponentFromDynamicZone,
isInDevelopmentMode,
submitData, submitData,
toggleModalCancel, toggleModalCancel,
} = useDataManager(); } = useDataManager();
@ -168,26 +169,28 @@ const ListPage = () => {
const label = get(modifiedData, [firstMainDataPath, 'schema', 'name'], ''); const label = get(modifiedData, [firstMainDataPath, 'schema', 'name'], '');
const headerProps = { const headerProps = {
actions: getActions(), actions: isInDevelopmentMode ? getActions() : [],
title: { title: {
label, label,
cta: { cta: isInDevelopmentMode
icon: 'pencil-alt', ? {
onClick: async () => { icon: 'pencil-alt',
await wait(); onClick: async () => {
await wait();
push({ push({
search: makeSearch({ search: makeSearch({
modalType: firstMainDataPath, modalType: firstMainDataPath,
actionType: 'edit', actionType: 'edit',
settingType: 'base', settingType: 'base',
forTarget: firstMainDataPath, forTarget: firstMainDataPath,
targetUid, targetUid,
headerDisplayName: label, headerDisplayName: label,
}), }),
}); });
}, },
}, }
: null,
}, },
content: getDescription(), content: getDescription(),
}; };
@ -210,7 +213,7 @@ const ListPage = () => {
onClick: () => handleClickAddAttributeMainData(), onClick: () => handleClickAddAttributeMainData(),
}; };
const listActions = [{ ...addButtonProps }]; const listActions = isInDevelopmentMode ? [{ ...addButtonProps }] : [];
const convertDataToArray = () => { const convertDataToArray = () => {
return Object.keys(attributes).map((key, index) => { return Object.keys(attributes).map((key, index) => {