fix(launcher): auto-set app_mode to native when running in Electron
On a fresh Electron install the events_loc persisted store has no app_mode value set, causing the native file launch path to fall through to a browser save dialog. Auto-initialise app_mode='native' in the launcher layout when is_native is detected so all three modes (default, onsite, native) continue to work correctly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,8 @@
|
|||||||
* Root layout for the launcher area.
|
* Root layout for the launcher area.
|
||||||
* Ensures background sync runs globally regardless of active tab.
|
* Ensures background sync runs globally regardless of active tab.
|
||||||
*/
|
*/
|
||||||
// import { ae_loc } from '$lib/stores/ae_stores';
|
import { ae_loc } from '$lib/stores/ae_stores';
|
||||||
|
import { events_loc } from '$lib/stores/ae_events_stores';
|
||||||
import Launcher_Background_Sync from './launcher_background_sync.svelte';
|
import Launcher_Background_Sync from './launcher_background_sync.svelte';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
@@ -12,6 +13,17 @@ interface Props {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let { children }: Props = $props();
|
let { children }: Props = $props();
|
||||||
|
|
||||||
|
// WHY: When running inside Electron (is_native), app_mode must be 'native' for
|
||||||
|
// the file launch path to work correctly. On a fresh install the persisted store
|
||||||
|
// has no value set, so we auto-initialise it here. This preserves the three-mode
|
||||||
|
// design (default / onsite / native) — browser sessions are unaffected because
|
||||||
|
// is_native is only ever true inside the Electron shell.
|
||||||
|
$effect(() => {
|
||||||
|
if ($ae_loc.is_native && $events_loc.launcher.app_mode !== 'native') {
|
||||||
|
$events_loc.launcher.app_mode = 'native';
|
||||||
|
}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- Background Sync Process (Invisible) -->
|
<!-- Background Sync Process (Invisible) -->
|
||||||
|
|||||||
Reference in New Issue
Block a user