From b89eb9fe515e2a05eb5c38f1ee457626307d5ead Mon Sep 17 00:00:00 2001 From: Diogo Trindade Date: Sun, 19 May 2024 21:39:32 +0100 Subject: [PATCH] immer -> mutative --- package.json | 5 +++-- src/useCharacterStore.ts | 6 +++--- yarn.lock | 29 +++++++++++++++++++++-------- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index d73965c..38083b6 100644 --- a/package.json +++ b/package.json @@ -19,10 +19,11 @@ "@mantine/hooks": "^7.9.1", "@mantine/notifications": "^7.9.1", "@tabler/icons-react": "^3.3.0", - "immer": "^10.1.1", + "mutative": "^1.0.5", "react": "^18.2.0", "react-dom": "^18.2.0", - "zustand": "^4.5.2" + "zustand": "^4.5.2", + "zustand-mutative": "^1.0.0" }, "devDependencies": { "@biomejs/biome": "^1.7.3", diff --git a/src/useCharacterStore.ts b/src/useCharacterStore.ts index 6de83ce..2414609 100644 --- a/src/useCharacterStore.ts +++ b/src/useCharacterStore.ts @@ -1,9 +1,9 @@ import { create } from "zustand"; import { devtools } from "zustand/middleware"; -import { immer } from "zustand/middleware/immer"; import type { Character } from "./chf/Character"; import { createChf } from "./chf/ChfFile"; import { dnaToString } from "./chf/Dna"; +import { mutative } from "zustand-mutative"; interface CharacterState { isCharacterLoaded: boolean; @@ -17,7 +17,7 @@ interface CharacterState { export const useCharacterStore = create()( devtools( - immer((set, get) => ({ + mutative((set, get) => ({ isCharacterLoaded: false, character: undefined!, getChf: () => createChf(get().character), @@ -26,7 +26,7 @@ export const useCharacterStore = create()( return dnaToString(character.dna, character.bodyType); }, updateCharacter: (fn) => set((state) => fn(state.character), false, "updateCharacter"), - loadCharacter: (character) => set({ isCharacterLoaded: true, character }, false, "resetCharacter"), + loadCharacter: (character) => set({ isCharacterLoaded: true, character }, false, "loadCharacter"), resetCharacter: () => set({ isCharacterLoaded: false, character: undefined! }, false, "resetCharacter"), })), ), diff --git a/yarn.lock b/yarn.lock index c6cb83a..1ad1011 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1537,13 +1537,6 @@ __metadata: languageName: node linkType: hard -"immer@npm:^10.1.1": - version: 10.1.1 - resolution: "immer@npm:10.1.1" - checksum: 10c0/b749e10d137ccae91788f41bd57e9387f32ea6d6ea8fd7eb47b23fd7766681575efc7f86ceef7fe24c3bc9d61e38ff5d2f49c2663b2b0c056e280a4510923653 - languageName: node - linkType: hard - "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -1894,6 +1887,13 @@ __metadata: languageName: node linkType: hard +"mutative@npm:^1.0.5": + version: 1.0.5 + resolution: "mutative@npm:1.0.5" + checksum: 10c0/e0361a09c6363f9c37acd4274bc85a8e3333c84cd28d4644b53a59056a1599c90efbf7b51f9131692103b53990de5fb75db9a2252d9b7fc1de1cc3e36922c88b + languageName: node + linkType: hard + "nanoid@npm:^3.3.7": version: 3.3.7 resolution: "nanoid@npm:3.3.7" @@ -2577,7 +2577,7 @@ __metadata: "@vitejs/plugin-react-swc": "npm:^3.5.0" "@vitest/ui": "npm:^1.6.0" colord: "npm:^2.9.3" - immer: "npm:^10.1.1" + mutative: "npm:^1.0.5" postcss: "npm:^8.4.38" postcss-preset-mantine: "npm:^1.15.0" postcss-simple-vars: "npm:^7.0.1" @@ -2590,6 +2590,7 @@ __metadata: vite-plugin-wasm: "npm:^3.3.0" vitest: "npm:^1.6.0" zustand: "npm:^4.5.2" + zustand-mutative: "npm:^1.0.0" languageName: unknown linkType: soft @@ -3100,6 +3101,18 @@ __metadata: languageName: node linkType: hard +"zustand-mutative@npm:^1.0.0": + version: 1.0.0 + resolution: "zustand-mutative@npm:1.0.0" + peerDependencies: + "@types/react": ^18.0 || ^17.0 + mutative: ^1.0.5 + react: ^18.0 || ^17.0 + zustand: ^4.0 + checksum: 10c0/1222d04e66c12874f3525531aa1776ddf0710bde03b3331f55d923fd3262233ee52cf0bf7ffce2901aeb4ae5eb2f91934ef139ddea41fd288fb80444252fbaea + languageName: node + linkType: hard + "zustand@npm:^4.5.2": version: 4.5.2 resolution: "zustand@npm:4.5.2"