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}