@@ -44,7 +44,7 @@ export function PublishButton({ enabled = true, onSave, saveStatus }: PublishBut
4444 const hasUnsavedChanges = useEditorStore ( ( s ) => s . hasUnsavedChanges )
4545 const { runStepUp } = useStepUp ( )
4646 const [ state , setState ] = useState < PublishState > ( 'idle' )
47- const [ message , setMessage ] = useState < string | null > ( null )
47+ const [ errorMessage , setErrorMessage ] = useState < string | null > ( null )
4848 const [ isSaving , setIsSaving ] = useState ( false )
4949 const [ scheduleDialogOpen , setScheduleDialogOpen ] = useState ( false )
5050 const statusTimerRef = useRef < ReturnType < typeof setTimeout > | null > ( null )
@@ -67,7 +67,7 @@ export function PublishButton({ enabled = true, onSave, saveStatus }: PublishBut
6767 if ( cancelled ) return
6868 if ( status . draftMatchesPublished ) {
6969 setState ( 'published' )
70- setMessage ( null )
70+ setErrorMessage ( null )
7171 }
7272 } catch ( err ) {
7373 console . warn ( '[toolbar] Failed to load publish status:' , err )
@@ -84,7 +84,7 @@ export function PublishButton({ enabled = true, onSave, saveStatus }: PublishBut
8484 statusTimerRef . current = null
8585 const resetTimer = setTimeout ( ( ) => {
8686 setState ( 'idle' )
87- setMessage ( null )
87+ setErrorMessage ( null )
8888 } , 0 )
8989 return ( ) => clearTimeout ( resetTimer )
9090 } , [ hasUnsavedChanges , state ] )
@@ -93,15 +93,7 @@ export function PublishButton({ enabled = true, onSave, saveStatus }: PublishBut
9393 if ( statusTimerRef . current ) clearTimeout ( statusTimerRef . current )
9494 statusTimerRef . current = setTimeout ( ( ) => {
9595 setState ( 'idle' )
96- setMessage ( null )
97- statusTimerRef . current = null
98- } , 5000 )
99- }
100-
101- const clearMessageLater = ( ) => {
102- if ( statusTimerRef . current ) clearTimeout ( statusTimerRef . current )
103- statusTimerRef . current = setTimeout ( ( ) => {
104- setMessage ( null )
96+ setErrorMessage ( null )
10597 statusTimerRef . current = null
10698 } , 5000 )
10799 }
@@ -115,7 +107,7 @@ export function PublishButton({ enabled = true, onSave, saveStatus }: PublishBut
115107 }
116108
117109 setState ( 'publishing' )
118- setMessage ( null )
110+ setErrorMessage ( null )
119111
120112 try {
121113 await onSave ?.( )
@@ -125,25 +117,19 @@ export function PublishButton({ enabled = true, onSave, saveStatus }: PublishBut
125117 // blast-radius site action (one click replaces every public page),
126118 // which is why the server gates it behind a fresh step-up window
127119 // in addition to the `pages.publish` capability check.
128- const result = await runStepUp ( ( ) => publishCmsDraft ( ) )
120+ await runStepUp ( ( ) => publishCmsDraft ( ) )
129121 setState ( 'published' )
130- setMessage (
131- result . publishedPages === 1
132- ? '1 page published'
133- : `${ result . publishedPages } pages published` ,
134- )
135- clearMessageLater ( )
136122 } catch ( err ) {
137123 if ( err instanceof Error && err . message === StepUpCancelledMessage ) {
138124 // User dismissed the step-up dialog — return the button to its
139125 // resting state without surfacing an error message; this is the
140126 // same UX every other step-up-gated action uses.
141127 setState ( 'idle' )
142- setMessage ( null )
128+ setErrorMessage ( null )
143129 return
144130 }
145131 setState ( 'error' )
146- setMessage ( getErrorMessage ( err , 'Unknown publish error' ) )
132+ setErrorMessage ( getErrorMessage ( err , 'Unknown publish error' ) )
147133 resetErrorLater ( )
148134 }
149135 }
@@ -236,10 +222,7 @@ export function PublishButton({ enabled = true, onSave, saveStatus }: PublishBut
236222 publishIcon = { PublishIcon }
237223 onPublish = { handlePublish }
238224 menuItems = { menuItems }
239- toast = { message ? {
240- tone : state === 'error' ? 'alert' : 'status' ,
241- message,
242- } : null }
225+ errorMessage = { errorMessage }
243226 />
244227 { activePage && (
245228 < SchedulePublishDialog
0 commit comments