diff --git a/src/lib/components/ShipEdit.svelte b/src/lib/components/ShipEdit.svelte index ada6960..f221b9f 100644 --- a/src/lib/components/ShipEdit.svelte +++ b/src/lib/components/ShipEdit.svelte @@ -3,17 +3,23 @@ +{#if identification.isCarrier} + +{/if} + diff --git a/src/lib/components/ShipEdit/Identification.svelte b/src/lib/components/ShipEdit/Identification.svelte index 7433b87..5ca8fbf 100644 --- a/src/lib/components/ShipEdit/Identification.svelte +++ b/src/lib/components/ShipEdit/Identification.svelte @@ -34,6 +34,8 @@ export let isCarrier = false; export let reqs = {}; + $: console.log("in the comp", isCarrier, shipClass); + export let api = getContext("api"); $: shipTypes = candidateShipTypes(reqs.mass, isCarrier).map( @@ -45,7 +47,6 @@ $: api?.dispatch?.updateIdentification?.({ shipType, shipClass }); - $: console.log(isCarrier); $: api?.dispatch.setCarrier?.(isCarrier); diff --git a/src/lib/components/ShipEdit/index.svelte b/src/lib/components/ShipEdit/index.svelte index 366fb15..16b2f97 100644 --- a/src/lib/components/ShipEdit/index.svelte +++ b/src/lib/components/ShipEdit/index.svelte @@ -1,44 +1,46 @@
-
+
-
+
- + - + - + - -
+ {#if $shipState.identification.isCarrier} + + {/if} + diff --git a/src/lib/store/api.ts b/src/lib/store/api.ts index a90e647..ff43570 100644 --- a/src/lib/store/api.ts +++ b/src/lib/store/api.ts @@ -8,10 +8,15 @@ export const createApi = () => { ? JSON.parse(localStorage.getItem("ship") || "null") : undefined; - const api = ship.createStore(state || undefined); + const api = ship.createStore({ + preloadedState: state, + }); + + api.dispatch.restore(state); if (browser) { api.subscribe(() => { + console.log("saving...", api.getState()); localStorage.setItem("ship", JSON.stringify(api.getState())); }); } diff --git a/src/lib/store/ship.ts b/src/lib/store/ship.ts index 444e56f..969f5cb 100644 --- a/src/lib/store/ship.ts +++ b/src/lib/store/ship.ts @@ -1,5 +1,5 @@ import { createSelector } from "@reduxjs/toolkit"; -import Updux from "updux"; +import Updux, { createPayloadAction } from "updux"; import * as R from "remeda"; import memoize from "memoize-one"; @@ -51,7 +51,12 @@ const weaponry = new Updux({ }, }); +const restore = createPayloadAction("restore"); + const shipDux = new Updux({ + actions: { + restore, + }, initialState: { schemaVersion: "1", }, @@ -64,6 +69,8 @@ const shipDux = new Updux({ }, }); +shipDux.addMutation(restore, (state) => () => state); + shipDux.addReaction((api) => { return createSelector( api.selectors.getFtlType, diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 5e8a0f9..212dbf0 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,4 +1,6 @@ - +{#if ship} + +{/if}