publish error fix
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"users": {},
|
"users": {},
|
||||||
"updatedAt": "2026-06-04T13:37:05.049Z"
|
"updatedAt": "2026-06-04T14:16:50.276Z"
|
||||||
}
|
}
|
||||||
+12
-2
@@ -1033,6 +1033,7 @@ export default function AdminPage({ content, onSave, onLogout }: Props) {
|
|||||||
const [totpMsg, setTotpMsg] = useState('')
|
const [totpMsg, setTotpMsg] = useState('')
|
||||||
const [totpRecoveryCodes, setTotpRecoveryCodes] = useState<string[] | null>(null)
|
const [totpRecoveryCodes, setTotpRecoveryCodes] = useState<string[] | null>(null)
|
||||||
const [publishState, setPublishState] = useState<PublishState>({ draftUpdatedAt: null, publishedAt: null })
|
const [publishState, setPublishState] = useState<PublishState>({ draftUpdatedAt: null, publishedAt: null })
|
||||||
|
const [publishConfirmOpen, setPublishConfirmOpen] = useState(false)
|
||||||
const [assets, setAssets] = useState<AdminAsset[]>([])
|
const [assets, setAssets] = useState<AdminAsset[]>([])
|
||||||
const [assetTagEdits, setAssetTagEdits] = useState<Record<string, string>>({})
|
const [assetTagEdits, setAssetTagEdits] = useState<Record<string, string>>({})
|
||||||
const [opsStatus, setOpsStatus] = useState<OpsStatus | null>(null)
|
const [opsStatus, setOpsStatus] = useState<OpsStatus | null>(null)
|
||||||
@@ -1456,7 +1457,6 @@ export default function AdminPage({ content, onSave, onLogout }: Props) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function handlePublishDraft() {
|
async function handlePublishDraft() {
|
||||||
if (!confirm('Publish current changes to the live site now?')) return
|
|
||||||
const payload = buildSiteContentForSave(form)
|
const payload = buildSiteContentForSave(form)
|
||||||
setStatus('saving')
|
setStatus('saving')
|
||||||
setErrorMsg('')
|
setErrorMsg('')
|
||||||
@@ -1492,6 +1492,7 @@ export default function AdminPage({ content, onSave, onLogout }: Props) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setPublishState(prev => ({ ...prev, publishedAt: published.publishedAt ?? new Date().toISOString() }))
|
setPublishState(prev => ({ ...prev, publishedAt: published.publishedAt ?? new Date().toISOString() }))
|
||||||
|
setPublishConfirmOpen(false)
|
||||||
clearAutosaveDraft()
|
clearAutosaveDraft()
|
||||||
await reloadStats()
|
await reloadStats()
|
||||||
setStatus('saved')
|
setStatus('saved')
|
||||||
@@ -1500,6 +1501,7 @@ export default function AdminPage({ content, onSave, onLogout }: Props) {
|
|||||||
}
|
}
|
||||||
saveStatusTimeoutRef.current = window.setTimeout(() => setStatus('idle'), 3500)
|
saveStatusTimeoutRef.current = window.setTimeout(() => setStatus('idle'), 3500)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
setPublishConfirmOpen(false)
|
||||||
setErrorMsg(err instanceof Error ? err.message : 'Unknown error')
|
setErrorMsg(err instanceof Error ? err.message : 'Unknown error')
|
||||||
setStatus('error')
|
setStatus('error')
|
||||||
}
|
}
|
||||||
@@ -2959,7 +2961,15 @@ export default function AdminPage({ content, onSave, onLogout }: Props) {
|
|||||||
<button type="button" className={`btn-admin-reset${previewOpen ? ' btn-admin-reset--active' : ''}`} onClick={() => setPreviewOpen(o => !o)}>
|
<button type="button" className={`btn-admin-reset${previewOpen ? ' btn-admin-reset--active' : ''}`} onClick={() => setPreviewOpen(o => !o)}>
|
||||||
{previewOpen ? 'Close Preview' : 'Preview'}
|
{previewOpen ? 'Close Preview' : 'Preview'}
|
||||||
</button>
|
</button>
|
||||||
<button type="button" className="btn-admin-reset" onClick={handlePublishDraft}>Publish</button>
|
{publishConfirmOpen ? (
|
||||||
|
<>
|
||||||
|
<span style={{ fontSize: '0.82rem', color: '#e0c070' }}>Publish to live site?</span>
|
||||||
|
<button type="button" className="btn-admin-save" onClick={() => { setPublishConfirmOpen(false); handlePublishDraft() }}>Yes, Publish</button>
|
||||||
|
<button type="button" className="btn-admin-reset" onClick={() => setPublishConfirmOpen(false)}>Cancel</button>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<button type="button" className="btn-admin-reset" onClick={() => setPublishConfirmOpen(true)}>Publish</button>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user