519c411db0
* feat: sync and update with all changes from fork * refactor: extract clipboard copy logic into custom hook * fix: correct spelling of DEFAULT_REFRESH_FREQUENCY_MS in Stamps and WalletBalance providers * refactor(ui-tests): replace fixed sleeps with condition-based waits * fix: handle null values for size and granteeCount in infoGroups * fix(lint): add newline at end of file in useClipboardCopy hook * fix(ui-tests): page.goto URL * refactor: update import paths for useClipboardCopy --------- Co-authored-by: Ferenc Sárai <sarai.ferenc@gmail.com>
84 lines
2.7 KiB
TypeScript
84 lines
2.7 KiB
TypeScript
import CssBaseline from '@mui/material/CssBaseline'
|
|
import { ThemeProvider } from '@mui/material/styles'
|
|
import { SnackbarProvider } from 'notistack'
|
|
import { ReactElement } from 'react'
|
|
import { HashRouter as Router } from 'react-router-dom'
|
|
|
|
import Dashboard from './layout/Dashboard'
|
|
import { Provider as BeeProvider } from './providers/Bee'
|
|
import { Provider as FeedsProvider } from './providers/Feeds'
|
|
import { Provider as FileProvider } from './providers/File'
|
|
import { Provider as FileManagerProvider } from './providers/FileManager'
|
|
import { Provider as PlatformProvider } from './providers/Platform'
|
|
import { Provider as SettingsProvider } from './providers/Settings'
|
|
import { Provider as StampsProvider } from './providers/Stamps'
|
|
import { Provider as TopUpProvider } from './providers/TopUp'
|
|
import { Provider as BalanceProvider } from './providers/WalletBalance'
|
|
import BaseRouter from './routes'
|
|
import { theme } from './theme'
|
|
|
|
import './App.css'
|
|
|
|
interface Props {
|
|
beeApiUrl?: string
|
|
defaultRpcUrl?: string
|
|
lockedApiSettings?: boolean
|
|
isDesktop?: boolean
|
|
desktopUrl?: string
|
|
errorReporting?: (err: Error) => void
|
|
}
|
|
|
|
const App = ({
|
|
beeApiUrl,
|
|
defaultRpcUrl,
|
|
lockedApiSettings,
|
|
isDesktop,
|
|
desktopUrl,
|
|
errorReporting,
|
|
}: Props): ReactElement => {
|
|
const mainApp = (
|
|
<div className="App">
|
|
<ThemeProvider theme={theme}>
|
|
<SettingsProvider
|
|
beeApiUrl={beeApiUrl}
|
|
defaultRpcUrl={defaultRpcUrl}
|
|
lockedApiSettings={lockedApiSettings}
|
|
isDesktop={isDesktop}
|
|
desktopUrl={desktopUrl}
|
|
>
|
|
<TopUpProvider>
|
|
<BeeProvider>
|
|
<BalanceProvider>
|
|
<StampsProvider>
|
|
<FileProvider>
|
|
<FileManagerProvider>
|
|
<FeedsProvider>
|
|
<PlatformProvider>
|
|
<SnackbarProvider preventDuplicate anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}>
|
|
<Router>
|
|
<>
|
|
<CssBaseline />
|
|
<Dashboard errorReporting={errorReporting}>
|
|
<BaseRouter />
|
|
</Dashboard>
|
|
</>
|
|
</Router>
|
|
</SnackbarProvider>
|
|
</PlatformProvider>
|
|
</FeedsProvider>
|
|
</FileManagerProvider>
|
|
</FileProvider>
|
|
</StampsProvider>
|
|
</BalanceProvider>
|
|
</BeeProvider>
|
|
</TopUpProvider>
|
|
</SettingsProvider>
|
|
</ThemeProvider>
|
|
</div>
|
|
)
|
|
|
|
return mainApp
|
|
}
|
|
|
|
export default App
|