diff --git a/auto-bid-admin/src/components/bid/delete-row-action.tsx b/auto-bid-admin/src/components/bid/delete-row-action.tsx index 29c4b04..11f8788 100644 --- a/auto-bid-admin/src/components/bid/delete-row-action.tsx +++ b/auto-bid-admin/src/components/bid/delete-row-action.tsx @@ -1,22 +1,38 @@ -import { ActionIcon } from "@mantine/core"; +import { Button } from "@mantine/core"; import { IconTrash } from "@tabler/icons-react"; import { useChoosesStore } from "../../lib/zustand/use-chooses-store"; -import { IBid } from "../../system/type"; +import { useConfirmStore } from "../../lib/zustand/use-confirm"; +import { deletesBid } from "../../apis/bid"; -export interface IDeleteRowActionProps { - onClick?: () => void; - data: IBid -} +export default function DeleteRowAction({ + onDeleted, +}: { + onDeleted?: () => void; +}) { + const { chooses } = useChoosesStore(); -export default function DeleteRowAction({ data,onClick }: IDeleteRowActionProps) { - - - const {chooses} = useChoosesStore() + const { setConfirm } = useConfirmStore(); + const handleDelete = () => { + setConfirm({ + handleOk: async () => { + const result = await deletesBid(chooses); + if (!result) return; + onDeleted?.(); + }, + title: 'Delete', + message: `This action will remove ${chooses.length} products.` + }); + }; return ( - item.id === data.id)} onClick={onClick} size={"sm"} color="red"> - - + ); } diff --git a/auto-bid-admin/src/lib/table/action.tsx b/auto-bid-admin/src/lib/table/action.tsx index c91d526..b1402b3 100644 --- a/auto-bid-admin/src/lib/table/action.tsx +++ b/auto-bid-admin/src/lib/table/action.tsx @@ -35,6 +35,7 @@ export interface ITableActionsProps> { props?: TextInputProps; render?: () => ReactNode; }; + showMainAction?: boolean; refAction?: TRefTableActionFn; selectProps?: SelectProps; leftActionSession?: ReactNode; @@ -55,9 +56,10 @@ export default function TableActions< actions, chooses, refAction, + leftActionSession, + showMainAction = true, onSearch, renderComfirm, - leftActionSession, onCloseComfirm, }: ITableActionsProps) { const [opened, { toggle, close }] = useDisclosure(false); @@ -259,16 +261,18 @@ export default function TableActions< {leftActionSession} - + )} )} diff --git a/auto-bid-admin/src/pages/bids.tsx b/auto-bid-admin/src/pages/bids.tsx index 9fd816c..6998d02 100644 --- a/auto-bid-admin/src/pages/bids.tsx +++ b/auto-bid-admin/src/pages/bids.tsx @@ -16,7 +16,8 @@ import { IconHammer, IconHistory, IconMenu, - IconPlus + IconPlus, + IconTrash, } from "@tabler/icons-react"; import _ from "lodash"; import { useMemo, useRef, useState } from "react"; @@ -27,25 +28,25 @@ import { ShowHistoriesBidPicklesApiModal, ShowHistoriesModal, } from "../components/bid"; -import DeleteRowAction from "../components/bid/delete-row-action"; import constants, { haveHistories } from "../constant"; import Table from "../lib/table/table"; import { IColumn, TRefTableFn } from "../lib/table/type"; -import { useChoosesStore } from "../lib/zustand/use-chooses-store"; import { useConfirmStore } from "../lib/zustand/use-confirm"; import { mappingStatusColors } from "../system/constants"; import { IBid } from "../system/type"; import { extractDomainSmart, formatTime } from "../utils"; +import DeleteRowAction from "../components/bid/delete-row-action"; +import { useChoosesStore } from "../lib/zustand/use-chooses-store"; export default function Bids() { const refTableFn: TRefTableFn = useRef({}); const [clickData, setClickData] = useState(null); - const {setChooses} = useChoosesStore() - const { setConfirm } = useConfirmStore(); + const { setChooses } = useChoosesStore(); + const [openedHistories, historiesModel] = useDisclosure(false); const [openedHistoriesGraysApi, historiesGraysApiModel] = useDisclosure(false); @@ -67,6 +68,7 @@ export default function Bids() { renderRow(row) { return ( {extractDomainSmart(row.web_bid.origin_url)}; }, @@ -88,7 +90,7 @@ export default function Bids() { { key: "lot_id", title: "Lot ID", - typeFilter: "text", + typeFilter: "none", }, { key: "model", @@ -99,22 +101,22 @@ export default function Bids() { { key: "plus_price", title: "Plus price", - typeFilter: "number", + typeFilter: "none", }, { key: "max_price", title: "Max price", - typeFilter: "number", + typeFilter: "none", }, { key: "current_price", title: "Current price", - typeFilter: "number", + typeFilter: "none", }, { key: "reserve_price", title: "Reserve price", - typeFilter: "number", + typeFilter: "none", }, { key: "histories", @@ -129,7 +131,7 @@ export default function Bids() { { key: "start_bid_time", title: "Start bid", - typeFilter: "text", + typeFilter: "none", renderRow(row) { return (