2026-04-06 21:33:52 -04:00

46 lines
1.1 KiB
JavaScript

// Application state store
import { writable } from 'svelte/store';
export const currentScreen = writable('idle'); // idle | home | restaurants | attractions
export const selectedIndex = writable(-1);
export const restaurants = writable([]);
export const attractions = writable([]);
export const currentTime = writable(new Date());
export const wsConnected = writable(false);
// Input handling
export const inputState = writable({
up: false,
down: false,
left: false,
right: false,
select: false,
back: false,
});
// Navigation stack for back button
const navigationStack = writable(['idle']);
export function pushScreen(screen) {
navigationStack.update((stack) => [...stack, screen]);
currentScreen.set(screen);
selectedIndex.set(0);
}
export function popScreen() {
navigationStack.update((stack) => {
if (stack.length > 1) {
stack.pop();
currentScreen.set(stack[stack.length - 1]);
}
return stack;
});
selectedIndex.set(0);
}
export function resetNavigation() {
navigationStack.set(['idle']);
currentScreen.set('idle');
selectedIndex.set(0);
}