feat: add router to the arm page (#14)

This commit is contained in:
Ильназ 2024-11-09 19:34:12 +03:00
parent e4969938c3
commit 04e4d011ff
4 changed files with 26 additions and 25 deletions

View File

@ -3,13 +3,19 @@ import Sidebar from '../Sidebar';
import Orders from '../Orders'; import Orders from '../Orders';
import Masters from '../Masters'; import Masters from '../Masters';
import React from 'react'; import React from 'react';
import { Navigate, Route, Routes } from 'react-router-dom';
const LayoutArm = ({ currentPage, onSelectPage }) => ( const LayoutArm = () => (
<Flex h='100vh'> <Flex h='100vh'>
<Sidebar onSelectPage={onSelectPage} /> <Sidebar />
<Box flex='1' bg='gray.50'> <Box flex='1' bg='gray.50'>
{currentPage === 'orders' && <Orders />} <Routes>
{currentPage === 'masters' && <Masters />} <Route>
<Route index element={<Navigate to='orders' replace />} />
<Route path='orders' element={<Orders />} />
<Route path='masters' element={<Masters />} />
</Route>
</Routes>
</Box> </Box>
</Flex> </Flex>
); );

View File

@ -2,7 +2,9 @@ import { Box, Button, Heading, VStack } from '@chakra-ui/react';
import React from 'react'; import React from 'react';
import { Divider } from '@chakra-ui/react'; import { Divider } from '@chakra-ui/react';
import i18next from 'i18next'; import i18next from 'i18next';
const Sidebar = ({ onSelectPage }) => ( import { Link } from 'react-router-dom';
const Sidebar = () => (
<Box <Box
borderRight='1px solid black' borderRight='1px solid black'
bg='gray.50' bg='gray.50'
@ -17,23 +19,17 @@ const Sidebar = ({ onSelectPage }) => (
<VStack align='start' spacing='4'> <VStack align='start' spacing='4'>
<Divider /> <Divider />
<Button <Link to='orders'>
onClick={() => onSelectPage('orders')} <Button w='100%' colorScheme='green' variant='ghost'>
w='100%'
colorScheme='green'
variant='ghost'
>
{i18next.t(`dry-wash.arm.master.sideBar.title.orders`)} {i18next.t(`dry-wash.arm.master.sideBar.title.orders`)}
</Button> </Button>
</Link>
<Divider /> <Divider />
<Button <Link to='masters'>
onClick={() => onSelectPage('masters')} <Button w='100%' colorScheme='green' variant='ghost'>
w='100%'
colorScheme='green'
variant='ghost'
>
{i18next.t(`dry-wash.arm.master.sideBar.title.master`)} {i18next.t(`dry-wash.arm.master.sideBar.title.master`)}
</Button> </Button>
</Link>
<Divider /> <Divider />
</VStack> </VStack>
</Box> </Box>

View File

@ -2,9 +2,7 @@ import React, { useState } from 'react';
import LayoutArm from '../../components/LayoutArm'; import LayoutArm from '../../components/LayoutArm';
const Page = () => { const Page = () => {
const [currentPage, setCurrentPage] = useState('orders'); return <LayoutArm />;
return <LayoutArm currentPage={currentPage} onSelectPage={setCurrentPage} />;
}; };
export default Page; export default Page;

View File

@ -16,9 +16,10 @@ const Routers = () => {
<Route path='order-form' element={<OrderForm />} /> <Route path='order-form' element={<OrderForm />} />
<Route path='order-view' element={<OrderView />} /> <Route path='order-view' element={<OrderView />} />
</Route> </Route>
<Route path='/dry-wash/arm' element={<Arm />}></Route> <Route path='/dry-wash/arm/*' element={<Arm />}></Route>
</Routes> </Routes>
</Suspense> </Suspense>
); );
}; };