From 021038f4ad1572ee1403592bc296ef668cbffb52 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Thu, 9 Oct 2025 05:43:21 +0300 Subject: [PATCH] feat(frontend): add mui --- frontend/src/app/App/ui/App.tsx | 7 +- frontend/src/entity/cards/index.ts | 5 +- .../entity/cards/ui/AddBankCardForm/index.ts | 1 + .../AddBankCardForm/ui/AddBankCardForm.ui.tsx | 28 +++- .../cards/ui/DeleteBankCardForm/index.ts | 1 + .../ui/DeleteBankCardForm.ui.tsx | 31 +++- .../entity/cards/ui/EditBankCardForm/index.ts | 1 + .../ui/EditBankCardForm.ui.tsx | 28 +++- frontend/src/entity/cash/index.ts | 5 +- .../src/entity/cash/ui/AddCashForm/index.ts | 2 +- .../cash/ui/AddCashForm/ui/AddCashForm.ui.tsx | 27 +++- .../entity/cash/ui/DeleteCashForm/index.ts | 1 + .../DeleteCashForm/ui/DeleteCashForm.ui.tsx | 31 +++- .../src/entity/cash/ui/EditCashForm/index.ts | 2 +- .../ui/EditCashForm/ui/EditCashForm.ui.tsx | 27 +++- frontend/src/entity/expenses/item/index.ts | 7 +- .../AddExpenseItemForm.ui.tsx | 145 ++++++++++++------ .../DeleteExpenseItemForm.ui.tsx | 27 +++- .../EditExpenseItemForm.ui.tsx | 45 ++++-- frontend/src/entity/expenses/list/index.ts | 5 +- .../ui/AddExpensesListForm.ui.tsx | 27 +++- .../ui/DeleteExpensesListForm.ui.tsx | 36 ++++- .../ui/EditExpensesListForm.ui.tsx | 22 ++- frontend/src/entity/incomes/item/index.ts | 4 +- .../AddIncomeItemForm.ui.tsx | 40 +++-- .../DeleteIncomeItemForm.ui.tsx | 25 ++- .../EditIncomeItemForm.ui.tsx | 40 +++-- .../incomes/list/hooks/useAddIncomesList.ts | 2 +- frontend/src/entity/incomes/list/index.ts | 5 +- .../ui/AddIncomeListForm.ui.tsx | 26 +++- .../ui/DeleteIncomeListForm.ui.tsx | 35 ++++- .../ui/EditIncomeListForm.ui.tsx | 28 +++- .../ui/AddBankCardButton.ui.tsx | 15 +- .../ui/DeleteBankCardButton.ui.tsx | 19 ++- .../ui/EditBankCardButton.ui.tsx | 18 ++- .../AddCashButton/ui/AddCashButton.ui.tsx | 15 +- .../ui/DeleteCashButton.ui.tsx | 19 ++- .../EditCashButton/ui/EditCashButton.ui.tsx | 18 ++- .../ui/AddExpenseItemButton.ui.tsx | 17 +- .../ui/DeleteExpenseItemButton.ui.tsx | 18 ++- .../ui/EditExpenseItemButton.ui.tsx | 17 +- .../ui/AddExpensesListButton.ui.tsx | 17 +- .../ui/DeleteExpensesListButton.ui.tsx | 20 ++- .../ui/EditExpensesListButton.ui.tsx | 19 ++- .../ui/AddIncomeItemButton.ui.tsx | 19 ++- .../ui/DeleteIncomeItemButton.ui.tsx | 18 ++- .../ui/EditIncomeItemButton.ui.tsx | 17 +- .../ui/AddIncomeListButton.ui.tsx | 17 +- .../ui/DeleteIncomeListButton.ui.tsx | 18 ++- .../ui/EditIncomeListButton.ui.tsx | 17 +- frontend/src/index.tsx | 4 + .../Authorization/ui/Login/LoginPage.ui.tsx | 12 +- .../ui/Register/RegisterPage.ui.tsx | 12 +- .../pages/BankCard/ui/BankCardsPage.ui.tsx | 14 +- frontend/src/pages/Cash/ui/CashPage.ui.tsx | 14 +- .../src/pages/Expense/ui/ExpensePage.ui.tsx | 11 +- .../src/pages/Expenses/ui/ExpensesPage.ui.tsx | 15 +- frontend/src/pages/Home/ui/HomePage.ui.tsx | 8 +- .../src/pages/Income/ui/IncomePage.ui.tsx | 11 +- .../src/pages/Incomes/ui/IncomesPage.ui.tsx | 14 +- frontend/src/shared/ui/Input/index.ts | 1 - .../ui/Input/ui/Input.styles.module.css | 4 - frontend/src/shared/ui/Input/ui/Input.ui.tsx | 24 --- .../src/shared/ui/Modal/ui/Modal.module.css | 27 ---- .../src/shared/ui/Modal/ui/Modal.style.ts | 13 ++ frontend/src/shared/ui/Modal/ui/Modal.ui.tsx | 37 +++-- frontend/src/shared/ui/Select/index.ts | 1 - .../src/shared/ui/Select/ui/Select.module.css | 4 - .../src/shared/ui/Select/ui/Select.ui.tsx | 45 ------ .../src/shared/utils/helpers/getUTCDate.ts | 13 ++ frontend/src/shared/utils/index.ts | 2 + .../widgets/AppLayout/ui/AppLayout.module.css | 1 + .../src/widgets/Sidebar/ui/SideBar.ui.tsx | 92 +++++++---- .../auth/LoginForm/ui/LoginForm.ui.tsx | 22 ++- .../auth/RegisterForm/ui/RegisterForm.ui.tsx | 25 ++- 75 files changed, 979 insertions(+), 481 deletions(-) delete mode 100644 frontend/src/shared/ui/Input/index.ts delete mode 100644 frontend/src/shared/ui/Input/ui/Input.styles.module.css delete mode 100644 frontend/src/shared/ui/Input/ui/Input.ui.tsx delete mode 100644 frontend/src/shared/ui/Modal/ui/Modal.module.css create mode 100644 frontend/src/shared/ui/Modal/ui/Modal.style.ts delete mode 100644 frontend/src/shared/ui/Select/index.ts delete mode 100644 frontend/src/shared/ui/Select/ui/Select.module.css delete mode 100644 frontend/src/shared/ui/Select/ui/Select.ui.tsx create mode 100644 frontend/src/shared/utils/helpers/getUTCDate.ts diff --git a/frontend/src/app/App/ui/App.tsx b/frontend/src/app/App/ui/App.tsx index f4cafa2..17565da 100644 --- a/frontend/src/app/App/ui/App.tsx +++ b/frontend/src/app/App/ui/App.tsx @@ -1,5 +1,8 @@ import './normalize.css'; +import { LocalizationProvider } from '@mui/x-date-pickers'; +import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import { ru } from 'date-fns/locale/ru'; import { AuthContextProvider } from '@/shared/context/AuthContext'; @@ -10,7 +13,9 @@ const queryClient = new QueryClient(); const App = () => ( - + + + ); diff --git a/frontend/src/entity/cards/index.ts b/frontend/src/entity/cards/index.ts index a45c99c..bbc1d23 100644 --- a/frontend/src/entity/cards/index.ts +++ b/frontend/src/entity/cards/index.ts @@ -9,10 +9,11 @@ export { useEditBankCard } from './hooks/useEditBankCard'; export type { BankCard, BankCards } from './types'; -export type { AddBankCardFormValues } from './ui/AddBankCardForm'; +export type { AddBankCardFormProps, AddBankCardFormValues } from './ui/AddBankCardForm'; export { AddBankCardForm } from './ui/AddBankCardForm'; +export type { DeleteBankCardFormProps } from './ui/DeleteBankCardForm'; export { DeleteBankCardForm } from './ui/DeleteBankCardForm'; -export type { EditBankCardFormValues } from './ui/EditBankCardForm'; +export type { EditBankCardFormProps, EditBankCardFormValues } from './ui/EditBankCardForm'; export { EditBankCardForm } from './ui/EditBankCardForm'; diff --git a/frontend/src/entity/cards/ui/AddBankCardForm/index.ts b/frontend/src/entity/cards/ui/AddBankCardForm/index.ts index 043e107..015bcf8 100644 --- a/frontend/src/entity/cards/ui/AddBankCardForm/index.ts +++ b/frontend/src/entity/cards/ui/AddBankCardForm/index.ts @@ -1,2 +1,3 @@ export type { AddBankCardFormValues } from './ui/AddBankCardForm.ui'; +export type { AddBankCardFormProps } from './ui/AddBankCardForm.ui'; export { default as AddBankCardForm } from './ui/AddBankCardForm.ui'; diff --git a/frontend/src/entity/cards/ui/AddBankCardForm/ui/AddBankCardForm.ui.tsx b/frontend/src/entity/cards/ui/AddBankCardForm/ui/AddBankCardForm.ui.tsx index ec70dee..6a08ddb 100644 --- a/frontend/src/entity/cards/ui/AddBankCardForm/ui/AddBankCardForm.ui.tsx +++ b/frontend/src/entity/cards/ui/AddBankCardForm/ui/AddBankCardForm.ui.tsx @@ -5,7 +5,9 @@ import type { RefObject, } from 'react'; -import { Input } from '@/shared/ui/Input'; +import { Button, TextField, Typography } from '@mui/material'; + +import { DataTestId } from '@/shared/constants'; import classes from './AddBankCardForm.module.css'; @@ -49,29 +51,41 @@ const AddBankCardForm: FC = (props) => { return (
-

Добавить карту

+ + Добавить карту + - - - +
); }; diff --git a/frontend/src/entity/cards/ui/DeleteBankCardForm/index.ts b/frontend/src/entity/cards/ui/DeleteBankCardForm/index.ts index dd79732..e49ffa0 100644 --- a/frontend/src/entity/cards/ui/DeleteBankCardForm/index.ts +++ b/frontend/src/entity/cards/ui/DeleteBankCardForm/index.ts @@ -1 +1,2 @@ +export type { DeleteBankCardFormProps } from './ui/DeleteBankCardForm.ui'; export { default as DeleteBankCardForm } from './ui/DeleteBankCardForm.ui'; diff --git a/frontend/src/entity/cards/ui/DeleteBankCardForm/ui/DeleteBankCardForm.ui.tsx b/frontend/src/entity/cards/ui/DeleteBankCardForm/ui/DeleteBankCardForm.ui.tsx index 002fb2e..0a91af4 100644 --- a/frontend/src/entity/cards/ui/DeleteBankCardForm/ui/DeleteBankCardForm.ui.tsx +++ b/frontend/src/entity/cards/ui/DeleteBankCardForm/ui/DeleteBankCardForm.ui.tsx @@ -5,6 +5,10 @@ import type { RefObject, } from 'react'; +import { Button, Typography } from '@mui/material'; + +import { DataTestId } from '@/shared/constants'; + import type { BankCard } from '../../../types'; export type DeleteBankCardFormProps = BaseFormProps & { @@ -31,10 +35,17 @@ const DeleteBankCardForm: FC = (props) => { }; return ( -
-

Удалить список расходов

+ + + Удалить список расходов + -

+ Вы действительно хотите удалить банковскую карту {' '} @@ -44,9 +55,19 @@ const DeleteBankCardForm: FC = (props) => { {' '} ? -

+ - +
); }; diff --git a/frontend/src/entity/cards/ui/EditBankCardForm/index.ts b/frontend/src/entity/cards/ui/EditBankCardForm/index.ts index b12a42c..03602ca 100644 --- a/frontend/src/entity/cards/ui/EditBankCardForm/index.ts +++ b/frontend/src/entity/cards/ui/EditBankCardForm/index.ts @@ -1,2 +1,3 @@ export type { EditBankCardFormValues } from './ui/EditBankCardForm.ui'; +export type { EditBankCardFormProps } from './ui/EditBankCardForm.ui'; export { default as EditBankCardForm } from './ui/EditBankCardForm.ui'; diff --git a/frontend/src/entity/cards/ui/EditBankCardForm/ui/EditBankCardForm.ui.tsx b/frontend/src/entity/cards/ui/EditBankCardForm/ui/EditBankCardForm.ui.tsx index efee298..b80636e 100644 --- a/frontend/src/entity/cards/ui/EditBankCardForm/ui/EditBankCardForm.ui.tsx +++ b/frontend/src/entity/cards/ui/EditBankCardForm/ui/EditBankCardForm.ui.tsx @@ -5,9 +5,11 @@ import type { RefObject, } from 'react'; +import { Button, TextField, Typography } from '@mui/material'; + import type { BankCard } from '@/entity/cards'; -import { Input } from '@/shared/ui/Input'; +import { DataTestId } from '@/shared/constants'; import classes from './EditBankCardForm.module.css'; @@ -53,30 +55,42 @@ const EditBankCardForm: FC = (props) => { return (
-

Добавить карту

+ + Добавить карту + - - - +
); }; diff --git a/frontend/src/entity/cash/index.ts b/frontend/src/entity/cash/index.ts index d3f8f40..25f62a6 100644 --- a/frontend/src/entity/cash/index.ts +++ b/frontend/src/entity/cash/index.ts @@ -10,9 +10,10 @@ export { useEditCash } from './hooks/useEditCash'; export type { CashItem, CashList } from './types'; export { AddCashForm } from './ui/AddCashForm'; -export type { AddCashFormValues } from './ui/AddCashForm'; +export type { AddCashFormProps, AddCashFormValues } from './ui/AddCashForm'; +export type { DeleteCashFormProps } from './ui/DeleteCashForm'; export { DeleteCashForm } from './ui/DeleteCashForm'; export { EditCashForm } from './ui/EditCashForm'; -export type { EditCashFormValues } from './ui/EditCashForm'; +export type { EditCashFormProps, EditCashFormValues } from './ui/EditCashForm'; diff --git a/frontend/src/entity/cash/ui/AddCashForm/index.ts b/frontend/src/entity/cash/ui/AddCashForm/index.ts index 4997c4c..b48e14a 100644 --- a/frontend/src/entity/cash/ui/AddCashForm/index.ts +++ b/frontend/src/entity/cash/ui/AddCashForm/index.ts @@ -1,2 +1,2 @@ -export type { AddCashFormValues } from './ui/AddCashForm.ui'; +export type { AddCashFormProps, AddCashFormValues } from './ui/AddCashForm.ui'; export { default as AddCashForm } from './ui/AddCashForm.ui'; diff --git a/frontend/src/entity/cash/ui/AddCashForm/ui/AddCashForm.ui.tsx b/frontend/src/entity/cash/ui/AddCashForm/ui/AddCashForm.ui.tsx index 2664789..624d8a3 100644 --- a/frontend/src/entity/cash/ui/AddCashForm/ui/AddCashForm.ui.tsx +++ b/frontend/src/entity/cash/ui/AddCashForm/ui/AddCashForm.ui.tsx @@ -5,7 +5,9 @@ import type { RefObject, } from 'react'; -import { Input } from '@/shared/ui/Input'; +import { Button, TextField, Typography } from '@mui/material'; + +import { DataTestId } from '@/shared/constants'; import classes from './AddCashForm.module.css'; @@ -49,29 +51,40 @@ const AddCashForm: FC = (props) => { return (
-

Добавить наличные

+ + Добавить наличные + - - - +
); }; diff --git a/frontend/src/entity/cash/ui/DeleteCashForm/index.ts b/frontend/src/entity/cash/ui/DeleteCashForm/index.ts index bed4a22..1b3a639 100644 --- a/frontend/src/entity/cash/ui/DeleteCashForm/index.ts +++ b/frontend/src/entity/cash/ui/DeleteCashForm/index.ts @@ -1 +1,2 @@ +export type { DeleteCashFormProps } from './ui/DeleteCashForm.ui'; export { default as DeleteCashForm } from './ui/DeleteCashForm.ui'; diff --git a/frontend/src/entity/cash/ui/DeleteCashForm/ui/DeleteCashForm.ui.tsx b/frontend/src/entity/cash/ui/DeleteCashForm/ui/DeleteCashForm.ui.tsx index 5191ede..c8135fe 100644 --- a/frontend/src/entity/cash/ui/DeleteCashForm/ui/DeleteCashForm.ui.tsx +++ b/frontend/src/entity/cash/ui/DeleteCashForm/ui/DeleteCashForm.ui.tsx @@ -5,6 +5,10 @@ import type { RefObject, } from 'react'; +import { Button, Typography } from '@mui/material'; + +import { DataTestId } from '@/shared/constants'; + import type { CashItem } from '../../../types'; export type DeleteCashFormProps = BaseFormProps & { @@ -31,10 +35,17 @@ const DeleteCashForm: FC = (props) => { }; return ( -
-

Удалить наличные

+ + + Удалить наличные + -

+ Вы действительно хотите удалить наличные {' '} @@ -44,9 +55,19 @@ const DeleteCashForm: FC = (props) => { {' '} ? -

+ - +
); }; diff --git a/frontend/src/entity/cash/ui/EditCashForm/index.ts b/frontend/src/entity/cash/ui/EditCashForm/index.ts index a4f20fd..6c19304 100644 --- a/frontend/src/entity/cash/ui/EditCashForm/index.ts +++ b/frontend/src/entity/cash/ui/EditCashForm/index.ts @@ -1,2 +1,2 @@ -export type { EditCashFormValues } from './ui/EditCashForm.ui'; +export type { EditCashFormProps, EditCashFormValues } from './ui/EditCashForm.ui'; export { default as EditCashForm } from './ui/EditCashForm.ui'; diff --git a/frontend/src/entity/cash/ui/EditCashForm/ui/EditCashForm.ui.tsx b/frontend/src/entity/cash/ui/EditCashForm/ui/EditCashForm.ui.tsx index a3fa0c3..b11ac0b 100644 --- a/frontend/src/entity/cash/ui/EditCashForm/ui/EditCashForm.ui.tsx +++ b/frontend/src/entity/cash/ui/EditCashForm/ui/EditCashForm.ui.tsx @@ -5,9 +5,11 @@ import type { RefObject, } from 'react'; +import { Button, TextField, Typography } from '@mui/material'; + import type { CashItem } from '@/entity/cash'; -import { Input } from '@/shared/ui/Input'; +import { DataTestId } from '@/shared/constants'; import classes from './EditCashForm.module.css'; @@ -53,30 +55,41 @@ const EditCashForm: FC = (props) => { return (
-

Редактировать наличные

+ + Редактировать наличные + - - - +
); }; diff --git a/frontend/src/entity/expenses/item/index.ts b/frontend/src/entity/expenses/item/index.ts index 1602970..900bdde 100644 --- a/frontend/src/entity/expenses/item/index.ts +++ b/frontend/src/entity/expenses/item/index.ts @@ -7,11 +7,12 @@ export { useDeleteExpenseItem } from './hooks/useDeleteExpenseItem'; export { useEditExpenseItem } from './hooks/useEditExpenseItem'; export type { ExpenseListItem } from './types'; -export type { AddExpenseItemFormValues } from './ui/AddExpenseItemForm/AddExpenseItemForm.ui'; +export type { AddExpenseItemFormProps, AddExpenseItemFormValues } from './ui/AddExpenseItemForm/AddExpenseItemForm.ui'; export { default as AddExpenseItemForm } from './ui/AddExpenseItemForm/AddExpenseItemForm.ui'; + +export type { DeleteExpenseItemFormProps } from './ui/DeleteExpenseItemForm/DeleteExpenseItemForm.ui'; export { default as DeleteExpenseItemForm } from './ui/DeleteExpenseItemForm/DeleteExpenseItemForm.ui'; -export type { EditExpenseItemFormValues } from './ui/EditExpenseItemForm/EditExpenseItemForm.ui'; - +export type { EditExpenseItemFormProps, EditExpenseItemFormValues } from './ui/EditExpenseItemForm/EditExpenseItemForm.ui'; export { default as EditExpenseItemForm } from './ui/EditExpenseItemForm/EditExpenseItemForm.ui'; diff --git a/frontend/src/entity/expenses/item/ui/AddExpenseItemForm/AddExpenseItemForm.ui.tsx b/frontend/src/entity/expenses/item/ui/AddExpenseItemForm/AddExpenseItemForm.ui.tsx index 10fd1f1..e3e956a 100644 --- a/frontend/src/entity/expenses/item/ui/AddExpenseItemForm/AddExpenseItemForm.ui.tsx +++ b/frontend/src/entity/expenses/item/ui/AddExpenseItemForm/AddExpenseItemForm.ui.tsx @@ -1,11 +1,21 @@ +import type { SelectChangeEvent } from '@mui/material'; import type { - ChangeEventHandler, FC, FormEventHandler, FormHTMLAttributes, RefObject, } from 'react'; +import { + Button, + FormControl, + InputLabel, + MenuItem, + Select, + TextField, + Typography, +} from '@mui/material'; +import { DatePicker } from '@mui/x-date-pickers'; import { useMemo, useState, @@ -15,9 +25,8 @@ import type { ExpenseListItem } from '@/entity/expenses/item'; import { useBankCards } from '@/entity/cards'; import { useCash } from '@/entity/cash'; -import { Input } from '@/shared/ui/Input'; -import { Select } from '@/shared/ui/Select'; -import { formatRub } from '@/shared/utils'; +import { DataTestId } from '@/shared/constants'; +import { formatRub, getUTCDate } from '@/shared/utils'; import classes from './AddExpenseItemForm.module.css'; @@ -89,7 +98,7 @@ const AddExpenseItemForm: FC = (props) => { amount: Number(amount), count: Number(count), currency: 'RUB', - date: new Date(date).toISOString(), + date: getUTCDate(date), description, // @ts-ignore todo payment: getPayment(), @@ -100,31 +109,33 @@ const AddExpenseItemForm: FC = (props) => { const { data: bankCards } = useBankCards(); const { data: cash } = useCash(); - const bankCardOptions = bankCards?.map((card) => ({ - label: `${card.name} (${formatRub(card.balance)})`, - value: card.id, - })); + const bankCardOptions = bankCards?.map((card) => ( + + {`${card.name} (${formatRub(card.balance)})`} + + )); - const cashOptions = cash?.map((cashItem) => ({ - label: `${cashItem.name} (${formatRub(cashItem.balance)})`, - value: cashItem.id, - })); + const cashOptions = cash?.map((cashItem) => ( + + {`${cashItem.name} (${formatRub(cashItem.balance)})`} + + )); const paymentOptions = useMemo(() => { - const options = [{ label: 'Без оплаты', value: 'none' }]; + const options = [Без оплаты]; if (bankCardOptions && bankCardOptions.length > 0) { - options.push({ label: 'Банковская карта', value: 'BANK_CARD' }); + options.push(Банковская карта); } if (cashOptions && cashOptions.length > 0) { - options.push({ label: 'Наличные', value: 'CASH' }); + options.push(Наличные); } return options; }, [bankCardOptions, cashOptions]); - const onChangePaymentHandler: ChangeEventHandler = (event) => { + const onChangePaymentHandler = (event: SelectChangeEvent<'BANK_CARD' | 'CASH' | 'none'>) => { const { value } = event.target; if (value === 'none') { setPaymentType(null); @@ -135,80 +146,126 @@ const AddExpenseItemForm: FC = (props) => { }; const renderCardSelect = () => ( - + {bankCardOptions} + + ); + const renderCashSelect = () => ( - + {cashOptions ?? []} + + ); return (
-

Добавить список расходов

+ + Добавить список расходов + - - - - - - + {paymentOptions} + + {paymentType === 'BANK_CARD' && renderCardSelect()} {paymentType === 'CASH' && renderCashSelect()} - +
); }; diff --git a/frontend/src/entity/expenses/item/ui/DeleteExpenseItemForm/DeleteExpenseItemForm.ui.tsx b/frontend/src/entity/expenses/item/ui/DeleteExpenseItemForm/DeleteExpenseItemForm.ui.tsx index 6b389cc..5f928f0 100644 --- a/frontend/src/entity/expenses/item/ui/DeleteExpenseItemForm/DeleteExpenseItemForm.ui.tsx +++ b/frontend/src/entity/expenses/item/ui/DeleteExpenseItemForm/DeleteExpenseItemForm.ui.tsx @@ -5,6 +5,10 @@ import type { RefObject, } from 'react'; +import { Button, Typography } from '@mui/material'; + +import { DataTestId } from '@/shared/constants'; + import type { ExpenseListItem } from '../../types'; export type DeleteExpenseItemFormProps = BaseFormProps & { @@ -30,10 +34,27 @@ const DeleteExpenseItemForm: FC = (props) => { }; return ( -
-

Удалить элемент ?

+ + + Удалить элемент ? + - +
); }; diff --git a/frontend/src/entity/expenses/item/ui/EditExpenseItemForm/EditExpenseItemForm.ui.tsx b/frontend/src/entity/expenses/item/ui/EditExpenseItemForm/EditExpenseItemForm.ui.tsx index 6157bec..34d229c 100644 --- a/frontend/src/entity/expenses/item/ui/EditExpenseItemForm/EditExpenseItemForm.ui.tsx +++ b/frontend/src/entity/expenses/item/ui/EditExpenseItemForm/EditExpenseItemForm.ui.tsx @@ -5,7 +5,11 @@ import type { RefObject, } from 'react'; -import { Input } from '@/shared/ui/Input'; +import { Button, TextField, Typography } from '@mui/material'; +import { DatePicker } from '@mui/x-date-pickers'; + +import { DataTestId } from '@/shared/constants'; +import { getUTCDate } from '@/shared/utils'; import type { ExpenseListItem } from '../../types'; @@ -53,7 +57,7 @@ const EditExpenseItemForm: FC = (props) => { amount: Number(amount), count: Number(count), currency: 'RUB', - date: new Date(date).toISOString(), + date: getUTCDate(date), description, title, }); @@ -63,52 +67,67 @@ const EditExpenseItemForm: FC = (props) => { return (
-

Добавить список расходов

+ + Добавить список расходов + - - - - - - +
); }; diff --git a/frontend/src/entity/expenses/list/index.ts b/frontend/src/entity/expenses/list/index.ts index 26d0ae1..d42ed3b 100644 --- a/frontend/src/entity/expenses/list/index.ts +++ b/frontend/src/entity/expenses/list/index.ts @@ -10,10 +10,11 @@ export { useExpensesList } from './hooks/useExpensesList'; export type { ExpenseList } from './types'; -export type { AddExpenseListFormValues } from './ui/AddExpensesListForm/ui/AddExpensesListForm.ui'; +export type { AddExpenseListFormProps, AddExpenseListFormValues } from './ui/AddExpensesListForm/ui/AddExpensesListForm.ui'; export { default as AddExpensesListForm } from './ui/AddExpensesListForm/ui/AddExpensesListForm.ui'; +export type { DeleteExpenseListFormProps } from './ui/DeleteExpensesListForm/ui/DeleteExpensesListForm.ui'; export { default as DeleteExpensesListForm } from './ui/DeleteExpensesListForm/ui/DeleteExpensesListForm.ui'; -export type { EditExpenseListFormValues } from './ui/EditExpensesListForm/ui/EditExpensesListForm.ui'; +export type { EditExpenseListFormValues, EditExpensesListFormProps } from './ui/EditExpensesListForm/ui/EditExpensesListForm.ui'; export { default as EditExpensesListForm } from './ui/EditExpensesListForm/ui/EditExpensesListForm.ui'; diff --git a/frontend/src/entity/expenses/list/ui/AddExpensesListForm/ui/AddExpensesListForm.ui.tsx b/frontend/src/entity/expenses/list/ui/AddExpensesListForm/ui/AddExpensesListForm.ui.tsx index 6d91e93..e9717d8 100644 --- a/frontend/src/entity/expenses/list/ui/AddExpensesListForm/ui/AddExpensesListForm.ui.tsx +++ b/frontend/src/entity/expenses/list/ui/AddExpensesListForm/ui/AddExpensesListForm.ui.tsx @@ -5,7 +5,9 @@ import type { RefObject, } from 'react'; -import { Input } from '@/shared/ui/Input'; +import { Button, TextField, Typography } from '@mui/material'; + +import { DataTestId } from '@/shared/constants'; import classes from './AddExpenseListForm.module.css'; @@ -46,15 +48,32 @@ const AddExpensesListForm: FC = (props) => { return (
-

Добавить список расходов

+ + Добавить список расходов + - + - + ); }; diff --git a/frontend/src/entity/expenses/list/ui/DeleteExpensesListForm/ui/DeleteExpensesListForm.ui.tsx b/frontend/src/entity/expenses/list/ui/DeleteExpensesListForm/ui/DeleteExpensesListForm.ui.tsx index 4136860..eda1428 100644 --- a/frontend/src/entity/expenses/list/ui/DeleteExpensesListForm/ui/DeleteExpensesListForm.ui.tsx +++ b/frontend/src/entity/expenses/list/ui/DeleteExpensesListForm/ui/DeleteExpensesListForm.ui.tsx @@ -5,8 +5,12 @@ import type { RefObject, } from 'react'; +import { Button, Typography } from '@mui/material'; + import type { ExpenseList } from '@/entity/expenses/list'; +import { DataTestId } from '@/shared/constants'; + export type DeleteExpenseListFormProps = BaseFormProps & { disabled?: boolean; list: ExpenseList; @@ -31,10 +35,17 @@ const DeleteExpensesListForm: FC = (props) => { }; return ( -
-

Удалить список расходов

+ + + Удалить список расходов + -

+ Вы действительно хотите удалить список расходов {' '} @@ -44,12 +55,12 @@ const DeleteExpensesListForm: FC = (props) => { {' '} ? -

+ { list.items && list.items.length > 0 ? ( -

+ В нем содержится {' '} @@ -59,12 +70,23 @@ const DeleteExpensesListForm: FC = (props) => { {' '} расходов -

+ ) : null } - +
); }; diff --git a/frontend/src/entity/expenses/list/ui/EditExpensesListForm/ui/EditExpensesListForm.ui.tsx b/frontend/src/entity/expenses/list/ui/EditExpensesListForm/ui/EditExpensesListForm.ui.tsx index 04123f5..567037a 100644 --- a/frontend/src/entity/expenses/list/ui/EditExpensesListForm/ui/EditExpensesListForm.ui.tsx +++ b/frontend/src/entity/expenses/list/ui/EditExpensesListForm/ui/EditExpensesListForm.ui.tsx @@ -5,9 +5,11 @@ import type { RefObject, } from 'react'; +import { Button, TextField, Typography } from '@mui/material'; + import type { ExpenseList } from '@/entity/expenses/list'; -import { Input } from '@/shared/ui/Input'; +import { DataTestId } from '@/shared/constants'; import classes from './EditExpenseListForm.module.css'; @@ -48,20 +50,32 @@ const EditExpensesListForm: FC = (props) => { return (
-

Редактировать список расходов

+ + Редактировать список расходов + - - +
); }; diff --git a/frontend/src/entity/incomes/item/index.ts b/frontend/src/entity/incomes/item/index.ts index 0b5deea..a9d46bb 100644 --- a/frontend/src/entity/incomes/item/index.ts +++ b/frontend/src/entity/incomes/item/index.ts @@ -9,9 +9,11 @@ export { useEditIncomeItem } from './hooks/useEditIncomeItem'; export type { IncomeListItem } from './types'; export type { AddIncomeItemFormValues } from './ui/AddIncomeItemForm/AddIncomeItemForm.ui'; +export type { AddIncomeItemFormProps } from './ui/AddIncomeItemForm/AddIncomeItemForm.ui'; export { default as AddIncomeItemForm } from './ui/AddIncomeItemForm/AddIncomeItemForm.ui'; +export type { DeleteIncomeItemFormProps } from './ui/DeleteIncomeItemForm/DeleteIncomeItemForm.ui'; export { default as DeleteIncomeItemForm } from './ui/DeleteIncomeItemForm/DeleteIncomeItemForm.ui'; -export type { EditIncomeItemFormValues } from './ui/EditIncomeItemForm/EditIncomeItemForm.ui'; +export type { EditIncomeItemFormProps, EditIncomeItemFormValues } from './ui/EditIncomeItemForm/EditIncomeItemForm.ui'; export { default as EditIncomeItemForm } from './ui/EditIncomeItemForm/EditIncomeItemForm.ui'; diff --git a/frontend/src/entity/incomes/item/ui/AddIncomeItemForm/AddIncomeItemForm.ui.tsx b/frontend/src/entity/incomes/item/ui/AddIncomeItemForm/AddIncomeItemForm.ui.tsx index 206de29..3cd05f2 100644 --- a/frontend/src/entity/incomes/item/ui/AddIncomeItemForm/AddIncomeItemForm.ui.tsx +++ b/frontend/src/entity/incomes/item/ui/AddIncomeItemForm/AddIncomeItemForm.ui.tsx @@ -5,7 +5,11 @@ import type { RefObject, } from 'react'; -import { Input } from '@/shared/ui/Input'; +import { Button, TextField, Typography } from '@mui/material'; +import { DatePicker } from '@mui/x-date-pickers'; + +import { DataTestId } from '@/shared/constants'; +import { getUTCDate } from '@/shared/utils'; import classes from './AddIncomeItemForm.module.css'; @@ -47,7 +51,7 @@ const AddIncomeItemForm: FC = (props) => { onSubmit?.({ amount: Number(amount), currency: 'RUB', - date: new Date(date).toISOString(), + date: getUTCDate(date), description, title, }); @@ -57,43 +61,57 @@ const AddIncomeItemForm: FC = (props) => { return (
-

Добавить список доходов

+ + Добавить список доходов + - - - - - +
); }; diff --git a/frontend/src/entity/incomes/item/ui/DeleteIncomeItemForm/DeleteIncomeItemForm.ui.tsx b/frontend/src/entity/incomes/item/ui/DeleteIncomeItemForm/DeleteIncomeItemForm.ui.tsx index 8741b26..cb6f1e3 100644 --- a/frontend/src/entity/incomes/item/ui/DeleteIncomeItemForm/DeleteIncomeItemForm.ui.tsx +++ b/frontend/src/entity/incomes/item/ui/DeleteIncomeItemForm/DeleteIncomeItemForm.ui.tsx @@ -5,6 +5,10 @@ import type { RefObject, } from 'react'; +import { Button, Typography } from '@mui/material'; + +import { DataTestId } from '@/shared/constants'; + import type { IncomeListItem } from '../../types'; export type DeleteIncomeItemFormProps = BaseFormProps & { @@ -30,10 +34,25 @@ const DeleteIncomeItemForm: FC = (props) => { }; return ( -
-

Удалить элемент ?

+ + + Удалить элемент ? + - +
); }; diff --git a/frontend/src/entity/incomes/item/ui/EditIncomeItemForm/EditIncomeItemForm.ui.tsx b/frontend/src/entity/incomes/item/ui/EditIncomeItemForm/EditIncomeItemForm.ui.tsx index 95c302d..b84697b 100644 --- a/frontend/src/entity/incomes/item/ui/EditIncomeItemForm/EditIncomeItemForm.ui.tsx +++ b/frontend/src/entity/incomes/item/ui/EditIncomeItemForm/EditIncomeItemForm.ui.tsx @@ -5,7 +5,11 @@ import type { RefObject, } from 'react'; -import { Input } from '@/shared/ui/Input'; +import { Button, TextField, Typography } from '@mui/material'; +import { DatePicker } from '@mui/x-date-pickers'; + +import { DataTestId } from '@/shared/constants'; +import { getUTCDate } from '@/shared/utils'; import type { IncomeListItem } from '../../types'; @@ -50,7 +54,7 @@ const EditIncomeItemForm: FC = (props) => { await onSubmit?.({ amount: Number(amount), currency: 'RUB', - date: new Date(date).toISOString(), + date: getUTCDate(date), description, title, }); @@ -60,44 +64,58 @@ const EditIncomeItemForm: FC = (props) => { return (
-

Изменить доход

+ + Изменить доход + - - - - - +
); }; diff --git a/frontend/src/entity/incomes/list/hooks/useAddIncomesList.ts b/frontend/src/entity/incomes/list/hooks/useAddIncomesList.ts index c581d54..bb4f604 100644 --- a/frontend/src/entity/incomes/list/hooks/useAddIncomesList.ts +++ b/frontend/src/entity/incomes/list/hooks/useAddIncomesList.ts @@ -9,7 +9,7 @@ export const useAddIncomesList = () => { return useMutation({ mutationFn: addIncomeList, - mutationKey: [QueryKeys.ExpenseList], + mutationKey: [QueryKeys.IncomesList], onSuccess: async () => { await queryClient.invalidateQueries({ queryKey: [QueryKeys.IncomesList] }); }, diff --git a/frontend/src/entity/incomes/list/index.ts b/frontend/src/entity/incomes/list/index.ts index be481e9..10e90ce 100644 --- a/frontend/src/entity/incomes/list/index.ts +++ b/frontend/src/entity/incomes/list/index.ts @@ -10,10 +10,11 @@ export { useIncomesList } from './hooks/useIncomesList'; export type { IncomeList } from './types'; -export type { AddIncomeListFormValues } from './ui/AddIncomeListForm/ui/AddIncomeListForm.ui'; +export type { AddIncomeListFormProps, AddIncomeListFormValues } from './ui/AddIncomeListForm/ui/AddIncomeListForm.ui'; export { default as AddIncomeListForm } from './ui/AddIncomeListForm/ui/AddIncomeListForm.ui'; +export type { DeleteIncomeListFormProps } from './ui/DeleteIncomeListForm/ui/DeleteIncomeListForm.ui'; export { default as DeleteIncomeListForm } from './ui/DeleteIncomeListForm/ui/DeleteIncomeListForm.ui'; -export type { EditIncomeListFormValues } from './ui/EditIncomeListForm/ui/EditIncomeListForm.ui'; +export type { EditIncomeListFormProps, EditIncomeListFormValues } from './ui/EditIncomeListForm/ui/EditIncomeListForm.ui'; export { default as EditIncomeListForm } from './ui/EditIncomeListForm/ui/EditIncomeListForm.ui'; diff --git a/frontend/src/entity/incomes/list/ui/AddIncomeListForm/ui/AddIncomeListForm.ui.tsx b/frontend/src/entity/incomes/list/ui/AddIncomeListForm/ui/AddIncomeListForm.ui.tsx index b0982ca..dc93b7b 100644 --- a/frontend/src/entity/incomes/list/ui/AddIncomeListForm/ui/AddIncomeListForm.ui.tsx +++ b/frontend/src/entity/incomes/list/ui/AddIncomeListForm/ui/AddIncomeListForm.ui.tsx @@ -5,7 +5,9 @@ import type { RefObject, } from 'react'; -import { Input } from '@/shared/ui/Input'; +import { Button, TextField, Typography } from '@mui/material'; + +import { DataTestId } from '@/shared/constants'; import classes from './AddIncomeListForm.module.css'; @@ -46,15 +48,31 @@ const AddIncomeListForm: FC = (props) => { return (
-

Добавить список доходов

+ + Добавить список доходов + - + - + ); }; diff --git a/frontend/src/entity/incomes/list/ui/DeleteIncomeListForm/ui/DeleteIncomeListForm.ui.tsx b/frontend/src/entity/incomes/list/ui/DeleteIncomeListForm/ui/DeleteIncomeListForm.ui.tsx index 0edc345..b4dab29 100644 --- a/frontend/src/entity/incomes/list/ui/DeleteIncomeListForm/ui/DeleteIncomeListForm.ui.tsx +++ b/frontend/src/entity/incomes/list/ui/DeleteIncomeListForm/ui/DeleteIncomeListForm.ui.tsx @@ -5,6 +5,10 @@ import type { RefObject, } from 'react'; +import { Button, Typography } from '@mui/material'; + +import { DataTestId } from '@/shared/constants'; + import type { IncomeList } from '../../../types'; export type DeleteIncomeListFormProps = BaseFormProps & { @@ -31,10 +35,17 @@ const DeleteIncomeListForm: FC = (props) => { }; return ( -
-

Удалить список доходов

+ + + Удалить список доходов + -

+ Вы действительно хотите удалить список доходов {' '} @@ -44,12 +55,12 @@ const DeleteIncomeListForm: FC = (props) => { {' '} ? -

+ { list.items && list.items.length > 0 ? ( -

+ В нем содержится {' '} @@ -59,12 +70,22 @@ const DeleteIncomeListForm: FC = (props) => { {' '} доходов -

+ ) : null } - +
); }; diff --git a/frontend/src/entity/incomes/list/ui/EditIncomeListForm/ui/EditIncomeListForm.ui.tsx b/frontend/src/entity/incomes/list/ui/EditIncomeListForm/ui/EditIncomeListForm.ui.tsx index e784f38..4159fe0 100644 --- a/frontend/src/entity/incomes/list/ui/EditIncomeListForm/ui/EditIncomeListForm.ui.tsx +++ b/frontend/src/entity/incomes/list/ui/EditIncomeListForm/ui/EditIncomeListForm.ui.tsx @@ -5,13 +5,15 @@ import type { RefObject, } from 'react'; -import { Input } from '@/shared/ui/Input'; +import { Button, TextField, Typography } from '@mui/material'; + +import { DataTestId } from '@/shared/constants'; import type { IncomeList } from '../../../types'; import classes from './EditIncomeListForm.module.css'; -export type EditExpensesListFormProps = BaseFormProps & { +export type EditIncomeListFormProps = BaseFormProps & { disabled?: boolean; list: IncomeList; onSubmit: (data: EditIncomeListFormValues) => Promise | void; @@ -24,7 +26,7 @@ export type EditIncomeListFormValues = { type BaseFormProps = Omit, 'onSubmit'>; -const EditExpensesListForm: FC = (props) => { +const EditIncomeListForm: FC = (props) => { const { disabled, list, @@ -48,22 +50,34 @@ const EditExpensesListForm: FC = (props) => { return (
-

Редактировать список доходов

+ + Редактировать список доходов + - - +
); }; -export default EditExpensesListForm; +export default EditIncomeListForm; diff --git a/frontend/src/features/bank-cards/AddBankCardButton/ui/AddBankCardButton.ui.tsx b/frontend/src/features/bank-cards/AddBankCardButton/ui/AddBankCardButton.ui.tsx index 0771f42..15929dc 100644 --- a/frontend/src/features/bank-cards/AddBankCardButton/ui/AddBankCardButton.ui.tsx +++ b/frontend/src/features/bank-cards/AddBankCardButton/ui/AddBankCardButton.ui.tsx @@ -1,11 +1,15 @@ -import type { ButtonHTMLAttributes, FC, Ref } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { FC, Ref } from 'react'; + +import { Button } from '@mui/material'; import { AddBankCardForm } from '@/entity/cards'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useAddBankCardButton } from '../hooks/useAddBankCardButton'; -type AddBankCardButtonProps = ButtonHTMLAttributes & { +type AddBankCardButtonProps = ButtonProps & { ref?: Ref; }; @@ -22,14 +26,15 @@ const AddBankCardButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/features/bank-cards/DeleteBankCardButton/ui/DeleteBankCardButton.ui.tsx b/frontend/src/features/bank-cards/DeleteBankCardButton/ui/DeleteBankCardButton.ui.tsx index 5c813f8..d477e12 100644 --- a/frontend/src/features/bank-cards/DeleteBankCardButton/ui/DeleteBankCardButton.ui.tsx +++ b/frontend/src/features/bank-cards/DeleteBankCardButton/ui/DeleteBankCardButton.ui.tsx @@ -1,13 +1,17 @@ -import type { ButtonHTMLAttributes, FC, Ref } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { FC, Ref } from 'react'; + +import { Button } from '@mui/material'; import type { BankCard } from '@/entity/cards'; import { DeleteBankCardForm } from '@/entity/cards'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useDeleteBankCardButton } from '../hooks/useDeleteBankCardButton'; -export type DeleteBankCardButtonProps = ButtonHTMLAttributes & { +export type DeleteBankCardButtonProps = ButtonProps & { bankCard: BankCard; ref?: Ref; }; @@ -30,9 +34,16 @@ const DeleteBankCardButton: FC = (props) => { return ( <> - + & { +export type EditBankCardButtonProps = ButtonProps & { bankCard: BankCard; ref?: Ref; }; @@ -29,9 +33,15 @@ const EditBankCardButton: FC = (props) => { return ( <> - + & { +type AddCashButtonProps = ButtonProps & { ref?: Ref; }; @@ -22,14 +26,15 @@ const AddCashButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/features/cash/DeleteCashButton/ui/DeleteCashButton.ui.tsx b/frontend/src/features/cash/DeleteCashButton/ui/DeleteCashButton.ui.tsx index 612bd11..5224096 100644 --- a/frontend/src/features/cash/DeleteCashButton/ui/DeleteCashButton.ui.tsx +++ b/frontend/src/features/cash/DeleteCashButton/ui/DeleteCashButton.ui.tsx @@ -1,13 +1,17 @@ -import type { ButtonHTMLAttributes, FC, Ref } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { FC, Ref } from 'react'; + +import { Button } from '@mui/material'; import type { CashItem } from '@/entity/cash'; import { DeleteCashForm } from '@/entity/cash'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useDeleteCashButton } from '../hooks/useDeleteCashButton'; -export type DeleteCashButtonProps = ButtonHTMLAttributes & { +export type DeleteCashButtonProps = ButtonProps & { cash: CashItem; ref?: Ref; }; @@ -30,9 +34,16 @@ const DeleteCashButton: FC = (props) => { return ( <> - + & { +export type EditCashButtonProps = ButtonProps & { cash: CashItem; ref?: Ref; }; @@ -29,9 +33,15 @@ const EditCashButton: FC = (props) => { return ( <> - + ; }; -type BaseButtonProps = ButtonHTMLAttributes; - const AddExpenseItemButton: FC = (props) => { const { listId, @@ -32,14 +34,15 @@ const AddExpenseItemButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/features/expenses/items/DeleteExpenseItemButton/ui/DeleteExpenseItemButton.ui.tsx b/frontend/src/features/expenses/items/DeleteExpenseItemButton/ui/DeleteExpenseItemButton.ui.tsx index bb6813a..aeb93af 100644 --- a/frontend/src/features/expenses/items/DeleteExpenseItemButton/ui/DeleteExpenseItemButton.ui.tsx +++ b/frontend/src/features/expenses/items/DeleteExpenseItemButton/ui/DeleteExpenseItemButton.ui.tsx @@ -1,15 +1,17 @@ -import type { ButtonHTMLAttributes, FC, RefObject } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { FC, RefObject } from 'react'; + +import { Button } from '@mui/material'; import type { ExpenseListItem } from '@/entity/expenses/item'; import { DeleteExpenseItemForm } from '@/entity/expenses/item'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useDeleteExpenseItemButton } from '../hooks/useDeleteExpenseItemButton'; -type BaseButtonProps = ButtonHTMLAttributes; - -type DeleteExpenseItemButtonProps = BaseButtonProps & { +type DeleteExpenseItemButtonProps = ButtonProps & { item: ExpenseListItem; ref?: RefObject; }; @@ -30,14 +32,16 @@ const DeleteExpenseItemButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/features/expenses/items/EditExpenseItemButton/ui/EditExpenseItemButton.ui.tsx b/frontend/src/features/expenses/items/EditExpenseItemButton/ui/EditExpenseItemButton.ui.tsx index a8c485f..4e11ccb 100644 --- a/frontend/src/features/expenses/items/EditExpenseItemButton/ui/EditExpenseItemButton.ui.tsx +++ b/frontend/src/features/expenses/items/EditExpenseItemButton/ui/EditExpenseItemButton.ui.tsx @@ -1,15 +1,17 @@ -import type { ButtonHTMLAttributes, FC, RefObject } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { FC, RefObject } from 'react'; + +import { Button } from '@mui/material'; import type { ExpenseListItem } from '@/entity/expenses/item'; import { EditExpenseItemForm } from '@/entity/expenses/item'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useEditExpenseItemButton } from '../hooks/useEditExpenseItemButton'; -type BaseButtonProps = ButtonHTMLAttributes; - -type EditExpenseItemButtonProps = BaseButtonProps & { +type EditExpenseItemButtonProps = ButtonProps & { item: ExpenseListItem; ref?: RefObject; }; @@ -32,15 +34,16 @@ const EditExpenseItemButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/features/expenses/list/AddExpensesListButton/ui/AddExpensesListButton.ui.tsx b/frontend/src/features/expenses/list/AddExpensesListButton/ui/AddExpensesListButton.ui.tsx index 80cecfe..2d2f1ed 100644 --- a/frontend/src/features/expenses/list/AddExpensesListButton/ui/AddExpensesListButton.ui.tsx +++ b/frontend/src/features/expenses/list/AddExpensesListButton/ui/AddExpensesListButton.ui.tsx @@ -1,11 +1,15 @@ -import type { ButtonHTMLAttributes, FC, Ref } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { FC, Ref } from 'react'; + +import { Button } from '@mui/material'; import { AddExpensesListForm } from '@/entity/expenses/list'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useAddExpensesListButton } from '../hooks/useAddExpensesListButton'; -type AddExpensesListButtonProps = ButtonHTMLAttributes & { +type AddExpensesListButtonProps = ButtonProps & { ref?: Ref; }; @@ -22,9 +26,14 @@ const AddExpensesListButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/features/expenses/list/DeleteExpensesListButton/ui/DeleteExpensesListButton.ui.tsx b/frontend/src/features/expenses/list/DeleteExpensesListButton/ui/DeleteExpensesListButton.ui.tsx index 99e81d2..f2a8766 100644 --- a/frontend/src/features/expenses/list/DeleteExpensesListButton/ui/DeleteExpensesListButton.ui.tsx +++ b/frontend/src/features/expenses/list/DeleteExpensesListButton/ui/DeleteExpensesListButton.ui.tsx @@ -1,13 +1,18 @@ -import type { ButtonHTMLAttributes, Ref } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { Ref } from 'react'; + +import DeleteIcon from '@mui/icons-material/Delete'; +import { Button } from '@mui/material'; import type { ExpenseList } from '@/entity/expenses/list'; import { DeleteExpensesListForm } from '@/entity/expenses/list'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useDeleteExpensesListButton } from '../hooks/useDeleteExpensesListButton'; -type DeleteExpensesListButtonProps = ButtonHTMLAttributes & { +type DeleteExpensesListButtonProps = ButtonProps & { list: ExpenseList; ref?: Ref; }; @@ -25,9 +30,16 @@ const DeleteExpensesListButton = (props: DeleteExpensesListButtonProps) => { return ( <> - + & { +type EditExpensesListButtonProps = ButtonProps & { list: ExpenseList; ref?: Ref; }; @@ -25,9 +30,15 @@ const EditExpensesListButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/features/incomes/items/AddIncomeItemButton/ui/AddIncomeItemButton.ui.tsx b/frontend/src/features/incomes/items/AddIncomeItemButton/ui/AddIncomeItemButton.ui.tsx index 06d064c..e1e19f7 100644 --- a/frontend/src/features/incomes/items/AddIncomeItemButton/ui/AddIncomeItemButton.ui.tsx +++ b/frontend/src/features/incomes/items/AddIncomeItemButton/ui/AddIncomeItemButton.ui.tsx @@ -1,19 +1,21 @@ -import type { ButtonHTMLAttributes, FC, RefObject } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { FC, RefObject } from 'react'; + +import { Button } from '@mui/material'; import type { IncomeList } from '@/entity/incomes/list'; import { AddIncomeItemForm } from '@/entity/incomes/item'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useAddIncomeItemButton } from '../hooks/useAddIncomeItemButton'; -type AddIncomeItemButtonProps = BaseButtonProps & { +type AddIncomeItemButtonProps = ButtonProps & { listId: IncomeList['id']; ref?: RefObject; }; -type BaseButtonProps = ButtonHTMLAttributes; - const AddIncomeItemButton: FC = (props) => { const { listId, @@ -32,14 +34,15 @@ const AddIncomeItemButton: FC = (props) => { return ( <> - + Добавить + diff --git a/frontend/src/features/incomes/items/DeleteIncomeItemButton/ui/DeleteIncomeItemButton.ui.tsx b/frontend/src/features/incomes/items/DeleteIncomeItemButton/ui/DeleteIncomeItemButton.ui.tsx index ef02771..5d43696 100644 --- a/frontend/src/features/incomes/items/DeleteIncomeItemButton/ui/DeleteIncomeItemButton.ui.tsx +++ b/frontend/src/features/incomes/items/DeleteIncomeItemButton/ui/DeleteIncomeItemButton.ui.tsx @@ -1,15 +1,17 @@ -import type { ButtonHTMLAttributes, FC, RefObject } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { FC, RefObject } from 'react'; + +import { Button } from '@mui/material'; import type { IncomeListItem } from '@/entity/incomes/item'; import { DeleteIncomeItemForm } from '@/entity/incomes/item'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useDeleteIncomeItemButton } from '../hooks/useDeleteIncomeItemButton'; -type BaseButtonProps = ButtonHTMLAttributes; - -type DeleteIncomeItemButtonProps = BaseButtonProps & { +type DeleteIncomeItemButtonProps = ButtonProps & { item: IncomeListItem; ref?: RefObject; }; @@ -30,14 +32,16 @@ const DeleteIncomeItemButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/features/incomes/items/EditIncomeItemButton/ui/EditIncomeItemButton.ui.tsx b/frontend/src/features/incomes/items/EditIncomeItemButton/ui/EditIncomeItemButton.ui.tsx index 26274e8..7dcfb4f 100644 --- a/frontend/src/features/incomes/items/EditIncomeItemButton/ui/EditIncomeItemButton.ui.tsx +++ b/frontend/src/features/incomes/items/EditIncomeItemButton/ui/EditIncomeItemButton.ui.tsx @@ -1,15 +1,17 @@ -import type { ButtonHTMLAttributes, FC, RefObject } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { FC, RefObject } from 'react'; + +import { Button } from '@mui/material'; import type { IncomeListItem } from '@/entity/incomes/item'; import { EditIncomeItemForm } from '@/entity/incomes/item'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useIncomeItemButton } from '../hooks/useIncomeItemButton'; -type BaseButtonProps = ButtonHTMLAttributes; - -type EditIncomeItemButtonProps = BaseButtonProps & { +type EditIncomeItemButtonProps = ButtonProps & { item: IncomeListItem; ref?: RefObject; }; @@ -32,15 +34,16 @@ const EditIncomeItemButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/features/incomes/list/AddIncomeListButton/ui/AddIncomeListButton.ui.tsx b/frontend/src/features/incomes/list/AddIncomeListButton/ui/AddIncomeListButton.ui.tsx index 81c0b1d..15e4a94 100644 --- a/frontend/src/features/incomes/list/AddIncomeListButton/ui/AddIncomeListButton.ui.tsx +++ b/frontend/src/features/incomes/list/AddIncomeListButton/ui/AddIncomeListButton.ui.tsx @@ -1,11 +1,15 @@ -import type { ButtonHTMLAttributes, FC, Ref } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { FC, Ref } from 'react'; + +import { Button } from '@mui/material'; import { AddIncomeListForm } from '@/entity/incomes/list'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useAddIncomeListButton } from '../hooks/useAddIncomeListButton'; -type AddIncomeListButtonProps = ButtonHTMLAttributes & { +type AddIncomeListButtonProps = ButtonProps & { ref?: Ref; }; @@ -22,9 +26,14 @@ const AddIncomeListButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/features/incomes/list/DeleteIncomeListButton/ui/DeleteIncomeListButton.ui.tsx b/frontend/src/features/incomes/list/DeleteIncomeListButton/ui/DeleteIncomeListButton.ui.tsx index 25ba79e..d2ed82f 100644 --- a/frontend/src/features/incomes/list/DeleteIncomeListButton/ui/DeleteIncomeListButton.ui.tsx +++ b/frontend/src/features/incomes/list/DeleteIncomeListButton/ui/DeleteIncomeListButton.ui.tsx @@ -1,13 +1,17 @@ -import type { ButtonHTMLAttributes, Ref } from 'react'; +import type { ButtonProps } from '@mui/material'; +import type { Ref } from 'react'; + +import { Button } from '@mui/material'; import type { IncomeList } from '@/entity/incomes/list'; import { DeleteIncomeListForm } from '@/entity/incomes/list'; +import { DataTestId } from '@/shared/constants'; import { Modal } from '@/shared/ui/Modal'; import { useIncomeListButton } from '../hooks/useIncomeListButton'; -type DeleteIncomeListButtonProps = ButtonHTMLAttributes & { +type DeleteIncomeListButtonProps = ButtonProps & { list: IncomeList; ref?: Ref; }; @@ -25,9 +29,15 @@ const DeleteIncomeListButton = (props: DeleteIncomeListButtonProps) => { return ( <> - + & { +type EditIncomeListButtonProps = ButtonProps & { list: IncomeList; ref?: Ref; }; @@ -25,9 +29,14 @@ const EditIncomeListButton: FC = (props) => { return ( <> - + diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx index 2a7516c..843a007 100644 --- a/frontend/src/index.tsx +++ b/frontend/src/index.tsx @@ -2,6 +2,10 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; import { App } from '@/app/App'; +import '@fontsource/roboto/300.css'; +import '@fontsource/roboto/400.css'; +import '@fontsource/roboto/500.css'; +import '@fontsource/roboto/700.css'; const rootEl = document.getElementById('root'); diff --git a/frontend/src/pages/Authorization/ui/Login/LoginPage.ui.tsx b/frontend/src/pages/Authorization/ui/Login/LoginPage.ui.tsx index 8204f03..7fd6c09 100644 --- a/frontend/src/pages/Authorization/ui/Login/LoginPage.ui.tsx +++ b/frontend/src/pages/Authorization/ui/Login/LoginPage.ui.tsx @@ -1,5 +1,7 @@ +import { Button, Typography } from '@mui/material'; import { NavLink } from 'react-router'; +import { PAGES } from '@/shared/router'; import { LoginForm } from '@/widgets/auth/LoginForm'; import classes from './LoginPage.module.css'; @@ -7,12 +9,16 @@ import classes from './LoginPage.module.css'; const LoginPage = () => (
-

Вход в аккаунт

+ + Вход в аккаунт + - - Регистрация + +
diff --git a/frontend/src/pages/Authorization/ui/Register/RegisterPage.ui.tsx b/frontend/src/pages/Authorization/ui/Register/RegisterPage.ui.tsx index b424ca5..d750066 100644 --- a/frontend/src/pages/Authorization/ui/Register/RegisterPage.ui.tsx +++ b/frontend/src/pages/Authorization/ui/Register/RegisterPage.ui.tsx @@ -1,5 +1,7 @@ +import { Button, Typography } from '@mui/material'; import { NavLink } from 'react-router'; +import { PAGES } from '@/shared/router'; import { RegisterForm } from '@/widgets/auth/RegisterForm'; import classes from './RegisterPage.module.css'; @@ -7,12 +9,16 @@ import classes from './RegisterPage.module.css'; const RegisterPage = () => (
-

Регистрация аккаунта

+ + Регистрация аккаунта + - - Вход + +
diff --git a/frontend/src/pages/BankCard/ui/BankCardsPage.ui.tsx b/frontend/src/pages/BankCard/ui/BankCardsPage.ui.tsx index 9fc3df4..f4c5df3 100644 --- a/frontend/src/pages/BankCard/ui/BankCardsPage.ui.tsx +++ b/frontend/src/pages/BankCard/ui/BankCardsPage.ui.tsx @@ -1,5 +1,7 @@ import type { FC } from 'react'; +import { Typography } from '@mui/material'; + import { useBankCards } from '@/entity/cards'; import { AddBankCardButton } from '@/features/bank-cards/AddBankCardButton'; import { Spinner } from '@/shared/ui/Spinner'; @@ -23,16 +25,14 @@ const BankCardsPage: FC = () => { return ( -
-

Мои карты

+ + Мои карты + -
- -
+ - {renderContent()} + {renderContent()} -
); }; diff --git a/frontend/src/pages/Cash/ui/CashPage.ui.tsx b/frontend/src/pages/Cash/ui/CashPage.ui.tsx index 0029301..2d31ae9 100644 --- a/frontend/src/pages/Cash/ui/CashPage.ui.tsx +++ b/frontend/src/pages/Cash/ui/CashPage.ui.tsx @@ -1,5 +1,7 @@ import type { FC } from 'react'; +import { Typography } from '@mui/material'; + import { useCash } from '@/entity/cash'; import { AddCashButton } from '@/features/cash/AddCashButton'; import { Spinner } from '@/shared/ui/Spinner'; @@ -23,16 +25,14 @@ const CashPage: FC = () => { return ( -
-

Мои наличные

+ + Мои наличные + -
- -
+ - {renderContent()} + {renderContent()} -
); }; diff --git a/frontend/src/pages/Expense/ui/ExpensePage.ui.tsx b/frontend/src/pages/Expense/ui/ExpensePage.ui.tsx index 99ea944..2a2baf4 100644 --- a/frontend/src/pages/Expense/ui/ExpensePage.ui.tsx +++ b/frontend/src/pages/Expense/ui/ExpensePage.ui.tsx @@ -1,3 +1,4 @@ +import { Typography } from '@mui/material'; import { useParams } from 'react-router'; import type { ExpensePageParams } from '@/shared/router'; @@ -30,14 +31,14 @@ const ExpensePage = () => { return ( -
-

Списки расходов

+ + Списки расходов + - + - {renderContent()} + {renderContent()} -
); }; diff --git a/frontend/src/pages/Expenses/ui/ExpensesPage.ui.tsx b/frontend/src/pages/Expenses/ui/ExpensesPage.ui.tsx index b930ae6..90f740f 100644 --- a/frontend/src/pages/Expenses/ui/ExpensesPage.ui.tsx +++ b/frontend/src/pages/Expenses/ui/ExpensesPage.ui.tsx @@ -1,3 +1,5 @@ +import { Typography } from '@mui/material'; + import { useExpensesList } from '@/entity/expenses/list'; import { AddExpensesListButton } from '@/features/expenses/list/AddExpensesListButton'; import { Spinner } from '@/shared/ui/Spinner'; @@ -21,16 +23,13 @@ const ExpensesPage = () => { return ( -
-

Списки расходов

+ + Списки расходов + -
- -
+ - {renderContent()} - -
+ {renderContent()}
); }; diff --git a/frontend/src/pages/Home/ui/HomePage.ui.tsx b/frontend/src/pages/Home/ui/HomePage.ui.tsx index 5c2abfe..9ffa3d4 100644 --- a/frontend/src/pages/Home/ui/HomePage.ui.tsx +++ b/frontend/src/pages/Home/ui/HomePage.ui.tsx @@ -1,10 +1,12 @@ +import { Typography } from '@mui/material'; + import { AppLayout } from '@/widgets/AppLayout'; const HomePage = () => ( -
-

Home Page

-
+ + Домашняя страница +
); diff --git a/frontend/src/pages/Income/ui/IncomePage.ui.tsx b/frontend/src/pages/Income/ui/IncomePage.ui.tsx index 8434620..ed246a4 100644 --- a/frontend/src/pages/Income/ui/IncomePage.ui.tsx +++ b/frontend/src/pages/Income/ui/IncomePage.ui.tsx @@ -1,3 +1,4 @@ +import { Typography } from '@mui/material'; import { useParams } from 'react-router'; import type { IncomePageParams } from '@/shared/router'; @@ -30,14 +31,14 @@ const IncomePage = () => { return ( -
-

Списки расходов

+ + Списки расходов + - + - {renderContent()} + {renderContent()} -
); }; diff --git a/frontend/src/pages/Incomes/ui/IncomesPage.ui.tsx b/frontend/src/pages/Incomes/ui/IncomesPage.ui.tsx index 8e8ff44..e5bbf95 100644 --- a/frontend/src/pages/Incomes/ui/IncomesPage.ui.tsx +++ b/frontend/src/pages/Incomes/ui/IncomesPage.ui.tsx @@ -1,3 +1,5 @@ +import { Typography } from '@mui/material'; + import { useIncomesList } from '@/entity/incomes/list'; import { AddIncomeListButton } from '@/features/incomes/list/AddIncomeListButton'; import { Spinner } from '@/shared/ui/Spinner'; @@ -21,16 +23,14 @@ const IncomesPage = () => { return ( -
-

Списки дохода

+ + Списки дохода + -
- -
+ - {renderContent()} + {renderContent()} -
); }; diff --git a/frontend/src/shared/ui/Input/index.ts b/frontend/src/shared/ui/Input/index.ts deleted file mode 100644 index 578116d..0000000 --- a/frontend/src/shared/ui/Input/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as Input } from './ui/Input.ui'; diff --git a/frontend/src/shared/ui/Input/ui/Input.styles.module.css b/frontend/src/shared/ui/Input/ui/Input.styles.module.css deleted file mode 100644 index d6da646..0000000 --- a/frontend/src/shared/ui/Input/ui/Input.styles.module.css +++ /dev/null @@ -1,4 +0,0 @@ -.wrapper { - display: flex; - flex-direction: column; -} diff --git a/frontend/src/shared/ui/Input/ui/Input.ui.tsx b/frontend/src/shared/ui/Input/ui/Input.ui.tsx deleted file mode 100644 index 03f18f6..0000000 --- a/frontend/src/shared/ui/Input/ui/Input.ui.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import type { FC, HTMLProps } from 'react'; - -import classes from './Input.styles.module.css'; - -type InputProps = HTMLProps & { - label: string; -}; - -const Input: FC = (props) => { - const { id, label, ...rest } = props; - - return ( - - ); -}; - -export default Input; diff --git a/frontend/src/shared/ui/Modal/ui/Modal.module.css b/frontend/src/shared/ui/Modal/ui/Modal.module.css deleted file mode 100644 index 3f766bf..0000000 --- a/frontend/src/shared/ui/Modal/ui/Modal.module.css +++ /dev/null @@ -1,27 +0,0 @@ -.wrapper { - display: flex; - width: 100%; - height: 100%; - position: fixed; - top: 0; - left: 0; - background-color: rgba(0, 0, 0, 0.5); - justify-content: center; - align-items: center; -} - -.content { - background-color: white; - z-index: 2; - border-radius: 10px; - position: relative; - padding: 30px; -} - -.closeIcon { - position: absolute; - top: 10px; - right: 10px; - cursor: pointer; - font-size: 20px; -} diff --git a/frontend/src/shared/ui/Modal/ui/Modal.style.ts b/frontend/src/shared/ui/Modal/ui/Modal.style.ts new file mode 100644 index 0000000..3fbc1f7 --- /dev/null +++ b/frontend/src/shared/ui/Modal/ui/Modal.style.ts @@ -0,0 +1,13 @@ +const modalStyle = { + bgcolor: 'background.paper', + border: '2px solid #000', + boxShadow: 24, + left: '50%', + p: 4, + position: 'absolute', + top: '50%', + transform: 'translate(-50%, -50%)', + width: 400, +}; + +export default modalStyle; diff --git a/frontend/src/shared/ui/Modal/ui/Modal.ui.tsx b/frontend/src/shared/ui/Modal/ui/Modal.ui.tsx index 515e5ca..fd6d558 100644 --- a/frontend/src/shared/ui/Modal/ui/Modal.ui.tsx +++ b/frontend/src/shared/ui/Modal/ui/Modal.ui.tsx @@ -1,28 +1,33 @@ +import type { ModalProps as MuiModalProps } from '@mui/material'; import type { FC, ReactNode } from 'react'; -import classes from './Modal.module.css'; +import { Box, Modal as MuiModal } from '@mui/material'; +import Fade from '@mui/material/Fade'; -type ModalProps = { +import modalStyle from './Modal.style'; + +type ModalProps = MuiModalProps & { children: ReactNode; - onClose: () => void; - open: boolean; }; const Modal: FC = (props) => { - const { children, onClose, open } = props; - - if (!open) { - return null; - } + const { + children, onClose, open, ...restProps + } = props; return ( -
-
{ e.stopPropagation(); }}> - × - - {children} -
-
+ + + + {children} + + + ); }; diff --git a/frontend/src/shared/ui/Select/index.ts b/frontend/src/shared/ui/Select/index.ts deleted file mode 100644 index 8b65ae9..0000000 --- a/frontend/src/shared/ui/Select/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as Select } from './ui/Select.ui'; diff --git a/frontend/src/shared/ui/Select/ui/Select.module.css b/frontend/src/shared/ui/Select/ui/Select.module.css deleted file mode 100644 index d6da646..0000000 --- a/frontend/src/shared/ui/Select/ui/Select.module.css +++ /dev/null @@ -1,4 +0,0 @@ -.wrapper { - display: flex; - flex-direction: column; -} diff --git a/frontend/src/shared/ui/Select/ui/Select.ui.tsx b/frontend/src/shared/ui/Select/ui/Select.ui.tsx deleted file mode 100644 index 80f5b0d..0000000 --- a/frontend/src/shared/ui/Select/ui/Select.ui.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import type { FC, HTMLProps, RefObject } from 'react'; - -import classes from './Select.module.css'; - -type Option = { - label: string; - value: string; -}; - -type SelectProps = HTMLProps & { - label: string; - options: Option[]; - ref?: RefObject; -}; - -const Select: FC = (props) => { - const { - id, - label, - options, - ref, - ...refProps - } = props; - - return ( - - ); -}; - -export default Select; diff --git a/frontend/src/shared/utils/helpers/getUTCDate.ts b/frontend/src/shared/utils/helpers/getUTCDate.ts new file mode 100644 index 0000000..528b63d --- /dev/null +++ b/frontend/src/shared/utils/helpers/getUTCDate.ts @@ -0,0 +1,13 @@ +import { parse } from 'date-fns'; + +export function getUTCDate(date: string) { + const parsedDate = parse(date, 'dd.MM.yyyy', new Date()); + + return new Date( + Date.UTC( + parsedDate.getFullYear(), + parsedDate.getMonth(), + parsedDate.getDate(), + ), + ).toISOString(); +} diff --git a/frontend/src/shared/utils/index.ts b/frontend/src/shared/utils/index.ts index b297a4b..f2b914b 100644 --- a/frontend/src/shared/utils/index.ts +++ b/frontend/src/shared/utils/index.ts @@ -4,3 +4,5 @@ export const wait = async (time: number) => new Promise((res) => { export { formatRub } from './formatters/currency'; export { formatDate } from './formatters/date'; + +export { getUTCDate } from './helpers/getUTCDate'; diff --git a/frontend/src/widgets/AppLayout/ui/AppLayout.module.css b/frontend/src/widgets/AppLayout/ui/AppLayout.module.css index 48f92aa..f024f4e 100644 --- a/frontend/src/widgets/AppLayout/ui/AppLayout.module.css +++ b/frontend/src/widgets/AppLayout/ui/AppLayout.module.css @@ -4,4 +4,5 @@ .content { flex-grow: 1; + padding: 20px; } diff --git a/frontend/src/widgets/Sidebar/ui/SideBar.ui.tsx b/frontend/src/widgets/Sidebar/ui/SideBar.ui.tsx index 8528bdd..5c943ff 100644 --- a/frontend/src/widgets/Sidebar/ui/SideBar.ui.tsx +++ b/frontend/src/widgets/Sidebar/ui/SideBar.ui.tsx @@ -1,42 +1,70 @@ -import { NavLink } from 'react-router'; +import type { ReactElement } from 'react'; + +import AddIcon from '@mui/icons-material/Add'; +import CreditCardIcon from '@mui/icons-material/CreditCard'; +import CurrencyRubleIcon from '@mui/icons-material/CurrencyRuble'; +import HomeIcon from '@mui/icons-material/Home'; +import RemoveIcon from '@mui/icons-material/Remove'; +import { + List, ListItem, ListItemButton, ListItemIcon, ListItemText, +} from '@mui/material'; +import { NavLink, useLocation } from 'react-router'; import { PAGES } from '@/shared/router'; import classes from './SideBar.module.css'; +type ListItemLinkProps = { + icon?: ReactElement; + primary: string; + to: string; +}; + +const ListItemLink = (props: ListItemLinkProps) => { + const { icon, primary, to } = props; + const location = useLocation(); + + return ( + + {icon + ? ( + + {icon} + + ) + : null} + + + + ); +}; + +type Element = { + icon?: ReactElement; + title: string; + to: string; +}; +const elements: Element[] = [ + { icon: , title: 'Главная', to: PAGES.Home }, + { icon: , title: 'Доходы', to: PAGES.Incomes }, + { icon: , title: 'Расходы', to: PAGES.Expenses }, + { icon: , title: 'Карты', to: PAGES.BankCards }, + { icon: , title: 'Наличные', to: PAGES.Cash }, +]; + const SideBar = () => (
-
    -
  • - - Главная - -
  • - -
  • - - Доходы - -
  • - -
  • - - Расходы - -
  • - -
  • - - Карты - -
  • - -
  • - - Наличные - -
  • -
+ + {elements.map(({ icon, title, to }) => ( + + + + ))} +
); diff --git a/frontend/src/widgets/auth/LoginForm/ui/LoginForm.ui.tsx b/frontend/src/widgets/auth/LoginForm/ui/LoginForm.ui.tsx index 2159269..6a7a1d3 100644 --- a/frontend/src/widgets/auth/LoginForm/ui/LoginForm.ui.tsx +++ b/frontend/src/widgets/auth/LoginForm/ui/LoginForm.ui.tsx @@ -1,6 +1,6 @@ import type { FC } from 'react'; -import { Input } from '@/shared/ui/Input'; +import { Button, TextField } from '@mui/material'; import { useLoginForm } from './hooks/useLoginForm'; import classes from './LoginForm.module.css'; @@ -10,28 +10,36 @@ const LoginForm: FC = () => { return (
- - - +
); }; diff --git a/frontend/src/widgets/auth/RegisterForm/ui/RegisterForm.ui.tsx b/frontend/src/widgets/auth/RegisterForm/ui/RegisterForm.ui.tsx index 2482d97..5c6b381 100644 --- a/frontend/src/widgets/auth/RegisterForm/ui/RegisterForm.ui.tsx +++ b/frontend/src/widgets/auth/RegisterForm/ui/RegisterForm.ui.tsx @@ -1,6 +1,6 @@ import type { FC } from 'react'; -import { Input } from '@/shared/ui/Input'; +import { Button, TextField } from '@mui/material'; import { useRegisterForm } from './hooks/useRegisterForm'; import classes from './RegisterForm.module.css'; @@ -10,25 +10,36 @@ const RegisterForm: FC = () => { return (
- - - +
); };