import React from 'react';
import { LuFileSpreadsheet } from 'react-icons/lu';
import { Tooltip } from 'react-tooltip';
import { useThemeMode } from './ThemeModeContext.tsx';
import { DroppedFile } from './useFileDrop.ts';
import { loadRegistry } from '@substrait-viz/react';
import { substraitFileToBin } from '@substrait-viz/react';
import { downloadBlob, enforceExtension } from './utils.ts';
export interface DownloadBinButtonProps {
plan: DroppedFile;
descriptors: undefined | DroppedFile[];
}
export function DownloadBinButton({
plan,
descriptors,
}: DownloadBinButtonProps) {
const { isDarkMode } = useThemeMode();
const downloadAsBin = React.useCallback(async () => {
const registry = await loadRegistry(descriptors?.map(_ => _.value));
const data = await substraitFileToBin(plan.value, registry);
const blob = new Blob([data], { type: 'application/json' });
downloadBlob(enforceExtension(plan.name, 'bin'), blob);
}, [descriptors, plan.name, plan.value]);
return (
<>
>
);
}