@webiny/app-headless-cms-scheduler 6.3.0 → 6.4.0-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.
@@ -1,15 +1,12 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { IsModelPublishable } from "@webiny/app-headless-cms/exports/admin/cms.js";
3
3
  import { ContentEntryListConfig } from "@webiny/app-headless-cms/admin/config/contentEntries/index.js";
4
4
  import { MenuItem } from "./MenuItem.js";
5
- const {
6
- Browser
7
- } = ContentEntryListConfig;
8
- export const BrowserConfig = () => {
9
- return /*#__PURE__*/React.createElement(ContentEntryListConfig, null, /*#__PURE__*/React.createElement(IsModelPublishable, null, /*#__PURE__*/React.createElement(Browser.Entry.Action, {
10
- name: "schedule",
11
- element: /*#__PURE__*/React.createElement(MenuItem, null)
12
- })));
13
- };
5
+ const { Browser: Browser } = ContentEntryListConfig;
6
+ const BrowserConfig = ()=>/*#__PURE__*/ react.createElement(ContentEntryListConfig, null, /*#__PURE__*/ react.createElement(IsModelPublishable, null, /*#__PURE__*/ react.createElement(Browser.Entry.Action, {
7
+ name: "schedule",
8
+ element: /*#__PURE__*/ react.createElement(MenuItem, null)
9
+ })));
10
+ export { BrowserConfig };
14
11
 
15
12
  //# sourceMappingURL=BrowserConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","IsModelPublishable","ContentEntryListConfig","MenuItem","Browser","BrowserConfig","createElement","Entry","Action","name","element"],"sources":["BrowserConfig.tsx"],"sourcesContent":["import React from \"react\";\nimport { IsModelPublishable } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms/admin/config/contentEntries/index.js\";\nimport { MenuItem } from \"./MenuItem.js\";\n\nconst { Browser } = ContentEntryListConfig;\n\nexport const BrowserConfig = () => {\n return (\n <ContentEntryListConfig>\n <IsModelPublishable>\n <Browser.Entry.Action name={\"schedule\"} element={<MenuItem />} />\n </IsModelPublishable>\n </ContentEntryListConfig>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,kBAAkB,QAAQ,+CAA+C;AAClF,SAASC,sBAAsB,QAAQ,+DAA+D;AACtG,SAASC,QAAQ;AAEjB,MAAM;EAAEC;AAAQ,CAAC,GAAGF,sBAAsB;AAE1C,OAAO,MAAMG,aAAa,GAAGA,CAAA,KAAM;EAC/B,oBACIL,KAAA,CAAAM,aAAA,CAACJ,sBAAsB,qBACnBF,KAAA,CAAAM,aAAA,CAACL,kBAAkB,qBACfD,KAAA,CAAAM,aAAA,CAACF,OAAO,CAACG,KAAK,CAACC,MAAM;IAACC,IAAI,EAAE,UAAW;IAACC,OAAO,eAAEV,KAAA,CAAAM,aAAA,CAACH,QAAQ,MAAE;EAAE,CAAE,CAChD,CACA,CAAC;AAEjC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"components/Browser/BrowserConfig.js","sources":["../../../src/components/Browser/BrowserConfig.tsx"],"sourcesContent":["import React from \"react\";\nimport { IsModelPublishable } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { ContentEntryListConfig } from \"@webiny/app-headless-cms/admin/config/contentEntries/index.js\";\nimport { MenuItem } from \"./MenuItem.js\";\n\nconst { Browser } = ContentEntryListConfig;\n\nexport const BrowserConfig = () => {\n return (\n <ContentEntryListConfig>\n <IsModelPublishable>\n <Browser.Entry.Action name={\"schedule\"} element={<MenuItem />} />\n </IsModelPublishable>\n </ContentEntryListConfig>\n );\n};\n"],"names":["Browser","ContentEntryListConfig","BrowserConfig","IsModelPublishable","MenuItem"],"mappings":";;;;AAKA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AAEb,MAAMC,gBAAgB,IAClB,WAAP,GACI,oBAACD,wBAAsBA,MAAAA,WAAAA,GACnB,oBAACE,oBAAkBA,MAAAA,WAAAA,GACf,oBAACH,QAAQ,KAAK,CAAC,MAAM;QAAC,MAAM;QAAY,uBAAS,oBAACI,UAAQA"}
@@ -1,53 +1,43 @@
1
- import React, { useCallback } from "react";
2
- import { ReactComponent as ScheduleIcon } from "@webiny/icons/cell_tower.svg";
1
+ import react, { useCallback } from "react";
2
+ import { ReactComponent } from "@webiny/icons/cell_tower.svg";
3
3
  import { useApolloClient } from "@apollo/react-hooks";
4
4
  import { useScheduleDialog } from "@webiny/app-scheduler";
5
5
  import { usePermissions } from "../../hooks/usePermissions.js";
6
6
  import { createNamespace } from "../../utils/index.js";
7
7
  import { ContentEntryListConfig, useContentEntriesList } from "@webiny/app-headless-cms/exports/admin/cms/entry/list.js";
8
8
  import { useEntry } from "@webiny/app-headless-cms";
9
- export const MenuItem = () => {
10
- const {
11
- modelId
12
- } = useContentEntriesList();
13
- const {
14
- entry
15
- } = useEntry();
16
- const {
17
- canPublish,
18
- canUnpublish
19
- } = usePermissions();
20
- const client = useApolloClient();
21
- const {
22
- showDialog: showSchedulerDialog
23
- } = useScheduleDialog({
24
- client,
25
- namespace: createNamespace({
26
- modelId
27
- }),
28
- target: {
29
- id: entry.id,
30
- title: entry.meta.title,
31
- status: entry.meta.status
32
- }
33
- });
34
- const {
35
- OptionsMenuItem
36
- } = ContentEntryListConfig.Browser.Entry.Action;
37
- const showDialog = useCallback(() => {
38
- showSchedulerDialog();
39
- }, [showSchedulerDialog]);
40
- if (!canPublish && !canUnpublish) {
41
- return null;
42
- }
43
- const action = entry.meta?.status === "published" ? "unpublish" : "publish";
44
- return /*#__PURE__*/React.createElement(OptionsMenuItem, {
45
- icon: /*#__PURE__*/React.createElement(ScheduleIcon, null),
46
- label: `Schedule ${action}`,
47
- onAction: showDialog,
48
- disabled: !entry?.meta?.status,
49
- "data-testid": "cms.content-form.header.schedule"
50
- });
9
+ const MenuItem = ()=>{
10
+ const { modelId } = useContentEntriesList();
11
+ const { entry } = useEntry();
12
+ const { canPublish, canUnpublish } = usePermissions();
13
+ const client = useApolloClient();
14
+ const { showDialog: showSchedulerDialog } = useScheduleDialog({
15
+ client,
16
+ namespace: createNamespace({
17
+ modelId
18
+ }),
19
+ target: {
20
+ id: entry.id,
21
+ title: entry.meta.title,
22
+ status: entry.meta.status
23
+ }
24
+ });
25
+ const { OptionsMenuItem } = ContentEntryListConfig.Browser.Entry.Action;
26
+ const showDialog = useCallback(()=>{
27
+ showSchedulerDialog();
28
+ }, [
29
+ showSchedulerDialog
30
+ ]);
31
+ if (!canPublish && !canUnpublish) return null;
32
+ const action = entry.meta?.status === "published" ? "unpublish" : "publish";
33
+ return /*#__PURE__*/ react.createElement(OptionsMenuItem, {
34
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
35
+ label: `Schedule ${action}`,
36
+ onAction: showDialog,
37
+ disabled: !entry?.meta?.status,
38
+ "data-testid": "cms.content-form.header.schedule"
39
+ });
51
40
  };
41
+ export { MenuItem };
52
42
 
53
43
  //# sourceMappingURL=MenuItem.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","ReactComponent","ScheduleIcon","useApolloClient","useScheduleDialog","usePermissions","createNamespace","ContentEntryListConfig","useContentEntriesList","useEntry","MenuItem","modelId","entry","canPublish","canUnpublish","client","showDialog","showSchedulerDialog","namespace","target","id","title","meta","status","OptionsMenuItem","Browser","Entry","Action","action","createElement","icon","label","onAction","disabled"],"sources":["MenuItem.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { ReactComponent as ScheduleIcon } from \"@webiny/icons/cell_tower.svg\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { useScheduleDialog } from \"@webiny/app-scheduler\";\nimport { usePermissions } from \"~/hooks/usePermissions.js\";\nimport { createNamespace } from \"~/utils/index.js\";\nimport {\n ContentEntryListConfig,\n useContentEntriesList\n} from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { useEntry } from \"@webiny/app-headless-cms\";\n\nexport const MenuItem = () => {\n const { modelId } = useContentEntriesList();\n const { entry } = useEntry();\n\n const { canPublish, canUnpublish } = usePermissions();\n const client = useApolloClient();\n\n const { showDialog: showSchedulerDialog } = useScheduleDialog({\n client,\n namespace: createNamespace({\n modelId\n }),\n target: {\n id: entry.id,\n title: entry.meta.title,\n status: entry.meta.status\n }\n });\n\n const { OptionsMenuItem } = ContentEntryListConfig.Browser.Entry.Action;\n\n const showDialog = useCallback(() => {\n showSchedulerDialog();\n }, [showSchedulerDialog]);\n\n if (!canPublish && !canUnpublish) {\n return null;\n }\n\n const action = entry.meta?.status === \"published\" ? \"unpublish\" : \"publish\";\n\n return (\n <OptionsMenuItem\n icon={<ScheduleIcon />}\n label={`Schedule ${action}`}\n onAction={showDialog}\n disabled={!entry?.meta?.status}\n data-testid={\"cms.content-form.header.schedule\"}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SAASC,cAAc,IAAIC,YAAY,QAAQ,8BAA8B;AAC7E,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,cAAc;AACvB,SAASC,eAAe;AACxB,SACIC,sBAAsB,EACtBC,qBAAqB,QAClB,0DAA0D;AACjE,SAASC,QAAQ,QAAQ,0BAA0B;AAEnD,OAAO,MAAMC,QAAQ,GAAGA,CAAA,KAAM;EAC1B,MAAM;IAAEC;EAAQ,CAAC,GAAGH,qBAAqB,CAAC,CAAC;EAC3C,MAAM;IAAEI;EAAM,CAAC,GAAGH,QAAQ,CAAC,CAAC;EAE5B,MAAM;IAAEI,UAAU;IAAEC;EAAa,CAAC,GAAGT,cAAc,CAAC,CAAC;EACrD,MAAMU,MAAM,GAAGZ,eAAe,CAAC,CAAC;EAEhC,MAAM;IAAEa,UAAU,EAAEC;EAAoB,CAAC,GAAGb,iBAAiB,CAAC;IAC1DW,MAAM;IACNG,SAAS,EAAEZ,eAAe,CAAC;MACvBK;IACJ,CAAC,CAAC;IACFQ,MAAM,EAAE;MACJC,EAAE,EAAER,KAAK,CAACQ,EAAE;MACZC,KAAK,EAAET,KAAK,CAACU,IAAI,CAACD,KAAK;MACvBE,MAAM,EAAEX,KAAK,CAACU,IAAI,CAACC;IACvB;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEC;EAAgB,CAAC,GAAGjB,sBAAsB,CAACkB,OAAO,CAACC,KAAK,CAACC,MAAM;EAEvE,MAAMX,UAAU,GAAGhB,WAAW,CAAC,MAAM;IACjCiB,mBAAmB,CAAC,CAAC;EACzB,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,IAAI,CAACJ,UAAU,IAAI,CAACC,YAAY,EAAE;IAC9B,OAAO,IAAI;EACf;EAEA,MAAMc,MAAM,GAAGhB,KAAK,CAACU,IAAI,EAAEC,MAAM,KAAK,WAAW,GAAG,WAAW,GAAG,SAAS;EAE3E,oBACIxB,KAAA,CAAA8B,aAAA,CAACL,eAAe;IACZM,IAAI,eAAE/B,KAAA,CAAA8B,aAAA,CAAC3B,YAAY,MAAE,CAAE;IACvB6B,KAAK,EAAE,YAAYH,MAAM,EAAG;IAC5BI,QAAQ,EAAEhB,UAAW;IACrBiB,QAAQ,EAAE,CAACrB,KAAK,EAAEU,IAAI,EAAEC,MAAO;IAC/B,eAAa;EAAmC,CACnD,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"components/Browser/MenuItem.js","sources":["../../../src/components/Browser/MenuItem.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { ReactComponent as ScheduleIcon } from \"@webiny/icons/cell_tower.svg\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { useScheduleDialog } from \"@webiny/app-scheduler\";\nimport { usePermissions } from \"~/hooks/usePermissions.js\";\nimport { createNamespace } from \"~/utils/index.js\";\nimport {\n ContentEntryListConfig,\n useContentEntriesList\n} from \"@webiny/app-headless-cms/exports/admin/cms/entry/list.js\";\nimport { useEntry } from \"@webiny/app-headless-cms\";\n\nexport const MenuItem = () => {\n const { modelId } = useContentEntriesList();\n const { entry } = useEntry();\n\n const { canPublish, canUnpublish } = usePermissions();\n const client = useApolloClient();\n\n const { showDialog: showSchedulerDialog } = useScheduleDialog({\n client,\n namespace: createNamespace({\n modelId\n }),\n target: {\n id: entry.id,\n title: entry.meta.title,\n status: entry.meta.status\n }\n });\n\n const { OptionsMenuItem } = ContentEntryListConfig.Browser.Entry.Action;\n\n const showDialog = useCallback(() => {\n showSchedulerDialog();\n }, [showSchedulerDialog]);\n\n if (!canPublish && !canUnpublish) {\n return null;\n }\n\n const action = entry.meta?.status === \"published\" ? \"unpublish\" : \"publish\";\n\n return (\n <OptionsMenuItem\n icon={<ScheduleIcon />}\n label={`Schedule ${action}`}\n onAction={showDialog}\n disabled={!entry?.meta?.status}\n data-testid={\"cms.content-form.header.schedule\"}\n />\n );\n};\n"],"names":["MenuItem","modelId","useContentEntriesList","entry","useEntry","canPublish","canUnpublish","usePermissions","client","useApolloClient","showSchedulerDialog","useScheduleDialog","createNamespace","OptionsMenuItem","ContentEntryListConfig","showDialog","useCallback","action","ScheduleIcon"],"mappings":";;;;;;;;AAYO,MAAMA,WAAW;IACpB,MAAM,EAAEC,OAAO,EAAE,GAAGC;IACpB,MAAM,EAAEC,KAAK,EAAE,GAAGC;IAElB,MAAM,EAAEC,UAAU,EAAEC,YAAY,EAAE,GAAGC;IACrC,MAAMC,SAASC;IAEf,MAAM,EAAE,YAAYC,mBAAmB,EAAE,GAAGC,kBAAkB;QAC1DH;QACA,WAAWI,gBAAgB;YACvBX;QACJ;QACA,QAAQ;YACJ,IAAIE,MAAM,EAAE;YACZ,OAAOA,MAAM,IAAI,CAAC,KAAK;YACvB,QAAQA,MAAM,IAAI,CAAC,MAAM;QAC7B;IACJ;IAEA,MAAM,EAAEU,eAAe,EAAE,GAAGC,uBAAuB,OAAO,CAAC,KAAK,CAAC,MAAM;IAEvE,MAAMC,aAAaC,YAAY;QAC3BN;IACJ,GAAG;QAACA;KAAoB;IAExB,IAAI,CAACL,cAAc,CAACC,cAChB,OAAO;IAGX,MAAMW,SAASd,MAAM,IAAI,EAAE,WAAW,cAAc,cAAc;IAElE,OAAO,WAAP,GACI,oBAACU,iBAAAA;QACG,oBAAM,oBAACK,gBAAYA;QACnB,OAAO,CAAC,SAAS,EAAED,QAAQ;QAC3B,UAAUF;QACV,UAAU,CAACZ,OAAO,MAAM;QACxB,eAAa;;AAGzB"}
@@ -1,15 +1,12 @@
1
1
  import { IsModelPublishable } from "@webiny/app-headless-cms/exports/admin/cms.js";
2
2
  import { ContentEntryEditorConfig } from "@webiny/app-headless-cms/exports/admin/cms/entry/editor.js";
3
- import React from "react";
3
+ import react from "react";
4
4
  import { MenuItem } from "./MenuItem.js";
5
- const {
6
- Actions
7
- } = ContentEntryEditorConfig;
8
- export const EditorConfig = () => {
9
- return /*#__PURE__*/React.createElement(ContentEntryEditorConfig, null, /*#__PURE__*/React.createElement(IsModelPublishable, null, /*#__PURE__*/React.createElement(Actions.MenuItemAction, {
10
- name: "schedule",
11
- element: /*#__PURE__*/React.createElement(MenuItem, null)
12
- })));
13
- };
5
+ const { Actions: Actions } = ContentEntryEditorConfig;
6
+ const EditorConfig = ()=>/*#__PURE__*/ react.createElement(ContentEntryEditorConfig, null, /*#__PURE__*/ react.createElement(IsModelPublishable, null, /*#__PURE__*/ react.createElement(Actions.MenuItemAction, {
7
+ name: "schedule",
8
+ element: /*#__PURE__*/ react.createElement(MenuItem, null)
9
+ })));
10
+ export { EditorConfig };
14
11
 
15
12
  //# sourceMappingURL=EditorConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["IsModelPublishable","ContentEntryEditorConfig","React","MenuItem","Actions","EditorConfig","createElement","MenuItemAction","name","element"],"sources":["EditorConfig.tsx"],"sourcesContent":["import { IsModelPublishable } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms/exports/admin/cms/entry/editor.js\";\nimport React from \"react\";\nimport { MenuItem } from \"./MenuItem.js\";\n\nconst { Actions } = ContentEntryEditorConfig;\n\nexport const EditorConfig = () => {\n return (\n <ContentEntryEditorConfig>\n <IsModelPublishable>\n <Actions.MenuItemAction name={\"schedule\"} element={<MenuItem />} />\n </IsModelPublishable>\n </ContentEntryEditorConfig>\n );\n};\n"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,+CAA+C;AAClF,SAASC,wBAAwB,QAAQ,4DAA4D;AACrG,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ;AAEjB,MAAM;EAAEC;AAAQ,CAAC,GAAGH,wBAAwB;AAE5C,OAAO,MAAMI,YAAY,GAAGA,CAAA,KAAM;EAC9B,oBACIH,KAAA,CAAAI,aAAA,CAACL,wBAAwB,qBACrBC,KAAA,CAAAI,aAAA,CAACN,kBAAkB,qBACfE,KAAA,CAAAI,aAAA,CAACF,OAAO,CAACG,cAAc;IAACC,IAAI,EAAE,UAAW;IAACC,OAAO,eAAEP,KAAA,CAAAI,aAAA,CAACH,QAAQ,MAAE;EAAE,CAAE,CAClD,CACE,CAAC;AAEnC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"components/Editor/EditorConfig.js","sources":["../../../src/components/Editor/EditorConfig.tsx"],"sourcesContent":["import { IsModelPublishable } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms/exports/admin/cms/entry/editor.js\";\nimport React from \"react\";\nimport { MenuItem } from \"./MenuItem.js\";\n\nconst { Actions } = ContentEntryEditorConfig;\n\nexport const EditorConfig = () => {\n return (\n <ContentEntryEditorConfig>\n <IsModelPublishable>\n <Actions.MenuItemAction name={\"schedule\"} element={<MenuItem />} />\n </IsModelPublishable>\n </ContentEntryEditorConfig>\n );\n};\n"],"names":["Actions","ContentEntryEditorConfig","EditorConfig","IsModelPublishable","MenuItem"],"mappings":";;;;AAKA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AAEb,MAAMC,eAAe,IACjB,WAAP,GACI,oBAACD,0BAAwBA,MAAAA,WAAAA,GACrB,oBAACE,oBAAkBA,MAAAA,WAAAA,GACf,oBAACH,QAAQ,cAAc;QAAC,MAAM;QAAY,uBAAS,oBAACI,UAAQA"}
@@ -1,76 +1,54 @@
1
- import React, { useCallback } from "react";
1
+ import react, { useCallback } from "react";
2
2
  import { ContentEntryEditorConfig, useContentEntryEditor } from "@webiny/app-headless-cms/exports/admin/cms/entry/editor.js";
3
- import { ReactComponent as ScheduleIcon } from "@webiny/icons/cell_tower.svg";
3
+ import { ReactComponent } from "@webiny/icons/cell_tower.svg";
4
4
  import { useApolloClient } from "@apollo/react-hooks";
5
5
  import { useScheduleDialog } from "@webiny/app-scheduler";
6
6
  import { usePermissions } from "../../hooks/usePermissions.js";
7
7
  import { createNamespace } from "../../utils/index.js";
8
- /* Rendered only when entry.id exists; hooks that depend on entry.id live here. */
9
- const MenuItemWithId = ({
10
- entry,
11
- contentModel,
12
- loading
13
- }) => {
14
- const client = useApolloClient();
15
- const {
16
- showDialog: showSchedulerDialog
17
- } = useScheduleDialog({
18
- client,
19
- namespace: createNamespace(contentModel),
20
- target: {
21
- id: entry.id,
22
- title: entry.meta.title,
23
- status: entry.meta.status
24
- }
25
- });
26
- const {
27
- OptionsMenuItem
28
- } = ContentEntryEditorConfig.Actions.MenuItemAction.useOptionsMenuItem();
29
- const showDialog = useCallback(() => {
30
- showSchedulerDialog();
31
- }, [showSchedulerDialog]);
32
- const action = entry.meta?.status === "published" ? "unpublish" : "publish";
33
- return /*#__PURE__*/React.createElement(OptionsMenuItem, {
34
- icon: /*#__PURE__*/React.createElement(ScheduleIcon, null),
35
- label: `Schedule ${action}`,
36
- onAction: showDialog,
37
- disabled: !entry?.meta?.status || loading,
38
- "data-testid": "cms.content-form.header.schedule"
39
- });
8
+ const MenuItemWithId = ({ entry, contentModel, loading })=>{
9
+ const client = useApolloClient();
10
+ const { showDialog: showSchedulerDialog } = useScheduleDialog({
11
+ client,
12
+ namespace: createNamespace(contentModel),
13
+ target: {
14
+ id: entry.id,
15
+ title: entry.meta.title,
16
+ status: entry.meta.status
17
+ }
18
+ });
19
+ const { OptionsMenuItem } = ContentEntryEditorConfig.Actions.MenuItemAction.useOptionsMenuItem();
20
+ const showDialog = useCallback(()=>{
21
+ showSchedulerDialog();
22
+ }, [
23
+ showSchedulerDialog
24
+ ]);
25
+ const action = entry.meta?.status === "published" ? "unpublish" : "publish";
26
+ return /*#__PURE__*/ react.createElement(OptionsMenuItem, {
27
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
28
+ label: `Schedule ${action}`,
29
+ onAction: showDialog,
30
+ disabled: !entry?.meta?.status || loading,
31
+ "data-testid": "cms.content-form.header.schedule"
32
+ });
40
33
  };
41
- export const MenuItem = () => {
42
- const {
43
- entry,
44
- loading,
45
- contentModel
46
- } = useContentEntryEditor();
47
- const {
48
- canPublish,
49
- canUnpublish
50
- } = usePermissions();
51
- const {
52
- OptionsMenuItem
53
- } = ContentEntryEditorConfig.Actions.MenuItemAction.useOptionsMenuItem();
54
- if (!canPublish && !canUnpublish) {
55
- return null;
56
- }
57
-
58
- /* When entry.id is missing (e.g. new unsaved entry), render a disabled item
59
- * without invoking hooks that require a persisted entry. */
60
- if (!entry.id) {
61
- return /*#__PURE__*/React.createElement(OptionsMenuItem, {
62
- icon: /*#__PURE__*/React.createElement(ScheduleIcon, null),
63
- label: "Schedule",
64
- onAction: () => void 0,
65
- disabled: true,
66
- "data-testid": "cms.content-form.header.schedule"
34
+ const MenuItem = ()=>{
35
+ const { entry, loading, contentModel } = useContentEntryEditor();
36
+ const { canPublish, canUnpublish } = usePermissions();
37
+ const { OptionsMenuItem } = ContentEntryEditorConfig.Actions.MenuItemAction.useOptionsMenuItem();
38
+ if (!canPublish && !canUnpublish) return null;
39
+ if (!entry.id) return /*#__PURE__*/ react.createElement(OptionsMenuItem, {
40
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
41
+ label: "Schedule",
42
+ onAction: ()=>void 0,
43
+ disabled: true,
44
+ "data-testid": "cms.content-form.header.schedule"
45
+ });
46
+ return /*#__PURE__*/ react.createElement(MenuItemWithId, {
47
+ entry: entry,
48
+ contentModel: contentModel,
49
+ loading: loading
67
50
  });
68
- }
69
- return /*#__PURE__*/React.createElement(MenuItemWithId, {
70
- entry: entry,
71
- contentModel: contentModel,
72
- loading: loading
73
- });
74
51
  };
52
+ export { MenuItem };
75
53
 
76
54
  //# sourceMappingURL=MenuItem.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","ContentEntryEditorConfig","useContentEntryEditor","ReactComponent","ScheduleIcon","useApolloClient","useScheduleDialog","usePermissions","createNamespace","MenuItemWithId","entry","contentModel","loading","client","showDialog","showSchedulerDialog","namespace","target","id","title","meta","status","OptionsMenuItem","Actions","MenuItemAction","useOptionsMenuItem","action","createElement","icon","label","onAction","disabled","MenuItem","canPublish","canUnpublish"],"sources":["MenuItem.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport {\n ContentEntryEditorConfig,\n useContentEntryEditor\n} from \"@webiny/app-headless-cms/exports/admin/cms/entry/editor.js\";\nimport { ReactComponent as ScheduleIcon } from \"@webiny/icons/cell_tower.svg\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { useScheduleDialog } from \"@webiny/app-scheduler\";\nimport { usePermissions } from \"~/hooks/usePermissions.js\";\nimport { createNamespace } from \"~/utils/index.js\";\n\ninterface MenuItemWithIdProps {\n entry: ReturnType<typeof useContentEntryEditor>[\"entry\"];\n contentModel: ReturnType<typeof useContentEntryEditor>[\"contentModel\"];\n loading: boolean;\n}\n\n/* Rendered only when entry.id exists; hooks that depend on entry.id live here. */\nconst MenuItemWithId = ({ entry, contentModel, loading }: MenuItemWithIdProps) => {\n const client = useApolloClient();\n\n const { showDialog: showSchedulerDialog } = useScheduleDialog({\n client,\n namespace: createNamespace(contentModel),\n target: {\n id: entry.id,\n title: entry.meta.title,\n status: entry.meta.status\n }\n });\n\n const { OptionsMenuItem } =\n ContentEntryEditorConfig.Actions.MenuItemAction.useOptionsMenuItem();\n\n const showDialog = useCallback(() => {\n showSchedulerDialog();\n }, [showSchedulerDialog]);\n\n const action = entry.meta?.status === \"published\" ? \"unpublish\" : \"publish\";\n\n return (\n <OptionsMenuItem\n icon={<ScheduleIcon />}\n label={`Schedule ${action}`}\n onAction={showDialog}\n disabled={!entry?.meta?.status || loading}\n data-testid={\"cms.content-form.header.schedule\"}\n />\n );\n};\n\nexport const MenuItem = () => {\n const { entry, loading, contentModel } = useContentEntryEditor();\n const { canPublish, canUnpublish } = usePermissions();\n\n const { OptionsMenuItem } =\n ContentEntryEditorConfig.Actions.MenuItemAction.useOptionsMenuItem();\n\n if (!canPublish && !canUnpublish) {\n return null;\n }\n\n /* When entry.id is missing (e.g. new unsaved entry), render a disabled item\n * without invoking hooks that require a persisted entry. */\n if (!entry.id) {\n return (\n <OptionsMenuItem\n icon={<ScheduleIcon />}\n label={\"Schedule\"}\n onAction={() => void 0}\n disabled={true}\n data-testid={\"cms.content-form.header.schedule\"}\n />\n );\n }\n\n return <MenuItemWithId entry={entry} contentModel={contentModel} loading={loading} />;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,SACIC,wBAAwB,EACxBC,qBAAqB,QAClB,4DAA4D;AACnE,SAASC,cAAc,IAAIC,YAAY,QAAQ,8BAA8B;AAC7E,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,cAAc;AACvB,SAASC,eAAe;AAQxB;AACA,MAAMC,cAAc,GAAGA,CAAC;EAAEC,KAAK;EAAEC,YAAY;EAAEC;AAA6B,CAAC,KAAK;EAC9E,MAAMC,MAAM,GAAGR,eAAe,CAAC,CAAC;EAEhC,MAAM;IAAES,UAAU,EAAEC;EAAoB,CAAC,GAAGT,iBAAiB,CAAC;IAC1DO,MAAM;IACNG,SAAS,EAAER,eAAe,CAACG,YAAY,CAAC;IACxCM,MAAM,EAAE;MACJC,EAAE,EAAER,KAAK,CAACQ,EAAE;MACZC,KAAK,EAAET,KAAK,CAACU,IAAI,CAACD,KAAK;MACvBE,MAAM,EAAEX,KAAK,CAACU,IAAI,CAACC;IACvB;EACJ,CAAC,CAAC;EAEF,MAAM;IAAEC;EAAgB,CAAC,GACrBrB,wBAAwB,CAACsB,OAAO,CAACC,cAAc,CAACC,kBAAkB,CAAC,CAAC;EAExE,MAAMX,UAAU,GAAGd,WAAW,CAAC,MAAM;IACjCe,mBAAmB,CAAC,CAAC;EACzB,CAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC;EAEzB,MAAMW,MAAM,GAAGhB,KAAK,CAACU,IAAI,EAAEC,MAAM,KAAK,WAAW,GAAG,WAAW,GAAG,SAAS;EAE3E,oBACItB,KAAA,CAAA4B,aAAA,CAACL,eAAe;IACZM,IAAI,eAAE7B,KAAA,CAAA4B,aAAA,CAACvB,YAAY,MAAE,CAAE;IACvByB,KAAK,EAAE,YAAYH,MAAM,EAAG;IAC5BI,QAAQ,EAAEhB,UAAW;IACrBiB,QAAQ,EAAE,CAACrB,KAAK,EAAEU,IAAI,EAAEC,MAAM,IAAIT,OAAQ;IAC1C,eAAa;EAAmC,CACnD,CAAC;AAEV,CAAC;AAED,OAAO,MAAMoB,QAAQ,GAAGA,CAAA,KAAM;EAC1B,MAAM;IAAEtB,KAAK;IAAEE,OAAO;IAAED;EAAa,CAAC,GAAGT,qBAAqB,CAAC,CAAC;EAChE,MAAM;IAAE+B,UAAU;IAAEC;EAAa,CAAC,GAAG3B,cAAc,CAAC,CAAC;EAErD,MAAM;IAAEe;EAAgB,CAAC,GACrBrB,wBAAwB,CAACsB,OAAO,CAACC,cAAc,CAACC,kBAAkB,CAAC,CAAC;EAExE,IAAI,CAACQ,UAAU,IAAI,CAACC,YAAY,EAAE;IAC9B,OAAO,IAAI;EACf;;EAEA;AACJ;EACI,IAAI,CAACxB,KAAK,CAACQ,EAAE,EAAE;IACX,oBACInB,KAAA,CAAA4B,aAAA,CAACL,eAAe;MACZM,IAAI,eAAE7B,KAAA,CAAA4B,aAAA,CAACvB,YAAY,MAAE,CAAE;MACvByB,KAAK,EAAE,UAAW;MAClBC,QAAQ,EAAEA,CAAA,KAAM,KAAK,CAAE;MACvBC,QAAQ,EAAE,IAAK;MACf,eAAa;IAAmC,CACnD,CAAC;EAEV;EAEA,oBAAOhC,KAAA,CAAA4B,aAAA,CAAClB,cAAc;IAACC,KAAK,EAAEA,KAAM;IAACC,YAAY,EAAEA,YAAa;IAACC,OAAO,EAAEA;EAAQ,CAAE,CAAC;AACzF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"components/Editor/MenuItem.js","sources":["../../../src/components/Editor/MenuItem.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport {\n ContentEntryEditorConfig,\n useContentEntryEditor\n} from \"@webiny/app-headless-cms/exports/admin/cms/entry/editor.js\";\nimport { ReactComponent as ScheduleIcon } from \"@webiny/icons/cell_tower.svg\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { useScheduleDialog } from \"@webiny/app-scheduler\";\nimport { usePermissions } from \"~/hooks/usePermissions.js\";\nimport { createNamespace } from \"~/utils/index.js\";\n\ninterface MenuItemWithIdProps {\n entry: ReturnType<typeof useContentEntryEditor>[\"entry\"];\n contentModel: ReturnType<typeof useContentEntryEditor>[\"contentModel\"];\n loading: boolean;\n}\n\n/* Rendered only when entry.id exists; hooks that depend on entry.id live here. */\nconst MenuItemWithId = ({ entry, contentModel, loading }: MenuItemWithIdProps) => {\n const client = useApolloClient();\n\n const { showDialog: showSchedulerDialog } = useScheduleDialog({\n client,\n namespace: createNamespace(contentModel),\n target: {\n id: entry.id,\n title: entry.meta.title,\n status: entry.meta.status\n }\n });\n\n const { OptionsMenuItem } =\n ContentEntryEditorConfig.Actions.MenuItemAction.useOptionsMenuItem();\n\n const showDialog = useCallback(() => {\n showSchedulerDialog();\n }, [showSchedulerDialog]);\n\n const action = entry.meta?.status === \"published\" ? \"unpublish\" : \"publish\";\n\n return (\n <OptionsMenuItem\n icon={<ScheduleIcon />}\n label={`Schedule ${action}`}\n onAction={showDialog}\n disabled={!entry?.meta?.status || loading}\n data-testid={\"cms.content-form.header.schedule\"}\n />\n );\n};\n\nexport const MenuItem = () => {\n const { entry, loading, contentModel } = useContentEntryEditor();\n const { canPublish, canUnpublish } = usePermissions();\n\n const { OptionsMenuItem } =\n ContentEntryEditorConfig.Actions.MenuItemAction.useOptionsMenuItem();\n\n if (!canPublish && !canUnpublish) {\n return null;\n }\n\n /* When entry.id is missing (e.g. new unsaved entry), render a disabled item\n * without invoking hooks that require a persisted entry. */\n if (!entry.id) {\n return (\n <OptionsMenuItem\n icon={<ScheduleIcon />}\n label={\"Schedule\"}\n onAction={() => void 0}\n disabled={true}\n data-testid={\"cms.content-form.header.schedule\"}\n />\n );\n }\n\n return <MenuItemWithId entry={entry} contentModel={contentModel} loading={loading} />;\n};\n"],"names":["MenuItemWithId","entry","contentModel","loading","client","useApolloClient","showSchedulerDialog","useScheduleDialog","createNamespace","OptionsMenuItem","ContentEntryEditorConfig","showDialog","useCallback","action","ScheduleIcon","MenuItem","useContentEntryEditor","canPublish","canUnpublish","usePermissions"],"mappings":";;;;;;;AAkBA,MAAMA,iBAAiB,CAAC,EAAEC,KAAK,EAAEC,YAAY,EAAEC,OAAO,EAAuB;IACzE,MAAMC,SAASC;IAEf,MAAM,EAAE,YAAYC,mBAAmB,EAAE,GAAGC,kBAAkB;QAC1DH;QACA,WAAWI,gBAAgBN;QAC3B,QAAQ;YACJ,IAAID,MAAM,EAAE;YACZ,OAAOA,MAAM,IAAI,CAAC,KAAK;YACvB,QAAQA,MAAM,IAAI,CAAC,MAAM;QAC7B;IACJ;IAEA,MAAM,EAAEQ,eAAe,EAAE,GACrBC,yBAAyB,OAAO,CAAC,cAAc,CAAC,kBAAkB;IAEtE,MAAMC,aAAaC,YAAY;QAC3BN;IACJ,GAAG;QAACA;KAAoB;IAExB,MAAMO,SAASZ,MAAM,IAAI,EAAE,WAAW,cAAc,cAAc;IAElE,OAAO,WAAP,GACI,oBAACQ,iBAAAA;QACG,oBAAM,oBAACK,gBAAYA;QACnB,OAAO,CAAC,SAAS,EAAED,QAAQ;QAC3B,UAAUF;QACV,UAAU,CAACV,OAAO,MAAM,UAAUE;QAClC,eAAa;;AAGzB;AAEO,MAAMY,WAAW;IACpB,MAAM,EAAEd,KAAK,EAAEE,OAAO,EAAED,YAAY,EAAE,GAAGc;IACzC,MAAM,EAAEC,UAAU,EAAEC,YAAY,EAAE,GAAGC;IAErC,MAAM,EAAEV,eAAe,EAAE,GACrBC,yBAAyB,OAAO,CAAC,cAAc,CAAC,kBAAkB;IAEtE,IAAI,CAACO,cAAc,CAACC,cAChB,OAAO;IAKX,IAAI,CAACjB,MAAM,EAAE,EACT,OAAO,WAAP,GACI,oBAACQ,iBAAAA;QACG,oBAAM,oBAACK,gBAAYA;QACnB,OAAO;QACP,UAAU,IAAM,KAAK;QACrB,UAAU;QACV,eAAa;;IAKzB,OAAO,WAAP,GAAO,oBAACd,gBAAcA;QAAC,OAAOC;QAAO,cAAcC;QAAc,SAASC;;AAC9E"}
@@ -1,17 +1,16 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { Sidebar } from "@webiny/admin-ui";
3
- import { ReactComponent as ScheduleIcon } from "@webiny/icons/cell_tower.svg";
4
- export const SchedulerButton = props => {
5
- return /*#__PURE__*/React.createElement("div", {
6
- className: "list-none"
7
- }, /*#__PURE__*/React.createElement(Sidebar.Item, {
8
- onClick: props.onClick,
9
- text: "Schedule",
10
- icon: /*#__PURE__*/React.createElement(Sidebar.Item.Icon, {
11
- element: /*#__PURE__*/React.createElement(ScheduleIcon, null),
12
- label: "Schedule"
13
- })
14
- }));
15
- };
3
+ import { ReactComponent } from "@webiny/icons/cell_tower.svg";
4
+ const SchedulerButton = (props)=>/*#__PURE__*/ react.createElement("div", {
5
+ className: "list-none"
6
+ }, /*#__PURE__*/ react.createElement(Sidebar.Item, {
7
+ onClick: props.onClick,
8
+ text: "Schedule",
9
+ icon: /*#__PURE__*/ react.createElement(Sidebar.Item.Icon, {
10
+ element: /*#__PURE__*/ react.createElement(ReactComponent, null),
11
+ label: "Schedule"
12
+ })
13
+ }));
14
+ export { SchedulerButton };
16
15
 
17
16
  //# sourceMappingURL=SchedulerButton.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Sidebar","ReactComponent","ScheduleIcon","SchedulerButton","props","createElement","className","Item","onClick","text","icon","Icon","element","label"],"sources":["SchedulerButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Sidebar } from \"@webiny/admin-ui\";\nimport { ReactComponent as ScheduleIcon } from \"@webiny/icons/cell_tower.svg\";\n\nexport interface ScheduleButtonProps {\n onClick: () => void;\n}\n\nexport const SchedulerButton = (props: ScheduleButtonProps) => {\n return (\n <div className={\"list-none\"}>\n <Sidebar.Item\n onClick={props.onClick}\n text={\"Schedule\"}\n icon={<Sidebar.Item.Icon element={<ScheduleIcon />} label={\"Schedule\"} />}\n />\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,kBAAkB;AAC1C,SAASC,cAAc,IAAIC,YAAY,QAAQ,8BAA8B;AAM7E,OAAO,MAAMC,eAAe,GAAIC,KAA0B,IAAK;EAC3D,oBACIL,KAAA,CAAAM,aAAA;IAAKC,SAAS,EAAE;EAAY,gBACxBP,KAAA,CAAAM,aAAA,CAACL,OAAO,CAACO,IAAI;IACTC,OAAO,EAAEJ,KAAK,CAACI,OAAQ;IACvBC,IAAI,EAAE,UAAW;IACjBC,IAAI,eAAEX,KAAA,CAAAM,aAAA,CAACL,OAAO,CAACO,IAAI,CAACI,IAAI;MAACC,OAAO,eAAEb,KAAA,CAAAM,aAAA,CAACH,YAAY,MAAE,CAAE;MAACW,KAAK,EAAE;IAAW,CAAE;EAAE,CAC7E,CACA,CAAC;AAEd,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"components/Sidebar/SchedulerButton.js","sources":["../../../src/components/Sidebar/SchedulerButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Sidebar } from \"@webiny/admin-ui\";\nimport { ReactComponent as ScheduleIcon } from \"@webiny/icons/cell_tower.svg\";\n\nexport interface ScheduleButtonProps {\n onClick: () => void;\n}\n\nexport const SchedulerButton = (props: ScheduleButtonProps) => {\n return (\n <div className={\"list-none\"}>\n <Sidebar.Item\n onClick={props.onClick}\n text={\"Schedule\"}\n icon={<Sidebar.Item.Icon element={<ScheduleIcon />} label={\"Schedule\"} />}\n />\n </div>\n );\n};\n"],"names":["SchedulerButton","props","Sidebar","ScheduleIcon"],"mappings":";;;AAQO,MAAMA,kBAAkB,CAACC,QACrB,WAAP,GACI,oBAAC;QAAI,WAAW;qBACZ,oBAACC,QAAQ,IAAI;QACT,SAASD,MAAM,OAAO;QACtB,MAAM;QACN,oBAAM,oBAACC,QAAQ,IAAI,CAAC,IAAI;YAAC,uBAAS,oBAACC,gBAAYA;YAAK,OAAO"}
@@ -1,41 +1,27 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { Components } from "@webiny/app-headless-cms";
3
3
  import { useApolloClient } from "@apollo/react-hooks";
4
4
  import { IsModelPublishable, useModel } from "@webiny/app-headless-cms/exports/admin/cms.js";
5
5
  import { usePermissions } from "../../hooks/usePermissions.js";
6
- import { Scheduler as BaseScheduler } from "@webiny/app-scheduler";
6
+ import { Scheduler } from "@webiny/app-scheduler";
7
7
  import { SchedulerButton } from "./SchedulerButton.js";
8
8
  import { createNamespace } from "../../utils/index.js";
9
- export const Sidebar = Components.Sidebar.Footer.createDecorator(Original => {
10
- return function ScheduleSidebarFooter({
11
- children
12
- }) {
13
- const client = useApolloClient();
14
- const {
15
- model
16
- } = useModel();
17
- const {
18
- canPublish,
19
- canUnpublish
20
- } = usePermissions();
21
- const namespace = createNamespace(model);
22
- if (!canPublish && !canUnpublish) {
23
- return /*#__PURE__*/React.createElement(Original, null, children);
24
- }
25
- return /*#__PURE__*/React.createElement(Original, null, /*#__PURE__*/React.createElement(IsModelPublishable, null, children, /*#__PURE__*/React.createElement(BaseScheduler, {
26
- namespace: namespace,
27
- client: client,
28
- canPublish: canPublish,
29
- canUnpublish: canUnpublish,
30
- render: ({
31
- showScheduler
32
- }) => {
33
- return /*#__PURE__*/React.createElement(SchedulerButton, {
34
- onClick: showScheduler
35
- });
36
- }
37
- })));
38
- };
39
- });
9
+ const Sidebar = Components.Sidebar.Footer.createDecorator((Original)=>function({ children }) {
10
+ const client = useApolloClient();
11
+ const { model } = useModel();
12
+ const { canPublish, canUnpublish } = usePermissions();
13
+ const namespace = createNamespace(model);
14
+ if (!canPublish && !canUnpublish) return /*#__PURE__*/ react.createElement(Original, null, children);
15
+ return /*#__PURE__*/ react.createElement(Original, null, /*#__PURE__*/ react.createElement(IsModelPublishable, null, children, /*#__PURE__*/ react.createElement(Scheduler, {
16
+ namespace: namespace,
17
+ client: client,
18
+ canPublish: canPublish,
19
+ canUnpublish: canUnpublish,
20
+ render: ({ showScheduler })=>/*#__PURE__*/ react.createElement(SchedulerButton, {
21
+ onClick: showScheduler
22
+ })
23
+ })));
24
+ });
25
+ export { Sidebar };
40
26
 
41
27
  //# sourceMappingURL=Sidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Components","useApolloClient","IsModelPublishable","useModel","usePermissions","Scheduler","BaseScheduler","SchedulerButton","createNamespace","Sidebar","Footer","createDecorator","Original","ScheduleSidebarFooter","children","client","model","canPublish","canUnpublish","namespace","createElement","render","showScheduler","onClick"],"sources":["Sidebar.tsx"],"sourcesContent":["import React from \"react\";\nimport { Components } from \"@webiny/app-headless-cms\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { IsModelPublishable, useModel } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { usePermissions } from \"~/hooks/usePermissions.js\";\nimport { Scheduler as BaseScheduler } from \"@webiny/app-scheduler\";\nimport { SchedulerButton } from \"./SchedulerButton.js\";\nimport { createNamespace } from \"~/utils/index.js\";\n\nexport const Sidebar = Components.Sidebar.Footer.createDecorator(Original => {\n return function ScheduleSidebarFooter({ children }) {\n const client = useApolloClient();\n const { model } = useModel();\n const { canPublish, canUnpublish } = usePermissions();\n\n const namespace = createNamespace(model);\n\n if (!canPublish && !canUnpublish) {\n return <Original>{children}</Original>;\n }\n\n return (\n <Original>\n <IsModelPublishable>\n {children}\n <BaseScheduler\n namespace={namespace}\n client={client}\n canPublish={canPublish}\n canUnpublish={canUnpublish}\n render={({ showScheduler }) => {\n return <SchedulerButton onClick={showScheduler} />;\n }}\n />\n </IsModelPublishable>\n </Original>\n );\n };\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,eAAe,QAAQ,qBAAqB;AACrD,SAASC,kBAAkB,EAAEC,QAAQ,QAAQ,+CAA+C;AAC5F,SAASC,cAAc;AACvB,SAASC,SAAS,IAAIC,aAAa,QAAQ,uBAAuB;AAClE,SAASC,eAAe;AACxB,SAASC,eAAe;AAExB,OAAO,MAAMC,OAAO,GAAGT,UAAU,CAACS,OAAO,CAACC,MAAM,CAACC,eAAe,CAACC,QAAQ,IAAI;EACzE,OAAO,SAASC,qBAAqBA,CAAC;IAAEC;EAAS,CAAC,EAAE;IAChD,MAAMC,MAAM,GAAGd,eAAe,CAAC,CAAC;IAChC,MAAM;MAAEe;IAAM,CAAC,GAAGb,QAAQ,CAAC,CAAC;IAC5B,MAAM;MAAEc,UAAU;MAAEC;IAAa,CAAC,GAAGd,cAAc,CAAC,CAAC;IAErD,MAAMe,SAAS,GAAGX,eAAe,CAACQ,KAAK,CAAC;IAExC,IAAI,CAACC,UAAU,IAAI,CAACC,YAAY,EAAE;MAC9B,oBAAOnB,KAAA,CAAAqB,aAAA,CAACR,QAAQ,QAAEE,QAAmB,CAAC;IAC1C;IAEA,oBACIf,KAAA,CAAAqB,aAAA,CAACR,QAAQ,qBACLb,KAAA,CAAAqB,aAAA,CAAClB,kBAAkB,QACdY,QAAQ,eACTf,KAAA,CAAAqB,aAAA,CAACd,aAAa;MACVa,SAAS,EAAEA,SAAU;MACrBJ,MAAM,EAAEA,MAAO;MACfE,UAAU,EAAEA,UAAW;MACvBC,YAAY,EAAEA,YAAa;MAC3BG,MAAM,EAAEA,CAAC;QAAEC;MAAc,CAAC,KAAK;QAC3B,oBAAOvB,KAAA,CAAAqB,aAAA,CAACb,eAAe;UAACgB,OAAO,EAAED;QAAc,CAAE,CAAC;MACtD;IAAE,CACL,CACe,CACd,CAAC;EAEnB,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"components/Sidebar/Sidebar.js","sources":["../../../src/components/Sidebar/Sidebar.tsx"],"sourcesContent":["import React from \"react\";\nimport { Components } from \"@webiny/app-headless-cms\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { IsModelPublishable, useModel } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { usePermissions } from \"~/hooks/usePermissions.js\";\nimport { Scheduler as BaseScheduler } from \"@webiny/app-scheduler\";\nimport { SchedulerButton } from \"./SchedulerButton.js\";\nimport { createNamespace } from \"~/utils/index.js\";\n\nexport const Sidebar = Components.Sidebar.Footer.createDecorator(Original => {\n return function ScheduleSidebarFooter({ children }) {\n const client = useApolloClient();\n const { model } = useModel();\n const { canPublish, canUnpublish } = usePermissions();\n\n const namespace = createNamespace(model);\n\n if (!canPublish && !canUnpublish) {\n return <Original>{children}</Original>;\n }\n\n return (\n <Original>\n <IsModelPublishable>\n {children}\n <BaseScheduler\n namespace={namespace}\n client={client}\n canPublish={canPublish}\n canUnpublish={canUnpublish}\n render={({ showScheduler }) => {\n return <SchedulerButton onClick={showScheduler} />;\n }}\n />\n </IsModelPublishable>\n </Original>\n );\n };\n});\n"],"names":["Sidebar","Components","Original","children","client","useApolloClient","model","useModel","canPublish","canUnpublish","usePermissions","namespace","createNamespace","IsModelPublishable","BaseScheduler","showScheduler","SchedulerButton"],"mappings":";;;;;;;;AASO,MAAMA,UAAUC,WAAW,OAAO,CAAC,MAAM,CAAC,eAAe,CAACC,CAAAA,WACtD,SAA+B,EAAEC,QAAQ,EAAE;QAC9C,MAAMC,SAASC;QACf,MAAM,EAAEC,KAAK,EAAE,GAAGC;QAClB,MAAM,EAAEC,UAAU,EAAEC,YAAY,EAAE,GAAGC;QAErC,MAAMC,YAAYC,gBAAgBN;QAElC,IAAI,CAACE,cAAc,CAACC,cAChB,OAAO,WAAP,GAAO,oBAACP,UAAAA,MAAUC;QAGtB,OAAO,WAAP,GACI,oBAACD,UAAAA,MAAAA,WAAAA,GACG,oBAACW,oBAAkBA,MACdV,UAAAA,WAAAA,GACD,oBAACW,WAAaA;YACV,WAAWH;YACX,QAAQP;YACR,YAAYI;YACZ,cAAcC;YACd,QAAQ,CAAC,EAAEM,aAAa,EAAE,GACf,WAAP,GAAO,oBAACC,iBAAeA;oBAAC,SAASD;;;IAMzD"}
@@ -1,5 +1,3 @@
1
1
  export * from "./Editor/EditorConfig.js";
2
2
  export * from "./Sidebar/Sidebar.js";
3
3
  export * from "./Browser/BrowserConfig.js";
4
-
5
- //# sourceMappingURL=index.js.map
@@ -1,17 +1,18 @@
1
1
  import { usePermission } from "@webiny/app-headless-cms/exports/admin/cms.js";
2
2
  import { useMemo } from "react";
3
- export const usePermissions = () => {
4
- const permission = usePermission();
5
- const canPublish = useMemo(() => {
6
- return permission.canPublish("cms.contentEntry");
7
- }, [permission.canPublish]);
8
- const canUnpublish = useMemo(() => {
9
- return permission.canUnpublish("cms.contentEntry");
10
- }, [permission.canUnpublish]);
11
- return {
12
- canPublish,
13
- canUnpublish
14
- };
3
+ const usePermissions = ()=>{
4
+ const permission = usePermission();
5
+ const canPublish = useMemo(()=>permission.canPublish("cms.contentEntry"), [
6
+ permission.canPublish
7
+ ]);
8
+ const canUnpublish = useMemo(()=>permission.canUnpublish("cms.contentEntry"), [
9
+ permission.canUnpublish
10
+ ]);
11
+ return {
12
+ canPublish,
13
+ canUnpublish
14
+ };
15
15
  };
16
+ export { usePermissions };
16
17
 
17
18
  //# sourceMappingURL=usePermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["usePermission","useMemo","usePermissions","permission","canPublish","canUnpublish"],"sources":["usePermissions.ts"],"sourcesContent":["import { usePermission } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { useMemo } from \"react\";\n\nexport const usePermissions = () => {\n const permission = usePermission();\n\n const canPublish = useMemo(() => {\n return permission.canPublish(\"cms.contentEntry\");\n }, [permission.canPublish]);\n\n const canUnpublish = useMemo(() => {\n return permission.canUnpublish(\"cms.contentEntry\");\n }, [permission.canUnpublish]);\n\n return {\n canPublish,\n canUnpublish\n };\n};\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,+CAA+C;AAC7E,SAASC,OAAO,QAAQ,OAAO;AAE/B,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAChC,MAAMC,UAAU,GAAGH,aAAa,CAAC,CAAC;EAElC,MAAMI,UAAU,GAAGH,OAAO,CAAC,MAAM;IAC7B,OAAOE,UAAU,CAACC,UAAU,CAAC,kBAAkB,CAAC;EACpD,CAAC,EAAE,CAACD,UAAU,CAACC,UAAU,CAAC,CAAC;EAE3B,MAAMC,YAAY,GAAGJ,OAAO,CAAC,MAAM;IAC/B,OAAOE,UAAU,CAACE,YAAY,CAAC,kBAAkB,CAAC;EACtD,CAAC,EAAE,CAACF,UAAU,CAACE,YAAY,CAAC,CAAC;EAE7B,OAAO;IACHD,UAAU;IACVC;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"hooks/usePermissions.js","sources":["../../src/hooks/usePermissions.ts"],"sourcesContent":["import { usePermission } from \"@webiny/app-headless-cms/exports/admin/cms.js\";\nimport { useMemo } from \"react\";\n\nexport const usePermissions = () => {\n const permission = usePermission();\n\n const canPublish = useMemo(() => {\n return permission.canPublish(\"cms.contentEntry\");\n }, [permission.canPublish]);\n\n const canUnpublish = useMemo(() => {\n return permission.canUnpublish(\"cms.contentEntry\");\n }, [permission.canUnpublish]);\n\n return {\n canPublish,\n canUnpublish\n };\n};\n"],"names":["usePermissions","permission","usePermission","canPublish","useMemo","canUnpublish"],"mappings":";;AAGO,MAAMA,iBAAiB;IAC1B,MAAMC,aAAaC;IAEnB,MAAMC,aAAaC,QAAQ,IAChBH,WAAW,UAAU,CAAC,qBAC9B;QAACA,WAAW,UAAU;KAAC;IAE1B,MAAMI,eAAeD,QAAQ,IAClBH,WAAW,YAAY,CAAC,qBAChC;QAACA,WAAW,YAAY;KAAC;IAE5B,OAAO;QACHE;QACAE;IACJ;AACJ"}
package/index.js CHANGED
@@ -1,7 +1,6 @@
1
- import React from "react";
2
- import { EditorConfig, BrowserConfig, Sidebar } from "./components/index.js";
3
- export const CmsScheduler = () => {
4
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Sidebar, null), /*#__PURE__*/React.createElement(BrowserConfig, null), /*#__PURE__*/React.createElement(EditorConfig, null));
5
- };
1
+ import react from "react";
2
+ import { BrowserConfig, EditorConfig, Sidebar } from "./components/index.js";
3
+ const CmsScheduler = ()=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Sidebar, null), /*#__PURE__*/ react.createElement(BrowserConfig, null), /*#__PURE__*/ react.createElement(EditorConfig, null));
4
+ export { CmsScheduler };
6
5
 
7
6
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["React","EditorConfig","BrowserConfig","Sidebar","CmsScheduler","createElement","Fragment"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { EditorConfig, BrowserConfig, Sidebar } from \"./components/index.js\";\n\nexport const CmsScheduler = () => {\n return (\n <>\n <Sidebar />\n <BrowserConfig />\n <EditorConfig />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,aAAa,EAAEC,OAAO;AAE7C,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAM;EAC9B,oBACIJ,KAAA,CAAAK,aAAA,CAAAL,KAAA,CAAAM,QAAA,qBACIN,KAAA,CAAAK,aAAA,CAACF,OAAO,MAAE,CAAC,eACXH,KAAA,CAAAK,aAAA,CAACH,aAAa,MAAE,CAAC,eACjBF,KAAA,CAAAK,aAAA,CAACJ,YAAY,MAAE,CACjB,CAAC;AAEX,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { EditorConfig, BrowserConfig, Sidebar } from \"./components/index.js\";\n\nexport const CmsScheduler = () => {\n return (\n <>\n <Sidebar />\n <BrowserConfig />\n <EditorConfig />\n </>\n );\n};\n"],"names":["CmsScheduler","Sidebar","BrowserConfig","EditorConfig"],"mappings":";;AAGO,MAAMA,eAAe,IACjB,WAAP,GACI,wDACI,oBAACC,SAAOA,OAAAA,WAAAA,GACR,oBAACC,eAAaA,OAAAA,WAAAA,GACd,oBAACC,cAAYA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-headless-cms-scheduler",
3
- "version": "6.3.0",
3
+ "version": "6.4.0-beta.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./index.js",
@@ -14,18 +14,17 @@
14
14
  "license": "MIT",
15
15
  "dependencies": {
16
16
  "@apollo/react-hooks": "3.1.5",
17
- "@webiny/admin-ui": "6.3.0",
18
- "@webiny/app-headless-cms": "6.3.0",
19
- "@webiny/app-headless-cms-common": "6.3.0",
20
- "@webiny/app-scheduler": "6.3.0",
21
- "@webiny/icons": "6.3.0",
17
+ "@webiny/admin-ui": "6.4.0-beta.1",
18
+ "@webiny/app-headless-cms": "6.4.0-beta.1",
19
+ "@webiny/app-headless-cms-common": "6.4.0-beta.1",
20
+ "@webiny/app-scheduler": "6.4.0-beta.1",
21
+ "@webiny/icons": "6.4.0-beta.1",
22
22
  "react": "18.3.1",
23
23
  "react-dom": "18.3.1"
24
24
  },
25
25
  "devDependencies": {
26
- "@emotion/babel-plugin": "11.13.5",
27
26
  "@types/react": "18.3.28",
28
- "@webiny/build-tools": "6.3.0",
27
+ "@webiny/build-tools": "6.4.0-beta.1",
29
28
  "rimraf": "6.1.3",
30
29
  "typescript": "6.0.3"
31
30
  },
@@ -38,5 +37,5 @@
38
37
  "removeViewBox": false
39
38
  }
40
39
  },
41
- "gitHead": "7cefe15431dbd65504e1f58147dc9e55bcbfa693"
40
+ "gitHead": "73237b8243693038c072bae1c0b783387448cbbe"
42
41
  }
package/utils/index.js CHANGED
@@ -1,3 +1 @@
1
1
  export * from "./namespace.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -1,11 +1,5 @@
1
- export const CMS_NAMESPACE = "Cms/Entry/";
2
-
3
- /**
4
- * Namespace must be exactly like in the API, or it will not match - scheduling will fail.
5
- * @param model
6
- */
7
- export const createNamespace = model => {
8
- return `${CMS_NAMESPACE}${model.modelId}`;
9
- };
1
+ const CMS_NAMESPACE = "Cms/Entry/";
2
+ const createNamespace = (model)=>`${CMS_NAMESPACE}${model.modelId}`;
3
+ export { CMS_NAMESPACE, createNamespace };
10
4
 
11
5
  //# sourceMappingURL=namespace.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CMS_NAMESPACE","createNamespace","model","modelId"],"sources":["namespace.ts"],"sourcesContent":["import type { CmsModel } from \"@webiny/app-headless-cms-common/types/index.js\";\n\nexport const CMS_NAMESPACE = \"Cms/Entry/\";\n\n/**\n * Namespace must be exactly like in the API, or it will not match - scheduling will fail.\n * @param model\n */\nexport const createNamespace = (model: Pick<CmsModel, \"modelId\">): string => {\n return `${CMS_NAMESPACE}${model.modelId}`;\n};\n"],"mappings":"AAEA,OAAO,MAAMA,aAAa,GAAG,YAAY;;AAEzC;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAIC,KAAgC,IAAa;EACzE,OAAO,GAAGF,aAAa,GAAGE,KAAK,CAACC,OAAO,EAAE;AAC7C,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"utils/namespace.js","sources":["../../src/utils/namespace.ts"],"sourcesContent":["import type { CmsModel } from \"@webiny/app-headless-cms-common/types/index.js\";\n\nexport const CMS_NAMESPACE = \"Cms/Entry/\";\n\n/**\n * Namespace must be exactly like in the API, or it will not match - scheduling will fail.\n * @param model\n */\nexport const createNamespace = (model: Pick<CmsModel, \"modelId\">): string => {\n return `${CMS_NAMESPACE}${model.modelId}`;\n};\n"],"names":["CMS_NAMESPACE","createNamespace","model"],"mappings":"AAEO,MAAMA,gBAAgB;AAMtB,MAAMC,kBAAkB,CAACC,QACrB,GAAGF,gBAAgBE,MAAM,OAAO,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Editor/EditorConfig.js\";\nexport * from \"./Sidebar/Sidebar.js\";\nexport * from \"./Browser/BrowserConfig.js\";\n"],"mappings":"AAAA;AACA;AACA","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./namespace.js\";\n"],"mappings":"AAAA","ignoreList":[]}