@webiny/app-headless-cms 5.29.0 → 5.30.0

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.
Files changed (107) hide show
  1. package/HeadlessCMS.js +5 -1
  2. package/HeadlessCMS.js.map +1 -1
  3. package/admin/components/ContentEntryForm/useBind.js +23 -1
  4. package/admin/components/ContentEntryForm/useBind.js.map +1 -1
  5. package/admin/components/ContentModelEditor/Editor.js +1 -1
  6. package/admin/components/ContentModelEditor/Editor.js.map +1 -1
  7. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +1 -1
  8. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
  9. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +10 -5
  10. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
  11. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js +1 -0
  12. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js.map +1 -1
  13. package/admin/components/FieldEditor/EditFieldDialog.js +8 -7
  14. package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
  15. package/admin/contexts/Cms/index.d.ts +60 -0
  16. package/admin/contexts/Cms/index.js +107 -9
  17. package/admin/contexts/Cms/index.js.map +1 -1
  18. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +1 -0
  19. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -1
  20. package/admin/plugins/entry/DefaultOnEntryDelete.d.ts +2 -0
  21. package/admin/plugins/entry/DefaultOnEntryDelete.js +204 -0
  22. package/admin/plugins/entry/DefaultOnEntryDelete.js.map +1 -0
  23. package/admin/plugins/entry/DefaultOnEntryPublish.d.ts +2 -0
  24. package/admin/plugins/entry/DefaultOnEntryPublish.js +176 -0
  25. package/admin/plugins/entry/DefaultOnEntryPublish.js.map +1 -0
  26. package/admin/plugins/fieldRenderers/Accordion.js +3 -0
  27. package/admin/plugins/fieldRenderers/Accordion.js.map +1 -1
  28. package/admin/plugins/fieldRenderers/DynamicSection.d.ts +11 -8
  29. package/admin/plugins/fieldRenderers/DynamicSection.js +0 -3
  30. package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
  31. package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js +2 -1
  32. package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -1
  33. package/admin/plugins/fieldRenderers/checkboxes.js +2 -1
  34. package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
  35. package/admin/plugins/fieldRenderers/dateTime/Input.js +2 -1
  36. package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
  37. package/admin/plugins/fieldRenderers/dateTime/Select.js +2 -1
  38. package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -1
  39. package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +3 -3
  40. package/admin/plugins/fieldRenderers/file/fileField.js +2 -1
  41. package/admin/plugins/fieldRenderers/file/fileField.js.map +1 -1
  42. package/admin/plugins/fieldRenderers/file/fileFields.js +4 -2
  43. package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -1
  44. package/admin/plugins/fieldRenderers/longText/longText.js +2 -1
  45. package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -1
  46. package/admin/plugins/fieldRenderers/number/numberInput.js +2 -1
  47. package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -1
  48. package/admin/plugins/fieldRenderers/object/StyledComponents.d.ts +2 -0
  49. package/admin/plugins/fieldRenderers/object/StyledComponents.js +37 -2
  50. package/admin/plugins/fieldRenderers/object/StyledComponents.js.map +1 -1
  51. package/admin/plugins/fieldRenderers/object/arrow_drop_down.svg +1 -0
  52. package/admin/plugins/fieldRenderers/object/arrow_drop_up.svg +1 -0
  53. package/admin/plugins/fieldRenderers/object/multipleObjects.js +101 -47
  54. package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
  55. package/admin/plugins/fieldRenderers/radioButtons.js +2 -1
  56. package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
  57. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +5 -5
  58. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
  59. package/admin/plugins/fieldRenderers/ref/components/useReference.js +6 -1
  60. package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
  61. package/admin/plugins/fieldRenderers/richText/richTextInput.js +2 -1
  62. package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
  63. package/admin/plugins/fieldRenderers/richText/richTextInputs.js +2 -2
  64. package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
  65. package/admin/plugins/fieldRenderers/select.js +2 -1
  66. package/admin/plugins/fieldRenderers/select.js.map +1 -1
  67. package/admin/plugins/fieldRenderers/text/textInput.js +2 -1
  68. package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -1
  69. package/admin/plugins/fieldValidators/date/availableValidators.d.ts +1 -1
  70. package/admin/plugins/index.d.ts +1 -1
  71. package/admin/plugins/validators/unique.d.ts +1 -1
  72. package/admin/views/contentEntries/ContentEntriesList.js +7 -2
  73. package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
  74. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +4 -6
  75. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +12 -71
  76. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
  77. package/admin/views/contentEntries/ContentEntry/PublishEntryRevisionListItem.d.ts +1 -0
  78. package/admin/views/contentEntries/ContentEntry/PublishEntryRevisionListItem.js +35 -0
  79. package/admin/views/contentEntries/ContentEntry/PublishEntryRevisionListItem.js.map +1 -0
  80. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +9 -11
  81. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -1
  82. package/admin/views/contentEntries/ContentEntry/cache.js +47 -21
  83. package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
  84. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js +32 -46
  85. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -1
  86. package/admin/views/contentEntries/ContentEntry/header/index.js +6 -6
  87. package/admin/views/contentEntries/ContentEntry/header/index.js.map +1 -1
  88. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.d.ts +1 -2
  89. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js +6 -4
  90. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -1
  91. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.d.ts +1 -3
  92. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js +6 -4
  93. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -1
  94. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.d.ts +1 -3
  95. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js +45 -38
  96. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js.map +1 -1
  97. package/admin/views/contentEntries/ContentEntry/useRevision.js +57 -70
  98. package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
  99. package/admin/views/contentEntries/ContentEntry.js +2 -4
  100. package/admin/views/contentEntries/ContentEntry.js.map +1 -1
  101. package/admin/views/contentEntries/hooks/useContentEntry.js +7 -1
  102. package/admin/views/contentEntries/hooks/useContentEntry.js.map +1 -1
  103. package/admin/views/contentModels/NewContentModelDialog.js +6 -3
  104. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
  105. package/package.json +21 -20
  106. package/types.d.ts +10 -7
  107. package/types.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","primaryColor","css","color","revisionsMenu","width","right","left","getIcon","rev","meta","locked","status","icon","text","RevisionListItem","revision","useRevision","createRevision","deleteRevision","publishRevision","unpublishRevision","editRevision","useContentEntry","entry","tabs","usePermission","canEdit","canDelete","canPublish","canUnpublish","tooltipText","version","showConfirmation","title","time","savedOn","id","current","switchTab"],"sources":["RevisionListItem.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\n/**\n * Package timeago-react does not have types.\n */\n// @ts-ignore\nimport TimeAgo from \"timeago-react\";\nimport {\n ListItem,\n ListItemText,\n ListItemTextPrimary,\n ListItemTextSecondary,\n ListItemGraphic,\n ListItemMeta\n} from \"@webiny/ui/List\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { MenuItem, Menu, MenuDivider } from \"@webiny/ui/Menu\";\nimport { ConfirmationDialog } from \"@webiny/ui/ConfirmationDialog\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { ReactComponent as LockIcon } from \"~/admin/icons/lock.svg\";\nimport { ReactComponent as BeenHereIcon } from \"~/admin/icons/beenhere.svg\";\nimport { ReactComponent as GestureIcon } from \"~/admin/icons/gesture.svg\";\nimport { ReactComponent as AddIcon } from \"~/admin/icons/add.svg\";\nimport { ReactComponent as EditIcon } from \"~/admin/icons/edit.svg\";\nimport { ReactComponent as PublishIcon } from \"~/admin/icons/publish.svg\";\nimport { ReactComponent as UnpublishIcon } from \"~/admin/icons/unpublish.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { CmsEditorContentEntry } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useRevision } from \"./useRevision\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/plugins/content-details/content-revisions\");\n\nconst primaryColor = css({ color: \"var(--mdc-theme-primary)\" });\n\nconst revisionsMenu = css({\n width: 250,\n right: -105,\n left: \"auto !important\"\n});\n\nconst getIcon = (rev: CmsEditorContentEntry) => {\n switch (true) {\n case rev.meta.locked && rev.meta.status !== \"published\":\n return {\n icon: <Icon icon={<LockIcon />} data-testid={\"cms.revision.status.locked\"} />,\n text: \"This revision is locked (it has already been published)\"\n };\n case rev.meta.status === \"published\":\n return {\n icon: (\n <Icon\n icon={<BeenHereIcon />}\n className={primaryColor}\n data-testid={\"cms.revision.status.published\"}\n />\n ),\n text: \"This revision is currently published!\"\n };\n default:\n return {\n icon: <Icon icon={<GestureIcon />} data-testid={\"cms.revision.status.draft\"} />,\n text: \"This is a draft\"\n };\n }\n};\n\ninterface RevisionListItemProps {\n revision: CmsEditorContentEntry;\n}\n\nconst RevisionListItem: React.FC<RevisionListItemProps> = ({ revision }) => {\n const { createRevision, deleteRevision, publishRevision, unpublishRevision, editRevision } =\n useRevision({\n revision\n });\n\n const { entry, tabs } = useContentEntry();\n const { canEdit, canDelete, canPublish, canUnpublish } = usePermission();\n const { icon, text: tooltipText } = getIcon(revision);\n\n return (\n <ConfirmationDialog\n title={t`Confirmation required!`}\n message={\n <span>\n {t`You are about to delete revision {revision}. Are you sure you want to continue?`(\n {\n revision: <strong>#{revision.meta.version}</strong>\n }\n )}\n </span>\n }\n >\n {({ showConfirmation }) => (\n <ListItem>\n <ListItemGraphic>\n <Tooltip content={tooltipText} placement={\"bottom\"}>\n {icon}\n </Tooltip>\n </ListItemGraphic>\n <ListItemText>\n <ListItemTextPrimary>{revision.meta.title || t`N/A`}</ListItemTextPrimary>\n <ListItemTextSecondary>\n {t`Last modified {time} (#{version})`({\n time: <TimeAgo datetime={revision.savedOn} />,\n version: revision.meta.version\n })}\n </ListItemTextSecondary>\n </ListItemText>\n <ListItemMeta>\n <Menu\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n className={revisionsMenu}\n data-testid={\"cms.content-form.revisions.more-options\"}\n >\n {canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => createRevision(revision.id)}\n data-testid={\"cms.revision.create-revision\"}\n >\n <ListItemGraphic>\n <Icon icon={<AddIcon />} />\n </ListItemGraphic>\n {t`New from current`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => {\n editRevision();\n if (!tabs.current) {\n return;\n }\n tabs.current.switchTab(0);\n }}\n >\n <ListItemGraphic>\n <Icon icon={<EditIcon />} />\n </ListItemGraphic>\n {t` Edit`}\n </MenuItem>\n )}\n\n {revision.meta.status !== \"published\" &&\n canPublish(\"cms.contentEntry\") && (\n <MenuItem onClick={() => publishRevision(revision.id)}>\n <ListItemGraphic>\n <Icon icon={<PublishIcon />} />\n </ListItemGraphic>\n {t`Publish`}\n </MenuItem>\n )}\n\n {revision.meta.status === \"published\" &&\n canUnpublish(\"cms.contentEntry\") && (\n <MenuItem\n onClick={() => unpublishRevision(revision.id)}\n data-testid={\"cms.revision.unpublish\"}\n >\n <ListItemGraphic>\n <Icon icon={<UnpublishIcon />} />\n </ListItemGraphic>\n {t`Unpublish`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canDelete(entry, \"cms.contentEntry\") && (\n <div>\n <MenuDivider />\n <MenuItem onClick={() => showConfirmation(deleteRevision)}>\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {t` Delete`}\n </MenuItem>\n </div>\n )}\n </Menu>\n </ListItemMeta>\n </ListItem>\n )}\n </ConfirmationDialog>\n );\n};\n\nexport default RevisionListItem;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","primaryColor","css","color","revisionsMenu","width","right","left","getIcon","rev","meta","locked","status","icon","text","RevisionListItem","revision","useRevision","createRevision","deleteRevision","publishRevision","unpublishRevision","editRevision","useContentEntry","entry","tabsRef","usePermission","canEdit","canDelete","canPublish","canUnpublish","tooltipText","version","showConfirmation","title","time","savedOn","id","current","switchTab"],"sources":["RevisionListItem.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\n/**\n * Package timeago-react does not have types.\n */\n// @ts-ignore\nimport TimeAgo from \"timeago-react\";\nimport {\n ListItem,\n ListItemText,\n ListItemTextPrimary,\n ListItemTextSecondary,\n ListItemGraphic,\n ListItemMeta\n} from \"@webiny/ui/List\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { MenuItem, Menu, MenuDivider } from \"@webiny/ui/Menu\";\nimport { ConfirmationDialog } from \"@webiny/ui/ConfirmationDialog\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { ReactComponent as LockIcon } from \"~/admin/icons/lock.svg\";\nimport { ReactComponent as BeenHereIcon } from \"~/admin/icons/beenhere.svg\";\nimport { ReactComponent as GestureIcon } from \"~/admin/icons/gesture.svg\";\nimport { ReactComponent as AddIcon } from \"~/admin/icons/add.svg\";\nimport { ReactComponent as EditIcon } from \"~/admin/icons/edit.svg\";\nimport { ReactComponent as UnpublishIcon } from \"~/admin/icons/unpublish.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { CmsEditorContentEntry } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useRevision } from \"./useRevision\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { PublishEntryRevisionListItem } from \"./PublishEntryRevisionListItem\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/plugins/content-details/content-revisions\");\n\nconst primaryColor = css({ color: \"var(--mdc-theme-primary)\" });\n\nconst revisionsMenu = css({\n width: 250,\n right: -105,\n left: \"auto !important\"\n});\n\nconst getIcon = (rev: CmsEditorContentEntry) => {\n switch (true) {\n case rev.meta.locked && rev.meta.status !== \"published\":\n return {\n icon: <Icon icon={<LockIcon />} data-testid={\"cms.revision.status.locked\"} />,\n text: \"This revision is locked (it has already been published)\"\n };\n case rev.meta.status === \"published\":\n return {\n icon: (\n <Icon\n icon={<BeenHereIcon />}\n className={primaryColor}\n data-testid={\"cms.revision.status.published\"}\n />\n ),\n text: \"This revision is currently published!\"\n };\n default:\n return {\n icon: <Icon icon={<GestureIcon />} data-testid={\"cms.revision.status.draft\"} />,\n text: \"This is a draft\"\n };\n }\n};\n\ninterface RevisionListItemProps {\n revision: CmsEditorContentEntry;\n}\n\nconst RevisionListItem: React.FC<RevisionListItemProps> = ({ revision }) => {\n const { createRevision, deleteRevision, publishRevision, unpublishRevision, editRevision } =\n useRevision({\n revision\n });\n\n const { entry, tabsRef } = useContentEntry();\n const { canEdit, canDelete, canPublish, canUnpublish } = usePermission();\n const { icon, text: tooltipText } = getIcon(revision);\n\n return (\n <ConfirmationDialog\n title={t`Confirmation required!`}\n message={\n <span>\n {t`You are about to delete revision {revision}. Are you sure you want to continue?`(\n {\n revision: <strong>#{revision.meta.version}</strong>\n }\n )}\n </span>\n }\n >\n {({ showConfirmation }) => (\n <ListItem>\n <ListItemGraphic>\n <Tooltip content={tooltipText} placement={\"bottom\"}>\n {icon}\n </Tooltip>\n </ListItemGraphic>\n <ListItemText>\n <ListItemTextPrimary>{revision.meta.title || t`N/A`}</ListItemTextPrimary>\n <ListItemTextSecondary>\n {t`Last modified {time} (#{version})`({\n time: <TimeAgo datetime={revision.savedOn} />,\n version: revision.meta.version\n })}\n </ListItemTextSecondary>\n </ListItemText>\n <ListItemMeta>\n <Menu\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n className={revisionsMenu}\n data-testid={\"cms.content-form.revisions.more-options\"}\n >\n {canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => createRevision(revision.id)}\n data-testid={\"cms.revision.create-revision\"}\n >\n <ListItemGraphic>\n <Icon icon={<AddIcon />} />\n </ListItemGraphic>\n {t`New from current`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canEdit(entry, \"cms.contentEntry\") && (\n <MenuItem\n onClick={() => {\n editRevision();\n if (!tabsRef.current) {\n return;\n }\n tabsRef.current.switchTab(0);\n }}\n >\n <ListItemGraphic>\n <Icon icon={<EditIcon />} />\n </ListItemGraphic>\n {t` Edit`}\n </MenuItem>\n )}\n\n {revision.meta.status !== \"published\" &&\n canPublish(\"cms.contentEntry\") && (\n <MenuItem onClick={() => publishRevision(revision.id)}>\n <PublishEntryRevisionListItem />\n </MenuItem>\n )}\n\n {revision.meta.status === \"published\" &&\n canUnpublish(\"cms.contentEntry\") && (\n <MenuItem\n onClick={() => unpublishRevision(revision.id)}\n data-testid={\"cms.revision.unpublish\"}\n >\n <ListItemGraphic>\n <Icon icon={<UnpublishIcon />} />\n </ListItemGraphic>\n {t`Unpublish`}\n </MenuItem>\n )}\n\n {!revision.meta.locked && canDelete(entry, \"cms.contentEntry\") && (\n <div>\n <MenuDivider />\n <MenuItem onClick={() => showConfirmation(deleteRevision)}>\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {t` Delete`}\n </MenuItem>\n </div>\n )}\n </Menu>\n </ListItemMeta>\n </ListItem>\n )}\n </ConfirmationDialog>\n );\n};\n\nexport default RevisionListItem;\n"],"mappings":"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"}
@@ -31,7 +31,7 @@ var sortEntries = function sortEntries(list, sort) {
31
31
  if (!sort) {
32
32
  return list;
33
33
  } else if (Array.isArray(sort) === false) {
34
- console.log("Sort is not an Array of strings.");
34
+ console.warn("Sort is not an Array of strings.");
35
35
  return list;
36
36
  } else if (sort.length === 0) {
37
37
  return list;
@@ -78,9 +78,8 @@ var updateLatestRevisionInListCache = function updateLatestRevisionInListCache(m
78
78
  variables: variables
79
79
  };
80
80
 
81
- var _revision$id$split = revision.id.split("#"),
82
- _revision$id$split2 = (0, _slicedToArray2.default)(_revision$id$split, 1),
83
- uniqueId = _revision$id$split2[0];
81
+ var _parseIdentifier = (0, _utils.parseIdentifier)(revision.id),
82
+ uniqueId = _parseIdentifier.id;
84
83
 
85
84
  var response = cache.readQuery(gqlParams);
86
85
 
@@ -120,8 +119,8 @@ var removeEntryFromListCache = function removeEntryFromListCache(model, cache, r
120
119
 
121
120
  var content = response.content;
122
121
 
123
- var _parseIdentifier = (0, _utils.parseIdentifier)(revision.id),
124
- entryId = _parseIdentifier.id;
122
+ var _parseIdentifier2 = (0, _utils.parseIdentifier)(revision.id),
123
+ entryId = _parseIdentifier2.id;
125
124
 
126
125
  var index = content.data.findIndex(function (item) {
127
126
  return item.id.startsWith(entryId);
@@ -141,10 +140,13 @@ var removeEntryFromListCache = function removeEntryFromListCache(model, cache, r
141
140
  exports.removeEntryFromListCache = removeEntryFromListCache;
142
141
 
143
142
  var removeRevisionFromEntryCache = function removeRevisionFromEntryCache(model, cache, revision) {
143
+ var _parseIdentifier3 = (0, _utils.parseIdentifier)(revision.id),
144
+ id = _parseIdentifier3.id;
145
+
144
146
  var gqlParams = {
145
147
  query: GQL.createRevisionsQuery(model),
146
148
  variables: {
147
- id: revision.id.split("#")[0]
149
+ id: id
148
150
  }
149
151
  };
150
152
  var response = cache.readQuery(gqlParams);
@@ -153,25 +155,31 @@ var removeRevisionFromEntryCache = function removeRevisionFromEntryCache(model,
153
155
  return [];
154
156
  }
155
157
 
156
- var revisionsData = response.revisions;
157
- var revisions = revisionsData.data.filter(function (item) {
158
+ var revisions = response.revisions;
159
+ var data = revisions.data.filter(function (item) {
158
160
  return item.id !== revision.id;
159
161
  });
160
- cache.writeQuery((0, _objectSpread2.default)((0, _objectSpread2.default)({}, gqlParams), {}, {
162
+ var query = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, gqlParams), {}, {
161
163
  data: {
162
- revisions: revisions
164
+ revisions: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, revisions), {}, {
165
+ data: data
166
+ })
163
167
  }
164
- }));
165
- return revisions;
168
+ });
169
+ cache.writeQuery(query);
170
+ return data;
166
171
  };
167
172
 
168
173
  exports.removeRevisionFromEntryCache = removeRevisionFromEntryCache;
169
174
 
170
175
  var addRevisionToRevisionsCache = function addRevisionToRevisionsCache(model, cache, revision) {
176
+ var _parseIdentifier4 = (0, _utils.parseIdentifier)(revision.id),
177
+ id = _parseIdentifier4.id;
178
+
171
179
  var gqlParams = {
172
180
  query: GQL.createRevisionsQuery(model),
173
181
  variables: {
174
- id: revision.id.split("#")[0]
182
+ id: id
175
183
  }
176
184
  };
177
185
  var response = cache.readQuery(gqlParams);
@@ -191,32 +199,50 @@ var addRevisionToRevisionsCache = function addRevisionToRevisionsCache(model, ca
191
199
  exports.addRevisionToRevisionsCache = addRevisionToRevisionsCache;
192
200
 
193
201
  var unpublishPreviouslyPublishedRevision = function unpublishPreviouslyPublishedRevision(model, cache, publishedId) {
202
+ var _response$revisions;
203
+
204
+ var _parseIdentifier5 = (0, _utils.parseIdentifier)(publishedId),
205
+ id = _parseIdentifier5.id;
206
+
194
207
  var gqlParams = {
195
208
  query: GQL.createRevisionsQuery(model),
196
209
  variables: {
197
- id: publishedId.split("#")[0]
210
+ id: id
198
211
  }
199
212
  };
200
213
  var response = cache.readQuery(gqlParams);
201
214
 
202
- if (!response || !response.revisions || !response.revisions.data) {
215
+ if (!(response !== null && response !== void 0 && (_response$revisions = response.revisions) !== null && _response$revisions !== void 0 && _response$revisions.data)) {
203
216
  return;
204
217
  }
205
218
 
206
219
  var revisions = response.revisions;
207
- var prevPublished = revisions.data.findIndex(function (item) {
220
+ var prevPublished = revisions.data.find(function (item) {
208
221
  return item.id !== publishedId && item.meta.status === "published";
209
222
  });
210
223
 
211
- if (prevPublished === -1) {
224
+ if (!prevPublished) {
212
225
  return;
213
226
  }
214
227
 
215
- cache.writeQuery((0, _objectSpread2.default)((0, _objectSpread2.default)({}, gqlParams), {}, {
228
+ var query = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, gqlParams), {}, {
216
229
  data: {
217
- revisions: _dotPropImmutable.default.set(revisions, "data.".concat(prevPublished, ".meta.status"), "unpublished")
230
+ revisions: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, revisions), {}, {
231
+ data: revisions.data.map(function (revision) {
232
+ if (revision.id !== prevPublished.id) {
233
+ return (0, _objectSpread2.default)({}, revision);
234
+ }
235
+
236
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, revision), {}, {
237
+ meta: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, revision.meta), {}, {
238
+ status: "unpublished"
239
+ })
240
+ });
241
+ })
242
+ })
218
243
  }
219
- }));
244
+ });
245
+ cache.writeQuery(query);
220
246
  };
221
247
 
222
248
  exports.unpublishPreviouslyPublishedRevision = unpublishPreviouslyPublishedRevision;
@@ -1 +1 @@
1
- {"version":3,"names":["sortEntries","list","sort","Array","isArray","console","log","length","sortBy","split","key","value","order","toLowerCase","orderBy","addEntryToListCache","model","cache","entry","variables","gqlParams","query","GQL","createListQuery","response","readQuery","content","data","writeQuery","updateLatestRevisionInListCache","revision","id","uniqueId","index","findIndex","item","startsWith","dotProp","set","removeEntryFromListCache","parseIdentifier","entryId","delete","removeRevisionFromEntryCache","createRevisionsQuery","revisions","revisionsData","filter","addRevisionToRevisionsCache","unpublishPreviouslyPublishedRevision","publishedId","prevPublished","meta","status"],"sources":["cache.ts"],"sourcesContent":["import dotProp from \"dot-prop-immutable\";\nimport orderBy from \"lodash/orderBy\";\nimport { CmsContentEntryRevision, CmsEditorContentEntry, CmsModel } from \"~/types\";\nimport * as GQL from \"~/admin/graphql/contentEntries\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { DataProxy } from \"apollo-cache\";\nimport {\n CmsEntriesListQueryResponse,\n CmsEntriesListQueryVariables,\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n} from \"~/admin/graphql/contentEntries\";\n\n/*\n * We need to preserve the order of entries with new entry addition\n * because we're not re-fetching the list but updating it directly inside cache.\n * */\nconst sortEntries = (\n list: CmsEditorContentEntry[],\n sort?: string[] | null\n): CmsEditorContentEntry[] => {\n if (!sort) {\n return list;\n } else if (Array.isArray(sort) === false) {\n console.log(\"Sort is not an Array of strings.\");\n return list;\n } else if (sort.length === 0) {\n return list;\n }\n const [sortBy] = sort;\n const [key, value] = sortBy.split(\"_\");\n const order = value.toLowerCase() as \"asc\" | \"desc\";\n return orderBy(list, [key], [order]);\n};\n\nexport const addEntryToListCache = (\n model: CmsModel,\n cache: DataProxy,\n entry: CmsEditorContentEntry,\n variables: CmsEntriesListQueryVariables\n): void => {\n const gqlParams = { query: GQL.createListQuery(model), variables };\n const response = cache.readQuery<CmsEntriesListQueryResponse, CmsEntriesListQueryVariables>(\n gqlParams\n );\n if (!response || !response.content || !response.content.data) {\n return;\n }\n const { content } = response;\n cache.writeQuery({\n ...gqlParams,\n data: {\n content: {\n ...content,\n data: sortEntries([entry, ...content.data], variables.sort)\n }\n }\n });\n};\n\nexport const updateLatestRevisionInListCache = (\n model: CmsModel,\n cache: DataProxy,\n revision: CmsContentEntryRevision,\n variables: CmsEntriesListQueryVariables\n): void => {\n const gqlParams = { query: GQL.createListQuery(model), variables };\n\n const [uniqueId] = revision.id.split(\"#\");\n\n const response = cache.readQuery<CmsEntriesListQueryResponse, CmsEntriesListQueryVariables>(\n gqlParams\n );\n if (!response || !response.content || !response.content.data) {\n return;\n }\n const { content } = response;\n const index = content.data.findIndex(item => item.id.startsWith(uniqueId));\n if (index === -1) {\n return;\n }\n\n cache.writeQuery({\n ...gqlParams,\n data: {\n content: dotProp.set(content, `data.${index}`, revision)\n }\n });\n};\n\nexport const removeEntryFromListCache = (\n model: CmsModel,\n cache: DataProxy,\n revision: CmsContentEntryRevision,\n variables: CmsEntriesListQueryVariables\n): void => {\n // Delete the item from list cache\n const gqlParams = { query: GQL.createListQuery(model), variables };\n const response = cache.readQuery<CmsEntriesListQueryResponse, CmsEntriesListQueryVariables>(\n gqlParams\n );\n if (!response || !response.content || !response.content.data) {\n return;\n }\n const { content } = response;\n const { id: entryId } = parseIdentifier(revision.id);\n const index = content.data.findIndex(item => item.id.startsWith(entryId));\n if (index === -1) {\n return;\n }\n\n cache.writeQuery({\n ...gqlParams,\n data: {\n content: dotProp.delete(content, `data.${index}`)\n }\n });\n};\n\nexport const removeRevisionFromEntryCache = (\n model: CmsModel,\n cache: DataProxy,\n revision: CmsContentEntryRevision\n): CmsContentEntryRevision[] => {\n const gqlParams = {\n query: GQL.createRevisionsQuery(model),\n variables: { id: revision.id.split(\"#\")[0] }\n };\n\n const response = cache.readQuery<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >(gqlParams);\n if (\n !response ||\n !response.revisions ||\n !response.revisions.data ||\n response.revisions.data.length === 0\n ) {\n return [];\n }\n\n const { revisions: revisionsData } = response;\n\n const revisions = revisionsData.data.filter(item => {\n return item.id !== revision.id;\n });\n\n cache.writeQuery({\n ...gqlParams,\n data: {\n revisions\n }\n });\n\n return revisions;\n};\n\nexport const addRevisionToRevisionsCache = (\n model: CmsModel,\n cache: DataProxy,\n revision: CmsContentEntryRevision\n): void => {\n const gqlParams = {\n query: GQL.createRevisionsQuery(model),\n variables: { id: revision.id.split(\"#\")[0] }\n };\n\n const response = cache.readQuery<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >(gqlParams);\n\n if (!response || !response.revisions || !response.revisions.data) {\n return;\n }\n const { revisions } = response;\n\n cache.writeQuery({\n ...gqlParams,\n data: {\n revisions: dotProp.set(revisions, `data`, [revision, ...revisions.data])\n }\n });\n};\n\nexport const unpublishPreviouslyPublishedRevision = (\n model: CmsModel,\n cache: DataProxy,\n publishedId: string\n): void => {\n const gqlParams = {\n query: GQL.createRevisionsQuery(model),\n variables: { id: publishedId.split(\"#\")[0] }\n };\n\n const response = cache.readQuery<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >(gqlParams);\n\n if (!response || !response.revisions || !response.revisions.data) {\n return;\n }\n const { revisions } = response;\n\n const prevPublished = revisions.data.findIndex(\n item => item.id !== publishedId && item.meta.status === \"published\"\n );\n\n if (prevPublished === -1) {\n return;\n }\n\n cache.writeQuery({\n ...gqlParams,\n data: {\n revisions: dotProp.set(revisions, `data.${prevPublished}.meta.status`, \"unpublished\")\n }\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["sortEntries","list","sort","Array","isArray","console","warn","length","sortBy","split","key","value","order","toLowerCase","orderBy","addEntryToListCache","model","cache","entry","variables","gqlParams","query","GQL","createListQuery","response","readQuery","content","data","writeQuery","updateLatestRevisionInListCache","revision","parseIdentifier","id","uniqueId","index","findIndex","item","startsWith","dotProp","set","removeEntryFromListCache","entryId","delete","removeRevisionFromEntryCache","createRevisionsQuery","revisions","filter","addRevisionToRevisionsCache","unpublishPreviouslyPublishedRevision","publishedId","prevPublished","find","meta","status","map"],"sources":["cache.ts"],"sourcesContent":["import dotProp from \"dot-prop-immutable\";\nimport orderBy from \"lodash/orderBy\";\nimport { CmsContentEntryRevision, CmsEditorContentEntry, CmsModel } from \"~/types\";\nimport * as GQL from \"~/admin/graphql/contentEntries\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport { DataProxy } from \"apollo-cache\";\nimport {\n CmsEntriesListQueryResponse,\n CmsEntriesListQueryVariables,\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n} from \"~/admin/graphql/contentEntries\";\n\n/*\n * We need to preserve the order of entries with new entry addition\n * because we're not re-fetching the list but updating it directly inside cache.\n * */\nconst sortEntries = (\n list: CmsEditorContentEntry[],\n sort?: string[] | null\n): CmsEditorContentEntry[] => {\n if (!sort) {\n return list;\n } else if (Array.isArray(sort) === false) {\n console.warn(\"Sort is not an Array of strings.\");\n return list;\n } else if (sort.length === 0) {\n return list;\n }\n const [sortBy] = sort;\n const [key, value] = sortBy.split(\"_\");\n const order = value.toLowerCase() as \"asc\" | \"desc\";\n return orderBy(list, [key], [order]);\n};\n\nexport const addEntryToListCache = (\n model: CmsModel,\n cache: DataProxy,\n entry: CmsEditorContentEntry,\n variables: CmsEntriesListQueryVariables\n): void => {\n const gqlParams = { query: GQL.createListQuery(model), variables };\n const response = cache.readQuery<CmsEntriesListQueryResponse, CmsEntriesListQueryVariables>(\n gqlParams\n );\n if (!response || !response.content || !response.content.data) {\n return;\n }\n const { content } = response;\n cache.writeQuery({\n ...gqlParams,\n data: {\n content: {\n ...content,\n data: sortEntries([entry, ...content.data], variables.sort)\n }\n }\n });\n};\n\nexport const updateLatestRevisionInListCache = (\n model: CmsModel,\n cache: DataProxy,\n revision: CmsContentEntryRevision,\n variables: CmsEntriesListQueryVariables\n): void => {\n const gqlParams = { query: GQL.createListQuery(model), variables };\n\n const { id: uniqueId } = parseIdentifier(revision.id);\n\n const response = cache.readQuery<CmsEntriesListQueryResponse, CmsEntriesListQueryVariables>(\n gqlParams\n );\n if (!response || !response.content || !response.content.data) {\n return;\n }\n const { content } = response;\n const index = content.data.findIndex(item => item.id.startsWith(uniqueId));\n if (index === -1) {\n return;\n }\n\n cache.writeQuery({\n ...gqlParams,\n data: {\n content: dotProp.set(content, `data.${index}`, revision)\n }\n });\n};\n\nexport const removeEntryFromListCache = (\n model: CmsModel,\n cache: DataProxy,\n revision: CmsContentEntryRevision,\n variables: CmsEntriesListQueryVariables\n): void => {\n // Delete the item from list cache\n const gqlParams = { query: GQL.createListQuery(model), variables };\n const response = cache.readQuery<CmsEntriesListQueryResponse, CmsEntriesListQueryVariables>(\n gqlParams\n );\n if (!response || !response.content || !response.content.data) {\n return;\n }\n const { content } = response;\n const { id: entryId } = parseIdentifier(revision.id);\n const index = content.data.findIndex(item => item.id.startsWith(entryId));\n if (index === -1) {\n return;\n }\n\n cache.writeQuery({\n ...gqlParams,\n data: {\n content: dotProp.delete(content, `data.${index}`)\n }\n });\n};\n\nexport const removeRevisionFromEntryCache = (\n model: CmsModel,\n cache: DataProxy,\n revision: CmsContentEntryRevision\n): CmsContentEntryRevision[] => {\n const { id } = parseIdentifier(revision.id);\n const gqlParams = {\n query: GQL.createRevisionsQuery(model),\n variables: {\n id\n }\n };\n\n const response = cache.readQuery<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >(gqlParams);\n if (\n !response ||\n !response.revisions ||\n !response.revisions.data ||\n response.revisions.data.length === 0\n ) {\n return [];\n }\n\n const { revisions } = response;\n\n const data = revisions.data.filter(item => {\n return item.id !== revision.id;\n });\n\n const query = {\n ...gqlParams,\n data: {\n revisions: {\n ...revisions,\n data\n }\n }\n };\n\n cache.writeQuery(query);\n\n return data;\n};\n\nexport const addRevisionToRevisionsCache = (\n model: CmsModel,\n cache: DataProxy,\n revision: CmsContentEntryRevision\n): void => {\n const { id } = parseIdentifier(revision.id);\n const gqlParams = {\n query: GQL.createRevisionsQuery(model),\n variables: {\n id\n }\n };\n\n const response = cache.readQuery<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >(gqlParams);\n\n if (!response || !response.revisions || !response.revisions.data) {\n return;\n }\n const { revisions } = response;\n\n cache.writeQuery({\n ...gqlParams,\n data: {\n revisions: dotProp.set(revisions, `data`, [revision, ...revisions.data])\n }\n });\n};\n\nexport const unpublishPreviouslyPublishedRevision = (\n model: CmsModel,\n cache: DataProxy,\n publishedId: string\n): void => {\n const { id } = parseIdentifier(publishedId);\n const gqlParams = {\n query: GQL.createRevisionsQuery(model),\n variables: {\n id\n }\n };\n\n const response = cache.readQuery<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >(gqlParams);\n\n if (!response?.revisions?.data) {\n return;\n }\n const { revisions } = response;\n\n const prevPublished = revisions.data.find(\n item => item.id !== publishedId && item.meta.status === \"published\"\n );\n\n if (!prevPublished) {\n return;\n }\n\n const query: DataProxy.WriteQueryOptions<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n > = {\n ...gqlParams,\n data: {\n revisions: {\n ...revisions,\n data: revisions.data.map(revision => {\n if (revision.id !== prevPublished.id) {\n return {\n ...revision\n };\n }\n return {\n ...revision,\n meta: {\n ...revision.meta,\n status: \"unpublished\"\n }\n };\n })\n }\n }\n };\n\n cache.writeQuery(query);\n};\n"],"mappings":"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"}
@@ -15,8 +15,6 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
15
15
 
16
16
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
17
 
18
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
-
20
18
  var _react = _interopRequireWildcard(require("react"));
21
19
 
22
20
  var _emotion = require("emotion");
@@ -41,21 +39,19 @@ var _useConfirmationDialog = require("@webiny/app-admin/hooks/useConfirmationDia
41
39
 
42
40
  var _i18n = require("@webiny/app/i18n");
43
41
 
44
- var _contentEntries = require("../../../../../graphql/contentEntries");
45
-
46
42
  var _usePermission2 = _interopRequireDefault(require("../../../../../hooks/usePermission"));
47
43
 
48
44
  var _more_vert = require("../../../../../icons/more_vert.svg");
49
45
 
50
46
  var _delete = require("../../../../../icons/delete.svg");
51
47
 
52
- var _cache = require("../../cache");
53
-
54
48
  var _hooks = require("../../../../../hooks");
55
49
 
56
50
  var _useContentEntry2 = require("../../../hooks/useContentEntry");
57
51
 
58
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
52
+ var _utils = require("@webiny/utils");
53
+
54
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
59
55
 
60
56
  var t = _i18n.i18n.ns("app-headless-cms/admin/plugins/content-details/header/content-form-options-menu");
61
57
 
@@ -70,6 +66,9 @@ var menuStyles = /*#__PURE__*/(0, _emotion.css)({
70
66
  }, "label:menuStyles;");
71
67
 
72
68
  var ContentFormOptionsMenu = function ContentFormOptionsMenu() {
69
+ var _useCms = (0, _hooks.useCms)(),
70
+ deleteEntry = _useCms.deleteEntry;
71
+
73
72
  var _useContentEntry = (0, _useContentEntry2.useContentEntry)(),
74
73
  contentModel = _useContentEntry.contentModel,
75
74
  entry = _useContentEntry.entry,
@@ -89,14 +88,6 @@ var ContentFormOptionsMenu = function ContentFormOptionsMenu() {
89
88
  var _usePermission = (0, _usePermission2.default)(),
90
89
  canDelete = _usePermission.canDelete;
91
90
 
92
- var DELETE_CONTENT = (0, _react.useMemo)(function () {
93
- return (0, _contentEntries.createDeleteMutation)(contentModel);
94
- }, [contentModel.modelId]);
95
-
96
- var _useMutation = (0, _hooks.useMutation)(DELETE_CONTENT),
97
- _useMutation2 = (0, _slicedToArray2.default)(_useMutation, 1),
98
- deleteContentMutation = _useMutation2[0];
99
-
100
91
  var title = (0, _get.default)(entry, "meta.title");
101
92
 
102
93
  var _useConfirmationDialo = (0, _useConfirmationDialog.useConfirmationDialog)({
@@ -110,49 +101,44 @@ var ContentFormOptionsMenu = function ContentFormOptionsMenu() {
110
101
 
111
102
  var confirmDelete = (0, _react.useCallback)(function () {
112
103
  showConfirmation( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
113
- var _entry$id$split, _entry$id$split2, uniqueId;
104
+ var _parseIdentifier, entryId, _yield$deleteEntry, error;
114
105
 
115
106
  return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
116
107
  while (1) {
117
108
  switch (_context.prev = _context.next) {
118
109
  case 0:
119
110
  setLoading(true);
120
- _entry$id$split = entry.id.split("#"), _entry$id$split2 = (0, _slicedToArray2.default)(_entry$id$split, 1), uniqueId = _entry$id$split2[0];
111
+ _parseIdentifier = (0, _utils.parseIdentifier)(entry.id), entryId = _parseIdentifier.id;
121
112
  _context.next = 4;
122
- return deleteContentMutation({
123
- variables: {
124
- revision: uniqueId
125
- },
126
- update: function update(cache, response) {
127
- if (!response.data) {
128
- showDialog("Missing response data on Delete Entry Mutation.", {
129
- title: t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Could not delete content"])))
130
- });
131
- return;
132
- }
133
-
134
- var error = response.data.content.error;
135
-
136
- if (error) {
137
- showDialog(error.message, {
138
- title: t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Could not delete content"])))
139
- });
140
- return;
141
- }
142
-
143
- setLoading(false);
144
- (0, _cache.removeEntryFromListCache)(contentModel, cache, entry, listQueryVariables);
145
- showSnackbar(t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["{title} was deleted successfully!"])))({
146
- title: /*#__PURE__*/_react.default.createElement("strong", null, title)
147
- }));
148
- history.push("/cms/content-entries/".concat(contentModel.modelId));
149
- }
113
+ return deleteEntry({
114
+ model: contentModel,
115
+ entry: entry,
116
+ id: entryId,
117
+ listQueryVariables: listQueryVariables
150
118
  });
151
119
 
152
120
  case 4:
121
+ _yield$deleteEntry = _context.sent;
122
+ error = _yield$deleteEntry.error;
153
123
  setLoading(false);
154
124
 
155
- case 5:
125
+ if (!error) {
126
+ _context.next = 10;
127
+ break;
128
+ }
129
+
130
+ showDialog(error.message, {
131
+ title: t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Could not delete content"])))
132
+ });
133
+ return _context.abrupt("return");
134
+
135
+ case 10:
136
+ showSnackbar(t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["{title} was deleted successfully!"])))({
137
+ title: /*#__PURE__*/_react.default.createElement("strong", null, title)
138
+ }));
139
+ history.push("/cms/content-entries/".concat(contentModel.modelId));
140
+
141
+ case 12:
156
142
  case "end":
157
143
  return _context.stop();
158
144
  }
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","menuStyles","css","width","right","left","opacity","pointerEvents","ContentFormOptionsMenu","useContentEntry","contentModel","entry","loading","setLoading","listQueryVariables","useSnackbar","showSnackbar","useRouter","history","useDialog","showDialog","usePermission","canDelete","DELETE_CONTENT","useMemo","createDeleteMutation","modelId","useMutation","deleteContentMutation","title","get","useConfirmationDialog","message","dataTestId","showConfirmation","confirmDelete","useCallback","id","split","uniqueId","variables","revision","update","cache","response","data","error","content","removeEntryFromListCache","push"],"sources":["ContentFormOptionsMenu.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport get from \"lodash/get\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Menu, MenuItem } from \"@webiny/ui/Menu\";\nimport { ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useDialog } from \"@webiny/app-admin/hooks/useDialog\";\nimport { useConfirmationDialog } from \"@webiny/app-admin/hooks/useConfirmationDialog\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables,\n createDeleteMutation\n} from \"~/admin/graphql/contentEntries\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { removeEntryFromListCache } from \"../../cache\";\nimport { useMutation } from \"~/admin/hooks\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\n\nconst t = i18n.ns(\n \"app-headless-cms/admin/plugins/content-details/header/content-form-options-menu\"\n);\n\nconst menuStyles = css({\n width: 250,\n right: -105,\n left: \"auto !important\",\n \".disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst ContentFormOptionsMenu: React.FC = () => {\n const { contentModel, entry, loading, setLoading, listQueryVariables } = useContentEntry();\n const { showSnackbar } = useSnackbar();\n const { history } = useRouter();\n const { showDialog } = useDialog();\n const { canDelete } = usePermission();\n\n const DELETE_CONTENT = useMemo(() => {\n return createDeleteMutation(contentModel);\n }, [contentModel.modelId]);\n\n const [deleteContentMutation] = useMutation<\n CmsEntryDeleteMutationResponse,\n CmsEntryDeleteMutationVariables\n >(DELETE_CONTENT);\n\n const title = get(entry, \"meta.title\");\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Delete content entry`,\n message: (\n <p>\n {t`You are about to delete this content entry and all of its revisions!`}\n <br />\n {t`Are you sure you want to permanently delete {title}?`({\n title: <strong>{title}</strong>\n })}\n </p>\n ),\n dataTestId: \"cms.content-form.header.delete-dialog\"\n });\n\n const confirmDelete = useCallback((): void => {\n showConfirmation(async (): Promise<void> => {\n setLoading(true);\n const [uniqueId] = entry.id.split(\"#\");\n await deleteContentMutation({\n variables: { revision: uniqueId },\n update(cache, response) {\n if (!response.data) {\n showDialog(\"Missing response data on Delete Entry Mutation.\", {\n title: t`Could not delete content`\n });\n return;\n }\n const { error } = response.data.content;\n if (error) {\n showDialog(error.message, { title: t`Could not delete content` });\n return;\n }\n\n setLoading(false);\n removeEntryFromListCache(contentModel, cache, entry, listQueryVariables);\n\n showSnackbar(\n t`{title} was deleted successfully!`({ title: <strong>{title}</strong> })\n );\n history.push(`/cms/content-entries/${contentModel.modelId}`);\n }\n });\n\n setLoading(false);\n });\n }, [entry]);\n\n if (!canDelete(entry, \"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <Menu\n className={menuStyles}\n handle={\n <IconButton\n icon={<MoreVerticalIcon />}\n data-testid={\"cms.content-form.header.more-options\"}\n />\n }\n >\n <MenuItem\n onClick={confirmDelete}\n disabled={!entry.id || loading}\n data-testid={\"cms.content-form.header.delete\"}\n >\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n Delete\n </MenuItem>\n </Menu>\n );\n};\n\nexport default ContentFormOptionsMenu;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","ns","menuStyles","css","width","right","left","opacity","pointerEvents","ContentFormOptionsMenu","useCms","deleteEntry","useContentEntry","contentModel","entry","loading","setLoading","listQueryVariables","useSnackbar","showSnackbar","useRouter","history","useDialog","showDialog","usePermission","canDelete","title","get","useConfirmationDialog","message","dataTestId","showConfirmation","confirmDelete","useCallback","parseIdentifier","id","entryId","model","error","push","modelId"],"sources":["ContentFormOptionsMenu.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { css } from \"emotion\";\nimport get from \"lodash/get\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Menu, MenuItem } from \"@webiny/ui/Menu\";\nimport { ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useDialog } from \"@webiny/app-admin/hooks/useDialog\";\nimport { useConfirmationDialog } from \"@webiny/app-admin/hooks/useConfirmationDialog\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { useCms } from \"~/admin/hooks\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { parseIdentifier } from \"@webiny/utils\";\n\nconst t = i18n.ns(\n \"app-headless-cms/admin/plugins/content-details/header/content-form-options-menu\"\n);\n\nconst menuStyles = css({\n width: 250,\n right: -105,\n left: \"auto !important\",\n \".disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst ContentFormOptionsMenu: React.FC = () => {\n const { deleteEntry } = useCms();\n const { contentModel, entry, loading, setLoading, listQueryVariables } = useContentEntry();\n const { showSnackbar } = useSnackbar();\n const { history } = useRouter();\n const { showDialog } = useDialog();\n const { canDelete } = usePermission();\n\n const title = get(entry, \"meta.title\");\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Delete content entry`,\n message: (\n <p>\n {t`You are about to delete this content entry and all of its revisions!`}\n <br />\n {t`Are you sure you want to permanently delete {title}?`({\n title: <strong>{title}</strong>\n })}\n </p>\n ),\n dataTestId: \"cms.content-form.header.delete-dialog\"\n });\n\n const confirmDelete = useCallback((): void => {\n showConfirmation(async (): Promise<void> => {\n setLoading(true);\n\n const { id: entryId } = parseIdentifier(entry.id);\n const { error } = await deleteEntry({\n model: contentModel,\n entry,\n id: entryId,\n listQueryVariables\n });\n\n setLoading(false);\n\n if (error) {\n showDialog(error.message, { title: t`Could not delete content` });\n return;\n }\n\n showSnackbar(t`{title} was deleted successfully!`({ title: <strong>{title}</strong> }));\n history.push(`/cms/content-entries/${contentModel.modelId}`);\n });\n }, [entry]);\n\n if (!canDelete(entry, \"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <Menu\n className={menuStyles}\n handle={\n <IconButton\n icon={<MoreVerticalIcon />}\n data-testid={\"cms.content-form.header.more-options\"}\n />\n }\n >\n <MenuItem\n onClick={confirmDelete}\n disabled={!entry.id || loading}\n data-testid={\"cms.content-form.header.delete\"}\n >\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n Delete\n </MenuItem>\n </Menu>\n );\n};\n\nexport default ContentFormOptionsMenu;\n"],"mappings":"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"}
@@ -13,13 +13,13 @@ var React = _interopRequireWildcard(require("react"));
13
13
 
14
14
  var _RevisionSelector = _interopRequireDefault(require("./revisionSelector/RevisionSelector"));
15
15
 
16
- var _RequestReview = _interopRequireDefault(require("./requestReview/RequestReview"));
16
+ var _RequestReview = require("./requestReview/RequestReview");
17
17
 
18
- var _RequestChanges = _interopRequireDefault(require("./requestChanges/RequestChanges"));
18
+ var _RequestChanges = require("./requestChanges/RequestChanges");
19
19
 
20
20
  var _SaveContent = _interopRequireDefault(require("./saveContent/SaveContent"));
21
21
 
22
- var _SaveAndPublishContent = _interopRequireDefault(require("./saveAndPublishContent/SaveAndPublishContent"));
22
+ var _SaveAndPublishContent = require("./saveAndPublishContent/SaveAndPublishContent");
23
23
 
24
24
  var _ContentFormOptionsMenu = _interopRequireDefault(require("./contentFormOptionsMenu/ContentFormOptionsMenu"));
25
25
 
@@ -33,13 +33,13 @@ var plugins = [{
33
33
  name: "cms-content-details-header-request-review",
34
34
  type: "cms-content-details-header-right",
35
35
  render: function render(props) {
36
- return /*#__PURE__*/React.createElement(_RequestReview.default, props);
36
+ return /*#__PURE__*/React.createElement(_RequestReview.RequestReview, props);
37
37
  }
38
38
  }, {
39
39
  name: "cms-content-details-header-request-changes",
40
40
  type: "cms-content-details-header-right",
41
41
  render: function render(props) {
42
- return /*#__PURE__*/React.createElement(_RequestChanges.default, props);
42
+ return /*#__PURE__*/React.createElement(_RequestChanges.RequestChanges, props);
43
43
  }
44
44
  }, {
45
45
  name: "cms-content-details-header-save",
@@ -51,7 +51,7 @@ var plugins = [{
51
51
  name: "cms-content-details-header-save-and-publish",
52
52
  type: "cms-content-details-header-right",
53
53
  render: function render(props) {
54
- return /*#__PURE__*/React.createElement(_SaveAndPublishContent.default, props);
54
+ return /*#__PURE__*/React.createElement(_SaveAndPublishContent.SaveAndPublishButton, props);
55
55
  }
56
56
  }, {
57
57
  name: "cms-content-details-header-option-menu",
@@ -1 +1 @@
1
- {"version":3,"names":["plugins","name","type","render","props"],"sources":["index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { CmsContentDetailsPlugin } from \"~/types\";\nimport RevisionSelector from \"./revisionSelector/RevisionSelector\";\nimport RequestReview from \"./requestReview/RequestReview\";\nimport RequestChanges from \"./requestChanges/RequestChanges\";\nimport SaveContentButton from \"./saveContent/SaveContent\";\nimport SaveAndPublishButton from \"./saveAndPublishContent/SaveAndPublishContent\";\nimport ContentFormOptionsMenu from \"./contentFormOptionsMenu/ContentFormOptionsMenu\";\n\nconst plugins: CmsContentDetailsPlugin[] = [\n {\n name: \"cms-content-details-revision-selector\",\n type: \"cms-content-details-header-left\",\n render(props) {\n return <RevisionSelector {...props} />;\n }\n },\n {\n name: \"cms-content-details-header-request-review\",\n type: \"cms-content-details-header-right\",\n render(props) {\n return <RequestReview {...props} />;\n }\n },\n {\n name: \"cms-content-details-header-request-changes\",\n type: \"cms-content-details-header-right\",\n render(props) {\n return <RequestChanges {...props} />;\n }\n },\n {\n name: \"cms-content-details-header-save\",\n type: \"cms-content-details-header-right\",\n render(props) {\n return <SaveContentButton {...props} />;\n }\n },\n {\n name: \"cms-content-details-header-save-and-publish\",\n type: \"cms-content-details-header-right\",\n render(props) {\n return <SaveAndPublishButton {...props} />;\n }\n },\n {\n name: \"cms-content-details-header-option-menu\",\n type: \"cms-content-details-header-right\",\n render(props) {\n return <ContentFormOptionsMenu {...props} />;\n }\n }\n];\n\nexport default plugins;\n"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,OAAkC,GAAG,CACvC;EACIC,IAAI,EAAE,uCADV;EAEIC,IAAI,EAAE,iCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,yBAAD,EAAsBA,KAAtB,CAAP;EACH;AALL,CADuC,EAQvC;EACIH,IAAI,EAAE,2CADV;EAEIC,IAAI,EAAE,kCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,sBAAD,EAAmBA,KAAnB,CAAP;EACH;AALL,CARuC,EAevC;EACIH,IAAI,EAAE,4CADV;EAEIC,IAAI,EAAE,kCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,uBAAD,EAAoBA,KAApB,CAAP;EACH;AALL,CAfuC,EAsBvC;EACIH,IAAI,EAAE,iCADV;EAEIC,IAAI,EAAE,kCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,oBAAD,EAAuBA,KAAvB,CAAP;EACH;AALL,CAtBuC,EA6BvC;EACIH,IAAI,EAAE,6CADV;EAEIC,IAAI,EAAE,kCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,8BAAD,EAA0BA,KAA1B,CAAP;EACH;AALL,CA7BuC,EAoCvC;EACIH,IAAI,EAAE,wCADV;EAEIC,IAAI,EAAE,kCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,+BAAD,EAA4BA,KAA5B,CAAP;EACH;AALL,CApCuC,CAA3C;eA6CeJ,O"}
1
+ {"version":3,"names":["plugins","name","type","render","props"],"sources":["index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { CmsContentDetailsPlugin } from \"~/types\";\nimport RevisionSelector from \"./revisionSelector/RevisionSelector\";\nimport { RequestReview } from \"./requestReview/RequestReview\";\nimport { RequestChanges } from \"./requestChanges/RequestChanges\";\nimport SaveContentButton from \"./saveContent/SaveContent\";\nimport { SaveAndPublishButton } from \"./saveAndPublishContent/SaveAndPublishContent\";\nimport ContentFormOptionsMenu from \"./contentFormOptionsMenu/ContentFormOptionsMenu\";\n\nconst plugins: CmsContentDetailsPlugin[] = [\n {\n name: \"cms-content-details-revision-selector\",\n type: \"cms-content-details-header-left\",\n render(props) {\n return <RevisionSelector {...props} />;\n }\n },\n {\n name: \"cms-content-details-header-request-review\",\n type: \"cms-content-details-header-right\",\n render(props) {\n return <RequestReview {...props} />;\n }\n },\n {\n name: \"cms-content-details-header-request-changes\",\n type: \"cms-content-details-header-right\",\n render(props) {\n return <RequestChanges {...props} />;\n }\n },\n {\n name: \"cms-content-details-header-save\",\n type: \"cms-content-details-header-right\",\n render(props) {\n return <SaveContentButton {...props} />;\n }\n },\n {\n name: \"cms-content-details-header-save-and-publish\",\n type: \"cms-content-details-header-right\",\n render(props) {\n return <SaveAndPublishButton {...props} />;\n }\n },\n {\n name: \"cms-content-details-header-option-menu\",\n type: \"cms-content-details-header-right\",\n render(props) {\n return <ContentFormOptionsMenu {...props} />;\n }\n }\n];\n\nexport default plugins;\n"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,OAAkC,GAAG,CACvC;EACIC,IAAI,EAAE,uCADV;EAEIC,IAAI,EAAE,iCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,yBAAD,EAAsBA,KAAtB,CAAP;EACH;AALL,CADuC,EAQvC;EACIH,IAAI,EAAE,2CADV;EAEIC,IAAI,EAAE,kCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,4BAAD,EAAmBA,KAAnB,CAAP;EACH;AALL,CARuC,EAevC;EACIH,IAAI,EAAE,4CADV;EAEIC,IAAI,EAAE,kCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,8BAAD,EAAoBA,KAApB,CAAP;EACH;AALL,CAfuC,EAsBvC;EACIH,IAAI,EAAE,iCADV;EAEIC,IAAI,EAAE,kCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,oBAAD,EAAuBA,KAAvB,CAAP;EACH;AALL,CAtBuC,EA6BvC;EACIH,IAAI,EAAE,6CADV;EAEIC,IAAI,EAAE,kCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,2CAAD,EAA0BA,KAA1B,CAAP;EACH;AALL,CA7BuC,EAoCvC;EACIH,IAAI,EAAE,wCADV;EAEIC,IAAI,EAAE,kCAFV;EAGIC,MAHJ,kBAGWC,KAHX,EAGkB;IACV,oBAAO,oBAAC,+BAAD,EAA4BA,KAA5B,CAAP;EACH;AALL,CApCuC,CAA3C;eA6CeJ,O"}
@@ -1,2 +1 @@
1
- declare const RequestChanges: () => JSX.Element | null;
2
- export default RequestChanges;
1
+ export declare const RequestChanges: import("@webiny/react-composition").ComposableFC<{}>;
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.RequestChanges = void 0;
9
9
 
10
10
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
11
11
 
@@ -31,11 +31,13 @@ var _useRevision2 = require("../../useRevision");
31
31
 
32
32
  var _useContentEntry2 = require("../../../hooks/useContentEntry");
33
33
 
34
+ var _reactComposition = require("@webiny/react-composition");
35
+
34
36
  var _templateObject, _templateObject2, _templateObject3;
35
37
 
36
38
  var t = _i18n.i18n.ns("app-headless-cms/admin/content-details/header/request-review");
37
39
 
38
- var RequestChanges = function RequestChanges() {
40
+ var RequestChangesComponent = function RequestChangesComponent() {
39
41
  var _useContentEntry = (0, _useContentEntry2.useContentEntry)(),
40
42
  entry = _useContentEntry.entry;
41
43
 
@@ -84,5 +86,5 @@ var RequestChanges = function RequestChanges() {
84
86
  })));
85
87
  };
86
88
 
87
- var _default = RequestChanges;
88
- exports.default = _default;
89
+ var RequestChanges = (0, _reactComposition.makeComposable)("RequestChanges", RequestChangesComponent);
90
+ exports.RequestChanges = RequestChanges;
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","RequestChanges","useContentEntry","entry","useRevision","revision","requestChanges","usePermission","canRequestChange","useConfirmationDialog","title","message","showConfirmation","buttonEnabled","id","meta","status"],"sources":["RequestChanges.tsx"],"sourcesContent":["import React from \"react\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { useConfirmationDialog } from \"@webiny/app-admin/hooks/useConfirmationDialog\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as RequestChangesIcon } from \"./rule-24px.svg\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { useRevision } from \"~/admin/views/contentEntries/ContentEntry/useRevision\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/content-details/header/request-review\");\n\nconst RequestChanges = () => {\n const { entry } = useContentEntry();\n const { requestChanges } = useRevision({ revision: entry });\n const { canRequestChange } = usePermission();\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Request Changes`,\n message: (\n <p>{t`You are about to request changes on this content entry. Are you sure you want to continue?`}</p>\n )\n });\n\n if (!canRequestChange(\"cms.contentEntry\")) {\n return null;\n }\n\n const buttonEnabled =\n entry.id && (entry.meta.status === \"draft\" || entry.meta.status === \"reviewRequested\");\n\n return (\n <React.Fragment>\n <Tooltip content={t`Request Changes`} placement={\"top\"}>\n <IconButton\n disabled={!buttonEnabled}\n icon={<RequestChangesIcon />}\n onClick={() =>\n showConfirmation(async () => {\n await requestChanges(entry.id);\n })\n }\n />\n </Tooltip>\n </React.Fragment>\n );\n};\n\nexport default RequestChanges;\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,8DAAR,CAAV;;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAM;EACzB,uBAAkB,IAAAC,iCAAA,GAAlB;EAAA,IAAQC,KAAR,oBAAQA,KAAR;;EACA,mBAA2B,IAAAC,yBAAA,EAAY;IAAEC,QAAQ,EAAEF;EAAZ,CAAZ,CAA3B;EAAA,IAAQG,cAAR,gBAAQA,cAAR;;EACA,qBAA6B,IAAAC,uBAAA,GAA7B;EAAA,IAAQC,gBAAR,kBAAQA,gBAAR;;EAEA,4BAA6B,IAAAC,4CAAA,EAAsB;IAC/CC,KAAK,EAAEZ,CAAF,kGAD0C;IAE/Ca,OAAO,eACH,wCAAIb,CAAJ;EAH2C,CAAtB,CAA7B;EAAA,IAAQc,gBAAR,yBAAQA,gBAAR;;EAOA,IAAI,CAACJ,gBAAgB,CAAC,kBAAD,CAArB,EAA2C;IACvC,OAAO,IAAP;EACH;;EAED,IAAMK,aAAa,GACfV,KAAK,CAACW,EAAN,KAAaX,KAAK,CAACY,IAAN,CAAWC,MAAX,KAAsB,OAAtB,IAAiCb,KAAK,CAACY,IAAN,CAAWC,MAAX,KAAsB,iBAApE,CADJ;EAGA,oBACI,6BAAC,cAAD,CAAO,QAAP,qBACI,6BAAC,gBAAD;IAAS,OAAO,EAAElB,CAAF,oGAAhB;IAAsC,SAAS,EAAE;EAAjD,gBACI,6BAAC,kBAAD;IACI,QAAQ,EAAE,CAACe,aADf;IAEI,IAAI,eAAE,6BAAC,wBAAD,OAFV;IAGI,OAAO,EAAE;MAAA,OACLD,gBAAgB,sGAAC;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACPN,cAAc,CAACH,KAAK,CAACW,EAAP,CADP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAAD,GADX;IAAA;EAHb,EADJ,CADJ,CADJ;AAeH,CAlCD;;eAoCeb,c"}
1
+ {"version":3,"names":["t","i18n","ns","RequestChangesComponent","useContentEntry","entry","useRevision","revision","requestChanges","usePermission","canRequestChange","useConfirmationDialog","title","message","showConfirmation","buttonEnabled","id","meta","status","RequestChanges","makeComposable"],"sources":["RequestChanges.tsx"],"sourcesContent":["import React from \"react\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { useConfirmationDialog } from \"@webiny/app-admin/hooks/useConfirmationDialog\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as RequestChangesIcon } from \"./rule-24px.svg\";\nimport usePermission from \"~/admin/hooks/usePermission\";\nimport { useRevision } from \"~/admin/views/contentEntries/ContentEntry/useRevision\";\nimport { useContentEntry } from \"~/admin/views/contentEntries/hooks/useContentEntry\";\nimport { makeComposable } from \"@webiny/react-composition\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/content-details/header/request-review\");\n\nconst RequestChangesComponent: React.FC = () => {\n const { entry } = useContentEntry();\n const { requestChanges } = useRevision({ revision: entry });\n const { canRequestChange } = usePermission();\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Request Changes`,\n message: (\n <p>{t`You are about to request changes on this content entry. Are you sure you want to continue?`}</p>\n )\n });\n\n if (!canRequestChange(\"cms.contentEntry\")) {\n return null;\n }\n\n const buttonEnabled =\n entry.id && (entry.meta.status === \"draft\" || entry.meta.status === \"reviewRequested\");\n\n return (\n <React.Fragment>\n <Tooltip content={t`Request Changes`} placement={\"top\"}>\n <IconButton\n disabled={!buttonEnabled}\n icon={<RequestChangesIcon />}\n onClick={() =>\n showConfirmation(async () => {\n await requestChanges(entry.id);\n })\n }\n />\n </Tooltip>\n </React.Fragment>\n );\n};\n\nexport const RequestChanges = makeComposable(\"RequestChanges\", RequestChangesComponent);\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,CAAC,GAAGC,UAAA,CAAKC,EAAL,CAAQ,8DAAR,CAAV;;AAEA,IAAMC,uBAAiC,GAAG,SAApCA,uBAAoC,GAAM;EAC5C,uBAAkB,IAAAC,iCAAA,GAAlB;EAAA,IAAQC,KAAR,oBAAQA,KAAR;;EACA,mBAA2B,IAAAC,yBAAA,EAAY;IAAEC,QAAQ,EAAEF;EAAZ,CAAZ,CAA3B;EAAA,IAAQG,cAAR,gBAAQA,cAAR;;EACA,qBAA6B,IAAAC,uBAAA,GAA7B;EAAA,IAAQC,gBAAR,kBAAQA,gBAAR;;EAEA,4BAA6B,IAAAC,4CAAA,EAAsB;IAC/CC,KAAK,EAAEZ,CAAF,kGAD0C;IAE/Ca,OAAO,eACH,wCAAIb,CAAJ;EAH2C,CAAtB,CAA7B;EAAA,IAAQc,gBAAR,yBAAQA,gBAAR;;EAOA,IAAI,CAACJ,gBAAgB,CAAC,kBAAD,CAArB,EAA2C;IACvC,OAAO,IAAP;EACH;;EAED,IAAMK,aAAa,GACfV,KAAK,CAACW,EAAN,KAAaX,KAAK,CAACY,IAAN,CAAWC,MAAX,KAAsB,OAAtB,IAAiCb,KAAK,CAACY,IAAN,CAAWC,MAAX,KAAsB,iBAApE,CADJ;EAGA,oBACI,6BAAC,cAAD,CAAO,QAAP,qBACI,6BAAC,gBAAD;IAAS,OAAO,EAAElB,CAAF,oGAAhB;IAAsC,SAAS,EAAE;EAAjD,gBACI,6BAAC,kBAAD;IACI,QAAQ,EAAE,CAACe,aADf;IAEI,IAAI,eAAE,6BAAC,wBAAD,OAFV;IAGI,OAAO,EAAE;MAAA,OACLD,gBAAgB,sGAAC;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACPN,cAAc,CAACH,KAAK,CAACW,EAAP,CADP;;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAAD,GADX;IAAA;EAHb,EADJ,CADJ,CADJ;AAeH,CAlCD;;AAoCO,IAAMG,cAAc,GAAG,IAAAC,gCAAA,EAAe,gBAAf,EAAiCjB,uBAAjC,CAAvB"}
@@ -1,3 +1 @@
1
- import React from "react";
2
- declare const RequestReview: React.FC;
3
- export default RequestReview;
1
+ export declare const RequestReview: import("@webiny/react-composition").ComposableFC<{}>;
@@ -7,7 +7,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.default = void 0;
10
+ exports.RequestReview = void 0;
11
11
 
12
12
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
13
 
@@ -33,11 +33,13 @@ var _usePermission2 = _interopRequireDefault(require("../../../../../hooks/usePe
33
33
 
34
34
  var _useContentEntry2 = require("../../../hooks/useContentEntry");
35
35
 
36
+ var _reactComposition = require("@webiny/react-composition");
37
+
36
38
  var _templateObject, _templateObject2, _templateObject3;
37
39
 
38
40
  var t = _i18n.i18n.ns("app-headless-cms/admin/content-details/header/request-review");
39
41
 
40
- var RequestReview = function RequestReview() {
42
+ var RequestReviewComponent = function RequestReviewComponent() {
41
43
  var _useContentEntry = (0, _useContentEntry2.useContentEntry)(),
42
44
  entry = _useContentEntry.entry;
43
45
 
@@ -88,5 +90,5 @@ var RequestReview = function RequestReview() {
88
90
  })));
89
91
  };
90
92
 
91
- var _default = RequestReview;
92
- exports.default = _default;
93
+ var RequestReview = (0, _reactComposition.makeComposable)("RequestReview", RequestReviewComponent);
94
+ exports.RequestReview = RequestReview;