first commit
This commit is contained in:
9
src/app/App.tsx
Normal file
9
src/app/App.tsx
Normal file
@@ -0,0 +1,9 @@
|
||||
import { RouterProvider, QueryProvider } from './providers'
|
||||
|
||||
export function App() {
|
||||
return (
|
||||
<QueryProvider>
|
||||
<RouterProvider />
|
||||
</QueryProvider>
|
||||
)
|
||||
}
|
||||
8
src/app/providers/QueryProvider.tsx
Normal file
8
src/app/providers/QueryProvider.tsx
Normal file
@@ -0,0 +1,8 @@
|
||||
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
||||
import type { ReactNode } from 'react'
|
||||
|
||||
const queryClient = new QueryClient()
|
||||
|
||||
export function QueryProvider({ children }: { children: ReactNode }) {
|
||||
return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
|
||||
}
|
||||
27
src/app/providers/RouterProvider.tsx
Normal file
27
src/app/providers/RouterProvider.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
import { BrowserRouter, Route, Routes } from 'react-router-dom'
|
||||
import { HomePage } from '@pages/home'
|
||||
import { WalletPage } from '@pages/wallet'
|
||||
import { SwapPage } from '@pages/swap'
|
||||
import { ProfilePage } from '@pages/profile'
|
||||
import { LoginPage } from '@pages/login'
|
||||
import { RegisterPage } from '@pages/register'
|
||||
import { SeedPhrasePage } from '@pages/seed-phrase'
|
||||
import { ROUTES } from '@shared/config/routes'
|
||||
import { ScrollToTop } from './ScrollToTop'
|
||||
|
||||
export function RouterProvider() {
|
||||
return (
|
||||
<BrowserRouter>
|
||||
<ScrollToTop />
|
||||
<Routes>
|
||||
<Route path={ROUTES.HOME} element={<HomePage />} />
|
||||
<Route path={ROUTES.WALLET} element={<WalletPage />} />
|
||||
<Route path={ROUTES.SWAP} element={<SwapPage />} />
|
||||
<Route path={ROUTES.PROFILE} element={<ProfilePage />} />
|
||||
<Route path={ROUTES.LOGIN} element={<LoginPage />} />
|
||||
<Route path={ROUTES.REGISTER} element={<RegisterPage />} />
|
||||
<Route path={ROUTES.SEED_PHRASE} element={<SeedPhrasePage />} />
|
||||
</Routes>
|
||||
</BrowserRouter>
|
||||
)
|
||||
}
|
||||
12
src/app/providers/ScrollToTop.tsx
Normal file
12
src/app/providers/ScrollToTop.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import { useEffect } from 'react'
|
||||
import { useLocation } from 'react-router-dom'
|
||||
|
||||
export function ScrollToTop() {
|
||||
const { pathname } = useLocation()
|
||||
|
||||
useEffect(() => {
|
||||
window.scrollTo(0, 0)
|
||||
}, [pathname])
|
||||
|
||||
return null
|
||||
}
|
||||
2
src/app/providers/index.ts
Normal file
2
src/app/providers/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export { RouterProvider } from './RouterProvider'
|
||||
export { QueryProvider } from './QueryProvider'
|
||||
1
src/app/styles/fonts.css
Normal file
1
src/app/styles/fonts.css
Normal file
@@ -0,0 +1 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap');
|
||||
12
src/app/styles/global.css
Normal file
12
src/app/styles/global.css
Normal file
@@ -0,0 +1,12 @@
|
||||
body {
|
||||
font-family: var(--font-sans);
|
||||
background: var(--bg-deep);
|
||||
color: var(--text-primary);
|
||||
overflow-x: hidden;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
#root {
|
||||
min-height: 100vh;
|
||||
}
|
||||
34
src/app/styles/reset.css
Normal file
34
src/app/styles/reset.css
Normal file
@@ -0,0 +1,34 @@
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
button {
|
||||
font: inherit;
|
||||
color: inherit;
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
input {
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
img,
|
||||
svg {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
20
src/app/styles/variables.css
Normal file
20
src/app/styles/variables.css
Normal file
@@ -0,0 +1,20 @@
|
||||
:root {
|
||||
--bg-deep: #0a0b2e;
|
||||
--bg-mid: #1b1547;
|
||||
--grad-edge: #3d2a8e;
|
||||
--grad-center: #5b3db8;
|
||||
|
||||
--text-primary: #ffffff;
|
||||
--text-secondary: #b5b0cc;
|
||||
|
||||
--interactive: #4a6dff;
|
||||
--highlight: #00d4ff;
|
||||
--success: #26a17b;
|
||||
--error: #ff4466;
|
||||
|
||||
--glass-border: rgba(255, 255, 255, 0.08);
|
||||
--glass-bg: rgba(255, 255, 255, 0.04);
|
||||
|
||||
--font-sans: 'Manrope', system-ui, sans-serif;
|
||||
--font-mono: 'JetBrains Mono', monospace;
|
||||
}
|
||||
Reference in New Issue
Block a user