@@ -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 ( / " _ g o l d " : \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 ( / " _ g o l d " : \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