Исправление запроса service
This commit is contained in:
parent
cb40c318ae
commit
51a6fed49a
52
src/hooks/tariff.hook.ts
Normal file
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 },
|
||||
|
43
src/stores/mergedPrivileges.ts
Normal file
43
src/stores/mergedPrivileges.ts
Normal file
@ -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,
|
||||
}));
|
||||
};
|
Loading…
Reference in New Issue
Block a user