diff --git a/packages/sanity/src/core/releases/components/dialog/DiscardVersionDialog.tsx b/packages/sanity/src/core/releases/components/dialog/DiscardVersionDialog.tsx index f345aa9a5f7..cec224a4a46 100644 --- a/packages/sanity/src/core/releases/components/dialog/DiscardVersionDialog.tsx +++ b/packages/sanity/src/core/releases/components/dialog/DiscardVersionDialog.tsx @@ -1,12 +1,12 @@ -import {Box} from '@sanity/ui' +import {Box, useToast} from '@sanity/ui' import {useCallback, useState} from 'react' import {Dialog} from '../../../../ui-components' import {LoadingBlock} from '../../../components' import {useDocumentOperation, useSchema} from '../../../hooks' -import {useTranslation} from '../../../i18n' +import {Translate, useTranslation} from '../../../i18n' import {usePerspective} from '../../../perspective/usePerspective' -import {Preview} from '../../../preview' +import {Preview, unstable_useValuePreview as useValuePreview} from '../../../preview' import {getPublishedId, getVersionFromId, isVersionId} from '../../../util/draftUtils' import {useVersionOperations} from '../../hooks' import {releasesLocaleNamespace} from '../../i18n' @@ -23,8 +23,9 @@ export function DiscardVersionDialog(props: { }): React.JSX.Element { const {onClose, documentId, documentType} = props const {t} = useTranslation(releasesLocaleNamespace) + const {t: coreT} = useTranslation() const {discardChanges} = useDocumentOperation(getPublishedId(documentId), documentType) - + const toast = useToast() const {selectedPerspective} = usePerspective() const {discardVersion} = useVersionOperations() const schema = useSchema() @@ -32,6 +33,8 @@ export function DiscardVersionDialog(props: { const schemaType = schema.get(documentType) + const preview = useValuePreview({schemaType, value: {_id: documentId}}) + const handleDiscardVersion = useCallback(async () => { setIsDiscarding(true) @@ -41,6 +44,18 @@ export function DiscardVersionDialog(props: { getReleaseIdFromReleaseDocumentId((selectedPerspective as ReleaseDocument)._id), documentId, ) + + toast.push({ + closable: true, + status: 'success', + description: ( + + ), + }) } else { // on the document header you can also discard the draft discardChanges.execute() @@ -49,7 +64,16 @@ export function DiscardVersionDialog(props: { setIsDiscarding(false) onClose() - }, [selectedPerspective, discardChanges, discardVersion, documentId, onClose]) + }, [ + documentId, + onClose, + discardVersion, + selectedPerspective, + toast, + coreT, + preview.value?.title, + discardChanges, + ]) return ( { setIsUnpublishing(true) await unpublishVersion(documentVersionId) setIsUnpublishing(false) + toast.push({ + closable: true, + status: 'success', + description: ( + + ), + }) onClose() - }, [documentVersionId, onClose, unpublishVersion]) + }, [coreT, documentVersionId, onClose, preview?.value?.title, toast, unpublishVersion]) return ( { try { await discardVersion(releaseId, documentId) - - toast.push({ - closable: true, - status: 'success', - description: ( - - ), - }) } catch (err) { toast.push({ closable: true, @@ -78,18 +66,6 @@ export function useVersionOperations(): VersionOperationsValue { const handleUnpublishVersion = async (documentId: string) => { try { await unpublishVersion(documentId) - - toast.push({ - closable: true, - status: 'success', - description: ( - - ), - }) } catch (err) { toast.push({ closable: true,