0.2.2
This commit is contained in:
@@ -1,7 +1,20 @@
|
||||
// Komponenty HTML loader
|
||||
function loadComponent(path, replaceMap = {}) {
|
||||
// If path is a full mapped origin used by WebViewAssetLoader, strip it to a relative path.
|
||||
const mappedOrigin = 'https://appassets.androidplatform.net/assets/';
|
||||
if (path.startsWith(mappedOrigin)) {
|
||||
path = path.slice(mappedOrigin.length);
|
||||
}
|
||||
|
||||
// If an absolute path starting with '/' is provided, remove leading slash to make it
|
||||
// relative to the current document (works under local http server and WebViewAssetLoader).
|
||||
if (path.startsWith('/')) path = path.slice(1);
|
||||
|
||||
return fetch(path)
|
||||
.then(r => r.text())
|
||||
.then(r => {
|
||||
if (!r.ok) throw new Error('Failed to load component: ' + path);
|
||||
return r.text();
|
||||
})
|
||||
.then(html => {
|
||||
Object.entries(replaceMap).forEach(([key, val]) => {
|
||||
html = html.replaceAll(key, val);
|
||||
|
||||
@@ -83,9 +83,8 @@
|
||||
}
|
||||
|
||||
// ── Back to list ──────────────────────────────────────────────────────────
|
||||
// Zakończ button: natychmiast wróć do listy bez potwierdzenia
|
||||
readBackBtn.addEventListener('click', () => {
|
||||
const active = yOffset > 0 || autoTimer !== null
|
||||
if (active && !confirm('Wrócić do listy tekstów?')) return
|
||||
clearInterval(autoTimer)
|
||||
autoTimer = null
|
||||
readWrap.classList.add('hidden')
|
||||
|
||||
@@ -296,9 +296,8 @@
|
||||
}
|
||||
|
||||
// ── Navigation ────────────────────────────────────────────────────────────
|
||||
// Zakończ button: natychmiast wracamy do listy bez potwierdzenia
|
||||
playBackBtn.addEventListener('click', () => {
|
||||
const inProgress = blanks.length > 0 && current < blanks.length
|
||||
if (inProgress && !confirm('Przerwać dyktando i wrócić do listy?')) return
|
||||
goToList()
|
||||
})
|
||||
|
||||
|
||||
@@ -136,7 +136,8 @@
|
||||
let sha = (window.COMMIT_SHA || '').toString().trim()
|
||||
if (!sha) {
|
||||
try {
|
||||
const res = await fetch('/version.sha', { cache: 'no-cache' })
|
||||
// use relative path so the request works under WebViewAssetLoader or a local server
|
||||
const res = await fetch('version.sha', { cache: 'no-cache' })
|
||||
if (res.ok) {
|
||||
const txt = await res.text()
|
||||
const first = txt.split(/\r?\n/).find(l => l.trim().length > 0)
|
||||
|
||||
@@ -136,7 +136,8 @@
|
||||
let sha = (window.COMMIT_SHA || '').toString().trim()
|
||||
if (!sha) {
|
||||
try {
|
||||
const res = await fetch('/version.sha', { cache: 'no-cache' })
|
||||
// use relative path so the request works under WebViewAssetLoader or a local server
|
||||
const res = await fetch('version.sha', { cache: 'no-cache' })
|
||||
if (res.ok) {
|
||||
const txt = await res.text()
|
||||
const first = txt.split(/\r?\n/).find(l => l.trim().length > 0)
|
||||
|
||||
Reference in New Issue
Block a user