Skip to content

Commit 17e7ee2

Browse files
fix(ui): stale doc status when publishing, reverting and unpublishing (#10405)
### What? The status indicator was not updating properly when users were clicking "unpublish" and "revert changes" ### Why? hasPublishedDoc, unpublishedVersionCount and mostRecentVersionIsAutosaved states were not being updated properly. ### How? This PR updates the variables when interacting with the status actions and sets mostRecentVersionIsAutosaved to false when the publish button is clicked. Fixes #9531
1 parent 9701fc6 commit 17e7ee2

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

packages/ui/src/elements/Autosave/index.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export const Autosave: React.FC<Props> = ({ id, collection, global: globalDoc })
4848
mostRecentVersionIsAutosaved,
4949
setLastUpdateTime,
5050
setMostRecentVersionIsAutosaved,
51+
setUnpublishedVersionCount,
5152
} = useDocumentInfo()
5253
const queueRef = useRef([])
5354
const isProcessingRef = useRef(false)
@@ -177,6 +178,7 @@ export const Autosave: React.FC<Props> = ({ id, collection, global: globalDoc })
177178
if (!mostRecentVersionIsAutosaved) {
178179
incrementVersionCount()
179180
setMostRecentVersionIsAutosaved(true)
181+
setUnpublishedVersionCount((prev) => prev + 1)
180182
}
181183
} else {
182184
return res.json()

packages/ui/src/elements/PublishButton/index.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export const PublishButton: React.FC<{ label?: string }> = ({ label: labelProp }
2525
hasPublishedDoc,
2626
hasPublishPermission,
2727
setHasPublishedDoc,
28+
setMostRecentVersionIsAutosaved,
2829
setUnpublishedVersionCount,
2930
unpublishedVersionCount,
3031
uploadStatus,
@@ -124,8 +125,15 @@ export const PublishButton: React.FC<{ label?: string }> = ({ label: labelProp }
124125
})
125126

126127
setUnpublishedVersionCount(0)
128+
setMostRecentVersionIsAutosaved(false)
127129
setHasPublishedDoc(true)
128-
}, [setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus])
130+
}, [
131+
setHasPublishedDoc,
132+
submit,
133+
setUnpublishedVersionCount,
134+
uploadStatus,
135+
setMostRecentVersionIsAutosaved,
136+
])
129137

130138
const publishSpecificLocale = useCallback(
131139
(locale) => {

packages/ui/src/elements/Status/index.tsx

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ export const Status: React.FC = () => {
2424
globalSlug,
2525
hasPublishedDoc,
2626
incrementVersionCount,
27+
setHasPublishedDoc,
28+
setMostRecentVersionIsAutosaved,
29+
setUnpublishedVersionCount,
2730
unpublishedVersionCount,
2831
} = useDocumentInfo()
2932
const { toggleModal } = useModal()
@@ -110,8 +113,14 @@ export const Status: React.FC = () => {
110113
// eslint-disable-next-line @typescript-eslint/no-floating-promises
111114
resetForm(data)
112115
toast.success(json.message)
113-
114116
incrementVersionCount()
117+
setMostRecentVersionIsAutosaved(false)
118+
119+
if (action === 'unpublish') {
120+
setHasPublishedDoc(false)
121+
} else if (action === 'revert') {
122+
setUnpublishedVersionCount(0)
123+
}
115124
} else {
116125
toast.error(t('error:unPublishingDocument'))
117126
}
@@ -128,17 +137,19 @@ export const Status: React.FC = () => {
128137
[
129138
api,
130139
collectionSlug,
131-
incrementVersionCount,
132140
globalSlug,
133-
i18n.language,
134141
id,
142+
i18n.language,
143+
incrementVersionCount,
135144
locale,
136145
resetForm,
137-
revertModalSlug,
138146
serverURL,
147+
setUnpublishedVersionCount,
139148
t,
140149
toggleModal,
150+
revertModalSlug,
141151
unPublishModalSlug,
152+
setHasPublishedDoc,
142153
],
143154
)
144155

0 commit comments

Comments
 (0)