diff --git a/web/src/components/SiderBar.js b/web/src/components/SiderBar.js index 0d72b97..744f82a 100644 --- a/web/src/components/SiderBar.js +++ b/web/src/components/SiderBar.js @@ -1,6 +1,7 @@ import React, { useContext, useEffect, useLayoutEffect, useMemo, useState } from 'react'; import {Link, useNavigate} from 'react-router-dom'; import {UserContext} from '../context/User'; +import { StatusContext } from '../context/Status'; import { API, getLogo, getSystemName, isAdmin, isMobile, showError, showSuccess } from '../helpers'; import '../index.css'; @@ -24,6 +25,7 @@ import {Nav, Avatar, Dropdown, Layout} from '@douyinfe/semi-ui'; const SiderBar = () => { const [userState, userDispatch] = useContext(UserContext); + const [statusState, statusDispatch] = useContext(StatusContext); const defaultIsCollapsed = isMobile() || localStorage.getItem('default_collapse_sidebar') === 'true'; let navigate = useNavigate(); @@ -118,7 +120,7 @@ const SiderBar = () => { const { success, data } = res.data; if (success) { localStorage.setItem('status', JSON.stringify(data)); - // statusDispatch({ type: 'set', payload: data }); + statusDispatch({ type: 'set', payload: data }); localStorage.setItem('system_name', data.system_name); localStorage.setItem('logo', data.logo); localStorage.setItem('footer_html', data.footer_html); diff --git a/web/src/pages/Home/index.js b/web/src/pages/Home/index.js index 5ee9f0a..f3e2980 100644 --- a/web/src/pages/Home/index.js +++ b/web/src/pages/Home/index.js @@ -1,139 +1,130 @@ import React, { useContext, useEffect, useState } from 'react'; -import { Card, Grid, Header, Segment } from 'semantic-ui-react'; +import { Card, Col, Row } from '@douyinfe/semi-ui'; import { API, showError, showNotice, timestamp2string } from '../../helpers'; import { StatusContext } from '../../context/Status'; import { marked } from 'marked'; const Home = () => { - const [statusState, statusDispatch] = useContext(StatusContext); - const [homePageContentLoaded, setHomePageContentLoaded] = useState(false); - const [homePageContent, setHomePageContent] = useState(''); + const [statusState] = useContext(StatusContext); + const [homePageContentLoaded, setHomePageContentLoaded] = useState(false); + const [homePageContent, setHomePageContent] = useState(''); - const displayNotice = async () => { - const res = await API.get('/api/notice'); - const { success, message, data } = res.data; - if (success) { - let oldNotice = localStorage.getItem('notice'); - if (data !== oldNotice && data !== '') { - const htmlNotice = marked(data); - showNotice(htmlNotice, true); - localStorage.setItem('notice', data); - } - } else { - showError(message); - } - }; + const displayNotice = async () => { + const res = await API.get('/api/notice'); + const { success, message, data } = res.data; + if (success) { + let oldNotice = localStorage.getItem('notice'); + if (data !== oldNotice && data !== '') { + const htmlNotice = marked(data); + showNotice(htmlNotice, true); + localStorage.setItem('notice', data); + } + } else { + showError(message); + } + }; - const displayHomePageContent = async () => { - setHomePageContent(localStorage.getItem('home_page_content') || ''); - const res = await API.get('/api/home_page_content'); - const { success, message, data } = res.data; - if (success) { - let content = data; - if (!data.startsWith('https://')) { - content = marked.parse(data); - } - setHomePageContent(content); - localStorage.setItem('home_page_content', content); - } else { - showError(message); - setHomePageContent('加载首页内容失败...'); - } - setHomePageContentLoaded(true); - }; + const displayHomePageContent = async () => { + setHomePageContent(localStorage.getItem('home_page_content') || ''); + const res = await API.get('/api/home_page_content'); + const { success, message, data } = res.data; + if (success) { + let content = data; + if (!data.startsWith('https://')) { + content = marked.parse(data); + } + setHomePageContent(content); + localStorage.setItem('home_page_content', content); + } else { + showError(message); + setHomePageContent('加载首页内容失败...'); + } + setHomePageContentLoaded(true); + }; - const getStartTimeString = () => { - const timestamp = statusState?.status?.start_time; - return timestamp2string(timestamp); - }; + const getStartTimeString = () => { + const timestamp = statusState?.status?.start_time; + return statusState.status ? timestamp2string(timestamp) : ''; + }; - useEffect(() => { - displayNotice().then(); - displayHomePageContent().then(); - }, []); - return ( - <> + useEffect(() => { + displayNotice().then(); + displayHomePageContent().then(); + }, []); + return ( + <> + { + homePageContentLoaded && homePageContent === '' ? + <> + + + + 系统信息总览}> +

名称:{statusState?.status?.system_name}

+

版本:{statusState?.status?.version ? statusState?.status?.version : 'unknown'}

+

+ 源码: + + https://github.com/songquanpeng/one-api + +

+

启动时间:{getStartTimeString()}

+
+ + + 系统配置总览}> +

+ 邮箱验证: + {statusState?.status?.email_verification === true ? '已启用' : '未启用'} +

+

+ GitHub 身份验证: + {statusState?.status?.github_oauth === true ? '已启用' : '未启用'} +

+

+ 微信身份验证: + {statusState?.status?.wechat_login === true ? '已启用' : '未启用'} +

+

+ Turnstile 用户校验: + {statusState?.status?.turnstile_check === true ? '已启用' : '未启用'} +

+

+ Telegram 身份验证: + {statusState?.status?.telegram_oauth === true + ? '已启用' : '未启用'} +

+
+ +
+
+ + + : <> { - homePageContentLoaded && homePageContent === '' ? <> - -
系统状况
- - - - - 系统信息 - 系统信息总览 - -

名称:{statusState?.status?.system_name}

-

版本:{statusState?.status?.version ? statusState?.status?.version : "unknown"}

-

- 源码: - - https://github.com/songquanpeng/one-api - -

-

启动时间:{getStartTimeString()}

-
-
-
-
- - - - 系统配置 - 系统配置总览 - -

- 邮箱验证: - {statusState?.status?.email_verification === true - ? '已启用' - : '未启用'} -

-

- GitHub 身份验证: - {statusState?.status?.github_oauth === true - ? '已启用' - : '未启用'} -

-

- 微信身份验证: - {statusState?.status?.wechat_login === true - ? '已启用' - : '未启用'} -

-

- Turnstile 用户校验: - {statusState?.status?.turnstile_check === true - ? '已启用' - : '未启用'} -

-

- Telegram 身份验证: - {statusState?.status?.telegram_oauth === true - ? '已启用' - : '未启用'} -

-
-
-
-
-
-
- : <> - { - homePageContent.startsWith('https://') ?