Files
2026-07-13 12:58:18 +08:00

79 lines
2.3 KiB
TypeScript

import { RenderFunctionStatus } from "@copilotkit/react-core";
import { Button } from "../ui/button";
import { useEffect } from "react";
export type ActionButtonsProps = {
status: RenderFunctionStatus;
handler: any;
approve: React.ReactNode;
reject: React.ReactNode;
selectedPlaceIds?: Set<string>;
type?: "edit" | "add";
placeIds?: string[][];
setSelectedPlaceIds?: (placeIds: Set<string>) => void;
};
export const ActionButtons = ({
status,
handler,
approve,
reject,
selectedPlaceIds,
type = "add",
placeIds,
setSelectedPlaceIds,
}: ActionButtonsProps) => {
useEffect(() => {
console.log(placeIds, "placeIdsplaceIdsplaceIds");
}, [placeIds]);
useEffect(() => {
console.log(selectedPlaceIds, "btn");
}, [selectedPlaceIds]);
return (
<div className="flex gap-4 justify-between">
<Button
className="w-full"
variant="outline"
disabled={status === "complete" || status === "inProgress"}
onClick={() => handler?.("CANCEL")}
>
{reject}
</Button>
<Button
className="w-full"
disabled={status === "complete" || status === "inProgress"}
onClick={() => {
if (selectedPlaceIds && selectedPlaceIds.size > 0) {
if (type == "edit") {
console.log(Array.from(selectedPlaceIds), "selectedPlaceIds");
handler?.(
JSON.stringify(Array.from(selectedPlaceIds) + "|||editMode"),
);
} else {
console.log(Array.from(selectedPlaceIds), "selectedPlaceIds");
handler?.(
JSON.stringify(Array.from(selectedPlaceIds) + "|||addMode"),
);
}
} else if (selectedPlaceIds && selectedPlaceIds.size == 0) {
setSelectedPlaceIds?.(new Set(placeIds?.[0] || []));
if (type == "edit") {
// console.log(Array.from(selectedPlaceIds), "selectedPlaceIds")
handler?.(JSON.stringify(placeIds?.[0] + "|||editMode"));
} else {
// console.log(Array.from(selectedPlaceIds), "selectedPlaceIds")
handler?.(JSON.stringify(placeIds?.[0] + "|||addMode"));
}
} else {
handler?.("SEND");
}
}}
>
{approve}
</Button>
</div>
);
};