feat(公告): 添加网站公告功能及弹窗提示

- 从环境变量读取公告内容,提供默认值
- 扩展SiteProvider组件以支持公告功能
- 在首页添加公告弹窗组件,支持本地存储记录用户已读状态
- 弹窗包含关闭功能和完善的样式交互
This commit is contained in:
SongPro
2025-07-01 16:02:33 +08:00
parent b045967f9c
commit 6c81f52953
3 changed files with 64 additions and 4 deletions

View File

@@ -2,8 +2,11 @@
import { createContext, ReactNode, useContext } from 'react';
const SiteContext = createContext<{ siteName: string }>({
siteName: 'MoonTV', // Default value
const SiteContext = createContext<{ siteName: string; announcement?: string }>({
// 默认值
siteName: 'MoonTV',
announcement:
'本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。',
});
export const useSite = () => useContext(SiteContext);
@@ -11,11 +14,15 @@ export const useSite = () => useContext(SiteContext);
export function SiteProvider({
children,
siteName,
announcement,
}: {
children: ReactNode;
siteName: string;
announcement?: string;
}) {
return (
<SiteContext.Provider value={{ siteName }}>{children}</SiteContext.Provider>
<SiteContext.Provider value={{ siteName, announcement }}>
{children}
</SiteContext.Provider>
);
}