From 980dd542eeff215128a881c960e43f1bb1e26dc4 Mon Sep 17 00:00:00 2001 From: alikia2x Date: Sun, 11 May 2025 03:57:26 +0800 Subject: [PATCH] add: video info page in frontend --- packages/core/db/pgConfigNew.ts | 18 +++-- .../src/components/InfoPage/MetadataRow.astro | 2 +- .../frontend/src/components/SearchBox.svelte | 6 +- .../components/VideoInfoPage/StatRow.astro | 12 ++++ .../frontend/src/pages/song/[id]/info.astro | 36 ++-------- .../frontend/src/pages/video/[id]/info.astro | 68 +++++++++++++++++++ packages/frontend/src/styles/global.css | 2 + 7 files changed, 101 insertions(+), 43 deletions(-) create mode 100644 packages/frontend/src/components/VideoInfoPage/StatRow.astro create mode 100644 packages/frontend/src/pages/video/[id]/info.astro diff --git a/packages/core/db/pgConfigNew.ts b/packages/core/db/pgConfigNew.ts index d6cb437..238adfd 100644 --- a/packages/core/db/pgConfigNew.ts +++ b/packages/core/db/pgConfigNew.ts @@ -1,17 +1,21 @@ const requiredEnvVars = ["DB_HOST", "DB_NAME", "DB_USER", "DB_PASSWORD", "DB_PORT", "DB_NAME_CRED"]; -const unsetVars = requiredEnvVars.filter((key) => process.env[key] === undefined); +const getEnvVar = (key: string) => { + return process.env[key] || import.meta.env[key]; +} + +const unsetVars = requiredEnvVars.filter((key) => getEnvVar(key) === undefined); if (unsetVars.length > 0) { throw new Error(`Missing required environment variables: ${unsetVars.join(", ")}`); } -const databaseHost = process.env["DB_HOST"]!; -const databaseName = process.env["DB_NAME"]; -const databaseNameCred = process.env["DB_NAME_CRED"]!; -const databaseUser = process.env["DB_USER"]!; -const databasePassword = process.env["DB_PASSWORD"]!; -const databasePort = process.env["DB_PORT"]!; +const databaseHost = getEnvVar("DB_HOST")!; +const databaseName = getEnvVar("DB_NAME"); +const databaseNameCred = getEnvVar("DB_NAME_CRED")!; +const databaseUser = getEnvVar("DB_USER")!; +const databasePassword = getEnvVar("DB_PASSWORD")!; +const databasePort = getEnvVar("DB_PORT")!; export const postgresConfig = { hostname: databaseHost, diff --git a/packages/frontend/src/components/InfoPage/MetadataRow.astro b/packages/frontend/src/components/InfoPage/MetadataRow.astro index ff18c32..c03e948 100644 --- a/packages/frontend/src/components/InfoPage/MetadataRow.astro +++ b/packages/frontend/src/components/InfoPage/MetadataRow.astro @@ -3,6 +3,6 @@ const { title, description } = Astro.props; --- - {title} + {title} {description} \ No newline at end of file diff --git a/packages/frontend/src/components/SearchBox.svelte b/packages/frontend/src/components/SearchBox.svelte index c9ecb1d..5395a0e 100644 --- a/packages/frontend/src/components/SearchBox.svelte +++ b/packages/frontend/src/components/SearchBox.svelte @@ -7,7 +7,7 @@ }; export function changeFocusState(target: boolean) { - if (!inputElement) return; // 使用 inputElement 而不是 inputBox + if (!inputElement) return; if (target) { inputElement.focus(); } else { @@ -22,13 +22,13 @@ function handleKeydown(event: KeyboardEvent) { if (event.key === "Enter") { event.preventDefault(); - const value = inputValue.trim(); // 使用绑定的变量 + const value = inputValue.trim(); if (!value) return; search(value); } } - let inputElement: HTMLInputElement; // 引用 input 元素 + let inputElement: HTMLInputElement;