import type { ActionInvocation } from "@yaakapp-internal/proxy-lib"; import { Button, type ButtonProps } from "@yaakapp-internal/ui"; import { useCallback } from "react"; import { useRpcMutation } from "../hooks/useRpcMutation"; import { useActionMetadata } from "../hooks/useActionMetadata"; type ActionButtonProps = Omit & { action: ActionInvocation; /** Override the label from metadata */ children?: React.ReactNode; }; export function ActionButton({ action, children, ...props }: ActionButtonProps) { const meta = useActionMetadata(action); const { mutate, isPending } = useRpcMutation("execute_action"); const onClick = useCallback(() => { mutate(action); }, [action, mutate]); return ( ); }