@@ -23,6 +23,9 @@ interface ReleaseDocumentPreviewProps {
23
23
layout ?: PreviewLayoutKey
24
24
}
25
25
26
+ const isArchivedRelease = ( releaseState : ReleaseState | undefined ) =>
27
+ releaseState === 'archived' || releaseState === 'archiving' || releaseState === 'unarchiving'
28
+
26
29
export function ReleaseDocumentPreview ( {
27
30
documentId,
28
31
documentTypeName,
@@ -36,17 +39,27 @@ export function ReleaseDocumentPreview({
36
39
const documentPresence = useDocumentPresence ( documentId )
37
40
38
41
const intentParams = useMemo ( ( ) => {
39
- if ( releaseState !== 'published' && releaseState !== 'archived' ) return { }
40
-
41
- const rev = releaseState === 'archived' ? '@lastEdited' : '@lastPublished'
42
+ if ( releaseState === 'published' ) {
43
+ // We are inspecting this document through the published view of the doc.
44
+ return {
45
+ rev : `@release:${ getReleaseIdFromReleaseDocumentId ( releaseId ) } ` ,
46
+ inspect : 'sanity/structure/history' ,
47
+ }
48
+ }
42
49
43
- return {
44
- rev,
45
- inspect : 'sanity/structure/history' ,
46
- historyEvent : documentRevision ,
47
- historyVersion : getReleaseIdFromReleaseDocumentId ( releaseId ) ,
50
+ if ( releaseState === 'archived' ) {
51
+ // We are "faking" the release as if it is still valid only to render the document
52
+ return {
53
+ rev : '@lastEdited' ,
54
+ inspect : 'sanity/structure/history' ,
55
+ historyEvent : documentRevision ,
56
+ historyVersion : getReleaseIdFromReleaseDocumentId ( releaseId ) ,
57
+ archivedRelease : 'true' ,
58
+ }
48
59
}
49
- } , [ documentRevision , releaseId , releaseState ] )
60
+
61
+ return { }
62
+ } , [ releaseState , releaseId , documentRevision ] )
50
63
51
64
const LinkComponent = useMemo (
52
65
( ) =>
@@ -61,19 +74,23 @@ export function ReleaseDocumentPreview({
61
74
type : documentTypeName ,
62
75
...intentParams ,
63
76
} }
64
- searchParams = { [
65
- [
66
- 'perspective' ,
67
- releaseState === 'published'
68
- ? 'published'
69
- : getReleaseIdFromReleaseDocumentId ( releaseId ) ,
70
- ] ,
71
- ] }
77
+ searchParams = {
78
+ isArchivedRelease ( releaseState )
79
+ ? undefined
80
+ : [
81
+ [
82
+ 'perspective' ,
83
+ releaseState === 'published'
84
+ ? 'published'
85
+ : getReleaseIdFromReleaseDocumentId ( releaseId ) ,
86
+ ] ,
87
+ ]
88
+ }
72
89
ref = { ref }
73
90
/>
74
91
)
75
92
} ) ,
76
- [ documentId , documentTypeName , intentParams , releaseId , releaseState ] ,
93
+ [ documentId , documentTypeName , intentParams , releaseState , releaseId ] ,
77
94
)
78
95
79
96
const previewPresence = useMemo (
0 commit comments