diff --git a/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionDelete.tsx b/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionDelete.tsx index fd032b2812c..a4f2e477c72 100644 --- a/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionDelete.tsx +++ b/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionDelete.tsx @@ -1,13 +1,16 @@ import React, { useMemo } from "react"; import { ReactComponent as DeleteIcon } from "@material-design-icons/svg/outlined/delete.svg"; import { observer } from "mobx-react-lite"; +import { parseIdentifier } from "@webiny/utils/parseIdentifier"; +import { useRecords } from "@webiny/app-aco"; import { ContentEntryListConfig } from "~/admin/config/contentEntries"; -import { useContentEntry } from "~/admin/hooks"; +import { useCms, useModel } from "~/admin/hooks"; import { getEntriesLabel } from "~/admin/components/ContentEntries/BulkActions/BulkActions"; -import { parseIdentifier } from "@webiny/utils/parseIdentifier"; export const ActionDelete = observer(() => { - const { deleteEntry } = useContentEntry(); + const { model } = useModel(); + const { deleteEntry } = useCms(); + const { removeRecordFromCache } = useRecords(); const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction; const { IconButton } = useButtons(); @@ -31,7 +34,7 @@ export const ActionDelete = observer(() => { * By sending an entryId (id without #version), we are telling to the API to delete all revisions. */ const { id } = parseIdentifier(item.id); - const response = await deleteEntry({ id }); + const response = await deleteEntry({ model, id }); if (typeof response !== "boolean") { throw new Error( @@ -40,6 +43,8 @@ export const ActionDelete = observer(() => { ); } + removeRecordFromCache(id); + report.success({ title: `${item.meta.title}`, message: "Entry successfully moved to trash." diff --git a/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionPublish.tsx b/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionPublish.tsx index bb65a99415d..0888003a6fa 100644 --- a/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionPublish.tsx +++ b/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionPublish.tsx @@ -2,12 +2,15 @@ import React, { useMemo } from "react"; import { ReactComponent as PublishIcon } from "@material-design-icons/svg/outlined/publish.svg"; import { observer } from "mobx-react-lite"; import { ContentEntryListConfig } from "~/admin/config/contentEntries"; -import { usePermission, useContentEntry } from "~/admin/hooks"; +import { usePermission, useCms, useModel } from "~/admin/hooks"; import { getEntriesLabel } from "~/admin/components/ContentEntries/BulkActions/BulkActions"; +import { useRecords } from "@webiny/app-aco"; export const ActionPublish = observer(() => { + const { model } = useModel(); const { canPublish } = usePermission(); - const { publishEntryRevision } = useContentEntry(); + const { publishEntryRevision } = useCms(); + const { updateRecordInCache } = useRecords(); const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction; const { IconButton } = useButtons(); @@ -26,7 +29,7 @@ export const ActionPublish = observer(() => { execute: async () => { await worker.processInSeries(async ({ item, report }) => { try { - const response = await publishEntryRevision({ id: item.id }); + const response = await publishEntryRevision({ model, id: item.id }); const { error } = response; @@ -36,6 +39,8 @@ export const ActionPublish = observer(() => { ); } + updateRecordInCache(response.entry); + report.success({ title: `${item.meta.title}`, message: "Entry successfully published." diff --git a/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionUnpublish.tsx b/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionUnpublish.tsx index 3e296656982..974875cef8a 100644 --- a/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionUnpublish.tsx +++ b/packages/app-headless-cms/src/admin/components/ContentEntries/BulkActions/ActionUnpublish.tsx @@ -2,12 +2,15 @@ import React, { useMemo } from "react"; import { ReactComponent as UnpublishIcon } from "@material-design-icons/svg/outlined/settings_backup_restore.svg"; import { observer } from "mobx-react-lite"; import { ContentEntryListConfig } from "~/admin/config/contentEntries"; -import { useContentEntry, usePermission } from "~/admin/hooks"; +import { useCms, useModel, usePermission } from "~/admin/hooks"; import { getEntriesLabel } from "~/admin/components/ContentEntries/BulkActions/BulkActions"; +import { useRecords } from "@webiny/app-aco"; export const ActionUnpublish = observer(() => { + const { model } = useModel(); const { canUnpublish } = usePermission(); - const { unpublishEntryRevision } = useContentEntry(); + const { unpublishEntryRevision } = useCms(); + const { updateRecordInCache } = useRecords(); const { useWorker, useButtons, useDialog } = ContentEntryListConfig.Browser.BulkAction; const { IconButton } = useButtons(); @@ -27,6 +30,7 @@ export const ActionUnpublish = observer(() => { await worker.processInSeries(async ({ item, report }) => { try { const response = await unpublishEntryRevision({ + model, id: item.id }); @@ -38,6 +42,8 @@ export const ActionUnpublish = observer(() => { ); } + updateRecordInCache(response.entry); + report.success({ title: `${item.meta.title}`, message: "Entry successfully unpublished."