From 1af2bc6f051470e0d213ec748b023d6784780484 Mon Sep 17 00:00:00 2001 From: "Kayashov.SM" Date: Mon, 28 Apr 2025 12:39:53 +0400 Subject: [PATCH] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D1=8B=20?= =?UTF-8?q?=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D1=8B=D0=B5=20=D1=81=D1=83?= =?UTF-8?q?=D1=89=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D1=84=D1=80=D0=BE=D0=BD?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/app/NavigationRoutes.js | 36 ------ front/src/app/pages/MyBarPage.js | 62 --------- front/src/app/pages/VisitorPage.js | 77 ----------- .../app/pages/cocktails/AllCocktailsPage.js | 7 - .../pages/cocktails/CocktailMenuBarPage.js | 122 ------------------ .../pages/cocktails/CocktailsPageContent.js | 12 +- front/src/app/pages/cocktails/MenuPage.js | 2 +- .../app/pages/ingredients/IngredientsPage.js | 10 +- front/src/app/pages/queue/MyQueuePage.js | 7 - front/src/app/pages/queue/QueueContent.js | 82 ------------ front/src/app/pages/queue/QueuePage.js | 10 -- .../components/Ingredients/IngredientList.js | 24 +--- front/src/components/cocktails/Cocktail.js | 6 - .../cocktails/CocktailDescription.js | 4 - front/src/components/cocktails/FilterBlock.js | 23 ++-- front/src/components/navigation/MainNav.js | 10 -- .../components/navigation/NavigationMenu.js | 2 - front/src/components/orders/EnhancedTable.js | 113 ---------------- .../components/orders/EnhancedTableHead.js | 32 ----- .../components/orders/EnhancedTableToolbar.js | 64 --------- front/src/components/orders/OrderModal.js | 105 --------------- .../src/components/orders/createHeadCelll.js | 9 -- front/src/components/visitor/VisitorItem.js | 49 ------- front/src/navItems.js | 8 +- 24 files changed, 23 insertions(+), 853 deletions(-) delete mode 100644 front/src/app/pages/MyBarPage.js delete mode 100644 front/src/app/pages/VisitorPage.js delete mode 100644 front/src/app/pages/cocktails/AllCocktailsPage.js delete mode 100644 front/src/app/pages/cocktails/CocktailMenuBarPage.js delete mode 100644 front/src/app/pages/queue/MyQueuePage.js delete mode 100644 front/src/app/pages/queue/QueueContent.js delete mode 100644 front/src/app/pages/queue/QueuePage.js delete mode 100644 front/src/components/orders/EnhancedTable.js delete mode 100644 front/src/components/orders/EnhancedTableHead.js delete mode 100644 front/src/components/orders/EnhancedTableToolbar.js delete mode 100644 front/src/components/orders/OrderModal.js delete mode 100644 front/src/components/orders/createHeadCelll.js delete mode 100644 front/src/components/visitor/VisitorItem.js diff --git a/front/src/app/NavigationRoutes.js b/front/src/app/NavigationRoutes.js index c2fdd7a..8ab17ec 100644 --- a/front/src/app/NavigationRoutes.js +++ b/front/src/app/NavigationRoutes.js @@ -5,18 +5,12 @@ import NotFoundPage from "./pages/notFound/NotFoundPage"; import {UserLayout} from "./layout/UserLayout"; import {HomeRedirect} from "./HomeRedirect"; import {PublicLayout} from "./layout/PublicLayout"; -import QueuePage from "./pages/queue/QueuePage"; import LoginPage from "./pages/auth/sign-in/loginPage"; import {TelegramCode} from "./pages/auth/sign-in/telegram-code"; import {IngredientsPage} from "./pages/ingredients/IngredientsPage"; import {MenuPage} from "./pages/cocktails/MenuPage"; -import {AllCocktailsPage} from "./pages/cocktails/AllCocktailsPage"; import {EditIngredientPage} from "./pages/ingredients/EditIngredientPage"; import {EditCocktailPage} from "./pages/cocktails/EditCocktailPage"; -import {MyQueuePage} from "./pages/queue/MyQueuePage"; -import {VisitorPage} from "./pages/VisitorPage"; -import {CocktailMenuBarPage} from "./pages/cocktails/CocktailMenuBarPage"; -import {MyBarPage} from "./pages/MyBarPage"; import {useEffect, useState} from "react"; export function NavigationRoutes() { @@ -70,47 +64,17 @@ const authPages = [ children: (), exact: true, }, - { - path: paths.bar.cocktails, - isPrivate: true, - children: () - }, - { - path: paths.bar.list, - isPrivate: true, - children: () - }, - { - path: paths.orders.my, - isPrivate: true, - children: () - }, { path: paths.bar.ingredients, isPrivate: true, children: () }, - { - path: paths.bar.ordersQueue, - isPrivate: true, - children: (), - }, - { - path: paths.visitor.inBar, - isPrivate: true, - children: () - }, { path: paths.bar.ingredientEdit, isPrivate: true, forAdmin: true, children: () }, - { - path: paths.bar.menu, - isPrivate: true, - children: () - }, { path: paths.bar.cocktailEdit, isPrivate: true, diff --git a/front/src/app/pages/MyBarPage.js b/front/src/app/pages/MyBarPage.js deleted file mode 100644 index b0d3c56..0000000 --- a/front/src/app/pages/MyBarPage.js +++ /dev/null @@ -1,62 +0,0 @@ -import Box from "@mui/material/Box"; -import Toolbar from "@mui/material/Toolbar"; -import Typography from "@mui/material/Typography"; -import Paper from "@mui/material/Paper"; -import {FormControl, InputAdornment, InputLabel, OutlinedInput, Tabs} from "@mui/material"; -import IconButton from "@mui/material/IconButton"; -import SearchIcon from "@mui/icons-material/Search"; -import * as React from "react"; -import {useState} from "react"; -import Tab from "@mui/material/Tab"; -import {a11yProps} from "../../components/core/tabProps"; -import {CustomTabPanel} from "../../components/core/TabPanel"; -import {BarList} from "../../components/bar/BarList"; - -export function MyBarPage() { - const [value, setValue] = React.useState(0); - const handleChange = (event, newValue) => setValue(newValue); - const [findString, setFindString] = useState(""); - - return ( - - {/*Заголовок*/} - - Мои бары - - {/*Поиск*/} - - - Поиск - setFindString(e.target.value)} - label="With normal TextField" - startAdornment={ - - - - - - } - /> - - - {/*Рабочее поле ингредиентов*/} - - - - - - - - - - - - - - - {/*Модальное окно информации об ингредиенте*/} - {/**/} - - ) -} \ No newline at end of file diff --git a/front/src/app/pages/VisitorPage.js b/front/src/app/pages/VisitorPage.js deleted file mode 100644 index 1fea703..0000000 --- a/front/src/app/pages/VisitorPage.js +++ /dev/null @@ -1,77 +0,0 @@ -import Box from "@mui/material/Box"; -import {useEffect, useState} from "react"; -import {api} from "../../lib/clients/api"; -import {requests} from "../../requests"; -import {useAlert} from "../../hooks/useAlert"; -import Typography from "@mui/material/Typography"; -import {VisitorItem} from "../../components/visitor/VisitorItem"; -import Toolbar from "@mui/material/Toolbar"; -import * as React from "react"; -import Button from "@mui/material/Button"; -import {useUser} from "../../hooks/useUser"; - -export function VisitorPage() { - const {session, checkSession} = useUser(); - const [visitors, setVisitors] = useState([]) - const [open, setOpen] = useState(false); - const {createError} = useAlert(); - - useEffect(() => { - api().get(requests.visitors.all) - .then((r) => { - setVisitors(r.data) - }) - .catch(() => createError("Ошибка получения данных")) - // eslint-disable-next-line - }, []); - useEffect(() => { - setOpen(session.isActive); - }, [session, checkSession]) - - const changeHandler = (visitor) => { - const arr = visitors.map((v) => { - if(v.id === visitor.id) { - return { - ...visitor, - invited: !visitor.invited - } - } - return v; - }) - api().post(`${requests.visitors.invite}id=${visitor.id}&value=${!visitor.invited}`) - .then(() => setVisitors(arr)) - .catch(() => createError("Ошибка запроса")) - - } - const changeShift = () => { - api().post(`${requests.bar.session.change}?value=${!open}`) - .then(() => { - checkSession?.(); - setOpen(!open) - }) - .catch(() => createError("Ошибка закрытия сессии")) - } - - return ( - - {/*Заголовок*/} - - Посетители - - - {visitors.map((v) => { - return ( - - ) - })} - - - - - - ) -} \ No newline at end of file diff --git a/front/src/app/pages/cocktails/AllCocktailsPage.js b/front/src/app/pages/cocktails/AllCocktailsPage.js deleted file mode 100644 index 875364c..0000000 --- a/front/src/app/pages/cocktails/AllCocktailsPage.js +++ /dev/null @@ -1,7 +0,0 @@ -import CocktailsPageContent from "./CocktailsPageContent"; - -export function AllCocktailsPage() { - return ( - - ) -} \ No newline at end of file diff --git a/front/src/app/pages/cocktails/CocktailMenuBarPage.js b/front/src/app/pages/cocktails/CocktailMenuBarPage.js deleted file mode 100644 index 531bfe8..0000000 --- a/front/src/app/pages/cocktails/CocktailMenuBarPage.js +++ /dev/null @@ -1,122 +0,0 @@ -import Box from "@mui/material/Box"; -import Toolbar from "@mui/material/Toolbar"; -import Typography from "@mui/material/Typography"; -import Paper from "@mui/material/Paper"; -import {Fab, FormControl, FormControlLabel, InputAdornment, InputLabel, OutlinedInput} from "@mui/material"; -import IconButton from "@mui/material/IconButton"; -import SearchIcon from "@mui/icons-material/Search"; -import Switch from "@mui/material/Switch"; -import {blue} from "@mui/material/colors"; -import UpIcon from "@mui/icons-material/KeyboardArrowUp"; -import {Loading} from "../../../components/core/Loading"; -import * as React from "react"; -import {useEffect, useMemo, useState} from "react"; -import {CocktailsList} from "../../../components/cocktails/CocktailsList"; -import {requests} from "../../../requests"; -import {api} from "../../../lib/clients/api"; -import {useAlert} from "../../../hooks/useAlert"; -import {CocktailInfoModal} from "../../../components/cocktails/CocktailInfoModal"; -import {useSelect} from "../../../hooks/useSelect"; - -export function CocktailMenuBarPage() { - const {createError} = useAlert(); - const [grouping, setGrouping] = useState(true); - const [findString, setFindString] = useState(""); - const [loading, setLoading] = useState(true); - const [cocktails, setCocktails] = useState([]); - const {setCocktail, state} = useSelect(); - - useEffect(() => { - api().get(`${requests.cocktails.menu}?all=true`) - .then((r) => { - setCocktails(r.data); - setLoading(false); - }) - .catch(() => createError("Ошибка получения данных")) - // eslint-disable-next-line - }, []); - - - const handleOpenModal = (row) => { - setCocktail(row); - } - const changeHandler = (row, value) => { - const newState = cocktails.map((r) => { - if (r.id !== row.id) { - return r; - } - return { - ...r, - inMenu: value - } - }); - api().post(`${requests.cocktails.menu}?id=${row.id}&value=${value}`) - .then(() => { - setCocktails(newState); - }).catch(() => createError("Ошибка сохранения данных")) - } - - const visibleRows = useMemo(() => { - if (findString === "") { - return cocktails; - } - let regExp = new RegExp("(.*?)" + findString + "(.*?)", "i"); - return cocktails - .filter((row) => row.name.split(" ").map((n) => n.match(regExp) !== null).includes(true)) - // eslint-disable-next-line - }, [cocktails, findString]) - - return ( - - {/*Заголовок*/} - - Меню бара - - {/*Поиск*/} - - - Поиск - setFindString(e.target.value)} - label="With normal TextField" - startAdornment={ - - - - - - } - /> - - } - onClick={() => setGrouping(!grouping)} - label="Группировать" - labelPlacement="end"/> - - {/*Рабочее поле коктейлей*/} - - {/*Иконка возврата наверх*/} - window.window.scrollTo(0, 0)} - aria-label='Expand' - color='inherit'> - - - {/*Загрузчик*/} - - {/*Модальное окно информации об ингредиенте*/} - - - ) -} \ No newline at end of file diff --git a/front/src/app/pages/cocktails/CocktailsPageContent.js b/front/src/app/pages/cocktails/CocktailsPageContent.js index 6b46ac6..677bbc4 100644 --- a/front/src/app/pages/cocktails/CocktailsPageContent.js +++ b/front/src/app/pages/cocktails/CocktailsPageContent.js @@ -22,6 +22,7 @@ import {getComparator} from "../../../components/core/getComparator"; const emptyFilter = { search: "", + all: false, hidden: true, onlyFavourite: false, glass: [], @@ -34,7 +35,7 @@ const emptyFilter = { sorting: "Название по возрастанию" } -const CocktailsPageContent = ({all}) => { +const CocktailsPageContent = () => { const {user} = useUser(); const {createError, createSuccess} = useAlert(); const [allowIngredients, setAllowIngredients] = useState([]) @@ -56,7 +57,6 @@ const CocktailsPageContent = ({all}) => { setLoad(true); const request = { ...filter, - all: all, sort: sortList.find((s) => s.name === filter.sorting).id, page: page + 1, size: size, @@ -110,7 +110,7 @@ const CocktailsPageContent = ({all}) => { // eslint-disable-next-line }, [filter]) useEffect(() => { - if (!all) { + if (!filter.all) { return; } const ingredients = new Set(); @@ -197,7 +197,7 @@ const CocktailsPageContent = ({all}) => { if (r.id !== row.id) { return r; } - if (all) { + if (filter.all) { return { ...r, inMenu: value @@ -233,12 +233,10 @@ const CocktailsPageContent = ({all}) => { handleFilterChange={handleFilterChange} handleClearFilter={handleFilterClear} barmen={user.role !== 'USER'} - all={all} /> - {/*todo: доделать фильтр по количеству недостающих ингредиентов*/} { - (all && filter.iCount === 1) && ( + (filter.all && filter.iCount === 1) && ( + ) } \ No newline at end of file diff --git a/front/src/app/pages/ingredients/IngredientsPage.js b/front/src/app/pages/ingredients/IngredientsPage.js index 41c5c93..9e7145d 100644 --- a/front/src/app/pages/ingredients/IngredientsPage.js +++ b/front/src/app/pages/ingredients/IngredientsPage.js @@ -23,7 +23,6 @@ import {useSelect} from "../../../hooks/useSelect"; export function IngredientsPage() { const [value, setValue] = React.useState(0); - const [grouping, setGrouping] = useState(true); const handleChange = (event, newValue) => setValue(newValue); const [loading, setLoading] = useState(true); const [findString, setFindString] = useState(""); @@ -101,11 +100,6 @@ export function IngredientsPage() { } /> - } - onClick={() => setGrouping(!grouping)} - label="Группировать" - labelPlacement="end"/> {/*Рабочее поле ингредиентов*/} @@ -117,11 +111,11 @@ export function IngredientsPage() { + infoHandler={handleOpenModal}/> + infoHandler={handleOpenModal}/> - ) -} \ No newline at end of file diff --git a/front/src/app/pages/queue/QueueContent.js b/front/src/app/pages/queue/QueueContent.js deleted file mode 100644 index dc66fbf..0000000 --- a/front/src/app/pages/queue/QueueContent.js +++ /dev/null @@ -1,82 +0,0 @@ -import {useEffect, useMemo, useState} from "react"; -import {useAlert} from "../../../hooks/useAlert"; -import * as React from "react"; -import {api} from "../../../lib/clients/api"; -import {requests} from "../../../requests"; -import {createHeadCell} from "../../../components/orders/createHeadCelll"; -import {Loading} from "../../../components/core/Loading"; -import OrderModal from "../../../components/orders/OrderModal"; -import EnhancedTable from "../../../components/orders/EnhancedTable"; - -export function QueueContent({my}) { - const [load, setLoad] = useState(false); - const [orders, setOrders] = useState([]); - const {createSuccess, createError} = useAlert(); - const [openModal, setOpenModal] = React.useState(false); - const [selected, setSelected] = useState(null); - - useEffect(() => { - setLoad(false); - const url = my ? requests.bar.myOrders : requests.bar.order; - api().get(url) - .then(r => { - setOrders(r.data); - setLoad(true); - }) - .catch(() => { - createError("Ошибка при получении заказов"); - setLoad(true) - }) - // eslint-disable-next-line - }, []); - - const sliced = useMemo(() => orders.sort((a, b) => b.id - a.id), [orders]) - - const cells = [ - createHeadCell('id', true, true, 'Номер заказа', "20px"), - createHeadCell('cocktail.name', true, false, 'Коктейль', "40px"), - createHeadCell('visitor.name', true, false, 'Клиент', "40px"), - createHeadCell('status', true, true, 'Статус', "30px"), - ]; - - const changeOrderHandle = (row, status) => { - let url = requests.bar.order + "?id=" + row.id; - let isCancel = status === "CANCEL"; - let request = isCancel ? api().delete(url) : api().put(url); - request - .then(() => { - createSuccess(isCancel ? "Заказ отменен" : "Заказ готов"); - let newArr = orders.filter((order) => { - if (order.id !== row.id) { - row.status = isCancel ? "CANCEL" : "DONE"; - return row; - } - return order; - }) - setOrders(newArr); - setSelected(null); - setOpenModal(false); - }) - .catch(() => createError("Ошибка изменения заказа")) - } - const handleSelect = (row) => { - setSelected(row); - setOpenModal(true); - } - const handleCloseModal = () => { - setOpenModal(false); - setSelected(null); - }; - - const filterValues = !my ? ["DONE", "CANCEL"] : []; - - return ( - <> - - - - - ) -} \ No newline at end of file diff --git a/front/src/app/pages/queue/QueuePage.js b/front/src/app/pages/queue/QueuePage.js deleted file mode 100644 index 639ade7..0000000 --- a/front/src/app/pages/queue/QueuePage.js +++ /dev/null @@ -1,10 +0,0 @@ -import * as React from "react"; -import {QueueContent} from "./QueueContent"; - -const QueuePage = () => { - return ( - - ) -} - -export default QueuePage; \ No newline at end of file diff --git a/front/src/components/Ingredients/IngredientList.js b/front/src/components/Ingredients/IngredientList.js index ac74e11..e4e5aea 100644 --- a/front/src/components/Ingredients/IngredientList.js +++ b/front/src/components/Ingredients/IngredientList.js @@ -7,32 +7,12 @@ import Typography from "@mui/material/Typography"; import {getComparator} from "../core/getComparator"; import {groupByForLoop} from "../core/groupByForLoop"; -export function IngredientList({rows, value, infoHandler, changeHandler, grouping}) { - const [size, setSize] = useState(10); - window.addEventListener('scroll', () => { - if (window.innerHeight + window.scrollY >= (document.documentElement.scrollHeight - 100)) { - if (!grouping) { - setSize(size + 10) - } - } - }); - +export function IngredientList({rows, value, infoHandler, changeHandler}) { const visibleRows = useMemo(() => { let res = []; if (rows.length === 0) { return null; } - if (!grouping) { - return rows - .sort(getComparator("asc", "name")) - .slice(0, size) - .map((row) => { - return ( - - ) - }) - } const group = groupByForLoop(rows, "type") if (!group || group.size === 0) { @@ -65,7 +45,7 @@ export function IngredientList({rows, value, infoHandler, changeHandler, groupin }) return res; // eslint-disable-next-line - }, [size, rows]) + }, [rows]) return ( diff --git a/front/src/components/cocktails/Cocktail.js b/front/src/components/cocktails/Cocktail.js index ddfb922..91fe6e0 100644 --- a/front/src/components/cocktails/Cocktail.js +++ b/front/src/components/cocktails/Cocktail.js @@ -71,12 +71,6 @@ export function Cocktail({row, handleFavourite, handleChangeRating, handleSelect {row.name} - - {(row.isAllowed && session.isActive && user.invited) && - - } - {editMenuBlock(row)} - diff --git a/front/src/components/cocktails/CocktailDescription.js b/front/src/components/cocktails/CocktailDescription.js index db6b9e2..c07c1fe 100644 --- a/front/src/components/cocktails/CocktailDescription.js +++ b/front/src/components/cocktails/CocktailDescription.js @@ -27,10 +27,6 @@ export function CocktailDescription({row}) { {"Состав: " + row.components} - {(row.tags && row.tags.length > 0) && ( - - {"Теги: " + row.tags.replaceAll(',', ', ')} - )} ) } \ No newline at end of file diff --git a/front/src/components/cocktails/FilterBlock.js b/front/src/components/cocktails/FilterBlock.js index c500a77..61c0199 100644 --- a/front/src/components/cocktails/FilterBlock.js +++ b/front/src/components/cocktails/FilterBlock.js @@ -26,7 +26,7 @@ const inMenuFilter = [ } ] -export function FilterBlock({filter, handleFilterChange, handleClearFilter, barmen, all}) { +export function FilterBlock({filter, handleFilterChange, handleClearFilter, barmen}) { const {createError} = useAlert(); const [glass, setGlass] = useState([]); const [category, setCategory] = useState([]); @@ -111,14 +111,6 @@ export function FilterBlock({filter, handleFilterChange, handleClearFilter, barm {/*Блок фильтров*/}