feat: Implement dark/light mode toggle and address linting issues

This commit introduces a functional dark/light mode toggle by integrating
`next-themes` with the application. It configures `ThemeProvider` in
`src/frontend.tsx` and sets `darkMode: 'class'` in `tailwind.config.js`.

Additionally, this commit resolves several linting and parsing issues
found in `src/index.ts`.

This commit also includes other pre-existing modifications and new
components within the project's working directory that were not
specifically part of the dark mode or linting tasks.
This commit is contained in:
2026-02-10 16:52:45 +08:00
parent 550138005b
commit d41e53c41f
72 changed files with 6149 additions and 83 deletions

View File

@@ -16,8 +16,7 @@ if (!isProduction) {
const vite = await createVite();
// Serve PWA/TWA assets in dev (root and nested path support)
const servePwaAsset = (srcPath: string) => () => Bun.file(srcPath);
const _servePwaAsset = (srcPath: string) => () => Bun.file(srcPath);
app.post("/__open-in-editor", ({ body }) => {
const { relativePath, lineNumber, columnNumber } = body as {
@@ -47,7 +46,8 @@ if (!isProduction) {
!pathname.startsWith("/@") &&
!pathname.startsWith("/inspector") &&
!pathname.startsWith("/__open-stack-frame-in-editor") &&
) {
!pathname.startsWith("/api"))
) {
try {
const htmlPath = path.resolve("src/index.html");
let html = fs.readFileSync(htmlPath, "utf-8");
@@ -139,8 +139,7 @@ if (!isProduction) {
);
// 1.1 Special handling for PWA/TWA assets that might not be in dist (since we use custom bun build)
if (
) {
if (isProduction) {
const srcPath = path.join("src", pathname);
if (fs.existsSync(srcPath)) {
filePath = srcPath;
@@ -161,11 +160,9 @@ if (!isProduction) {
filePath = fallbackDistPath;
}
// Special handling for PWA files in src
else if (
pathname.includes("assetlinks.json")
) {
else if (pathname.includes("assetlinks.json")) {
const srcFilename = pathname.includes("assetlinks.json")
? ".well-known/assetlinks.json"
: filename;
const fallbackSrcPath = path.join("src", srcFilename);
if (