diff --git a/applications/uk.ewsgit.files/electron/src/main.ts b/applications/uk.ewsgit.files/electron/src/main.ts index 533e367..970330d 100644 --- a/applications/uk.ewsgit.files/electron/src/main.ts +++ b/applications/uk.ewsgit.files/electron/src/main.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import {app, BrowserWindow, session} from "electron"; +import { app, BrowserWindow, ipcMain, session } from "electron"; async function createWindow() { const window = new BrowserWindow({ @@ -16,7 +16,7 @@ async function createWindow() { }, }); - if ((await session.defaultSession.cookies.get({url: "https://localhost"})).length === 0) { + if ((await session.defaultSession.cookies.get({ url: "https://localhost" })).length === 0) { window.loadURL("https://localhost/?redirect=/app/uk.ewsgit.files/"); } else { window.loadURL("https://localhost/app/uk.ewsgit.files"); @@ -25,8 +25,12 @@ async function createWindow() { return window; } -app.whenReady().then(() => { - createWindow(); +app.whenReady().then(async () => { + const window = await createWindow(); + + ipcMain.on("minimize_window", () => window.minimize()); + ipcMain.on("maximize_window", () => (window.isMaximized() ? window.unmaximize() : window.maximize())); + ipcMain.on("close_window", () => window.close()); app.on("activate", () => { if (BrowserWindow.getAllWindows().length === 0) { diff --git a/applications/uk.ewsgit.files/electron/src/preload.js b/applications/uk.ewsgit.files/electron/src/preload.js index b0e6d3d..edbb558 100644 --- a/applications/uk.ewsgit.files/electron/src/preload.js +++ b/applications/uk.ewsgit.files/electron/src/preload.js @@ -1,3 +1,11 @@ +const { contextBridge, ipcRenderer } = require('electron/renderer') + +contextBridge.exposeInMainWorld('electronAPI', { + minimize_window: () => ipcRenderer.send("minimize_window"), + maximize_window: () => ipcRenderer.send("maximize_window"), + close_window: () => ipcRenderer.send("close_window") +}) + localStorage.setItem("onlineworkspace_workspace_no_app_navigation_rail", "true"); localStorage.setItem("onlineworkspace_workspace_desktop_app", "true"); @@ -12,3 +20,5 @@ document.addEventListener('DOMContentLoaded', () => { document.body.style.overflow = "hidden"; document.body.style.border = "1px solid #646464"; }); + + diff --git a/applications/uk.ewsgit.files/web/layout/components/ActionBar/ActionBar.tsx b/applications/uk.ewsgit.files/web/layout/components/ActionBar/ActionBar.tsx index 4c8d328..100308a 100644 --- a/applications/uk.ewsgit.files/web/layout/components/ActionBar/ActionBar.tsx +++ b/applications/uk.ewsgit.files/web/layout/components/ActionBar/ActionBar.tsx @@ -160,7 +160,8 @@ const ActionBar: Component = () => { alt={"minimize window"} class={styles.windowIcon} onClick={() => { - window.close() + // @ts-ignore + window.electronAPI.minimize_window(); }} /> { alt={"maximize window"} class={styles.windowIcon} onClick={() => { - window.close() + // @ts-ignore + window.electronAPI.maximize_window(); }} /> { alt={"close window"} class={clsx(styles.closeWindowIcon, styles.windowIcon)} onClick={() => { - window.close() + // @ts-ignore + window.electronAPI.close_window(); }} /> diff --git a/applications/uk.ewsgit.files/web/lib/trpc.ts b/applications/uk.ewsgit.files/web/lib/trpc.ts index 6e2de0c..a6b4d19 100644 --- a/applications/uk.ewsgit.files/web/lib/trpc.ts +++ b/applications/uk.ewsgit.files/web/lib/trpc.ts @@ -23,6 +23,7 @@ const trpc = createTRPCClient({ }), false: httpBatchLink({ url: ENDPOINT_URL, + maxURLLength: 512, fetch(input, init) { return fetch(input, { credentials: "include", ...init }); }, diff --git a/applications/uk.ewsgit.files/web/pages/dir/View.tsx b/applications/uk.ewsgit.files/web/pages/dir/View.tsx index 3e2f52a..48a2b4d 100644 --- a/applications/uk.ewsgit.files/web/pages/dir/View.tsx +++ b/applications/uk.ewsgit.files/web/pages/dir/View.tsx @@ -36,11 +36,11 @@ const View: Component = () => { appContext?.setViewState("viewItems", []); for (const itemPath of newItems.items) { - const viewEntry = await filesystemInterface.getViewEntry(itemPath, appContext!.userPreferences.viewType === "details" ? "details" : "grid") - - if (viewEntry.status === "ok") { - appContext?.setViewState("viewItems", [ ...appContext.viewState.viewItems, viewEntry.data ]); - } + filesystemInterface.getViewEntry(itemPath, appContext!.userPreferences.viewType === "details" ? "details" : "grid").then((viewEntry) => { + if (viewEntry.status === "ok") { + appContext?.setViewState("viewItems", [ ...appContext.viewState.viewItems, viewEntry.data ]); + } + }) } }