Files
copilotkit__copilotkit/examples/v1/travel/components/humanInTheLoop/ActionButtons.tsx
Alem Tuzlak ff2093102c chore(lint): add new oxlint rules and auto-fix violations
Enable stricter oxlint rules for better code health:
- typescript/consistent-type-imports: enforce `import type` for type-only imports
- typescript/no-import-type-side-effects: prefer top-level type imports
- import/consistent-type-specifier-style: consistent type specifier placement
- typescript/no-unnecessary-type-assertion: bump to error
- react/self-closing-comp: enforce self-closing JSX components
- unicorn/prefer-optional-catch-binding: drop unused catch params
- eslint/no-useless-computed-key: simplify object keys
- unicorn/prefer-string-slice: prefer .slice() over .substring()
- unicorn/prefer-array-flat-map: prefer .flatMap() over .map().flat()

All existing violations auto-fixed via oxlint --fix.
2026-04-10 19:29:32 +02: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>
);
};