From ed1427d421ec83fb21f63ae198d758c8de7de89a Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Sun, 19 Nov 2023 17:06:31 -0800 Subject: [PATCH] Try sandboxing again --- .github/workflows/artifacts.yml | 8 ++++---- package-lock.json | 9 +++++++++ package.json | 1 + src-tauri/macos/entitlements.plist | 4 ++++ src-tauri/src/main.rs | 2 ++ src-tauri/tauri.conf.json | 4 ++-- src-web/components/WorkspaceHeader.tsx | 10 +--------- src-web/hooks/useExportData.tsx | 21 +++++++++++---------- 8 files changed, 34 insertions(+), 25 deletions(-) diff --git a/.github/workflows/artifacts.yml b/.github/workflows/artifacts.yml index f8217c37..470969b1 100644 --- a/.github/workflows/artifacts.yml +++ b/.github/workflows/artifacts.yml @@ -13,10 +13,10 @@ jobs: include: - os: macos-12 target: aarch64-apple-darwin - - os: macos-latest - target: x86_64-apple-darwin - - os: windows-2022 - target: x86_64-pc-windows-msvc +# - os: macos-latest +# target: x86_64-apple-darwin +# - os: windows-2022 +# target: x86_64-pc-windows-msvc # # Re-enable Linux when context menu is supported # - os: ubuntu-20.04 # target: x86_64-unknown-linux-gnu diff --git a/package-lock.json b/package-lock.json index d8c3f353..4e572e93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ "react-helmet-async": "^1.3.0", "react-router-dom": "^6.8.1", "react-use": "^17.4.0", + "slugify": "^1.6.6", "tauri-plugin-context-menu": "^0.5.0", "tauri-plugin-log-api": "github:tauri-apps/tauri-plugin-log#v1", "uuid": "^9.0.0" @@ -7312,6 +7313,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", diff --git a/package.json b/package.json index b52e929f..38387701 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "react-helmet-async": "^1.3.0", "react-router-dom": "^6.8.1", "react-use": "^17.4.0", + "slugify": "^1.6.6", "tauri-plugin-context-menu": "^0.5.0", "tauri-plugin-log-api": "github:tauri-apps/tauri-plugin-log#v1", "uuid": "^9.0.0" diff --git a/src-tauri/macos/entitlements.plist b/src-tauri/macos/entitlements.plist index 95c1713a..3af300f4 100644 --- a/src-tauri/macos/entitlements.plist +++ b/src-tauri/macos/entitlements.plist @@ -2,6 +2,10 @@ + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-write + diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 6c0e6b43..bf288c36 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -666,6 +666,8 @@ fn main() { create_dir_all(dir.clone()).expect("Problem creating App directory!"); let p = dir.join("db.sqlite"); + File::options().write(true).create(true).open(&p).expect("Problem creating database file!"); + let p_string = p.to_string_lossy().replace(' ', "%20"); let url = format!("sqlite://{}?mode=rwc", p_string); println!("Connecting to database at {}", url); diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 82046e39..f3ef729e 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -8,7 +8,7 @@ }, "package": { "productName": "Yaak", - "version": "2023.3.0" + "version": "2023.4.0-beta.1" }, "tauri": { "windows": [], @@ -56,7 +56,7 @@ "icons/release/icon.icns", "icons/release/icon.ico" ], - "identifier": "co.schier.yaak", + "identifier": "app.yaak.desktop", "longDescription": "The best cross-platform visual API client", "resources": [ "migrations/*", diff --git a/src-web/components/WorkspaceHeader.tsx b/src-web/components/WorkspaceHeader.tsx index d117531f..d889c031 100644 --- a/src-web/components/WorkspaceHeader.tsx +++ b/src-web/components/WorkspaceHeader.tsx @@ -1,7 +1,6 @@ import classNames from 'classnames'; import React, { memo } from 'react'; import { useActiveRequest } from '../hooks/useActiveRequest'; -import { useActiveWorkspace } from '../hooks/useActiveWorkspace'; import { Icon } from './core/Icon'; import { IconButton } from './core/IconButton'; import { HStack } from './core/Stacks'; @@ -17,7 +16,6 @@ interface Props { export const WorkspaceHeader = memo(function WorkspaceHeader({ className }: Props) { const activeRequest = useActiveRequest(); - const activeWorkspace = useActiveWorkspace(); return ( - - {activeWorkspace?.name[0]?.toUpperCase()} - - } - /> + diff --git a/src-web/hooks/useExportData.tsx b/src-web/hooks/useExportData.tsx index 986d6a07..086ae967 100644 --- a/src-web/hooks/useExportData.tsx +++ b/src-web/hooks/useExportData.tsx @@ -1,17 +1,12 @@ import { useMutation } from '@tanstack/react-query'; import { invoke } from '@tauri-apps/api'; -import type { SaveDialogOptions } from '@tauri-apps/api/dialog'; import { save } from '@tauri-apps/api/dialog'; -import { useActiveWorkspaceId } from './useActiveWorkspaceId'; +import slugify from 'slugify'; +import { useActiveWorkspace } from './useActiveWorkspace'; import { useAlert } from './useAlert'; -const saveArgs: SaveDialogOptions = { - title: 'Export Data', - defaultPath: 'yaak-export.json', -}; - export function useExportData() { - const workspaceId = useActiveWorkspaceId(); + const workspace = useActiveWorkspace(); const alert = useAlert(); return useMutation({ @@ -19,12 +14,18 @@ export function useExportData() { alert({ title: 'Export Failed', body: err }); }, mutationFn: async () => { - const exportPath = await save(saveArgs); + if (workspace == null) return; + + const workspaceSlug = slugify(workspace.name, { lower: true }); + const exportPath = await save({ + title: 'Export Data', + defaultPath: `yaak.${workspaceSlug}.json`, + }); if (exportPath == null) { return; } - await invoke('export_data', { workspaceId, exportPath }); + await invoke('export_data', { workspaceId: workspace.id, exportPath }); }, }); }