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 });
},
});
}