From d312445bf252cb96b7258ad7be8763768620792f Mon Sep 17 00:00:00 2001 From: ilnaz <237x237@gmail.com> Date: Mon, 24 Feb 2025 23:07:10 +0300 Subject: [PATCH] feat: change sidebar to header, fix wizard update, delete unnecessary statuses --- locales/en.json | 2 +- locales/ru.json | 2 +- src/components/Header/Header.tsx | 51 ++++++++++++++++ src/components/Header/index.ts | 1 + src/components/LayoutArm/LayoutArm.tsx | 6 +- src/components/OrderItem/OrderItem.tsx | 19 ++++-- .../PopoverTemplate/PopoverTemplate.tsx | 35 +++++++++++ src/components/PopoverTemplate/index.ts | 1 + src/components/Sidebar/Sidebar.tsx | 61 ------------------- src/components/Sidebar/index.ts | 1 - src/models/api/order.ts | 5 +- stubs/json/arm-orders/success.json | 10 +-- 12 files changed, 111 insertions(+), 83 deletions(-) create mode 100644 src/components/Header/Header.tsx create mode 100644 src/components/Header/index.ts create mode 100644 src/components/PopoverTemplate/PopoverTemplate.tsx create mode 100644 src/components/PopoverTemplate/index.ts delete mode 100644 src/components/Sidebar/Sidebar.tsx delete mode 100644 src/components/Sidebar/index.ts diff --git a/locales/en.json b/locales/en.json index db39a54..6b67993 100644 --- a/locales/en.json +++ b/locales/en.json @@ -58,7 +58,7 @@ "dry-wash.arm.order.status.complete": "Completed", "dry-wash.arm.order.status.pending": "Pending", "dry-wash.arm.order.status.working": "Working", - "dry-wash.arm.order.status.canceled": "Canceled", + "dry-wash.arm.order.status.cancelled": "Canceled", "dry-wash.arm.order.status.placeholder": "Select status", "dry-wash.arm.order.master.placeholder": "Select master", "dry-wash.arm.order.table.header.carNumber": "Car Number", diff --git a/locales/ru.json b/locales/ru.json index 15586fb..08d57a5 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -5,7 +5,7 @@ "dry-wash.arm.order.status.complete": "Завершено", "dry-wash.arm.order.status.pending": "В ожидании", "dry-wash.arm.order.status.working": "В работе", - "dry-wash.arm.order.status.canceled": "Отменено", + "dry-wash.arm.order.status.cancelled": "Отменено", "dry-wash.arm.order.status.placeholder": "Выберите статус", "dry-wash.arm.order.master.placeholder": "Выберите мастера", "dry-wash.arm.order.table.header.carNumber": "Номер машины", diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx new file mode 100644 index 0000000..9adba6b --- /dev/null +++ b/src/components/Header/Header.tsx @@ -0,0 +1,51 @@ +import { Box, Button, Heading, HStack, Divider, Flex } from '@chakra-ui/react'; +import React from 'react'; +import { useLocation, Link } from 'react-router-dom'; +import { useTranslation } from 'react-i18next'; + +import { URLs } from '../../__data__/urls'; + +const Header = () => { + const location = useLocation(); + const isActive = (keyword: string) => location.pathname.includes(keyword); + + const { t } = useTranslation('~', { + keyPrefix: 'dry-wash.arm.master.sideBar', + }); + + return ( + + + + {t('title')} + + + {URLs.armOrder.isOn && ( + + )} + + {URLs.armMaster.isOn && ( + + )} + + + + ); +}; + +export default Header; diff --git a/src/components/Header/index.ts b/src/components/Header/index.ts new file mode 100644 index 0000000..579f1ac --- /dev/null +++ b/src/components/Header/index.ts @@ -0,0 +1 @@ +export { default } from './Header'; diff --git a/src/components/LayoutArm/LayoutArm.tsx b/src/components/LayoutArm/LayoutArm.tsx index aebba1a..6c04037 100644 --- a/src/components/LayoutArm/LayoutArm.tsx +++ b/src/components/LayoutArm/LayoutArm.tsx @@ -2,10 +2,10 @@ import { Box, Flex } from '@chakra-ui/react'; import React from 'react'; import { Navigate, Route, Routes } from 'react-router-dom'; -import Sidebar from '../Sidebar'; import Orders from '../Orders'; import Masters from '../Masters'; import { URLs } from '../../__data__/urls'; +import Header from '../Header'; const LayoutArm = () => { let defaultRedirect = null; @@ -17,8 +17,8 @@ const LayoutArm = () => { } return ( - - + +
} /> diff --git a/src/components/OrderItem/OrderItem.tsx b/src/components/OrderItem/OrderItem.tsx index bba3c82..e3fd853 100644 --- a/src/components/OrderItem/OrderItem.tsx +++ b/src/components/OrderItem/OrderItem.tsx @@ -2,16 +2,17 @@ import React, { ChangeEvent, useState } from 'react'; import { Td, Tr, Link, Select } from '@chakra-ui/react'; import { useTranslation } from 'react-i18next'; import dayjs from 'dayjs'; +import { ViewIcon } from '@chakra-ui/icons'; import { getTimeSlot } from '../../lib'; import { useUpdateOrdersMutation } from '../../__data__/service/api'; import { OrderArm, Status, statuses } from '../../models/api'; +import PopoverTemplate from '../PopoverTemplate'; const statusColors: Record = { pending: 'yellow.100', progress: 'blue.100', - working: 'orange.100', - canceled: 'red.100', + cancelled: 'red.100', complete: 'green.100', }; @@ -34,7 +35,7 @@ const OrderItem = ({ const [statusSelect, setStatus] = useState(status); const bgColor = statusColors[statusSelect]; - const [masterSelect, setMaster] = useState(master?.name); + const [masterSelectId, setMasterSelectId] = useState(master); const handelChangeMasters = (e: ChangeEvent) => { const masterName = e.target.value; @@ -43,7 +44,7 @@ const OrderItem = ({ ); if (selectedMaster) { - setMaster(masterName); + setMasterSelectId(selectedMaster.id); updateOrders({ id, master: selectedMaster.id }); } else { console.error('Master not found'); @@ -56,6 +57,10 @@ const OrderItem = ({ setStatus(status); }; + const masterSelectChange = allMasters.find( + (master) => master.id === masterSelectId, + ); + return ( {carNumber} @@ -79,7 +84,7 @@ const OrderItem = ({