slick-connections.pages.sei.../src/useAppModel.ts
2025-05-20 19:22:31 -04:00

45 lines
923 B
TypeScript

import { makePersisted } from "@solid-primitives/storage";
import connections from "./assets/connections.json";
import { createStore } from "solid-js/store";
import { tauriStorage } from "@solid-primitives/storage/tauri";
type Solution = {
id: number
guesses: number
}
type AppStore = {
solutions: Solution[]
};
export default function useAppModel() {
const storage =
"__TAURI_INTERNALS__" in window ? tauriStorage("AppStore") : localStorage;
const [store, setStore] = makePersisted(
createStore<AppStore>({
solutions: []
}),
{
name: "slick-connections",
storage,
}
);
function setSolution(id: number, guesses: number) {
const nextSolutions = [
...(store.solutions ?? []),
];
nextSolutions[id] = {
id,
guesses,
}
setStore({
solutions: nextSolutions
})
}
return {
connections,
store,
setSolution,
};
}