From 189002cf442aa6d8c6862218a7a834f9091f95bc Mon Sep 17 00:00:00 2001 From: AzenKain Date: Mon, 3 Nov 2025 12:22:10 +0700 Subject: [PATCH] UPDATE: Replace lodash clone deep to structuredClone --- bun.lock | 4 -- package.json | 2 - src/components/avatarInfo/index.tsx | 1 + src/components/eidolonsInfo/index.tsx | 86 +++++++++++++-------------- src/components/monsterBar/as.tsx | 3 +- src/components/monsterBar/ce.tsx | 23 ++++--- src/components/monsterBar/moc.tsx | 5 +- src/components/monsterBar/peak.tsx | 5 +- src/components/monsterBar/pf.tsx | 3 +- src/components/relicBar/index.tsx | 17 +++--- src/components/showcaseCard/index.tsx | 1 + src/components/skillsInfo/index.tsx | 11 ++-- src/stores/relicMakerStore.ts | 8 +-- 13 files changed, 78 insertions(+), 91 deletions(-) diff --git a/bun.lock b/bun.lock index 0f6933d..2574139 100644 --- a/bun.lock +++ b/bun.lock @@ -10,7 +10,6 @@ "fast-average-color": "^9.5.0", "framer-motion": "^12.12.1", "html2canvas-pro": "^1.5.11", - "lodash": "^4.17.21", "lucide-react": "^0.536.0", "next": "15.3.2", "next-intl": "^4.1.0", @@ -27,7 +26,6 @@ "@eslint/eslintrc": "^3", "@tailwindcss/postcss": "^4", "@types/jest": "^29.5.14", - "@types/lodash": "^4.17.20", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", @@ -302,8 +300,6 @@ "@types/json5": ["@types/json5@0.0.29", "", {}, "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="], - "@types/lodash": ["@types/lodash@4.17.20", "", {}, "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA=="], - "@types/node": ["@types/node@20.19.9", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw=="], "@types/parse-json": ["@types/parse-json@4.0.2", "", {}, "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="], diff --git a/package.json b/package.json index 0b357fb..eb65f26 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,6 @@ "fast-average-color": "^9.5.0", "framer-motion": "^12.12.1", "html2canvas-pro": "^1.5.11", - "lodash": "^4.17.21", "lucide-react": "^0.536.0", "next": "15.3.2", "next-intl": "^4.1.0", @@ -32,7 +31,6 @@ "@eslint/eslintrc": "^3", "@tailwindcss/postcss": "^4", "@types/jest": "^29.5.14", - "@types/lodash": "^4.17.20", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", diff --git a/src/components/avatarInfo/index.tsx b/src/components/avatarInfo/index.tsx index 645b998..cf86a4e 100644 --- a/src/components/avatarInfo/index.tsx +++ b/src/components/avatarInfo/index.tsx @@ -425,6 +425,7 @@ export default function AvatarInfo() { Lightcone -

-
- {transI18n("eidolons")} -

-
- {charRank && avatars[avatarSelected?.id || ""] && ( -
- {Object.entries(charRank || {}).map(([key, rank]) => ( -
{ - let newRank = Number(key) - if (avatars[avatarSelected?.id || ""]?.data?.rank == Number(key)) { - newRank = Number(key) - 1 - } - setAvatars({ ...avatars, [avatarSelected?.id || ""]: { ...avatars[avatarSelected?.id || ""], data: { ...avatars[avatarSelected?.id || ""].data, rank: newRank } } }) - }} - > - {`Rank -
- {key}. - +
+ {transI18n("eidolons")} + +
+ {charRank && avatars[avatarSelected?.id || ""] && ( +
+ {Object.entries(charRank || {}).map(([key, rank]) => ( +
{ + let newRank = Number(key) + if (avatars[avatarSelected?.id || ""]?.data?.rank == Number(key)) { + newRank = Number(key) - 1 + } + setAvatars({ ...avatars, [avatarSelected?.id || ""]: { ...avatars[avatarSelected?.id || ""], data: { ...avatars[avatarSelected?.id || ""].data, rank: newRank } } }) + }} + > + {`Rank -
-
-
-
-
- ))} -
- )} -
+
+ {key}. + +
+
+
+
+
+ ))} + +
+ )} +
); } diff --git a/src/components/monsterBar/as.tsx b/src/components/monsterBar/as.tsx index 1aa87b2..d517d5e 100644 --- a/src/components/monsterBar/as.tsx +++ b/src/components/monsterBar/as.tsx @@ -8,7 +8,6 @@ import useUserDataStore from "@/stores/userDataStore"; import useMonsterStore from "@/stores/monsterStore"; import Image from "next/image"; import { MonsterStore } from "@/types"; -import cloneDeep from 'lodash/cloneDeep' import useMazeStore from "@/stores/mazeStore"; import { useTranslations } from "next-intl"; import { listCurrentLanguageApi } from "@/constant/constant"; @@ -55,7 +54,7 @@ export default function AsBar() { useEffect(() => { if (!challengeSelected || as_config.event_id === 0 || as_config.challenge_id === 0) return - const newBattleConfig = cloneDeep(as_config) + const newBattleConfig = structuredClone(as_config) newBattleConfig.cycle_count = 0 newBattleConfig.blessings = [] diff --git a/src/components/monsterBar/ce.tsx b/src/components/monsterBar/ce.tsx index d71c902..0d166be 100644 --- a/src/components/monsterBar/ce.tsx +++ b/src/components/monsterBar/ce.tsx @@ -17,7 +17,6 @@ import useLocaleStore from "@/stores/localeStore"; import { getLocaleName } from "@/helper"; import Image from "next/image"; import { MonsterBasic } from "@/types"; -import cloneDeep from 'lodash/cloneDeep' import { useTranslations } from "next-intl"; import { listCurrentLanguageApi } from "@/constant/constant"; import useGlobalStore from "@/stores/globalStore"; @@ -117,7 +116,7 @@ export default function CeBar() { if (!ce_config) return if (!extraData || !extraData.theory_craft?.mode) return - const newExtraData = cloneDeep(extraData) + const newExtraData = structuredClone(extraData) if (!newExtraData.theory_craft.hp) { newExtraData.theory_craft.hp = {} } @@ -253,7 +252,7 @@ export default function CeBar() { onClick={(e) => { e.stopPropagation() - const newCeConfig = cloneDeep(ce_config) + const newCeConfig = structuredClone(ce_config) const waves = newCeConfig.monsters const temp = waves[waveIndex - 1] waves[waveIndex - 1] = waves[waveIndex] @@ -270,7 +269,7 @@ export default function CeBar() { disabled={waveIndex === ce_config.monsters.length - 1} onClick={(e) => { e.stopPropagation() - const newCeConfig = cloneDeep(ce_config) + const newCeConfig = structuredClone(ce_config) const waves = newCeConfig.monsters const temp = waves[waveIndex + 1] waves[waveIndex + 1] = waves[waveIndex] @@ -285,7 +284,7 @@ export default function CeBar() {