@webiny/app-headless-cms-workflows 6.4.11 → 6.4.12-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Components/CmsWorkflows/CmsWorkflowsEditorView.js +2 -2
- package/Components/CmsWorkflows/CmsWorkflowsEditorView.js.map +1 -1
- package/Components/ContentEntryForm/CmsEntryFormPublishButton.js +1 -1
- package/Components/ContentEntryForm/CmsEntryFormPublishButton.js.map +1 -1
- package/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.js +1 -1
- package/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.js.map +1 -1
- package/Components/ContentEntryForm/CmsEntryFormSaveButton.js +1 -1
- package/Components/ContentEntryForm/CmsEntryFormSaveButton.js.map +1 -1
- package/package.json +11 -11
|
@@ -38,7 +38,7 @@ const ModelIcon = ({ model })=>{
|
|
|
38
38
|
};
|
|
39
39
|
const isAllowed = (model)=>{
|
|
40
40
|
if (model.tags.includes("$publishing:false")) return false;
|
|
41
|
-
if (model.tags.includes("singleEntry")) return false;
|
|
41
|
+
else if (model.tags.includes("singleEntry")) return false;
|
|
42
42
|
return true;
|
|
43
43
|
};
|
|
44
44
|
const CmsWorkflowsEditorView = ()=>{
|
|
@@ -73,7 +73,7 @@ const CmsWorkflowsEditorView = ()=>{
|
|
|
73
73
|
apps
|
|
74
74
|
]);
|
|
75
75
|
if (!canCreateContentModels) return null;
|
|
76
|
-
if (loading) return /*#__PURE__*/ react.createElement(Loader, {
|
|
76
|
+
else if (loading) return /*#__PURE__*/ react.createElement(Loader, {
|
|
77
77
|
size: "lg",
|
|
78
78
|
variant: "accent",
|
|
79
79
|
indeterminate: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Components/CmsWorkflows/CmsWorkflowsEditorView.js","sources":["../../../src/Components/CmsWorkflows/CmsWorkflowsEditorView.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { AdminConfig, useRoute, useRouter } from \"@webiny/app-admin\";\nimport { Routes } from \"~/routes.js\";\nimport type { IWorkflowApplication } from \"@webiny/app-workflows\";\nimport { Components } from \"@webiny/app-workflows\";\nimport { Icon, Loader } from \"@webiny/admin-ui\";\nimport { useModels, usePermission } from \"@webiny/app-headless-cms/admin/hooks/index.js\";\nimport type { CmsModel } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { createAppName } from \"~/utils/appName.js\";\nimport { normalizeIcon } from \"@webiny/app-headless-cms/utils/normalizeIcon.js\";\n\nconst {\n Admin: { WorkflowsEditor },\n Permissions: { HasWorkflowsEditorPermission }\n} = Components;\n\nconst { Menu } = AdminConfig;\n\nexport const CmsWorkflowsEditorMenu = () => {\n const router = useRouter();\n const { canCreateContentModels } = usePermission();\n\n if (!canCreateContentModels) {\n return null;\n }\n\n return (\n <HasWorkflowsEditorPermission>\n <Menu\n name={\"headlessCMS.contentModels.workflows\"}\n parent={\"headlessCMS\"}\n element={\n <Menu.Link\n pinnable={true}\n text={\"Workflows\"}\n to={router.getLink(Routes.ContentModels.Workflows)}\n />\n }\n />\n </HasWorkflowsEditorPermission>\n );\n};\n\ninterface IModelIconProps {\n model: Pick<CmsModel, \"icon\" | \"name\">;\n}\n\nconst ModelIcon = ({ model }: IModelIconProps) => {\n if (!model.icon) {\n return null;\n }\n\n const icon = normalizeIcon(model.icon);\n if (!icon) {\n return null;\n }\n\n return (\n <Icon\n icon={<FontAwesomeIcon icon={icon} />}\n label={model.name}\n size={\"sm\"}\n className={\"text-neutral-strong\"}\n />\n );\n};\n\nconst isAllowed = (model: Pick<CmsModel, \"modelId\" | \"tags\">) => {\n // Exclude models that have the \"$publishing:false\" tag\n if (model.tags.includes(\"$publishing:false\")) {\n return false;\n }\n // Exclude single entry models\n else if (model.tags.includes(\"singleEntry\")) {\n return false;\n }\n\n return true;\n};\n\nexport const CmsWorkflowsEditorView = () => {\n const { route } = useRoute(Routes.ContentModels.Workflows);\n const { models, loading } = useModels();\n const { canEdit, canCreateContentModels } = usePermission();\n const { goToRoute } = useRouter();\n\n const apps = useMemo<IWorkflowApplication[]>(() => {\n return models\n .filter(model => {\n if (isAllowed(model) === false) {\n return false;\n }\n return canEdit(model, \"cms.contentModel\");\n })\n .map(model => {\n return {\n id: createAppName(model),\n name: model.name,\n icon: <ModelIcon model={model} />\n };\n });\n }, [models, canEdit]);\n\n const app = useMemo(() => {\n if (!route.params.app) {\n return apps.find(() => true);\n }\n return apps.find(a => a.id === route.params.app) || null;\n }, [route.params.app]);\n\n const onAppClick = useCallback(\n (id: string) => {\n goToRoute(Routes.ContentModels.Workflows, {\n app: id\n });\n },\n [apps]\n );\n\n if (!canCreateContentModels) {\n return null;\n } else if (loading) {\n return <Loader size=\"lg\" variant=\"accent\" indeterminate={true} text=\"Loading...\" />;\n }\n\n return <WorkflowsEditor apps={apps} onAppClick={onAppClick} app={app?.id} />;\n};\n"],"names":["WorkflowsEditor","HasWorkflowsEditorPermission","Components","Menu","AdminConfig","CmsWorkflowsEditorMenu","router","useRouter","canCreateContentModels","usePermission","Routes","ModelIcon","model","icon","normalizeIcon","Icon","FontAwesomeIcon","isAllowed","CmsWorkflowsEditorView","route","useRoute","models","loading","useModels","canEdit","goToRoute","apps","useMemo","createAppName","app","a","onAppClick","useCallback","id","Loader"],"mappings":";;;;;;;;;AAYA,MAAM,EACF,OAAO,EAAEA,iBAAAA,eAAe,EAAE,EAC1B,aAAa,EAAEC,8BAAAA,4BAA4B,EAAE,EAChD,GAAGC;AAEJ,MAAM,EAAEC,MAAAA,IAAI,EAAE,GAAGC;AAEV,MAAMC,yBAAyB;IAClC,MAAMC,SAASC;IACf,MAAM,EAAEC,sBAAsB,EAAE,GAAGC;IAEnC,IAAI,CAACD,wBACD,OAAO;IAGX,OAAO,WAAP,GACI,oBAACP,8BAA4BA,MAAAA,WAAAA,GACzB,oBAACE,MAAIA;QACD,MAAM;QACN,QAAQ;QACR,uBACI,oBAACA,KAAK,IAAI;YACN,UAAU;YACV,MAAM;YACN,IAAIG,OAAO,OAAO,CAACI,OAAO,aAAa,CAAC,SAAS;;;AAMzE;AAMA,MAAMC,YAAY,CAAC,EAAEC,KAAK,EAAmB;IACzC,IAAI,CAACA,MAAM,IAAI,EACX,OAAO;IAGX,MAAMC,OAAOC,cAAcF,MAAM,IAAI;IACrC,IAAI,CAACC,MACD,OAAO;IAGX,OAAO,WAAP,GACI,oBAACE,MAAIA;QACD,oBAAM,oBAACC,iBAAeA;YAAC,MAAMH;;QAC7B,OAAOD,MAAM,IAAI;QACjB,MAAM;QACN,WAAW;;AAGvB;AAEA,MAAMK,YAAY,CAACL;IAEf,IAAIA,MAAM,IAAI,CAAC,QAAQ,CAAC,sBACpB,OAAO;
|
|
1
|
+
{"version":3,"file":"Components/CmsWorkflows/CmsWorkflowsEditorView.js","sources":["../../../src/Components/CmsWorkflows/CmsWorkflowsEditorView.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { AdminConfig, useRoute, useRouter } from \"@webiny/app-admin\";\nimport { Routes } from \"~/routes.js\";\nimport type { IWorkflowApplication } from \"@webiny/app-workflows\";\nimport { Components } from \"@webiny/app-workflows\";\nimport { Icon, Loader } from \"@webiny/admin-ui\";\nimport { useModels, usePermission } from \"@webiny/app-headless-cms/admin/hooks/index.js\";\nimport type { CmsModel } from \"@webiny/app-headless-cms-common/types/index.js\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { createAppName } from \"~/utils/appName.js\";\nimport { normalizeIcon } from \"@webiny/app-headless-cms/utils/normalizeIcon.js\";\n\nconst {\n Admin: { WorkflowsEditor },\n Permissions: { HasWorkflowsEditorPermission }\n} = Components;\n\nconst { Menu } = AdminConfig;\n\nexport const CmsWorkflowsEditorMenu = () => {\n const router = useRouter();\n const { canCreateContentModels } = usePermission();\n\n if (!canCreateContentModels) {\n return null;\n }\n\n return (\n <HasWorkflowsEditorPermission>\n <Menu\n name={\"headlessCMS.contentModels.workflows\"}\n parent={\"headlessCMS\"}\n element={\n <Menu.Link\n pinnable={true}\n text={\"Workflows\"}\n to={router.getLink(Routes.ContentModels.Workflows)}\n />\n }\n />\n </HasWorkflowsEditorPermission>\n );\n};\n\ninterface IModelIconProps {\n model: Pick<CmsModel, \"icon\" | \"name\">;\n}\n\nconst ModelIcon = ({ model }: IModelIconProps) => {\n if (!model.icon) {\n return null;\n }\n\n const icon = normalizeIcon(model.icon);\n if (!icon) {\n return null;\n }\n\n return (\n <Icon\n icon={<FontAwesomeIcon icon={icon} />}\n label={model.name}\n size={\"sm\"}\n className={\"text-neutral-strong\"}\n />\n );\n};\n\nconst isAllowed = (model: Pick<CmsModel, \"modelId\" | \"tags\">) => {\n // Exclude models that have the \"$publishing:false\" tag\n if (model.tags.includes(\"$publishing:false\")) {\n return false;\n }\n // Exclude single entry models\n else if (model.tags.includes(\"singleEntry\")) {\n return false;\n }\n\n return true;\n};\n\nexport const CmsWorkflowsEditorView = () => {\n const { route } = useRoute(Routes.ContentModels.Workflows);\n const { models, loading } = useModels();\n const { canEdit, canCreateContentModels } = usePermission();\n const { goToRoute } = useRouter();\n\n const apps = useMemo<IWorkflowApplication[]>(() => {\n return models\n .filter(model => {\n if (isAllowed(model) === false) {\n return false;\n }\n return canEdit(model, \"cms.contentModel\");\n })\n .map(model => {\n return {\n id: createAppName(model),\n name: model.name,\n icon: <ModelIcon model={model} />\n };\n });\n }, [models, canEdit]);\n\n const app = useMemo(() => {\n if (!route.params.app) {\n return apps.find(() => true);\n }\n return apps.find(a => a.id === route.params.app) || null;\n }, [route.params.app]);\n\n const onAppClick = useCallback(\n (id: string) => {\n goToRoute(Routes.ContentModels.Workflows, {\n app: id\n });\n },\n [apps]\n );\n\n if (!canCreateContentModels) {\n return null;\n } else if (loading) {\n return <Loader size=\"lg\" variant=\"accent\" indeterminate={true} text=\"Loading...\" />;\n }\n\n return <WorkflowsEditor apps={apps} onAppClick={onAppClick} app={app?.id} />;\n};\n"],"names":["WorkflowsEditor","HasWorkflowsEditorPermission","Components","Menu","AdminConfig","CmsWorkflowsEditorMenu","router","useRouter","canCreateContentModels","usePermission","Routes","ModelIcon","model","icon","normalizeIcon","Icon","FontAwesomeIcon","isAllowed","CmsWorkflowsEditorView","route","useRoute","models","loading","useModels","canEdit","goToRoute","apps","useMemo","createAppName","app","a","onAppClick","useCallback","id","Loader"],"mappings":";;;;;;;;;AAYA,MAAM,EACF,OAAO,EAAEA,iBAAAA,eAAe,EAAE,EAC1B,aAAa,EAAEC,8BAAAA,4BAA4B,EAAE,EAChD,GAAGC;AAEJ,MAAM,EAAEC,MAAAA,IAAI,EAAE,GAAGC;AAEV,MAAMC,yBAAyB;IAClC,MAAMC,SAASC;IACf,MAAM,EAAEC,sBAAsB,EAAE,GAAGC;IAEnC,IAAI,CAACD,wBACD,OAAO;IAGX,OAAO,WAAP,GACI,oBAACP,8BAA4BA,MAAAA,WAAAA,GACzB,oBAACE,MAAIA;QACD,MAAM;QACN,QAAQ;QACR,uBACI,oBAACA,KAAK,IAAI;YACN,UAAU;YACV,MAAM;YACN,IAAIG,OAAO,OAAO,CAACI,OAAO,aAAa,CAAC,SAAS;;;AAMzE;AAMA,MAAMC,YAAY,CAAC,EAAEC,KAAK,EAAmB;IACzC,IAAI,CAACA,MAAM,IAAI,EACX,OAAO;IAGX,MAAMC,OAAOC,cAAcF,MAAM,IAAI;IACrC,IAAI,CAACC,MACD,OAAO;IAGX,OAAO,WAAP,GACI,oBAACE,MAAIA;QACD,oBAAM,oBAACC,iBAAeA;YAAC,MAAMH;;QAC7B,OAAOD,MAAM,IAAI;QACjB,MAAM;QACN,WAAW;;AAGvB;AAEA,MAAMK,YAAY,CAACL;IAEf,IAAIA,MAAM,IAAI,CAAC,QAAQ,CAAC,sBACpB,OAAO;SAGN,IAAIA,MAAM,IAAI,CAAC,QAAQ,CAAC,gBACzB,OAAO;IAGX,OAAO;AACX;AAEO,MAAMM,yBAAyB;IAClC,MAAM,EAAEC,KAAK,EAAE,GAAGC,SAASV,OAAO,aAAa,CAAC,SAAS;IACzD,MAAM,EAAEW,MAAM,EAAEC,OAAO,EAAE,GAAGC;IAC5B,MAAM,EAAEC,OAAO,EAAEhB,sBAAsB,EAAE,GAAGC;IAC5C,MAAM,EAAEgB,SAAS,EAAE,GAAGlB;IAEtB,MAAMmB,OAAOC,QAAgC,IAClCN,OACF,MAAM,CAACT,CAAAA;YACJ,IAAIK,AAAqB,UAArBA,UAAUL,QACV,OAAO;YAEX,OAAOY,QAAQZ,OAAO;QAC1B,GACC,GAAG,CAACA,CAAAA,QACM;gBACH,IAAIgB,cAAchB;gBAClB,MAAMA,MAAM,IAAI;gBAChB,MAAM,WAAN,GAAM,oBAACD,WAASA;oBAAC,OAAOC;;YAC5B,KAET;QAACS;QAAQG;KAAQ;IAEpB,MAAMK,MAAMF,QAAQ;QAChB,IAAI,CAACR,MAAM,MAAM,CAAC,GAAG,EACjB,OAAOO,KAAK,IAAI,CAAC,IAAM;QAE3B,OAAOA,KAAK,IAAI,CAACI,CAAAA,IAAKA,EAAE,EAAE,KAAKX,MAAM,MAAM,CAAC,GAAG,KAAK;IACxD,GAAG;QAACA,MAAM,MAAM,CAAC,GAAG;KAAC;IAErB,MAAMY,aAAaC,YACf,CAACC;QACGR,UAAUf,OAAO,aAAa,CAAC,SAAS,EAAE;YACtC,KAAKuB;QACT;IACJ,GACA;QAACP;KAAK;IAGV,IAAI,CAAClB,wBACD,OAAO;SACJ,IAAIc,SACP,OAAO,WAAP,GAAO,oBAACY,QAAMA;QAAC,MAAK;QAAK,SAAQ;QAAS,eAAe;QAAM,MAAK;;IAGxE,OAAO,WAAP,GAAO,oBAAClC,iBAAeA;QAAC,MAAM0B;QAAM,YAAYK;QAAY,KAAKF,KAAK;;AAC1E"}
|
|
@@ -14,7 +14,7 @@ const CmsEntryFormPublishButton = ()=>{
|
|
|
14
14
|
]);
|
|
15
15
|
const { canEdit, canPublish } = usePermission();
|
|
16
16
|
if ("published" === entry.meta.status) return null;
|
|
17
|
-
if (!canEdit(entry, "cms.contentEntry") || !canPublish("cms.contentEntry")) return null;
|
|
17
|
+
else if (!canEdit(entry, "cms.contentEntry") || !canPublish("cms.contentEntry")) return null;
|
|
18
18
|
return /*#__PURE__*/ react.createElement(ButtonPrimary, {
|
|
19
19
|
onAction: publish,
|
|
20
20
|
disabled: loading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Components/ContentEntryForm/CmsEntryFormPublishButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormPublishButton.tsx"],"sourcesContent":["import { useContentEntry, usePermission } from \"@webiny/app-headless-cms\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms/admin/config/contentEntries/index.js\";\nimport React, { useCallback } from \"react\";\n\nexport const CmsEntryFormPublishButton = () => {\n const { loading, entry, publishEntryRevision } = useContentEntry();\n const { ButtonPrimary } = ContentEntryEditorConfig.Actions.ButtonAction.useButtons();\n\n const publish = useCallback(() => {\n if (!entry.id) {\n console.warn(`You cannot publish an entry that hasn't been saved yet.`);\n return;\n }\n publishEntryRevision({ id: entry.id });\n }, [entry.id]);\n\n const { canEdit, canPublish } = usePermission();\n\n if (entry.meta.status === \"published\") {\n return null;\n } else if (!canEdit(entry, \"cms.contentEntry\") || !canPublish(\"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <ButtonPrimary\n onAction={publish}\n disabled={loading}\n data-testid=\"workflows-cms-content-publish-content-button\"\n >\n {\"Publish\"}\n </ButtonPrimary>\n );\n};\n"],"names":["CmsEntryFormPublishButton","loading","entry","publishEntryRevision","useContentEntry","ButtonPrimary","ContentEntryEditorConfig","publish","useCallback","console","canEdit","canPublish","usePermission"],"mappings":";;;AAIO,MAAMA,4BAA4B;IACrC,MAAM,EAAEC,OAAO,EAAEC,KAAK,EAAEC,oBAAoB,EAAE,GAAGC;IACjD,MAAM,EAAEC,aAAa,EAAE,GAAGC,yBAAyB,OAAO,CAAC,YAAY,CAAC,UAAU;IAElF,MAAMC,UAAUC,YAAY;QACxB,IAAI,CAACN,MAAM,EAAE,EAAE,YACXO,QAAQ,IAAI,CAAC;QAGjBN,qBAAqB;YAAE,IAAID,MAAM,EAAE;QAAC;IACxC,GAAG;QAACA,MAAM,EAAE;KAAC;IAEb,MAAM,EAAEQ,OAAO,EAAEC,UAAU,EAAE,GAAGC;IAEhC,IAAIV,AAAsB,gBAAtBA,MAAM,IAAI,CAAC,MAAM,EACjB,OAAO;
|
|
1
|
+
{"version":3,"file":"Components/ContentEntryForm/CmsEntryFormPublishButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormPublishButton.tsx"],"sourcesContent":["import { useContentEntry, usePermission } from \"@webiny/app-headless-cms\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms/admin/config/contentEntries/index.js\";\nimport React, { useCallback } from \"react\";\n\nexport const CmsEntryFormPublishButton = () => {\n const { loading, entry, publishEntryRevision } = useContentEntry();\n const { ButtonPrimary } = ContentEntryEditorConfig.Actions.ButtonAction.useButtons();\n\n const publish = useCallback(() => {\n if (!entry.id) {\n console.warn(`You cannot publish an entry that hasn't been saved yet.`);\n return;\n }\n publishEntryRevision({ id: entry.id });\n }, [entry.id]);\n\n const { canEdit, canPublish } = usePermission();\n\n if (entry.meta.status === \"published\") {\n return null;\n } else if (!canEdit(entry, \"cms.contentEntry\") || !canPublish(\"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <ButtonPrimary\n onAction={publish}\n disabled={loading}\n data-testid=\"workflows-cms-content-publish-content-button\"\n >\n {\"Publish\"}\n </ButtonPrimary>\n );\n};\n"],"names":["CmsEntryFormPublishButton","loading","entry","publishEntryRevision","useContentEntry","ButtonPrimary","ContentEntryEditorConfig","publish","useCallback","console","canEdit","canPublish","usePermission"],"mappings":";;;AAIO,MAAMA,4BAA4B;IACrC,MAAM,EAAEC,OAAO,EAAEC,KAAK,EAAEC,oBAAoB,EAAE,GAAGC;IACjD,MAAM,EAAEC,aAAa,EAAE,GAAGC,yBAAyB,OAAO,CAAC,YAAY,CAAC,UAAU;IAElF,MAAMC,UAAUC,YAAY;QACxB,IAAI,CAACN,MAAM,EAAE,EAAE,YACXO,QAAQ,IAAI,CAAC;QAGjBN,qBAAqB;YAAE,IAAID,MAAM,EAAE;QAAC;IACxC,GAAG;QAACA,MAAM,EAAE;KAAC;IAEb,MAAM,EAAEQ,OAAO,EAAEC,UAAU,EAAE,GAAGC;IAEhC,IAAIV,AAAsB,gBAAtBA,MAAM,IAAI,CAAC,MAAM,EACjB,OAAO;SACJ,IAAI,CAACQ,QAAQR,OAAO,uBAAuB,CAACS,WAAW,qBAC1D,OAAO;IAGX,OAAO,WAAP,GACI,oBAACN,eAAAA;QACG,UAAUE;QACV,UAAUN;QACV,eAAY;OAEX;AAGb"}
|
|
@@ -8,7 +8,7 @@ const { ButtonAction: ButtonAction } = Actions;
|
|
|
8
8
|
const OverrideSaveAndPublishButton = observer((props)=>{
|
|
9
9
|
const { presenter } = useWorkflowState();
|
|
10
10
|
if ("publish" !== props.name || !presenter.vm.workflow) return props.children;
|
|
11
|
-
if (presenter.vm.state?.state === WorkflowStateValue.approved) return /*#__PURE__*/ react.createElement(CmsEntryFormPublishButton, null);
|
|
11
|
+
else if (presenter.vm.state?.state === WorkflowStateValue.approved) return /*#__PURE__*/ react.createElement(CmsEntryFormPublishButton, null);
|
|
12
12
|
return null;
|
|
13
13
|
});
|
|
14
14
|
const CmsEntryFormSaveAndPublishButton = ButtonAction.createDecorator((Original)=>function(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { observer } from \"mobx-react-lite\";\nimport { WorkflowStateValue } from \"@webiny/app-workflows\";\nimport { CmsEntryFormPublishButton } from \"./CmsEntryFormPublishButton.js\";\n\nconst { Actions } = ContentEntryEditorConfig;\nconst { ButtonAction } = Actions;\n\ninterface IOverrideSaveAndPublishButtonProps {\n name: string;\n children: React.ReactElement;\n}\n\nconst OverrideSaveAndPublishButton = observer((props: IOverrideSaveAndPublishButtonProps) => {\n const { presenter } = useWorkflowState();\n\n /**\n * If there is no workflow state or state is approved, we simply render the original element.\n * This is to ensure that no button will be shown if workflow state is active.\n */\n if (props.name !== \"publish\" || !presenter.vm.workflow) {\n return props.children;\n } else if (presenter.vm.state?.state === WorkflowStateValue.approved) {\n return <CmsEntryFormPublishButton />;\n }\n return null;\n});\n\nexport const CmsEntryFormSaveAndPublishButton = ButtonAction.createDecorator(Original => {\n return function WorkflowCmsEntryFormSaveAndPublishButton(props) {\n return (\n <Original\n {...props}\n element={\n <OverrideSaveAndPublishButton name={props.name}>\n {props.element}\n </OverrideSaveAndPublishButton>\n }\n />\n );\n };\n});\n"],"names":["Actions","ContentEntryEditorConfig","ButtonAction","OverrideSaveAndPublishButton","observer","props","presenter","useWorkflowState","WorkflowStateValue","CmsEntryFormPublishButton","CmsEntryFormSaveAndPublishButton","Original"],"mappings":";;;;;AAOA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAM,EAAEC,cAAAA,YAAY,EAAE,GAAGF;AAOzB,MAAMG,+BAA+BC,SAAS,CAACC;IAC3C,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAMtB,IAAIF,AAAe,cAAfA,MAAM,IAAI,IAAkB,CAACC,UAAU,EAAE,CAAC,QAAQ,EAClD,OAAOD,MAAM,QAAQ;
|
|
1
|
+
{"version":3,"file":"Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { observer } from \"mobx-react-lite\";\nimport { WorkflowStateValue } from \"@webiny/app-workflows\";\nimport { CmsEntryFormPublishButton } from \"./CmsEntryFormPublishButton.js\";\n\nconst { Actions } = ContentEntryEditorConfig;\nconst { ButtonAction } = Actions;\n\ninterface IOverrideSaveAndPublishButtonProps {\n name: string;\n children: React.ReactElement;\n}\n\nconst OverrideSaveAndPublishButton = observer((props: IOverrideSaveAndPublishButtonProps) => {\n const { presenter } = useWorkflowState();\n\n /**\n * If there is no workflow state or state is approved, we simply render the original element.\n * This is to ensure that no button will be shown if workflow state is active.\n */\n if (props.name !== \"publish\" || !presenter.vm.workflow) {\n return props.children;\n } else if (presenter.vm.state?.state === WorkflowStateValue.approved) {\n return <CmsEntryFormPublishButton />;\n }\n return null;\n});\n\nexport const CmsEntryFormSaveAndPublishButton = ButtonAction.createDecorator(Original => {\n return function WorkflowCmsEntryFormSaveAndPublishButton(props) {\n return (\n <Original\n {...props}\n element={\n <OverrideSaveAndPublishButton name={props.name}>\n {props.element}\n </OverrideSaveAndPublishButton>\n }\n />\n );\n };\n});\n"],"names":["Actions","ContentEntryEditorConfig","ButtonAction","OverrideSaveAndPublishButton","observer","props","presenter","useWorkflowState","WorkflowStateValue","CmsEntryFormPublishButton","CmsEntryFormSaveAndPublishButton","Original"],"mappings":";;;;;AAOA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAM,EAAEC,cAAAA,YAAY,EAAE,GAAGF;AAOzB,MAAMG,+BAA+BC,SAAS,CAACC;IAC3C,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAMtB,IAAIF,AAAe,cAAfA,MAAM,IAAI,IAAkB,CAACC,UAAU,EAAE,CAAC,QAAQ,EAClD,OAAOD,MAAM,QAAQ;SAClB,IAAIC,UAAU,EAAE,CAAC,KAAK,EAAE,UAAUE,mBAAmB,QAAQ,EAChE,OAAO,WAAP,GAAO,oBAACC,2BAAyBA;IAErC,OAAO;AACX;AAEO,MAAMC,mCAAmCR,aAAa,eAAe,CAACS,CAAAA,WAClE,SAAkDN,KAAK;QAC1D,OAAO,WAAP,GACI,oBAACM,UAAAA;YACI,GAAGN,KAAK;YACT,uBACI,oBAACF,8BAA4BA;gBAAC,MAAME,MAAM,IAAI;eACzCA,MAAM,OAAO;;IAKlC"}
|
|
@@ -7,7 +7,7 @@ const { ButtonAction: ButtonAction } = Actions;
|
|
|
7
7
|
const OverrideSaveButton = observer((props)=>{
|
|
8
8
|
const { presenter } = useWorkflowState();
|
|
9
9
|
if ("save" !== props.name) return props.children;
|
|
10
|
-
if (!presenter.vm.state) return props.children;
|
|
10
|
+
else if (!presenter.vm.state) return props.children;
|
|
11
11
|
return null;
|
|
12
12
|
});
|
|
13
13
|
const CmsEntryFormSaveButton = ButtonAction.createDecorator((Original)=>function(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Components/ContentEntryForm/CmsEntryFormSaveButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormSaveButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { observer } from \"mobx-react-lite\";\n\nconst { Actions } = ContentEntryEditorConfig;\nconst { ButtonAction } = Actions;\n\ninterface IOverrideSaveButtonProps {\n name: string;\n children: React.ReactElement;\n}\n\nconst OverrideSaveButton = observer((props: IOverrideSaveButtonProps) => {\n const { presenter } = useWorkflowState();\n\n /**\n * If there is no workflow state or state is approved, we simply render the original element.\n * This is to ensure that no button will be shown if workflow state is active.\n */\n if (props.name !== \"save\") {\n return props.children;\n } else if (!presenter.vm.state) {\n return props.children;\n }\n return null;\n});\n\nexport const CmsEntryFormSaveButton = ButtonAction.createDecorator(Original => {\n return function WorkflowCmsEntryFormSaveButton(props) {\n return (\n <Original\n {...props}\n element={<OverrideSaveButton name={props.name}>{props.element}</OverrideSaveButton>}\n />\n );\n };\n});\n"],"names":["Actions","ContentEntryEditorConfig","ButtonAction","OverrideSaveButton","observer","props","presenter","useWorkflowState","CmsEntryFormSaveButton","Original"],"mappings":";;;;AAKA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAM,EAAEC,cAAAA,YAAY,EAAE,GAAGF;AAOzB,MAAMG,qBAAqBC,SAAS,CAACC;IACjC,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAMtB,IAAIF,AAAe,WAAfA,MAAM,IAAI,EACV,OAAOA,MAAM,QAAQ;
|
|
1
|
+
{"version":3,"file":"Components/ContentEntryForm/CmsEntryFormSaveButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormSaveButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { observer } from \"mobx-react-lite\";\n\nconst { Actions } = ContentEntryEditorConfig;\nconst { ButtonAction } = Actions;\n\ninterface IOverrideSaveButtonProps {\n name: string;\n children: React.ReactElement;\n}\n\nconst OverrideSaveButton = observer((props: IOverrideSaveButtonProps) => {\n const { presenter } = useWorkflowState();\n\n /**\n * If there is no workflow state or state is approved, we simply render the original element.\n * This is to ensure that no button will be shown if workflow state is active.\n */\n if (props.name !== \"save\") {\n return props.children;\n } else if (!presenter.vm.state) {\n return props.children;\n }\n return null;\n});\n\nexport const CmsEntryFormSaveButton = ButtonAction.createDecorator(Original => {\n return function WorkflowCmsEntryFormSaveButton(props) {\n return (\n <Original\n {...props}\n element={<OverrideSaveButton name={props.name}>{props.element}</OverrideSaveButton>}\n />\n );\n };\n});\n"],"names":["Actions","ContentEntryEditorConfig","ButtonAction","OverrideSaveButton","observer","props","presenter","useWorkflowState","CmsEntryFormSaveButton","Original"],"mappings":";;;;AAKA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAM,EAAEC,cAAAA,YAAY,EAAE,GAAGF;AAOzB,MAAMG,qBAAqBC,SAAS,CAACC;IACjC,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAMtB,IAAIF,AAAe,WAAfA,MAAM,IAAI,EACV,OAAOA,MAAM,QAAQ;SAClB,IAAI,CAACC,UAAU,EAAE,CAAC,KAAK,EAC1B,OAAOD,MAAM,QAAQ;IAEzB,OAAO;AACX;AAEO,MAAMG,yBAAyBN,aAAa,eAAe,CAACO,CAAAA,WACxD,SAAwCJ,KAAK;QAChD,OAAO,WAAP,GACI,oBAACI,UAAAA;YACI,GAAGJ,KAAK;YACT,uBAAS,oBAACF,oBAAkBA;gBAAC,MAAME,MAAM,IAAI;eAAGA,MAAM,OAAO;;IAGzE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-headless-cms-workflows",
|
|
3
|
-
"version": "6.4.
|
|
3
|
+
"version": "6.4.12-beta.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./index.js",
|
|
@@ -14,22 +14,22 @@
|
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@apollo/react-hooks": "3.1.5",
|
|
17
|
-
"@fortawesome/react-fontawesome": "3.
|
|
18
|
-
"@webiny/admin-ui": "6.4.
|
|
19
|
-
"@webiny/app": "6.4.
|
|
20
|
-
"@webiny/app-admin": "6.4.
|
|
21
|
-
"@webiny/app-headless-cms": "6.4.
|
|
22
|
-
"@webiny/app-headless-cms-common": "6.4.
|
|
23
|
-
"@webiny/app-workflows": "6.4.
|
|
24
|
-
"@webiny/icons": "6.4.
|
|
25
|
-
"mobx-react-lite": "
|
|
17
|
+
"@fortawesome/react-fontawesome": "3.5.0",
|
|
18
|
+
"@webiny/admin-ui": "6.4.12-beta.1",
|
|
19
|
+
"@webiny/app": "6.4.12-beta.1",
|
|
20
|
+
"@webiny/app-admin": "6.4.12-beta.1",
|
|
21
|
+
"@webiny/app-headless-cms": "6.4.12-beta.1",
|
|
22
|
+
"@webiny/app-headless-cms-common": "6.4.12-beta.1",
|
|
23
|
+
"@webiny/app-workflows": "6.4.12-beta.1",
|
|
24
|
+
"@webiny/icons": "6.4.12-beta.1",
|
|
25
|
+
"mobx-react-lite": "5.0.3",
|
|
26
26
|
"react": "18.3.1",
|
|
27
27
|
"react-dom": "18.3.1",
|
|
28
28
|
"react-helmet": "6.1.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/react": "18.3.31",
|
|
32
|
-
"@webiny/build-tools": "6.4.
|
|
32
|
+
"@webiny/build-tools": "6.4.12-beta.1",
|
|
33
33
|
"rimraf": "6.1.3",
|
|
34
34
|
"typescript": "6.0.3"
|
|
35
35
|
},
|