Commit c49b494d authored by Merekeyev Dias's avatar Merekeyev Dias

manageOrganition fixed

parent b2c55c72
import React, { useEffect } from 'react';
import React, { useEffect, useState } from 'react';
import { useNavigate, useParams } from 'react-router';
import { useSelector, useDispatch } from 'react-redux';
import { Form, Input, Button, Select, message } from 'antd';
......@@ -22,16 +22,17 @@ const { Item } = Form;
const { Option } = Select;
const ManageOrganization: React.FC = () => {
const [form] = Form.useForm();
const navigate = useNavigate();
const dispatch = useDispatch();
const { id } = useParams<{ id: string }>();
const isEdit = Boolean(id);
const { data, isLoading, isError } = useGetOrganizationQuery(id!, { skip: !isEdit });
const { data: organizations } = useGetOrganizationsQuery();
const [editOrganization] = useEditOrganizationMutation();
const [form] = Form.useForm();
const totalOrgNumber = useSelector((state: any) => state.mainPagination.totalOrgNumber);
const ORG_NUMBER_PER_PAGE = useSelector((state: any) => state.mainPagination.ORG_NUMBER_PER_PAGE);
const [isBtnLoading, setIsBtnLoading] = useState(false);
const { data, isLoading: isGetLoading, isError: isGetError } = useGetOrganizationQuery(id!, { skip: !isEdit });
const { data: organizations } = useGetOrganizationsQuery();
const [ editOrganization ] = useEditOrganizationMutation();
useEffect(() => {
if (data) {
......@@ -59,25 +60,23 @@ const ManageOrganization: React.FC = () => {
return;
}
try {
if (isEdit) {
setIsBtnLoading(true);
await editOrganization({ ...normalizedValues }).unwrap();
setIsBtnLoading(false);
if (isEdit) {
message.success('Организация успешно обновлена!');
} else {
await editOrganization({ ...normalizedValues }).unwrap();
message.success('Организация успешно добавлена!');
dispatch(setTotalOrgNumber(totalOrgNumber + 1));
const newCurrentPage = Math.ceil((totalOrgNumber + 1) / ORG_NUMBER_PER_PAGE);
dispatch(setCurrentPage(newCurrentPage));
}
navigate('/');
} catch (err) {
message.error('Произошла ошибка при сохранении организации!');
}
};
if (isEdit && isLoading) return <div>Loading...</div>;
if (isEdit && isError) return <div>Error loading organization data</div>;
if (isEdit && isGetLoading) return <div>Loading...</div>;
if (isEdit && isGetError) return <div>Error loading organization data</div>;
return (
<div className='container'>
......@@ -168,7 +167,11 @@ const ManageOrganization: React.FC = () => {
>
Отмена
</Button>
<Button type="primary" htmlType="submit">
<Button
type="primary"
htmlType="submit"
loading={isBtnLoading}
>
Сохранить
</Button>
</Item>
......
......@@ -88,10 +88,9 @@ const RequestPage: React.FC = () => {
let max: number = -Infinity;
if (isSuccess) {
console.log(window.innerHeight)
reqs.list.forEach((req) => {
const dateValue = new Date(req.sendDate).valueOf();
if (min > dateValue && dateValue!=0) {
if (min > dateValue && dateValue != 0) {
min = dateValue;
}
if (max < dateValue) {
......@@ -127,13 +126,14 @@ const RequestPage: React.FC = () => {
if (isLoading) {
setIsTableLoading(true);
} else if (isSuccess) {
setIsTableLoading(false);
setData(reqs.list);
dispatch(setTotalReqNumber(reqs.list.length));
setDates([dayjs(min), dayjs(max)]);
} else if (isError) {
setIsTableLoading(false);
}
}, [isSuccess, reqs, dispatch]);
}, [isLoading, isSuccess, isError, reqs, dispatch, min, max]);
return (
<div className="container">
......
......@@ -7,7 +7,7 @@ export const manualApiSlice = apiSlice.injectEndpoints({
url: 'dictionary/update',
method: 'POST',
body: codes
}), invalidatesTags: ['manuals']
}), invalidatesTags: [{ type: "manuals", id: "MAN_LIST" }]
})
})
})
......
......@@ -18,7 +18,7 @@ export const organizationApiSlice = apiSlice.injectEndpoints({
endpoints: (builder) => ({
getOrganizations: builder.query<Organization[], void>({
query: () => 'organizations/list',
providesTags: [{ type: "organizations", id: "LIST" }],
providesTags: [{ type: "organizations", id: "ORG_LIST" }],
}),
getOrganization: builder.query<Organization, string>({
query: (orgId) => `organizations/info?id=${orgId}`,
......@@ -30,14 +30,14 @@ export const organizationApiSlice = apiSlice.injectEndpoints({
method: 'POST',
body: initialOrg,
}),
invalidatesTags: (res) => [{ type: "organizations", id: res?.id }, { type: "organizations", id: "LIST" }],
invalidatesTags: (res) => [{ type: "organizations", id: res?.id }, { type: "organizations", id: "ORG_LIST" }],
}),
deleteOrganization: builder.mutation<{ success: boolean; code: string }, string>({
query: (orgCode) => ({
url: `organizations/delete?code=${orgCode}`,
method: 'POST'
}),
invalidatesTags: [{ type: "organizations", id: "LIST" }],
invalidatesTags: [{ type: "organizations", id: "ORG_LIST" }],
}),
})
})
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment