mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-31 22:43:11 +02:00
Better Yaak export
This commit is contained in:
@@ -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" }
|
||||||
|
|||||||
@@ -56,7 +56,8 @@
|
|||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"all": false,
|
"all": false,
|
||||||
"open": true
|
"open": true,
|
||||||
|
"save": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"bundle": {
|
"bundle": {
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user