Fixes according to testing

dev
Platon Yasev 3 years ago
parent 6e9c74b551
commit 329a41a50d

@ -2,7 +2,6 @@ import "./App.css";
import { BrowserRouter, Route, Routes } from "react-router-dom"; import { BrowserRouter, Route, Routes } from "react-router-dom";
import { LoginPage } from "./pages/Login"; import { LoginPage } from "./pages/Login";
import { VerifyRegistrationPage } from "./pages/VerifyRegistration"; import { VerifyRegistrationPage } from "./pages/VerifyRegistration";
import { RegisterPage } from "./pages/Register";
import { MapPage } from "./pages/Map"; import { MapPage } from "./pages/Map";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { enableMapSet } from "immer"; import { enableMapSet } from "immer";
@ -31,7 +30,7 @@ function App() {
<Route path="/" element={<MapPage />} /> <Route path="/" element={<MapPage />} />
<Route path="/signin" element={<LoginPage />} /> <Route path="/signin" element={<LoginPage />} />
<Route path="/verify-user" element={<VerifyRegistrationPage />} /> <Route path="/verify-user" element={<VerifyRegistrationPage />} />
<Route path="/register" element={<RegisterPage />} /> {/*<Route path="/register" element={<RegisterPage />} />*/}
</Routes> </Routes>
</BrowserRouter> </BrowserRouter>
</QueryClientProvider> </QueryClientProvider>

@ -42,6 +42,16 @@ export const PendingPointsFilters = () => {
const { filters, setRegion, clear } = usePendingPointsFilters(); const { filters, setRegion, clear } = usePendingPointsFilters();
const { data: fullRange, isInitialLoading } = useGetPendingPointsRange(); const { data: fullRange, isInitialLoading } = useGetPendingPointsRange();
const [isSelectionEmpty, setIsSelectionEmpty] = useState(false);
const handleSelectedChange = (count) => {
if (count === 0) {
setIsSelectionEmpty(true);
} else {
setIsSelectionEmpty(false);
}
};
const [hover, setHover] = useState(false); const [hover, setHover] = useState(false);
useEffect(() => { useEffect(() => {
@ -111,8 +121,8 @@ export const PendingPointsFilters = () => {
</div> </div>
<div> <div>
<SelectedLocations /> <SelectedLocations onSelectedChange={handleSelectedChange} />
{canEdit && <TakeToWorkButton />} {canEdit && <TakeToWorkButton disabled={isSelectionEmpty} />}
</div> </div>
</div> </div>
); );

@ -4,19 +4,25 @@ import {
} from "../../../api"; } from "../../../api";
import { usePointSelection } from "../../../stores/usePointSelection"; import { usePointSelection } from "../../../stores/usePointSelection";
import { Spin } from "antd"; import { Spin } from "antd";
import { useEffect } from "react";
export const SelectedLocations = () => { export const SelectedLocations = ({ onSelectedChange }) => {
const { data: totalCount, isInitialLoading: isTotalLoading } = const { data: totalCount, isInitialLoading: isTotalLoading } =
useGetTotalInitialPointsCount(); useGetTotalInitialPointsCount();
const { data: filteredCount, isInitialLoading: isFilteredLoading } = const { data: filteredCount, isInitialLoading: isFilteredLoading } =
useGetFilteredPendingPointsCount(); useGetFilteredPendingPointsCount();
const showSpinner = isTotalLoading || isFilteredLoading;
const { const {
selection: { excluded }, selection: { excluded },
} = usePointSelection(); } = usePointSelection();
useEffect(
() => onSelectedChange(filteredCount - excluded.size),
[filteredCount, excluded]
);
const showSpinner = isTotalLoading || isFilteredLoading;
return ( return (
<div className={"flex items-center justify-between"}> <div className={"flex items-center justify-between"}>
<span>Отобрано локаций</span> <span>Отобрано локаций</span>

@ -8,7 +8,7 @@ import { ArrowRightOutlined } from "@ant-design/icons";
import { Title } from "../../../components/Title"; import { Title } from "../../../components/Title";
import { usePendingPointsFilters } from "../../../stores/usePendingPointsFilters"; import { usePendingPointsFilters } from "../../../stores/usePendingPointsFilters";
export const TakeToWorkButton = () => { export const TakeToWorkButton = ({ disabled }) => {
const { filters } = usePendingPointsFilters(); const { filters } = usePendingPointsFilters();
const { prediction, categories, region } = filters; const { prediction, categories, region } = filters;
const { selection } = usePointSelection(); const { selection } = usePointSelection();
@ -79,6 +79,7 @@ export const TakeToWorkButton = () => {
block block
className={"mt-2"} className={"mt-2"}
onClick={() => setIsModalOpened(true)} onClick={() => setIsModalOpened(true)}
disabled={disabled}
> >
<span className="mr-1">Взять в работу</span> <span className="mr-1">Взять в работу</span>
<ArrowRightOutlined /> <ArrowRightOutlined />

@ -62,6 +62,10 @@ export const OnApprovalTable = ({ fullWidth }) => {
: [STATUSES.onApproval, STATUSES.working, STATUSES.cancelled], : [STATUSES.onApproval, STATUSES.working, STATUSES.cancelled],
}); });
if (statuses.length === 0) {
return { count: 0, results: [] };
}
return await getPoints(params, region); return await getPoints(params, region);
}, },
{ keepPreviousData: true } { keepPreviousData: true }

@ -91,6 +91,18 @@ export const useColumns = () => {
width: "120px", width: "120px",
ellipsis: true, ellipsis: true,
}, },
{
title: "Дата начала работы",
dataIndex: "start_date",
key: "start_date",
width: "120px",
render: (value) => {
if (!value) return "Нет данных";
const date = new Date(value);
return date.toLocaleDateString("ru");
},
},
{ {
title: "Id постамата", title: "Id постамата",
dataIndex: "postamat_id", dataIndex: "postamat_id",

Loading…
Cancel
Save