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", "updater",
"window-start-dragging", "window-start-dragging",
"dialog-open", "dialog-open",
"dialog-save",
] } ] }
tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" } 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" } tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" }

View File

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

View File

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

View File

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