feat: update data buttons

This commit is contained in:
IlyaDoronin 2023-07-11 18:29:32 +03:00
parent 6af09b4bb7
commit 48e3b9d891
4 changed files with 42 additions and 29 deletions

@ -1,5 +1,5 @@
import { useEffect } from "react"; import { useEffect } from "react";
import { Box, IconButton, useTheme } from "@mui/material"; import { Box, IconButton, useTheme, Tooltip } from "@mui/material";
import { import {
DataGrid, DataGrid,
GridColDef, GridColDef,
@ -18,6 +18,7 @@ import EditIcon from "@mui/icons-material/Edit";
import { deleteDiscount } from "@root/api/discounts"; import { deleteDiscount } from "@root/api/discounts";
import { GridSelectionModel } from "@mui/x-data-grid"; import { GridSelectionModel } from "@mui/x-data-grid";
import { useDiscounts } from "@root/hooks/useDiscounts.hook"; import { useDiscounts } from "@root/hooks/useDiscounts.hook";
import AutorenewIcon from "@mui/icons-material/Autorenew";
const columns: GridColDef[] = [ const columns: GridColDef[] = [
// { // {
@ -151,6 +152,14 @@ export default function DiscountDataGrid({ selectedRowsHC }: Props) {
<Box <Box
sx={{ width: "100%", marginTop: "55px", p: "16px", maxWidth: "1000px" }} sx={{ width: "100%", marginTop: "55px", p: "16px", maxWidth: "1000px" }}
> >
<Tooltip title="обновить список привилегий">
<IconButton
onClick={requestDiscounts}
style={{ display: "block", margin: "0 auto" }}
>
<AutorenewIcon sx={{ color: "white" }} />
</IconButton>
</Tooltip>
<Box sx={{ height: 600 }}> <Box sx={{ height: 600 }}>
<DataGrid <DataGrid
checkboxSelection={true} checkboxSelection={true}

@ -1,7 +1,8 @@
import { GridColDef } from "@mui/x-data-grid"; import { GridColDef } from "@mui/x-data-grid";
import DataGrid from "@kitUI/datagrid"; import DataGrid from "@kitUI/datagrid";
import { Typography } from "@mui/material"; import { Tooltip, IconButton } from "@mui/material";
import { usePrivilegeStore } from "@root/stores/privilegesStore"; import { usePrivilegeStore } from "@root/stores/privilegesStore";
import AutorenewIcon from "@mui/icons-material/Autorenew";
const columns: GridColDef[] = [ const columns: GridColDef[] = [
{ field: "id", headerName: "id", width: 150 }, { field: "id", headerName: "id", width: 150 },
@ -11,13 +12,15 @@ const columns: GridColDef[] = [
{ field: "price", headerName: "Стоимость", width: 100 }, { field: "price", headerName: "Стоимость", width: 100 },
]; ];
export default function Privileges() { type Props = {
requestPrivilegies: () => Promise<void>;
};
export default function Privileges({ requestPrivilegies }: Props) {
const privileges = usePrivilegeStore((state) => state.privileges); const privileges = usePrivilegeStore((state) => state.privileges);
// const { mergedPrivileges } = useCombinedPrivileges(); // const { mergedPrivileges } = useCombinedPrivileges();
const privilegesGridData = privileges const privilegesGridData = privileges
.filter(privilege => ( .filter((privilege) => !privilege.isDeleted)
!privilege.isDeleted
))
.map((privilege) => ({ .map((privilege) => ({
id: privilege.privilegeId, id: privilege.privilegeId,
name: privilege.name, name: privilege.name,
@ -27,9 +30,13 @@ export default function Privileges() {
})); }));
return ( return (
<DataGrid <>
rows={privilegesGridData} <Tooltip title="обновить список привилегий">
columns={columns} <IconButton onClick={requestPrivilegies}>
/> <AutorenewIcon sx={{ color: "white" }} />
</IconButton>
</Tooltip>
<DataGrid rows={privilegesGridData} columns={columns} />
</>
); );
} }

@ -1,5 +1,5 @@
import { useState, useEffect } from "react"; import { useState, useEffect } from "react";
import { Container, IconButton, Tooltip, Typography } from "@mui/material"; import { Container, Typography } from "@mui/material";
import { GridSelectionModel } from "@mui/x-data-grid"; import { GridSelectionModel } from "@mui/x-data-grid";
import Cart from "@root/kitUI/Cart/Cart"; import Cart from "@root/kitUI/Cart/Cart";
@ -12,7 +12,6 @@ import TariffsDG from "./tariffsDG";
import CreateTariff from "./CreateTariff"; import CreateTariff from "./CreateTariff";
import Privileges from "./Privileges/Privileges"; import Privileges from "./Privileges/Privileges";
import ChangePriceModal from "./Privileges/ChangePriceModal"; import ChangePriceModal from "./Privileges/ChangePriceModal";
import AutorenewIcon from "@mui/icons-material/Autorenew";
export default function Tariffs() { export default function Tariffs() {
const [selectedTariffs, setSelectedTariffs] = useState<GridSelectionModel>( const [selectedTariffs, setSelectedTariffs] = useState<GridSelectionModel>(
@ -37,17 +36,9 @@ export default function Tariffs() {
alignItems: "center", alignItems: "center",
}} }}
> >
<button onClick={() => requestPrivilegies()}>provileges</button>
<button onClick={() => requestTariffs()}>tariffs</button>
<Typography variant="h6">Список привилегий</Typography> <Typography variant="h6">Список привилегий</Typography>
<Tooltip title="обновить список привилегий"> <Privileges requestPrivilegies={requestPrivilegies} />
<IconButton onClick={requestPrivilegies}>
<AutorenewIcon sx={{ color: "white" }} />
</IconButton>
</Tooltip>
<Privileges />
<ChangePriceModal /> <ChangePriceModal />

@ -2,7 +2,7 @@
import React from "react"; import React from "react";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { GridColDef, GridSelectionModel, GridToolbar } from "@mui/x-data-grid"; import { GridColDef, GridSelectionModel, GridToolbar } from "@mui/x-data-grid";
import { Box, Button, IconButton } from "@mui/material"; import { Box, Button, IconButton,Tooltip } from "@mui/material";
import BackspaceIcon from "@mui/icons-material/Backspace"; import BackspaceIcon from "@mui/icons-material/Backspace";
import { enqueueSnackbar } from "notistack"; import { enqueueSnackbar } from "notistack";
import ModeEditOutlineOutlinedIcon from "@mui/icons-material/ModeEditOutlineOutlined"; import ModeEditOutlineOutlinedIcon from "@mui/icons-material/ModeEditOutlineOutlined";
@ -18,6 +18,7 @@ import { authStore } from "@root/stores/auth";
import DeleteModal from "@root/pages/dashboard/Content/Tariffs/DeleteModal"; import DeleteModal from "@root/pages/dashboard/Content/Tariffs/DeleteModal";
import EditModal from "./EditModal"; import EditModal from "./EditModal";
import { Tariff } from "@root/model/tariff"; import { Tariff } from "@root/model/tariff";
import AutorenewIcon from "@mui/icons-material/Autorenew";
interface Props { interface Props {
selectedTariffs: GridSelectionModel; selectedTariffs: GridSelectionModel;
@ -118,6 +119,11 @@ export default function TariffsDG({
return ( return (
<> <>
<Tooltip title="обновить список тарифов">
<IconButton onClick={() => requestTariffs()}>
<AutorenewIcon sx={{ color: "white" }} />
</IconButton>
</Tooltip>
<DataGrid <DataGrid
disableSelectionOnClick={true} disableSelectionOnClick={true}
checkboxSelection={true} checkboxSelection={true}