Auth via paskia-js: profile() dialog, apiFetch/apiJson in admin components

- Banner-corner auth link is now a button opening paskia-js's profile()
  dialog (handles login too); auth re-probed when the dialog closes.
- Editor/analytics components call /_api via apiFetch/apiJson: an
  expired session opens the login dialog and the request retries.
- pagerite.js: task-checkbox toggle uses apiJson (explicit edit attempt,
  reverts on any failure incl. cancelled login); auth probes use
  fetchJson (never a dialog); page-cache/navigation stay on plain fetch.
- Add the paskia npm dependency; document the convention.
This commit is contained in:
LeoVasanko committed 2026-09-18 20:14:52 +00:00
1 parent e0c1b37c0b
commit 4bccf6855e
13 files changed
+80 -60

No files matched your search

+2 -1
View File
@@ -10,6 +10,7 @@ import StructureEditor from './StructureEditor.vue'
import LocalizationEditor from './LocalizationEditor.vue'
import { editorLang, pagePrimary } from './editorLang'
import { loadPlain, setLangOverride } from './swapdoc'
import { apiJson } from 'paskia'
const props = defineProps({
pagePath: { type: String, default: '' },
@@ -105,7 +106,7 @@ onMounted(() => {
// unknown; the page/structure tabs refine pagePrimary per page as they
// learn it (their knowledge is strictly better).
openShell()
fetch('/_api/settings').then((r) => r.json()).then((s) => {
apiJson('/_api/settings').then((s) => {
if (!pagePrimary.value) pagePrimary.value = s.primary_lang || 'en'
}).catch(() => { /* keep the fallback */ })
})