fix: onboarding persistence, clipboard, install UI, OnlyOffice removal, UI containers
Onboarding: - Persist current step in localStorage — page refresh resumes where user was - Router afterEach saves step; guard redirects to saved step, not always intro - Show npub alongside DID on restore success screen UI fixes: - Clipboard polyfill for HTTP contexts (fixes Copy DID crash on non-HTTPS) - AppCard installing overlay shows for pkg.state=installing (survives refresh) - Hide uninstall button during installation - Frontend version bumped to 1.3.2 App store: - OnlyOffice fully removed from marketplace, curated apps, app config - Replaced with CryptPad references throughout - Remove OnlyOffice from ISO capture patterns Container stability: - UI containers (bitcoin-ui, lnd-ui, electrs-ui) pull from registry first - Added --cap-add FOWNER for rootless Podman compatibility - electrs-ui now included in first-boot loop alongside bitcoin-ui and lnd-ui Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
a808458124
commit
81b4db82d1
@@ -303,10 +303,11 @@ router.beforeEach(async (to, _from, next) => {
|
||||
}
|
||||
// Check if this is a fresh install that needs onboarding
|
||||
try {
|
||||
const { isOnboardingComplete } = await import('@/composables/useOnboarding')
|
||||
const { isOnboardingComplete, getSavedOnboardingStep } = await import('@/composables/useOnboarding')
|
||||
const setupDone = await isOnboardingComplete()
|
||||
if (!setupDone) {
|
||||
next('/onboarding/intro')
|
||||
const step = getSavedOnboardingStep()
|
||||
next(`/onboarding/${step}`)
|
||||
return
|
||||
}
|
||||
} catch {
|
||||
@@ -328,6 +329,14 @@ router.beforeEach(async (to, _from, next) => {
|
||||
next()
|
||||
})
|
||||
|
||||
// Persist onboarding step so page refresh resumes where user left off
|
||||
router.afterEach((to) => {
|
||||
const match = to.path.match(/^\/onboarding\/(.+)/)
|
||||
if (match && match[1] !== 'intro') {
|
||||
localStorage.setItem('neode_onboarding_step', match[1]!)
|
||||
}
|
||||
})
|
||||
|
||||
// Stop all login/splash audio when entering the dashboard
|
||||
router.afterEach((to, from) => {
|
||||
if (to.path.startsWith('/dashboard') && !from.path.startsWith('/dashboard')) {
|
||||
|
||||
Reference in New Issue
Block a user