@@ -25,7 +25,6 @@ export const App: React.FC = () => {
2525 raw : string ;
2626 error : string | null ;
2727 } > ( { regex : null , raw : '' , error : null } ) ;
28- const [ , forceRender ] = React . useReducer ( ( s : number ) => s + 1 , 0 ) ;
2928 const [ isActive , setIsActive ] = React . useState ( true ) ;
3029
3130 const handlePatternChange = React . useCallback ( ( e : React . ChangeEvent < HTMLInputElement > ) : void => {
@@ -43,19 +42,16 @@ export const App: React.FC = () => {
4342 const addPattern = React . useCallback ( ( ) => {
4443 if ( currentPattern . regex != null ) {
4544 $patterns . set ( [
46- ...patterns ,
45+ ...$ patterns. get ( ) ,
4746 { source : currentPattern . regex . source , flags : currentPattern . regex . flags , isActive : true }
4847 ] ) ;
4948 setCurrentPattern ( { regex : null , raw : '' , error : null } ) ;
5049 }
51- } , [ currentPattern , patterns ] ) ;
50+ } , [ currentPattern ] ) ;
5251
53- const removePattern = React . useCallback (
54- ( index : number ) => {
55- $patterns . set ( patterns . filter ( ( _ , i ) => i !== index ) ) ;
56- } ,
57- [ patterns ]
58- ) ;
52+ const removePattern = React . useCallback ( ( index : number ) => {
53+ $patterns . set ( $patterns . get ( ) . filter ( ( _ , i ) => i !== index ) ) ;
54+ } , [ ] ) ;
5955
6056 return (
6157 < div className = "h-[500px] w-[350px] overflow-y-auto bg-background p-4 text-foreground" >
@@ -111,14 +107,13 @@ export const App: React.FC = () => {
111107 pressed = { pattern . isActive }
112108 onPressedChange = { ( pressed ) => {
113109 $patterns . set (
114- patterns . map ( ( p , i ) => {
110+ $ patterns. get ( ) . map ( ( p , i ) => {
115111 if ( i === index ) {
116112 return { ...p , isActive : pressed } ;
117113 }
118114 return p ;
119115 } )
120116 ) ;
121- forceRender ( ) ;
122117 } }
123118 className = "text-blue-500 hover:bg-transparent hover:text-blue-400 data-[state=on]:bg-transparent data-[state=on]:text-gray-500 data-[state=on]:hover:text-gray-400"
124119 >
0 commit comments