@setoelkahfi / svara / commits / 9bfbfc4

feat: restart on directory load

Signed-off-by: mellobacon <mellodev@outlook.com>

mellobacon committed May 13, 2024 at 13:33 UTC 9bfbfc4f707047a1756a382edfacbaeeb6e1e165
2 files changed +19 -7
src/App.svelte
+11 -5
@@ -15,6 +15,7 @@
15 import ToolView from "./lib/ToolView.svelte";
16 import { getExtensions } from "./config/extensionhandler";
17 import { fitTerminal } from "./lib/Terminal.svelte";
18 + import { loadDir } from "./lib/File";
19 let resolution = writable(0);
20
21 let minPanelSize = 10;
@@ -24,6 +25,11 @@
25 onMount(async () => {
26 await getExtensions();
27 await loadDefaultSettings();
28 + let dir = localStorage.getItem("lastDir");
29 + if (dir) {
30 + loadDir(dir);
31 + }
32 +
33 let size = await appWindow.innerSize();
34 resolution.set(size.width);
35 updateMinPanelSize();
@@ -39,16 +45,14 @@
45 })
46
47 function updatePanelSize(e) {
42 - fitTerminal();
48 if ($showsidebarview) {
49 panelSize = e.detail[0].size
50 }
51 }
52
53 async function updateMinPanelSize() {
49 -
50 - updateTablistWidth();
54 fitTerminal();
55 + updateTablistWidth();
56 if (!await appWindow.isFocused()) {
57 return;
58 }
@@ -117,16 +121,18 @@
121 {/if}
122 <Pane>
123 <div class="__">
120 - <Splitpanes horizontal theme="editor-panes" on:resize={fitTerminal} on:resized={fitTerminal} class="{!$showBottomPanel ? "hidden" : ""}">
124 + <Splitpanes horizontal theme="editor-panes" on:resize={fitTerminal} class="{!$showBottomPanel ? "hidden" : ""}">
125 <Pane size={$showBottomPanel ? 100 - bottomPanelSize : 100}>
126 <div id="container">
127 <EditorTabList />
128 <div id="tabview" class:hidden={$hidden}></div>
129 </div>
130 </Pane>
131 + {#if $editortool}
132 <Pane bind:size={bottomPanelSize} maxSize={90} minSize={10} class="view-bottom-pane">
133 <ToolView content={$editortool.content} name={$editortool.name}></ToolView>
134 </Pane>
135 + {/if}
136 </Splitpanes>
137 </div>
138 </Pane>
@@ -169,4 +175,4 @@
175 :global(.view-bottom-pane) {
176 z-index: 1;
177 }
172 -</style>
\ No newline at end of file
178 +</style>
src/lib/File.ts
+8 -2
@@ -7,6 +7,7 @@ import { openFileTree } from "./Sidebar.svelte";
7 import { info, trace, warn, error } from "tauri-plugin-log-api";
8 import { homeDir } from "@tauri-apps/api/path";
9 import { appSettings } from "../config/config";
10 +import { relaunch } from "@tauri-apps/api/process";
11
12 export async function openFile() {
13 let newPath = await dialog.open() as string;
@@ -22,9 +23,14 @@ export const workingDir = writable(await homeDir());
23 export async function openFolder() {
24 dirLoadFail.set(false);
25 let directory = await dialog.open({directory: true}) as string;
25 - info(`Opening folder in: ${directory}`, {file: "File.ts", line: 22});
26 + info(`Opening folder in: ${directory}`, {file: "File.ts", line: 25});
27 + localStorage.setItem("lastDir", directory);
28 + await relaunch();
29 +}
30 +
31 +export async function loadDir(directory) {
32 if (!directory) {
27 - warn("Directory path is null. Aborting...", {file: "File.ts", line: 24});
33 + warn("Directory path is null. Aborting...", {file: "File.ts", line: 30});
34 return
35 };
36 dirToLoad.set(directory.split(path.sep).pop());