diff --git a/web/src/index.html b/web/src/index.html index 4ea2d49..ea0be03 100644 --- a/web/src/index.html +++ b/web/src/index.html @@ -41,13 +41,13 @@ -
Loading…
Select the version number currently installed on your device. If it does not appear in this list, your software version is not supported for custom patching. You can go back and choose NickelMenu instead, which works with all versions.
You can find the version number on your Kobo under More > Settings > Device information > Software version.
@@ -142,7 +142,7 @@ What would you like to do? - + @@ -168,7 +168,7 @@ Choose what to do with your Kobo. - + @@ -224,8 +224,8 @@ - - + + Starting... @@ -293,8 +293,8 @@ - - + + Starting... @@ -362,10 +362,10 @@ - + - Disclaimer + Disclaimer × @@ -425,10 +425,10 @@ - + - Privacy + Privacy × diff --git a/web/src/js/app.js b/web/src/js/app.js index 4fbdf7f..7baeda1 100644 --- a/web/src/js/app.js +++ b/web/src/js/app.js @@ -181,8 +181,12 @@ import JSZip from 'jszip'; items.forEach((li, i) => { const stepNum = i + 1; li.classList.remove('active', 'done'); + li.removeAttribute('aria-current'); if (stepNum < num) li.classList.add('done'); - else if (stepNum === num) li.classList.add('active'); + else if (stepNum === num) { + li.classList.add('active'); + li.setAttribute('aria-current', 'step'); + } }); stepNav.hidden = false; } @@ -746,13 +750,13 @@ import JSZip from 'jszip'; nmProgress.textContent = 'Removing NickelMenu assets...'; try { await device.removeEntry(['.adds', 'nm'], { recursive: true }); - } catch { - // ignore — folder may already be gone + } catch (err) { + console.warn('Could not remove .adds/nm:', err); } try { await device.removeEntry(['.adds', 'scripts'], { recursive: true }); - } catch { - // ignore — folder may already be gone + } catch (err) { + console.warn('Could not remove .adds/scripts:', err); } nmProgress.textContent = 'Creating uninstall marker...'; await device.writeFile(['.adds', 'nm', 'uninstall'], new Uint8Array(0)); @@ -763,8 +767,8 @@ import JSZip from 'jszip'; for (const entry of feature.uninstall.paths) { try { await device.removeEntry(entry.path, { recursive: !!entry.recursive }); - } catch { - // ignore — file may already be gone + } catch (err) { + console.warn(`Could not remove ${entry.path.join('/')}:`, err); } } } diff --git a/web/src/js/kobo-device.js b/web/src/js/kobo-device.js index 8b0b971..c6f7609 100644 --- a/web/src/js/kobo-device.js +++ b/web/src/js/kobo-device.js @@ -62,18 +62,20 @@ class KoboDevice { let koboDir; try { koboDir = await this.directoryHandle.getDirectoryHandle('.kobo'); - } catch { + } catch (err) { throw new Error( - 'This does not appear to be a Kobo device. Could not find the .kobo directory.' + 'This does not appear to be a Kobo device. Could not find the .kobo directory.', + { cause: err } ); } let versionFile; try { versionFile = await koboDir.getFileHandle('version'); - } catch { + } catch (err) { throw new Error( - 'Could not find .kobo/version. Is this the root of your Kobo drive?' + 'Could not find .kobo/version. Is this the root of your Kobo drive?', + { cause: err } ); } diff --git a/web/src/js/patch-ui.js b/web/src/js/patch-ui.js index 664fd9a..d75e13c 100644 --- a/web/src/js/patch-ui.js +++ b/web/src/js/patch-ui.js @@ -155,7 +155,8 @@ async function scanAvailablePatches() { } } return result; - } catch { + } catch (err) { + console.error('Failed to load patch index:', err); return []; } }
What would you like to do?
Choose what to do with your Kobo.
Starting...