Files
dbgate/packages/web/src/utility/createQuickExportMenu.ts
2023-02-24 17:22:11 +01:00

44 lines
1.1 KiB
TypeScript

import type { QuickExportDefinition } from 'dbgate-types';
import { currentArchive, getCurrentArchive, getExtensions } from '../stores';
export function createQuickExportMenuItems(handler: (fmt: QuickExportDefinition) => Function, advancedExportMenuItem) {
const extensions = getExtensions();
return [
...extensions.quickExports.map(fmt => ({
text: fmt.label,
onClick: handler(fmt),
})),
{ divider: true },
{
text: 'Current archive',
onClick: handler({
extension: 'jsonl',
label: 'Current archive',
noFilenameDependency: true,
createWriter: (fileName, dataName) => ({
functionName: 'archiveWriter',
props: {
fileName: dataName,
folderName: getCurrentArchive(),
},
}),
}),
},
{ divider: true },
{
text: 'More...',
...advancedExportMenuItem,
},
];
}
export default function createQuickExportMenu(
handler: (fmt: QuickExportDefinition) => Function,
advancedExportMenuItem
) {
return {
text: 'Export',
submenu: createQuickExportMenuItems(handler, advancedExportMenuItem),
};
}