Better Yaak export

This commit is contained in:
Gregory Schier
2023-11-09 17:03:29 -08:00
parent bd9d1e2244
commit 5cebb4e61a
4 changed files with 15 additions and 19 deletions

View File

@@ -41,6 +41,7 @@ tauri = { version = "1.3", features = [
"updater",
"window-start-dragging",
"dialog-open",
"dialog-save",
] }
tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" }
tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" }

View File

@@ -56,7 +56,8 @@
},
"dialog": {
"all": false,
"open": true
"open": true,
"save": true
}
},
"bundle": {

View File

@@ -151,18 +151,18 @@ export const WorkspaceActionsDropdown = memo(function WorkspaceActionsDropdown({
onSelect: toggleAppearance,
leftSlot: <Icon icon={appearance === 'dark' ? 'sun' : 'moon'} />,
},
{
key: 'export-data',
label: 'Export Data',
leftSlot: <Icon icon="upload" />,
onSelect: () => exportData.mutate(),
},
{
key: 'import-data',
label: 'Import Data',
leftSlot: <Icon icon="download" />,
onSelect: () => importData.mutate(),
},
{
key: 'export-data',
label: 'Export Data',
leftSlot: <Icon icon="upload" />,
onSelect: () => exportData.mutate(),
},
];
}, [
activeWorkspace?.name,

View File

@@ -1,13 +1,12 @@
import { useMutation } from '@tanstack/react-query';
import { invoke } from '@tauri-apps/api';
import type { OpenDialogOptions } from '@tauri-apps/api/dialog';
import { open } from '@tauri-apps/api/dialog';
import type { SaveDialogOptions } from '@tauri-apps/api/dialog';
import { save } from '@tauri-apps/api/dialog';
import { useActiveWorkspaceId } from './useActiveWorkspaceId';
const openArgs: OpenDialogOptions = {
directory: true,
multiple: false,
title: 'Select Export Folder',
const saveArgs: SaveDialogOptions = {
title: 'Export Data',
defaultPath: 'yaak-export.json',
};
export function useExportData() {
@@ -15,12 +14,7 @@ export function useExportData() {
return useMutation({
mutationFn: async () => {
const selected = await open(openArgs);
if (selected == null) {
return;
}
const rootDir = Array.isArray(selected) ? selected[0] : selected;
const rootDir = await save(saveArgs);
if (rootDir == null) {
return;
}