Исправление запроса service

This commit is contained in:
ArtChaos189 2023-06-08 16:17:45 +03:00
parent cb40c318ae
commit 51a6fed49a
7 changed files with 110 additions and 24 deletions

52
src/hooks/tariff.hook.ts Normal file

@ -0,0 +1,52 @@
import { useEffect, useState } from "react";
import axios from "axios";
export type Privilege = {
createdAt: string;
description: string;
isDeleted: boolean;
name: string;
price: number;
privilegeId: string;
serviceKey: string;
type: "count" | "day" | "mb";
updatedAt: string;
value: string;
_id: string;
};
type UseTariffs = {
tariffs: Record<string, Privilege[]> | undefined;
isError: boolean;
isLoading: boolean;
errorMessage: string;
};
export const useTariffs = (): UseTariffs => {
const [tariffs, setTariffs] = useState<Record<string, Privilege[]>>();
const [isLoading, setIsLoading] = useState(false);
const [isError, setIsError] = useState(false);
const [errorMessage, setErrorMessage] = useState("");
useEffect(() => {
const getPrivilegies = async () => {
const { data } = await axios<Record<string, Privilege[]>>({
method: "get",
url: "https://admin.pena.digital/strator/tariff/",
});
return data;
};
setIsLoading(true);
getPrivilegies()
.then(setTariffs)
.catch(() => {
setIsError(true);
setErrorMessage("Ошибка при получении тарифов");
})
.finally(() => setIsLoading(false));
}, []);
return { tariffs, isError, isLoading, errorMessage };
};

@ -1,6 +1,6 @@
import { usePrivilegeStore } from "@root/stores/privileges";
import { usePrivilegies } from "./privilege.hook";
import { addMergedPrivileges } from "@root/stores/mergedPrivileges";
export type mergedPrivilege = {
createdAt?: string;
@ -24,7 +24,7 @@ export const useCombinedPrivileges = () => {
if (privilegies) {
mergedPrivileges.push(...privilegies.Шаблонизатор, ...examplePrivileges);
}
return { mergedPrivileges, isError, errorMessage };
addMergedPrivileges(mergedPrivileges, isError, errorMessage);
}
};

@ -1,9 +1,11 @@
import { Typography } from "@mui/material";
import { СardPrivilegie } from "./CardPrivilegie";
import { useCombinedPrivileges } from "@root/hooks/useCombinedPrivileges.hook";
import { mergedPrivilegeStore } from "@root/stores/mergedPrivileges";
export default function ListPrivilegie() {
const { mergedPrivileges, isError, errorMessage } = useCombinedPrivileges();
const { mergedPrivileges, isError, errorMessage } = mergedPrivilegeStore();
console.log(mergedPrivileges);
return (
<>

@ -6,12 +6,11 @@ import axios from "axios";
import { CustomTextField } from "@root/kitUI/CustomTextField";
import { useCombinedPrivileges } from "@root/hooks/useCombinedPrivileges.hook";
import { Tariff } from "@root/model/tariff";
import { addTariffs } from "@root/stores/tariffs";
import { authStore } from "@root/stores/auth";
import { mergedPrivilegeStore } from "@root/stores/mergedPrivileges";
export default function CreateTariff() {
const theme = useTheme();
@ -19,7 +18,7 @@ export default function CreateTariff() {
const [amountField, setAmountField] = useState<string>("");
const [customPriceField, setCustomPriceField] = useState<string>("");
const [privilegeIdField, setPrivilegeIdField] = useState<string>("");
const { mergedPrivileges, isError, errorMessage } = useCombinedPrivileges();
const { mergedPrivileges, isError, errorMessage } = mergedPrivilegeStore();
const { token } = authStore();
const findPrivilegeById = (privilegeId: string) => {
@ -28,8 +27,6 @@ export default function CreateTariff() {
const privilege = findPrivilegeById(privilegeIdField);
console.log(privilege);
function handleCreateTariffClick() {
if (nameField === "") {
enqueueSnackbar("Пустое название тарифа");
@ -56,17 +53,13 @@ export default function CreateTariff() {
};
addTariffs([newTariff]);
axios({})
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error);
});
}
const createTariff = async () => {
if (nameField === "" || amountField === "" || privilegeIdField === "") {
return;
}
try {
if (!privilege) {
throw new Error("Привилегия не выбрана");
@ -214,7 +207,6 @@ export default function CreateTariff() {
handleCreateTariffClick();
createTariff();
}}
// disabled={privilegeIdField === "" || amountField === "" || nameField === ""}
>
Создать
</Button>

@ -1,7 +1,7 @@
import { GridColDef } from "@mui/x-data-grid";
import DataGrid from "@kitUI/datagrid";
import { useCombinedPrivileges } from "@root/hooks/useCombinedPrivileges.hook";
import { Typography } from "@mui/material";
import { mergedPrivilegeStore } from "@root/stores/mergedPrivileges";
const columns: GridColDef[] = [
{ field: "id", headerName: "id", width: 40 },
@ -12,8 +12,7 @@ const columns: GridColDef[] = [
];
export default function Privileges() {
const { mergedPrivileges, isError, errorMessage } = useCombinedPrivileges();
const { mergedPrivileges, isError, errorMessage } = mergedPrivilegeStore();
const privilegesGridData = mergedPrivileges.map((privilege) => ({
id: privilege.privilegeId,
name: privilege.name,

@ -16,8 +16,6 @@ interface Props {
export default function TariffsDG({ handleSelectionChange }: Props) {
const tariffs = useTariffStore((state) => state.tariffs);
console.log(tariffs);
const columns: GridColDef[] = [
{ field: "id", headerName: "ID", width: 100 },
{ field: "name", headerName: "Название тарифа", width: 150 },

@ -0,0 +1,43 @@
import { create } from "zustand";
import { persist } from "zustand/middleware";
type mergedPrivilege = {
createdAt?: string;
description: string;
isDeleted?: boolean;
name: string;
price: number;
privilegeId: string;
serviceKey: string;
type: "count" | "day" | "mb";
updatedAt?: string;
value?: string;
_id?: string;
};
type MergedPrivilegeType = {
mergedPrivileges: mergedPrivilege[];
isError: boolean;
errorMessage: string;
};
export const mergedPrivilegeStore = create<MergedPrivilegeType>()(
persist(
(set, get) => ({
mergedPrivileges: [],
isError: false,
errorMessage: "",
}),
{
name: "MergedPrivileg store",
}
)
);
export const addMergedPrivileges = (newPrivileges: mergedPrivilege[], isError: boolean, errorMessage: string) => {
mergedPrivilegeStore.setState((state) => ({
mergedPrivileges: [...state.mergedPrivileges, ...newPrivileges],
isError: isError,
errorMessage: errorMessage,
}));
};