From 365ef387dded894996cb102782378ad43e5a1d70 Mon Sep 17 00:00:00 2001 From: John Costa Date: Sun, 27 Apr 2025 15:01:37 +0100 Subject: [PATCH] feat(os-info): only showing screenshot button on linux --- frontend/bun.lock | 3 +++ frontend/package.json | 1 + frontend/src-tauri/Cargo.lock | 49 +++++++++++++++++++++++++++++++++++ frontend/src-tauri/Cargo.toml | 1 + frontend/src-tauri/src/lib.rs | 1 + frontend/src/App.tsx | 13 +++++++--- 6 files changed, 64 insertions(+), 4 deletions(-) diff --git a/frontend/bun.lock b/frontend/bun.lock index 210e288..7f9976d 100644 --- a/frontend/bun.lock +++ b/frontend/bun.lock @@ -14,6 +14,7 @@ "@tauri-apps/plugin-http": "2.4.3", "@tauri-apps/plugin-log": "~2", "@tauri-apps/plugin-opener": "^2", + "@tauri-apps/plugin-os": "~2", "clsx": "^2.1.1", "fuse.js": "^7.1.0", "jwt-decode": "^4.0.0", @@ -303,6 +304,8 @@ "@tauri-apps/plugin-opener": ["@tauri-apps/plugin-opener@2.2.6", "", { "dependencies": { "@tauri-apps/api": "^2.0.0" } }, "sha512-bSdkuP71ZQRepPOn8BOEdBKYJQvl6+jb160QtJX/i2H9BF6ZySY/kYljh76N2Ne5fJMQRge7rlKoStYQY5Jq1w=="], + "@tauri-apps/plugin-os": ["@tauri-apps/plugin-os@2.2.1", "", { "dependencies": { "@tauri-apps/api": "^2.0.0" } }, "sha512-cNYpNri2CCc6BaNeB6G/mOtLvg8dFyFQyCUdf2y0K8PIAKGEWdEcu8DECkydU2B+oj4OJihDPD2de5K6cbVl9A=="], + "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], diff --git a/frontend/package.json b/frontend/package.json index 4b43473..4ddabd0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -24,6 +24,7 @@ "@tauri-apps/plugin-http": "2.4.3", "@tauri-apps/plugin-log": "~2", "@tauri-apps/plugin-opener": "^2", + "@tauri-apps/plugin-os": "~2", "clsx": "^2.1.1", "fuse.js": "^7.1.0", "jwt-decode": "^4.0.0", diff --git a/frontend/src-tauri/Cargo.lock b/frontend/src-tauri/Cargo.lock index 31e14e0..35ff4bd 100644 --- a/frontend/src-tauri/Cargo.lock +++ b/frontend/src-tauri/Cargo.lock @@ -21,6 +21,7 @@ dependencies = [ "tauri-plugin-http", "tauri-plugin-log", "tauri-plugin-opener", + "tauri-plugin-os", "tauri-plugin-sharetarget", "tauri-plugin-store", "tokio", @@ -1505,6 +1506,16 @@ dependencies = [ "version_check", ] +[[package]] +name = "gethostname" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed7131e57abbde63513e0e6636f76668a1ca9798dcae2df4e283cae9ee83859e" +dependencies = [ + "rustix 1.0.5", + "windows-targets 0.52.6", +] + [[package]] name = "getrandom" version = "0.1.16" @@ -2867,6 +2878,17 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "os_info" +version = "3.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a604e53c24761286860eba4e2c8b23a0161526476b1de520139d69cdb85a6b5" +dependencies = [ + "log", + "serde", + "windows-sys 0.52.0", +] + [[package]] name = "pango" version = "0.18.3" @@ -4205,6 +4227,15 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "sys-locale" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +dependencies = [ + "libc", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -4556,6 +4587,24 @@ dependencies = [ "zbus", ] +[[package]] +name = "tauri-plugin-os" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "424f19432397850c2ddd42aa58078630c15287bbce3866eb1d90e7dbee680637" +dependencies = [ + "gethostname", + "log", + "os_info", + "serde", + "serde_json", + "serialize-to-javascript", + "sys-locale", + "tauri", + "tauri-plugin", + "thiserror 2.0.12", +] + [[package]] name = "tauri-plugin-sharetarget" version = "0.1.6" diff --git a/frontend/src-tauri/Cargo.toml b/frontend/src-tauri/Cargo.toml index effbf75..452c389 100644 --- a/frontend/src-tauri/Cargo.toml +++ b/frontend/src-tauri/Cargo.toml @@ -33,6 +33,7 @@ tauri-plugin-sharetarget = "0.1.6" tauri-plugin-fs = "2" tauri-plugin-dialog = "2.2.1" tauri-plugin-opener = "2.2.6" +tauri-plugin-os = "2" [target."cfg(target_os = \"macos\")".dependencies] cocoa = "0.26" diff --git a/frontend/src-tauri/src/lib.rs b/frontend/src-tauri/src/lib.rs index aa29c0a..0858b4f 100644 --- a/frontend/src-tauri/src/lib.rs +++ b/frontend/src-tauri/src/lib.rs @@ -15,6 +15,7 @@ pub fn desktop() { let watcher_state = new_shared_watcher_state(); tauri::Builder::default() + .plugin(tauri_plugin_os::init()) .plugin(tauri_plugin_log::Builder::new().build()) .plugin(tauri_plugin_fs::init()) .plugin(tauri_plugin_store::Builder::new().build()) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index e52af61..941f199 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,6 +1,6 @@ import { Route, Router } from "@solidjs/router"; import { listen } from "@tauri-apps/api/event"; -import { createEffect, createSignal, onCleanup } from "solid-js"; +import { createEffect, createSignal, onCleanup, Show } from "solid-js"; import { Login } from "./Login"; import { ProtectedRoute } from "./ProtectedRoute"; import { Search } from "./Search"; @@ -10,6 +10,9 @@ import type { sendImage } from "./network"; import { ImageStatus } from "./components/image-status/ImageStatus"; import { invoke } from "@tauri-apps/api/core"; import { SearchImageContextProvider } from "./contexts/SearchImageContext"; +import { platform } from "@tauri-apps/plugin-os"; + +const currentPlatform = platform(); export const App = () => { const [processingImage, setProcessingImage] = @@ -58,9 +61,11 @@ export const App = () => { return ( - + + +