import type { JSX, ReactNode } from "react"; import type { inferSearchInteractionDefinition } from "./interaction"; export interface CreateChildrenOptionsProps> { DetailComponent: ({ options }: { options: TParentOptions }) => ReactNode; useActions: (options: TParentOptions, query: string) => ChildrenAction[]; } export interface ChildrenAction> { key: string; Component: (option: TParentOptions) => JSX.Element; useInteraction: ( option: TParentOptions, query: string, ) => inferSearchInteractionDefinition<"link" | "javaScript" | "children">; hide?: boolean | ((option: TParentOptions) => boolean); } export const createChildrenOptions = >( props: CreateChildrenOptionsProps, ) => { return (option: TParentOptions) => ({ option, ...props, }); };