Skip to content

Commit 671ef9a

Browse files
authored
refactor: gold panel (#29)
* refactor: 可読性の向上 * refactor: トップダウン構造化
1 parent 77006f5 commit 671ef9a

File tree

1 file changed

+19
-20
lines changed

1 file changed

+19
-20
lines changed

src/components/EditScreen/CommandWindow/GoldPanel.tsx

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,17 @@ export const GoldPanel: React.FC<GoldPanelProps> = ({
1616
setSilentQuery,
1717
setNextIndex,
1818
}) => {
19-
const findGold = (data: object | null): number => {
20-
try {
21-
const match = JSON.stringify(data).match(/"_gold":\s*(\d+)/);
22-
return match ? Number(match[1]) : 0;
23-
} catch {
24-
return 0;
25-
}
26-
};
27-
2819
const gold = findGold(saveData);
2920
const maxGold = 999_999_999;
30-
const minGold = 0;
21+
22+
const changeGold = (e: React.ChangeEvent<HTMLInputElement>) => {
23+
const raw = e.target.value.replace(/\D/g, "");
24+
const clamped = Math.min(Number(raw || "0"), maxGold);
25+
26+
updateGold(clamped);
27+
setSilentQuery(true);
28+
scroll();
29+
};
3130

3231
const updateGold = (amount: number) => {
3332
setSaveData((prev: object) => {
@@ -38,19 +37,19 @@ export const GoldPanel: React.FC<GoldPanelProps> = ({
3837
});
3938
};
4039

41-
const scrollGold = () => {
40+
const scroll = () => {
4241
setQuery("_gold");
4342
setNextIndex(-1);
4443
};
4544

46-
const changeGold = (e: React.ChangeEvent<HTMLInputElement>) => {
47-
const trimmed = e.target.value.replace(/[^\d]/g, "").slice(0, 9);
48-
const value = Math.min(Number(trimmed) || minGold, maxGold);
49-
50-
updateGold(value);
51-
setSilentQuery(true);
52-
scrollGold();
53-
};
45+
function findGold(data: object | null): number {
46+
try {
47+
const match = JSON.stringify(data).match(/"_gold":\s*(\d+)/);
48+
return match ? Number(match[1]) : 0;
49+
} catch {
50+
return 0;
51+
}
52+
}
5453

5554
return (
5655
<div className="gold-row">
@@ -59,7 +58,7 @@ export const GoldPanel: React.FC<GoldPanelProps> = ({
5958
onClick={() => {
6059
updateGold(maxGold);
6160
setSilentQuery(true);
62-
scrollGold();
61+
scroll();
6362
}}
6463
>
6564
Gold

0 commit comments

Comments
 (0)