feat: platform util
This commit is contained in:
@@ -18,6 +18,7 @@ import LicenseUpgradeTip from "./LicenseOutdatedTip";
|
||||
import LoginTip from "./LoginTip";
|
||||
import Operations from "./Operations";
|
||||
import VirtualMessageFeed from "./VirtualMessageFeed";
|
||||
import { platform } from "@/utils";
|
||||
|
||||
interface Props {
|
||||
readonly?: boolean;
|
||||
@@ -125,7 +126,8 @@ const Layout: FC<Props> = ({
|
||||
{aside && (
|
||||
<div
|
||||
className={clsx(
|
||||
"flex z-50 p-3 absolute right-0 top-14 md:right-0 md:top-0 md:translate-x-full flex-col"
|
||||
"flex z-50 p-3 absolute right-0 md:translate-x-full flex-col",
|
||||
platform().isWindows ? "top-14 md:top-5" : "top-14 md:top-0"
|
||||
)}
|
||||
>
|
||||
{aside}
|
||||
|
||||
@@ -7,6 +7,7 @@ import SettingBlock from "@/components/SettingBlock";
|
||||
import StyledButton from "@/components/styled/Button";
|
||||
import AutoDeleteFiles from "./AutoDeleteFiles";
|
||||
import ClearConfirmModal from "./ClearConfirmModal";
|
||||
import ServerVersionChecker from "@/components/ServerVersionChecker";
|
||||
|
||||
export type VisibleModalType = "chat" | "files";
|
||||
export default function DataManagement() {
|
||||
@@ -22,11 +23,13 @@ export default function DataManagement() {
|
||||
return (
|
||||
<div className="relative w-full md:w-[512px] flex flex-col gap-6">
|
||||
{/* 清除服务器聊天消息 */}
|
||||
<SettingBlock title={t("data.clear_msgs.title")} desc={t("data.clear_msgs.desc")}>
|
||||
<StyledButton onClick={handleModalVisible.bind(null, "chat")} className="danger">
|
||||
{t("data.clear_msgs.btn")}
|
||||
</StyledButton>
|
||||
</SettingBlock>
|
||||
<ServerVersionChecker version="0.3.12">
|
||||
<SettingBlock title={t("data.clear_msgs.title")} desc={t("data.clear_msgs.desc")}>
|
||||
<StyledButton onClick={handleModalVisible.bind(null, "chat")} className="danger">
|
||||
{t("data.clear_msgs.btn")}
|
||||
</StyledButton>
|
||||
</SettingBlock>
|
||||
</ServerVersionChecker>
|
||||
|
||||
{/* 清除服务器文件 */}
|
||||
<SettingBlock title={t("data.clear_files.title")} desc={t("data.clear_files.desc")}>
|
||||
|
||||
@@ -384,6 +384,17 @@ export const isDarkMode = () => {
|
||||
const isLightMode = localStorage.theme === "light";
|
||||
return isDarkMode || (!isLightMode && window.matchMedia("(prefers-color-scheme: dark)").matches);
|
||||
};
|
||||
export const platform = () => {
|
||||
const ua = navigator.userAgent.toLowerCase();
|
||||
const isMac = ua.indexOf("darwin") != -1;
|
||||
const isWindows = ua.indexOf("win32") != -1;
|
||||
const isLinux = ua.indexOf("linux") != -1;
|
||||
return {
|
||||
isMac,
|
||||
isWindows,
|
||||
isLinux
|
||||
};
|
||||
};
|
||||
|
||||
export const fromNowTime = (ts?: number) => {
|
||||
if (!ts) return null;
|
||||
|
||||
Reference in New Issue
Block a user