From f44786c1bc2a156279f72712686b044a03173f4b Mon Sep 17 00:00:00 2001 From: Ryan Bonial <4294665+ryanbonial@users.noreply.github.com> Date: Fri, 6 Sep 2024 13:03:21 -0600 Subject: [PATCH] fix(core): Fix Title in "Untitled was published" toast (#7473) * fix(core): Fix Title in "Untitled was published" toast * PR feedback: refactor to useMemo --- .../document/DocumentOperationResults.tsx | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/sanity/src/structure/panes/document/DocumentOperationResults.tsx b/packages/sanity/src/structure/panes/document/DocumentOperationResults.tsx index c0660bcecca..b1ab82ae85b 100644 --- a/packages/sanity/src/structure/panes/document/DocumentOperationResults.tsx +++ b/packages/sanity/src/structure/panes/document/DocumentOperationResults.tsx @@ -1,5 +1,5 @@ import {useToast} from '@sanity/ui' -import {memo, useEffect, useRef} from 'react' +import {memo, useEffect, useMemo, useRef} from 'react' import {Translate, useDocumentOperationEvent, useTranslation} from 'sanity' import {usePaneRouter} from '../../components' @@ -11,13 +11,27 @@ const IGNORE_OPS = ['patch', 'commit'] export const DocumentOperationResults = memo(function DocumentOperationResults() { const {push: pushToast} = useToast() - const {documentId, documentType} = useDocumentPane() - const {title} = useDocumentTitle() + const {documentId, documentType, value: documentPaneValue} = useDocumentPane() + const documentTitleInfo = useDocumentTitle() + const titleError = documentTitleInfo.error const event: any = useDocumentOperationEvent(documentId, documentType) const prevEvent = useRef(event) const paneRouter = usePaneRouter() const {t} = useTranslation(structureLocaleNamespace) + const title = useMemo(() => { + // If title isn't set from document preview, use the title from the document pane value + if ( + !documentTitleInfo.title && + !titleError && + !IGNORE_OPS.includes(event?.op) && + typeof documentPaneValue.title === 'string' && + event?.type === 'success' + ) { + return documentPaneValue.title + } + return documentTitleInfo.title + }, [documentTitleInfo.title, titleError, event, documentPaneValue.title]) //Truncate the document title and add "..." if it is over 25 characters const documentTitleBase = title || t('panes.document-operation-results.operation-undefined-title') const documentTitle =