mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-18 23:09:47 +02:00
Move error alert to hook
This commit is contained in:
@@ -157,13 +157,7 @@ export const WorkspaceActionsDropdown = memo(function WorkspaceActionsDropdown({
|
|||||||
key: 'import-data',
|
key: 'import-data',
|
||||||
label: 'Import Data',
|
label: 'Import Data',
|
||||||
leftSlot: <Icon icon="download" />,
|
leftSlot: <Icon icon="download" />,
|
||||||
onSelect: () =>
|
onSelect: () => importData.mutate(),
|
||||||
importData.mutateAsync().catch((err) => {
|
|
||||||
alert({
|
|
||||||
title: 'Import Failed',
|
|
||||||
body: err,
|
|
||||||
});
|
|
||||||
}),
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'export-data',
|
key: 'export-data',
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { invoke } from '@tauri-apps/api';
|
|||||||
import type { SaveDialogOptions } from '@tauri-apps/api/dialog';
|
import type { SaveDialogOptions } from '@tauri-apps/api/dialog';
|
||||||
import { save } from '@tauri-apps/api/dialog';
|
import { save } from '@tauri-apps/api/dialog';
|
||||||
import { useActiveWorkspaceId } from './useActiveWorkspaceId';
|
import { useActiveWorkspaceId } from './useActiveWorkspaceId';
|
||||||
|
import { useAlert } from './useAlert';
|
||||||
|
|
||||||
const saveArgs: SaveDialogOptions = {
|
const saveArgs: SaveDialogOptions = {
|
||||||
title: 'Export Data',
|
title: 'Export Data',
|
||||||
@@ -11,8 +12,12 @@ const saveArgs: SaveDialogOptions = {
|
|||||||
|
|
||||||
export function useExportData() {
|
export function useExportData() {
|
||||||
const workspaceId = useActiveWorkspaceId();
|
const workspaceId = useActiveWorkspaceId();
|
||||||
|
const alert = useAlert();
|
||||||
|
|
||||||
return useMutation({
|
return useMutation({
|
||||||
|
onError: (err: string) => {
|
||||||
|
alert({ title: 'Export Failed', body: err });
|
||||||
|
},
|
||||||
mutationFn: async () => {
|
mutationFn: async () => {
|
||||||
const exportPath = await save(saveArgs);
|
const exportPath = await save(saveArgs);
|
||||||
if (exportPath == null) {
|
if (exportPath == null) {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { VStack } from '../components/core/Stacks';
|
|||||||
import { useDialog } from '../components/DialogContext';
|
import { useDialog } from '../components/DialogContext';
|
||||||
import type { Environment, Folder, HttpRequest, Workspace } from '../lib/models';
|
import type { Environment, Folder, HttpRequest, Workspace } from '../lib/models';
|
||||||
import { count } from '../lib/pluralize';
|
import { count } from '../lib/pluralize';
|
||||||
|
import { useAlert } from './useAlert';
|
||||||
import { useAppRoutes } from './useAppRoutes';
|
import { useAppRoutes } from './useAppRoutes';
|
||||||
|
|
||||||
const openArgs: OpenDialogOptions = {
|
const openArgs: OpenDialogOptions = {
|
||||||
@@ -17,8 +18,12 @@ const openArgs: OpenDialogOptions = {
|
|||||||
export function useImportData() {
|
export function useImportData() {
|
||||||
const routes = useAppRoutes();
|
const routes = useAppRoutes();
|
||||||
const dialog = useDialog();
|
const dialog = useDialog();
|
||||||
|
const alert = useAlert();
|
||||||
|
|
||||||
return useMutation({
|
return useMutation({
|
||||||
|
onError: (err: string) => {
|
||||||
|
alert({ title: 'Import Failed', body: err });
|
||||||
|
},
|
||||||
mutationFn: async () => {
|
mutationFn: async () => {
|
||||||
const selected = await open(openArgs);
|
const selected = await open(openArgs);
|
||||||
if (selected == null || selected.length === 0) {
|
if (selected == null || selected.length === 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user