feat: add autostart toggle setting

This commit is contained in:
PandaDEV 2025-01-02 18:41:28 +10:00
parent 6d7874c1ae
commit 3bfd72b638
No known key found for this signature in database
GPG key ID: 13EFF9BAF70EE75C
7 changed files with 11 additions and 16 deletions

View file

@ -7,9 +7,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { listen } from "@tauri-apps/api/event"; import { listen } from "@tauri-apps/api/event";
import { app, window } from "@tauri-apps/api"; import { app, window } from "@tauri-apps/api";
import { disable, enable } from "@tauri-apps/plugin-autostart";
import { onMounted } from "vue"; import { onMounted } from "vue";
const keyboard = useKeyboard(); const keyboard = useKeyboard();
const { $settings } = useNuxtApp();
onMounted(async () => { onMounted(async () => {
await listen("settings", async () => { await listen("settings", async () => {
@ -19,6 +21,12 @@ onMounted(async () => {
await window.getCurrentWindow().show(); await window.getCurrentWindow().show();
}); });
if ((await $settings.getSetting("autostart")) === "true") {
await enable();
} else {
await disable();
}
await listen("main_route", async () => { await listen("main_route", async () => {
await navigateTo("/"); await navigateTo("/");
}); });
@ -54,7 +62,6 @@ onMounted(async () => {
margin: 0; margin: 0;
padding: 0; padding: 0;
box-sizing: border-box; box-sizing: border-box;
color: #e5dfd5;
text-decoration: none; text-decoration: none;
font-family: SFRoundedRegular; font-family: SFRoundedRegular;
scroll-behavior: smooth; scroll-behavior: smooth;

View file

@ -162,7 +162,6 @@ import { OverlayScrollbarsComponent } from "overlayscrollbars-vue";
import "overlayscrollbars/overlayscrollbars.css"; import "overlayscrollbars/overlayscrollbars.css";
import { app, window } from "@tauri-apps/api"; import { app, window } from "@tauri-apps/api";
import { platform } from "@tauri-apps/plugin-os"; import { platform } from "@tauri-apps/plugin-os";
import { enable, isEnabled } from "@tauri-apps/plugin-autostart";
import { listen } from "@tauri-apps/api/event"; import { listen } from "@tauri-apps/api/event";
import { useNuxtApp } from "#app"; import { useNuxtApp } from "#app";
import { invoke } from "@tauri-apps/api/core"; import { invoke } from "@tauri-apps/api/core";
@ -666,10 +665,6 @@ onMounted(async () => {
?.viewport?.addEventListener("scroll", handleScroll); ?.viewport?.addEventListener("scroll", handleScroll);
await setupEventListeners(); await setupEventListeners();
if (!(await isEnabled())) {
await enable();
}
} catch (error) { } catch (error) {
console.error("Error during onMounted:", error); console.error("Error during onMounted:", error);
} }

View file

@ -12,14 +12,6 @@ export default defineNuxtPlugin(() => {
async saveSetting(key: string, value: string): Promise<void> { async saveSetting(key: string, value: string): Promise<void> {
await invoke<void>("save_setting", { key, value }); await invoke<void>("save_setting", { key, value });
}, },
async getKeybind(): Promise<string[]> {
return await invoke<string[]>("get_keybind");
},
async saveKeybind(keybind: string[]): Promise<void> {
await invoke<void>("save_keybind", { keybind });
},
}, },
}, },
}; };

View file

@ -69,9 +69,9 @@ async fn apply_migrations(pool: &SqlitePool) -> Result<(), Box<dyn std::error::E
.files() .files()
.filter_map(|file| { .filter_map(|file| {
let file_name = file.path().file_name()?.to_str()?; let file_name = file.path().file_name()?.to_str()?;
if file_name.ends_with(".sql") && file_name.starts_with("migration") { if file_name.ends_with(".sql") && file_name.starts_with("v") {
let version: i64 = file_name let version: i64 = file_name
.trim_start_matches("migration") .trim_start_matches("v")
.trim_end_matches(".sql") .trim_end_matches(".sql")
.parse() .parse()
.ok()?; .ok()?;

View file

@ -0,0 +1 @@
INSERT INTO settings (key, value) VALUES ('autostart', 'true');