fix: add type safety for ExportDialog trigger props

This commit is contained in:
Jakub Trávník 2025-12-01 16:51:40 +01:00
parent 5093699568
commit ced7a08672

View file

@ -139,17 +139,31 @@ export async function exportConfig(
await exportFromApi(config.endpoint, filename, options);
}
type ExportDialogProps = {
type BaseExportDialogProps = {
entityType: ExportEntityType;
name?: string;
id?: string | number;
trigger?: React.ReactNode;
};
type ExportDialogWithTrigger = BaseExportDialogProps & {
/** Custom trigger element. When provided, variant/size/triggerLabel/showIcon are ignored. */
trigger: React.ReactNode;
variant?: never;
size?: never;
triggerLabel?: never;
showIcon?: never;
};
type ExportDialogWithDefaultTrigger = BaseExportDialogProps & {
trigger?: never;
variant?: "default" | "outline" | "ghost" | "card";
size?: "default" | "sm" | "lg" | "icon";
triggerLabel?: string;
showIcon?: boolean;
};
type ExportDialogProps = ExportDialogWithTrigger | ExportDialogWithDefaultTrigger;
export function ExportDialog({
entityType,
name,