1
1
import { useToast } from '@sanity/ui'
2
- import { memo , useEffect , useRef } from 'react'
2
+ import { memo , useEffect , useMemo , useRef } from 'react'
3
3
import { Translate , useDocumentOperationEvent , useTranslation } from 'sanity'
4
4
5
5
import { usePaneRouter } from '../../components'
@@ -11,13 +11,27 @@ const IGNORE_OPS = ['patch', 'commit']
11
11
12
12
export const DocumentOperationResults = memo ( function DocumentOperationResults ( ) {
13
13
const { push : pushToast } = useToast ( )
14
- const { documentId, documentType} = useDocumentPane ( )
15
- const { title} = useDocumentTitle ( )
14
+ const { documentId, documentType, value : documentPaneValue } = useDocumentPane ( )
15
+ const documentTitleInfo = useDocumentTitle ( )
16
+ const titleError = documentTitleInfo . error
16
17
const event : any = useDocumentOperationEvent ( documentId , documentType )
17
18
const prevEvent = useRef ( event )
18
19
const paneRouter = usePaneRouter ( )
19
20
const { t} = useTranslation ( structureLocaleNamespace )
20
21
22
+ const title = useMemo ( ( ) => {
23
+ // If title isn't set from document preview, use the title from the document pane value
24
+ if (
25
+ ! documentTitleInfo . title &&
26
+ ! titleError &&
27
+ ! IGNORE_OPS . includes ( event ?. op ) &&
28
+ typeof documentPaneValue . title === 'string' &&
29
+ event ?. type === 'success'
30
+ ) {
31
+ return documentPaneValue . title
32
+ }
33
+ return documentTitleInfo . title
34
+ } , [ documentTitleInfo . title , titleError , event , documentPaneValue . title ] )
21
35
//Truncate the document title and add "..." if it is over 25 characters
22
36
const documentTitleBase = title || t ( 'panes.document-operation-results.operation-undefined-title' )
23
37
const documentTitle =
0 commit comments