|
|
|
@ -13,8 +13,8 @@ import scrollIntoView from "scroll-into-view-if-needed";
|
|
|
|
const columns = [
|
|
|
|
const columns = [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
title: "Id",
|
|
|
|
title: "Id",
|
|
|
|
dataIndex: "id",
|
|
|
|
dataIndex: "location_id",
|
|
|
|
key: "id",
|
|
|
|
key: "location_id",
|
|
|
|
width: 50,
|
|
|
|
width: 50,
|
|
|
|
ellipsis: true,
|
|
|
|
ellipsis: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
@ -74,12 +74,11 @@ const useTableData = (page) => {
|
|
|
|
const [pageSize, setPageSize] = useState(PAGE_SIZE);
|
|
|
|
const [pageSize, setPageSize] = useState(PAGE_SIZE);
|
|
|
|
const { filters } = useFilters();
|
|
|
|
const { filters } = useFilters();
|
|
|
|
const { prediction, status, categories } = filters;
|
|
|
|
const { prediction, status, categories } = filters;
|
|
|
|
const { selection } = usePointSelection();
|
|
|
|
|
|
|
|
const { clickedPointConfig } = useClickedPointConfig();
|
|
|
|
const { clickedPointConfig } = useClickedPointConfig();
|
|
|
|
const [finalData, setFinalData] = useState();
|
|
|
|
const [finalData, setFinalData] = useState();
|
|
|
|
|
|
|
|
|
|
|
|
const { data } = useQuery(
|
|
|
|
const { data } = useQuery(
|
|
|
|
["table", page, filters, selection],
|
|
|
|
["table", page, filters],
|
|
|
|
async () => {
|
|
|
|
async () => {
|
|
|
|
const params = new URLSearchParams({
|
|
|
|
const params = new URLSearchParams({
|
|
|
|
page,
|
|
|
|
page,
|
|
|
|
@ -87,8 +86,6 @@ const useTableData = (page) => {
|
|
|
|
"prediction_current[]": prediction,
|
|
|
|
"prediction_current[]": prediction,
|
|
|
|
"status[]": status,
|
|
|
|
"status[]": status,
|
|
|
|
"categories[]": categories,
|
|
|
|
"categories[]": categories,
|
|
|
|
"included[]": [...selection.included],
|
|
|
|
|
|
|
|
"excluded[]": [...selection.excluded],
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const { data } = await api.get(
|
|
|
|
const { data } = await api.get(
|
|
|
|
@ -112,7 +109,7 @@ const useTableData = (page) => {
|
|
|
|
if (!data || clickedPointConfig === null) return;
|
|
|
|
if (!data || clickedPointConfig === null) return;
|
|
|
|
|
|
|
|
|
|
|
|
const clickedPoint = data.results.find(
|
|
|
|
const clickedPoint = data.results.find(
|
|
|
|
(item) => item.location_id === clickedPointConfig.locationId
|
|
|
|
(item) => item.location_id === clickedPointConfig.id
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
if (clickedPoint) {
|
|
|
|
if (clickedPoint) {
|
|
|
|
@ -130,7 +127,7 @@ const useTableData = (page) => {
|
|
|
|
["clicked-point", clickedPointConfig],
|
|
|
|
["clicked-point", clickedPointConfig],
|
|
|
|
async () => {
|
|
|
|
async () => {
|
|
|
|
const params = new URLSearchParams({
|
|
|
|
const params = new URLSearchParams({
|
|
|
|
"location_ids[]": [clickedPointConfig.locationId],
|
|
|
|
"location_ids[]": [clickedPointConfig.id],
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const { data } = await api.get(
|
|
|
|
const { data } = await api.get(
|
|
|
|
@ -187,9 +184,9 @@ export const Table = React.memo(({ height = 200 }) => {
|
|
|
|
const handlePageChange = useCallback((page) => setPage(page), []);
|
|
|
|
const handlePageChange = useCallback((page) => setPage(page), []);
|
|
|
|
|
|
|
|
|
|
|
|
const getSelectedRowKeys = useCallback(() => {
|
|
|
|
const getSelectedRowKeys = useCallback(() => {
|
|
|
|
const ids = data?.results.map((item) => item.id) ?? [];
|
|
|
|
const ids = data?.results.map((item) => item.location_id) ?? [];
|
|
|
|
const clickedPoint = data?.results.find(
|
|
|
|
const clickedPoint = data?.results.find(
|
|
|
|
(item) => item.location_id === clickedPointConfig?.locationId
|
|
|
|
(item) => item.location_id === clickedPointConfig?.id
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
const inExcludedList = (id) => selection.excluded.has(id);
|
|
|
|
const inExcludedList = (id) => selection.excluded.has(id);
|
|
|
|
@ -207,7 +204,7 @@ export const Table = React.memo(({ height = 200 }) => {
|
|
|
|
const rowSelection = {
|
|
|
|
const rowSelection = {
|
|
|
|
selectedRowKeys: getSelectedRowKeys(),
|
|
|
|
selectedRowKeys: getSelectedRowKeys(),
|
|
|
|
onSelect: (record, selected) => {
|
|
|
|
onSelect: (record, selected) => {
|
|
|
|
const { id } = record;
|
|
|
|
const { location_id: id } = record;
|
|
|
|
if (selected) {
|
|
|
|
if (selected) {
|
|
|
|
include(id);
|
|
|
|
include(id);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
@ -247,7 +244,7 @@ export const Table = React.memo(({ height = 200 }) => {
|
|
|
|
}}
|
|
|
|
}}
|
|
|
|
dataSource={data?.results}
|
|
|
|
dataSource={data?.results}
|
|
|
|
columns={columns}
|
|
|
|
columns={columns}
|
|
|
|
rowKey="id"
|
|
|
|
rowKey="location_id"
|
|
|
|
scroll={SCROLL}
|
|
|
|
scroll={SCROLL}
|
|
|
|
sticky={true}
|
|
|
|
sticky={true}
|
|
|
|
onRow={(record) => {
|
|
|
|
onRow={(record) => {
|
|
|
|
@ -268,9 +265,7 @@ export const Table = React.memo(({ height = 200 }) => {
|
|
|
|
}}
|
|
|
|
}}
|
|
|
|
rowSelection={rowSelection}
|
|
|
|
rowSelection={rowSelection}
|
|
|
|
rowClassName={(record) =>
|
|
|
|
rowClassName={(record) =>
|
|
|
|
record.location_id === clickedPointConfig?.locationId
|
|
|
|
record.location_id === clickedPointConfig?.id ? "scroll-row" : ""
|
|
|
|
? "scroll-row"
|
|
|
|
|
|
|
|
: ""
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</Collapse.Panel>
|
|
|
|
</Collapse.Panel>
|
|
|
|
|