79 lines
2.3 KiB
TypeScript
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>
|
|
);
|
|
};
|