1-
21import { createRoot } from 'react-dom/client'
32import { useState , useEffect } from 'react'
43import { BrowserRouter , Routes , Route , Link , useLocation , useSearchParams } from 'react-router-dom'
54import { ErrorBoundary , getErrorMessage } from 'react-error-boundary'
65
76import { LS_RADIXES , AppContext , getCharsLS , sanitizeInput , serializeRadixes , unserializeRadixes } from './common.ts'
7+ import { type Radix , createRadixes , createRadix , num2str , str2num , allowedCharaters , } from './radixes.ts'
8+
89import Header from './components/header.tsx'
910import Show from './components/show.tsx'
1011import Add from './components/add.tsx'
1112import Multiply from './components/multiply.tsx'
1213import Convert from './components/convert.tsx'
13- import {
14- type Radix ,
15- createRadixes ,
16- createRadix ,
17- num2str ,
18- str2num ,
19- allowedCharaters ,
20- } from '#/utils.ts'
2114
2215import './app.css'
2316
@@ -77,8 +70,21 @@ function useStore(updateError: (error: unknown) => void) {
7770 const [ radixes , setRadixes ] = useState ( getRadixesLS ( updateError ) ?? createRadixes ( getCharsLS ( ) ) )
7871 const [ enabledRadixes , setEnabledRadixes ] = useState ( radixes . filter ( r => r . enabled ) )
7972 const [ searchParams , setSearchParams ] = useSearchParams ( )
80- const [ value , setValue ] = useState ( BIG_INT_0 )
8173 const [ radix , setRadix ] = useState ( createRadix ( 10 ) )
74+ const [ value , setValue ] = useState ( BIG_INT_0 )
75+
76+ const updateRadixes : UpdateRadixes = ( radixes ) => {
77+ setRadixes ( radixes )
78+
79+ const enabledRadixes = radixes . filter ( v => v . enabled )
80+ setEnabledRadixes ( enabledRadixes )
81+
82+ searchParams . delete ( 'r' )
83+ enabledRadixes . forEach ( r => { searchParams . append ( 'r' , r . name ) } )
84+ setSearchParams ( searchParams )
85+
86+ localStorage . setItem ( LS_RADIXES , serializeRadixes ( radixes ) )
87+ }
8288
8389 const updateValue : UpdateValue = ( value , r = radix ) => {
8490 if ( value === BIG_INT_0 ) {
@@ -97,19 +103,6 @@ function useStore(updateError: (error: unknown) => void) {
97103 setSearchParams ( searchParams )
98104 }
99105
100- const updateRadixes : UpdateRadixes = ( radixes ) => {
101- setRadixes ( radixes )
102-
103- const enabledRadixes = radixes . filter ( v => v . enabled )
104- setEnabledRadixes ( enabledRadixes )
105-
106- searchParams . delete ( 'r' )
107- enabledRadixes . forEach ( r => { searchParams . append ( 'r' , r . name ) } )
108- setSearchParams ( searchParams )
109-
110- localStorage . setItem ( LS_RADIXES , serializeRadixes ( radixes ) )
111- }
112-
113106 useEffect ( ( ) => {
114107 if ( searchParams . has ( 'clear-settings' ) ) localStorage . clear ( )
115108 if ( searchParams . has ( 'r' ) ) {
0 commit comments