Skip to content

Commit 9807237

Browse files
committed
split router from App.tsx file
1 parent f405692 commit 9807237

File tree

11 files changed

+155
-75
lines changed

11 files changed

+155
-75
lines changed

backend/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM node:18.1.0-alpine3.14
1+
FROM node:20-alpine3.18
22

33
WORKDIR /svr/app
44

backend/src/app.module.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Module } from '@nestjs/common';
22
import { ConfigModule } from '@nestjs/config';
33
import configuration from './config/configuration';
44
import { TypeOrmModule } from '@nestjs/typeorm';
5-
import { typeOrmAsyncConfig } from 'db/data-source';
5+
// import { typeOrmAsyncConfig } from 'db/data-source';
66
import { UserModule } from './user/user.module';
77
import { AuthModule } from './auth/auth.module';
88
import { PassportModule } from '@nestjs/passport';
@@ -23,8 +23,18 @@ import { OrderModule } from './order/order.module';
2323
load: [configuration],
2424
}),
2525
PassportModule.register({ session: true }),
26-
// TypeOrmModule.forRoot(dataSourceOptions),
27-
TypeOrmModule.forRootAsync(typeOrmAsyncConfig),
26+
TypeOrmModule.forRoot({
27+
type: 'postgres',
28+
host: '127.0.0.1',
29+
port: 5432,
30+
username: 'postgres',
31+
database: 'smartphone-shop',
32+
password: '12345',
33+
entities: ['dist/**/*.entity.{js, ts}'],
34+
// autoLoadEntities: true,
35+
synchronize: true,
36+
}),
37+
// TypeOrmModule.forRootAsync(typeOrmAsyncConfig),
2838
UserModule,
2939
AuthModule,
3040
ImageStorageModule,

docker-compose.yml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@ version: '3.8'
22

33
services:
44
postgres:
5-
image: postgres:14.2
5+
image: postgres:14.2-alpine
66
restart: always
77
container_name: postgres
88
environment:
99
POSTGRES_USER: ${DB_USERNAME}
1010
POSTGRES_PASSWORD: ${DB_PASSWORD}
11-
POSTGRES_DB: ${smartphone-shop}
11+
POSTGRES_DB: ${DB_DATABASE}
1212
PGDATA: /var/lib/postgresql/data
1313
ports:
1414
- "${DB_PORT}:5432"
1515
volumes:
1616
- pg_data:/var/lib/postgresql/data/
17-
- ./docker_postgres_init.sql:/docker-entrypoint-initdb.d/docker_postgres_init.sql
17+
# - ./docker_postgres_init.sql:/docker-entrypoint-initdb.d/docker_postgres_init.sql
1818
networks:
1919
- bp-network
2020
env_file:
@@ -28,8 +28,6 @@ services:
2828
context: './backend'
2929
depends_on:
3030
- postgres
31-
links:
32-
- postgres
3331
volumes:
3432
- ./backend:/svr/app
3533
- /svr/app/node_modules
@@ -45,8 +43,8 @@ services:
4543
build:
4644
dockerfile: Dockerfile
4745
context: "./frontend"
48-
depends_on:
49-
- backend # todo: might not be necessary
46+
# depends_on:
47+
# - backend # todo: might not be necessary
5048
volumes:
5149
- ./frontend:/usr/app
5250
- /usr/app/node_modules

frontend/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM node:18.1.0-alpine3.14
1+
FROM node:20-alpine3.18
22

33
WORKDIR /usr/app
44

frontend/src/App.tsx

Lines changed: 3 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,13 @@
1-
import { BrowserRouter, Routes, Route } from 'react-router-dom'
2-
import Login from './pages/Login'
3-
import Signup from './pages/Signup'
4-
import Home from './pages/Home'
5-
import Layout from './layout/Layout'
6-
import News from './pages/News'
7-
import Hiring from './pages/Hiring'
8-
import About from './pages/About'
9-
import Maintenance from './pages/Maintenance'
10-
import Contact from './pages/Contact'
11-
import AllProduct from './pages/AllProduct'
12-
import ProductDetails from './pages/ProductDetails'
13-
import DetailUser from './pages/detailUser'
14-
import Cart from './pages/Cart'
15-
import RedirectRoute from './routes/RedirectRoute'
1+
import { RouterProvider } from 'react-router-dom'
162
import { ToastContainer } from 'react-toastify';
173
import 'react-toastify/dist/ReactToastify.css';
18-
import PrivateRoute from './routes/PrivateRoute'
19-
import CheckLoginRoute from './routes/CheckLoginRoute'
20-
import ForgotPassword from './pages/ForgotPassword'
21-
import RegisterSuccess from './pages/RegisterSuccess'
22-
import VerifyAccount from './pages/VerifyAccount'
23-
import ButtonSetting from './components/ButtonSetting/ButtonSetting'
24-
import Settings from './pages/Settings'
4+
import router from './routers/router'
255

266
function App() {
277
return (
288
<div className='dark:bg-slate-950'>
29-
<BrowserRouter>
30-
<Routes>
31-
<Route path='/' element={<Layout/>}>
32-
<Route element={<CheckLoginRoute/>}>
33-
<Route index element={<Home/>}/>
34-
<Route path='/news' element={<News/>}/>
35-
<Route path='/hiring' element={<Hiring/>}/>
36-
<Route path='/about' element={<About/>}/>
37-
<Route path='/maintenance' element={<Maintenance/>}/>
38-
<Route path='/contact' element={<Contact/>}/>
39-
<Route path='/showall' element={<AllProduct/>}/>
40-
<Route path='/product/:productId' element={<ProductDetails/>}/>
41-
42-
// authentication
43-
<Route element={<PrivateRoute/>}>
44-
<Route path='/detailUser' element={<DetailUser/>}/>
45-
<Route path='/cart' element={<Cart/>}/>
46-
</Route>
47-
<Route path='/settings' element={<Settings/>}/>
48-
</Route>
9+
<RouterProvider router={router}/>
4910

50-
</Route>
51-
<Route path='/auth' element={<RedirectRoute/>}>
52-
<Route path='login' element={<Login/>}/>
53-
<Route path='signup' element={<Signup/>}/>
54-
<Route path='forgotPassword' element={<ForgotPassword/>}/>
55-
<Route path='success' element={<RegisterSuccess/>}/>
56-
<Route path='verify/:token' element={<VerifyAccount/>}/>
57-
</Route>
58-
</Routes>
59-
<ButtonSetting/>
60-
</BrowserRouter>
6111
<ToastContainer
6212
position="top-center"
6313
autoClose={2000}

frontend/src/components/ButtonSetting/ButtonSetting.tsx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
import { IoSettings } from "react-icons/io5";
2-
import { useNavigate } from "react-router-dom";
2+
import { Outlet, useNavigate } from "react-router-dom";
33

44
const ButtonSetting = () => {
55
const navigate = useNavigate();
66
return (
7-
<button className='fixed bottom-2'
8-
style={{left: 'calc(100vw - 140px)' }}
9-
onClick={() => {
10-
navigate('/settings')
11-
}}
12-
>
13-
<IoSettings className="text-3xl text-gray-500 opacity-40 hover:opacity-100"/>
14-
</button>
7+
<div>
8+
<Outlet/>
9+
<button className='fixed bottom-2'
10+
style={{left: 'calc(100vw - 140px)' }}
11+
onClick={() => {
12+
navigate('/settings')
13+
}}
14+
>
15+
<IoSettings className="text-3xl text-gray-500 opacity-40 hover:opacity-100"/>
16+
</button>
17+
</div>
1518
)
1619
}
1720

frontend/src/pages/Cart.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const Cart = () => {
4343
})
4444

4545
if (isLoading) return <div>Loading...</div>
46-
if (isError) return navigate('/auth/login');
46+
if (isError) navigate('/auth/login');
4747

4848
return (
4949
<DocumentMeta {...CartMeta}>

0 commit comments

Comments
 (0)