diff --git a/index.html b/index.html index a50c3894..85bbf3c3 100644 --- a/index.html +++ b/index.html @@ -5,17 +5,6 @@ Yaak App - diff --git a/package-lock.json b/package-lock.json index 92e6621c..21ff5e2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -47,7 +47,7 @@ }, "devDependencies": { "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e", - "@tauri-apps/cli": "^1.5.4", + "@tauri-apps/cli": "^1.5.6", "@types/node": "^18.7.10", "@types/papaparse": "^5.3.7", "@types/parse-color": "^1.0.1", diff --git a/package.json b/package.json index 7bf4e701..295831c3 100644 --- a/package.json +++ b/package.json @@ -5,18 +5,18 @@ "type": "module", "scripts": { "start": "npm run build:plugins && npm run tauri-dev", - "tauri-dev": "tauri dev --no-watch --config src-tauri/tauri-dev.conf.json", + "tauri-dev": "tauri dev --no-watch --config ./src-tauri/tauri-dev.conf.json", "tauri-build": "tauri build", "tauri": "tauri", "build": "npm run build:frontend", "dev": "vite dev", "lint": "tsc && eslint . --ext .ts,.tsx", - "build:icon:release": "tauri icon design/icon.png --output src-tauri/icons/release", - "build:icon:dev": "tauri icon design/icon-dev.png --output src-tauri/icons/dev", + "build:icon:release": "tauri icon design/icon.png --output ./src-tauri/icons/release", + "build:icon:dev": "tauri icon design/icon-dev.png --output ./src-tauri/icons/dev", "build:frontend": "vite build", "build:plugins": "run-p build:plugin:importer-insomnia build:plugin:importer-postman build:plugin:importer-yaak", - "build:plugin:importer-insomnia": "cd src-tauri/plugins/importer-insomnia && vite build", - "build:plugin:importer-postman": "cd src-tauri/plugins/importer-postman && vite build", + "build:plugin:importer-insomnia": "cd ./src-tauri/plugins/importer-insomnia && vite build", + "build:plugin:importer-postman": "cd ./src-tauri/plugins/importer-postman && vite build", "build:plugin:importer-yaak": "cd src-tauri/plugins/importer-yaak && vite build", "test": "vitest", "coverage": "vitest run --coverage", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 01b4a4dd..8489824f 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -783,12 +783,12 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.26" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" dependencies = [ "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] @@ -975,11 +975,12 @@ dependencies = [ [[package]] name = "embed-resource" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f54cc3e827ee1c3812239a9a41dede7b4d7d5d5464faa32d71bd7cba28ce2cb2" +checksum = "3bde55e389bea6a966bd467ad1ad7da0ae14546a5bc794d16d1e55e7fca44881" dependencies = [ "cc", + "memchr", "rustc_version", "toml 0.8.8", "vswhom", @@ -2027,9 +2028,9 @@ dependencies = [ [[package]] name = "infer" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a898e4b7951673fce96614ce5751d13c40fc5674bc2d759288e46c3ab62598b3" +checksum = "f551f8c3a39f68f986517db0d1759de85881894fdc7db798bd2a9df9cb04b7fc" dependencies = [ "cfb", ] @@ -2356,9 +2357,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memoffset" @@ -2878,9 +2879,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" dependencies = [ - "phf_macros 0.10.0", "phf_shared 0.10.0", - "proc-macro-hack", ] [[package]] @@ -2957,20 +2956,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "phf_macros" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" -dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", - "proc-macro-hack", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "phf_macros" version = "0.11.2" @@ -4426,9 +4411,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defbfc551bd38ab997e5f8e458f87396d2559d05ce32095076ad6c30f7fc5f9c" +checksum = "e9914a4715e0b75d9f387a285c7e26b5bbfeb1249ad9f842675a82481565c532" dependencies = [ "anyhow", "cargo_toml", @@ -4555,9 +4540,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34d55e185904a84a419308d523c2c6891d5e2dbcee740c4997eb42e75a7b0f46" +checksum = "ece74810b1d3d44f29f732a7ae09a63183d63949bbdd59c61f8ed2a1b70150db" dependencies = [ "brotli", "ctor", @@ -4570,7 +4555,7 @@ dependencies = [ "kuchikiki", "log", "memchr", - "phf 0.10.1", + "phf 0.11.2", "proc-macro2", "quote", "semver", @@ -4578,10 +4563,10 @@ dependencies = [ "serde_json", "serde_with", "thiserror", - "toml 0.5.11", + "toml 0.7.8", "url", "walkdir", - "windows 0.39.0", + "windows-version", ] [[package]] @@ -5477,12 +5462,36 @@ dependencies = [ "windows_x86_64_msvc 0.48.5", ] +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + [[package]] name = "windows-tokens" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f838de2fe15fe6bac988e74b798f26499a8b21a9d97edec321e79b28d1d7f597" +[[package]] +name = "windows-version" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75aa004c988e080ad34aff5739c39d0312f4684699d6d71fc8a198d057b8b9b4" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -5495,6 +5504,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.37.0" @@ -5519,6 +5534,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.37.0" @@ -5543,6 +5564,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.37.0" @@ -5567,6 +5594,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.37.0" @@ -5591,6 +5624,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -5603,6 +5642,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.37.0" @@ -5627,6 +5672,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" version = "0.5.19" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index d6eaa29d..86374407 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -32,15 +32,19 @@ sqlx = { version = "0.7.2", features = ["sqlite", "runtime-tokio-rustls", "json" tauri = { version = "1.3", features = [ "config-toml", "devtools", + "dialog-open", + "dialog-save", "fs-read-file", "os-all", "protocol-asset", "shell-open", "updater", - "window-start-dragging", - "dialog-open", - "dialog-save", + "window-close", + "window-maximize", + "window-minimize", "window-set-title", + "window-start-dragging", + "window-unmaximize", ] } 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", features = ["colored"] } diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index c0efb33f..33785175 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -860,6 +860,7 @@ fn create_window(handle: &AppHandle, url: Option<&str>) -> Window { 100.0 + random::() * 30.0, 100.0 + random::() * 30.0, ) + .decorations(false) .title(handle.package_info().name.to_string()); // Add macOS-only things @@ -868,6 +869,7 @@ fn create_window(handle: &AppHandle, url: Option<&str>) -> Window { win_builder = win_builder .menu(app_menu) .hidden_title(true) + .decoratons(true) .title_bar_style(TitleBarStyle::Overlay); } diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 0563a91a..cbafc771 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -36,7 +36,11 @@ }, "window": { "startDragging": true, - "setTitle": true + "setTitle": true, + "minimize": true, + "maximize": true, + "unmaximize": true, + "close": true }, "dialog": { "all": false, diff --git a/src-web/components/Workspace.tsx b/src-web/components/Workspace.tsx index 4b6480ba..110d72f2 100644 --- a/src-web/components/Workspace.tsx +++ b/src-web/components/Workspace.tsx @@ -178,7 +178,7 @@ function HeaderSize({ className, ...props }: HeaderSizeProps) { className={classNames( className, 'h-md pt-[1px] flex items-center w-full pr-3 border-b', - platform?.osType === 'Darwin' && 'pl-20', + platform?.osType === 'Darwin' ? 'pl-20' : 'pl-1' )} {...props} /> diff --git a/src-web/components/WorkspaceHeader.tsx b/src-web/components/WorkspaceHeader.tsx index 95d4ed2d..a4065c1d 100644 --- a/src-web/components/WorkspaceHeader.tsx +++ b/src-web/components/WorkspaceHeader.tsx @@ -7,12 +7,16 @@ import { RecentRequestsDropdown } from './RecentRequestsDropdown'; import { SettingsDropdown } from './SettingsDropdown'; import { SidebarActions } from './SidebarActions'; import { WorkspaceActionsDropdown } from './WorkspaceActionsDropdown'; +import { useOsInfo } from '../hooks/useOsInfo'; +import { Button } from './core/Button'; +import { appWindow } from '@tauri-apps/api/window'; interface Props { className?: string; } export const WorkspaceHeader = memo(function WorkspaceHeader({ className }: Props) { + const osInfo = useOsInfo(); return ( + {osInfo?.osType !== 'Darwin' && ( + + + + + + )} ); }); diff --git a/src-web/hooks/useHotKey.ts b/src-web/hooks/useHotKey.ts index 17cea992..7d7df3e8 100644 --- a/src-web/hooks/useHotKey.ts +++ b/src-web/hooks/useHotKey.ts @@ -1,8 +1,8 @@ -import type { OsType } from '@tauri-apps/api/os'; -import { useEffect, useRef } from 'react'; -import { capitalize } from '../lib/capitalize'; -import { debounce } from '../lib/debounce'; -import { useOsInfo } from './useOsInfo'; +import type {OsType} from '@tauri-apps/api/os'; +import {useEffect, useRef} from 'react'; +import {capitalize} from '../lib/capitalize'; +import {debounce} from '../lib/debounce'; +import {useOsInfo} from './useOsInfo'; export type HotkeyAction = | 'request.send' @@ -87,6 +87,8 @@ export function useAnyHotkey( currentKeys.current.add(normalizeKey(e.key, os)); + console.log("HOTKEY", e.key); + for (const [hkAction, hkKeys] of Object.entries(hotkeys) as [HotkeyAction, string[]][]) { for (const hkKey of hkKeys) { const keys = hkKey.split('+'); diff --git a/src-web/main.css b/src-web/main.css index c3a49846..7f8ed1f9 100644 --- a/src-web/main.css +++ b/src-web/main.css @@ -6,7 +6,11 @@ html, body, #root { - @apply w-full h-full overflow-hidden bg-gray-50 text-gray-900; + @apply w-full h-full; + } + + #root { + @apply bg-gray-50 text-gray-900 overflow-hidden rounded-lg; } /* Setup default transitions for elements */