From eae527cb7c59fda63eebb6f35ec143a57e981834 Mon Sep 17 00:00:00 2001 From: Christian Bager Bach Houmann Date: Thu, 11 Dec 2025 22:54:52 +0100 Subject: [PATCH 1/3] fix(player): always show queue and full title --- src/ui/PodcastView/EpisodePlayer.svelte | 78 ++++++++++++++++--------- 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/src/ui/PodcastView/EpisodePlayer.svelte b/src/ui/PodcastView/EpisodePlayer.svelte index 6709e1b..5a1b380 100644 --- a/src/ui/PodcastView/EpisodePlayer.svelte +++ b/src/ui/PodcastView/EpisodePlayer.svelte @@ -310,39 +310,43 @@ - - - - -

Queue

-
-
+
+ + + + +

Queue

+
+
+
From 0ea072bb68a3c983907ab31ba1f573640ce1670d Mon Sep 17 00:00:00 2001 From: Christian Bager Bach Houmann Date: Thu, 11 Dec 2025 22:54:59 +0100 Subject: [PATCH 2/3] chore(dev): allow vite watch with symlinked bundle --- vite.config.ts | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/vite.config.ts b/vite.config.ts index 77c0c34..46b1554 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,3 +1,4 @@ +import fs from "node:fs"; import { builtinModules } from "node:module"; import path from "node:path"; import { svelte } from "@sveltejs/vite-plugin-svelte"; @@ -51,6 +52,35 @@ const external = [ export default defineConfig(({ mode }) => { const isProd = mode === "production"; + const outDir = isProd ? "." : "build"; + + const devSymlinkPlugin = () => ({ + name: "podnotes-dev-symlink", + writeBundle() { + if (isProd) return; + + const ensureSymlink = (from: string, to: string) => { + try { + const stat = fs.lstatSync(to); + if (stat.isSymbolicLink() || stat.isFile()) { + fs.unlinkSync(to); + } + } catch { + // target does not exist – that's fine + } + + fs.symlinkSync(from, to); + }; + + const builtMain = path.resolve(__dirname, outDir, "main.js"); + const builtMap = path.resolve(__dirname, outDir, "main.js.map"); + const rootMain = path.resolve(__dirname, "main.js"); + const rootMap = path.resolve(__dirname, "main.js.map"); + + if (fs.existsSync(builtMain)) ensureSymlink(builtMain, rootMain); + if (fs.existsSync(builtMap)) ensureSymlink(builtMap, rootMap); + }, + }); return { plugins: [ @@ -58,6 +88,7 @@ export default defineConfig(({ mode }) => { preprocess: sveltePreprocess(), compilerOptions: { css: "injected" }, }), + devSymlinkPlugin(), ], resolve: { alias: { @@ -72,7 +103,7 @@ export default defineConfig(({ mode }) => { fileName: () => "main.js", }, target: "es2020", - outDir: ".", + outDir, emptyOutDir: false, sourcemap: !isProd, minify: isProd ? "esbuild" : false, From a11386dc7ca6f13b2b40bedbf5700d1dd3e92468 Mon Sep 17 00:00:00 2001 From: Christian Bager Bach Houmann Date: Thu, 11 Dec 2025 23:06:55 +0100 Subject: [PATCH 3/3] chore: format manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index b0181ec..9f89fb3 100644 --- a/manifest.json +++ b/manifest.json @@ -8,4 +8,4 @@ "authorUrl": "https://bagerbach.com", "fundingUrl": "https://buymeacoffee.com/chhoumann", "isDesktopOnly": false -} \ No newline at end of file +}