refactor: remove server version checker

This commit is contained in:
Tristan Yang
2023-05-19 17:50:02 +08:00
parent abe49bcb3c
commit dc8a42c338
10 changed files with 25 additions and 71 deletions
+4 -7
View File
@@ -10,7 +10,6 @@ import ChannelIcon from "./ChannelIcon";
import ChannelModal from "./ChannelModal"; import ChannelModal from "./ChannelModal";
import InviteModal from "./InviteModal"; import InviteModal from "./InviteModal";
import SearchUser from "./SearchUser"; import SearchUser from "./SearchUser";
import ServerVersionChecker from "./ServerVersionChecker";
import UsersModal from "./UsersModal"; import UsersModal from "./UsersModal";
export default function AddEntriesMenu() { export default function AddEntriesMenu() {
@@ -79,12 +78,10 @@ export default function AddEntriesMenu() {
<IconInvite className={iconClass} /> <IconInvite className={iconClass} />
{t("action.invite_people")} {t("action.invite_people")}
</li> </li>
<ServerVersionChecker version="0.3.7" empty={true}> <li className={itemClass} onClick={toggleSearchModalVisible}>
<li className={itemClass} onClick={toggleSearchModalVisible}> <IconSearch className={iconClass} />
<IconSearch className={iconClass} /> {t("action.search_people")}
{t("action.search_people")} </li>
</li>
</ServerVersionChecker>
</ul> </ul>
{channelModalVisible && <ChannelModal personal={isPrivate} closeModal={handleCloseModal} />} {channelModalVisible && <ChannelModal personal={isPrivate} closeModal={handleCloseModal} />}
{usersModalVisible && <UsersModal closeModal={toggleUsersModalVisible} />} {usersModalVisible && <UsersModal closeModal={toggleUsersModalVisible} />}
+7 -13
View File
@@ -10,7 +10,6 @@ import {
} from "@/app/services/server"; } from "@/app/services/server";
import { useLazyGetContactsQuery, useLazyGetUsersQuery } from "@/app/services/user"; import { useLazyGetContactsQuery, useLazyGetUsersQuery } from "@/app/services/user";
import { useAppSelector } from "@/app/store"; import { useAppSelector } from "@/app/store";
import { compareVersion } from "../utils";
import useLicense from "./useLicense"; import useLicense from "./useLicense";
import useStreaming from "./useStreaming"; import useStreaming from "./useStreaming";
@@ -28,7 +27,8 @@ export default function usePreload() {
isGuest, isGuest,
expireTime = +new Date(), expireTime = +new Date(),
channelMessageData, channelMessageData,
channelIds channelIds,
enableContacts
} = useAppSelector((store) => { } = useAppSelector((store) => {
return { return {
channelIds: store.channels.ids, channelIds: store.channels.ids,
@@ -36,7 +36,8 @@ export default function usePreload() {
loginUid: store.authData.user?.uid, loginUid: store.authData.user?.uid,
isGuest: store.authData.guest, isGuest: store.authData.guest,
token: store.authData.token, token: store.authData.token,
expireTime: store.authData.expireTime expireTime: store.authData.expireTime,
enableContacts: store.server.contact_verification_enable
}; };
}); });
const { setStreamingReady } = useStreaming(); const { setStreamingReady } = useStreaming();
@@ -95,17 +96,11 @@ export default function usePreload() {
useEffect(() => { useEffect(() => {
if (rehydrated && serverVersion) { if (rehydrated && serverVersion) {
getUsers().then(() => { getUsers().then(() => {
if (compareVersion(serverVersion, "0.3.7") >= 0 && !isGuest) { getContacts();
// 根据版本号判断是否需要初始化contact
getContacts();
}
}); });
getServer(); getServer();
getFavorites(); getFavorites();
if (compareVersion(serverVersion, "0.3.4") >= 0) { getSystemCommon();
// 根据版本号判断是否需要调用system common api
getSystemCommon();
}
} }
}, [rehydrated, serverVersion, isGuest]); }, [rehydrated, serverVersion, isGuest]);
const tokenAlmostExpire = dayjs().isAfter(new Date(expireTime - 20 * 1000)); const tokenAlmostExpire = dayjs().isAfter(new Date(expireTime - 20 * 1000));
@@ -115,7 +110,6 @@ export default function usePreload() {
useEffect(() => { useEffect(() => {
setStreamingReady(canStreaming); setStreamingReady(canStreaming);
}, [canStreaming]); }, [canStreaming]);
const enableContact = serverVersion ? compareVersion(serverVersion, "0.3.7") >= 0 : false;
return { return {
loading: loading:
usersLoading || usersLoading ||
@@ -127,7 +121,7 @@ export default function usePreload() {
error: usersError && serverError && favoritesError, error: usersError && serverError && favoritesError,
success: usersSuccess && serverSuccess && favoritesSuccess && serverVersionSuccess, success: usersSuccess && serverSuccess && favoritesSuccess && serverVersionSuccess,
data: { data: {
users: enableContact ? contacts : users, users: enableContacts ? contacts : users,
server, server,
favorites favorites
} }
+1 -4
View File
@@ -9,7 +9,6 @@ import { updateRememberedNavs } from "@/app/slices/ui";
import { useAppSelector } from "@/app/store"; import { useAppSelector } from "@/app/store";
import ChannelIcon from "@/components/ChannelIcon"; import ChannelIcon from "@/components/ChannelIcon";
import GoBackNav from "@/components/GoBackNav"; import GoBackNav from "@/components/GoBackNav";
import ServerVersionChecker from "@/components/ServerVersionChecker";
import Tooltip from "@/components/Tooltip"; import Tooltip from "@/components/Tooltip";
import IconFav from "@/assets/icons/bookmark.svg"; import IconFav from "@/assets/icons/bookmark.svg";
import IconPeople from "@/assets/icons/people.svg"; import IconPeople from "@/assets/icons/people.svg";
@@ -93,9 +92,7 @@ function ChannelChat({ cid = 0, dropFiles = [] }: Props) {
</li> </li>
</Tippy> </Tippy>
</Tooltip> </Tooltip>
<ServerVersionChecker version="0.3.5" empty={true}> <VoiceChat context={`channel`} id={cid} />
<VoiceChat context={`channel`} id={cid} />
</ServerVersionChecker>
<Tooltip tip={t("fav")} placement="left"> <Tooltip tip={t("fav")} placement="left">
<Tippy <Tippy
placement="left-start" placement="left-start"
+1 -4
View File
@@ -4,7 +4,6 @@ import Tippy from "@tippyjs/react";
import { useAppSelector } from "@/app/store"; import { useAppSelector } from "@/app/store";
import GoBackNav from "@/components/GoBackNav"; import GoBackNav from "@/components/GoBackNav";
import ServerVersionChecker from "@/components/ServerVersionChecker";
import Tooltip from "@/components/Tooltip"; import Tooltip from "@/components/Tooltip";
import User from "@/components/User"; import User from "@/components/User";
import FavIcon from "@/assets/icons/bookmark.svg"; import FavIcon from "@/assets/icons/bookmark.svg";
@@ -37,9 +36,7 @@ const DMChat: FC<Props> = ({ uid = 0, dropFiles }) => {
dropFiles={dropFiles} dropFiles={dropFiles}
aside={ aside={
<ul className="flex flex-col gap-6"> <ul className="flex flex-col gap-6">
<ServerVersionChecker version="0.3.7" empty={true}> <VoiceChat context={`dm`} id={uid} />
<VoiceChat context={`dm`} id={uid} />
</ServerVersionChecker>
<Tooltip tip="Saved Items" placement="left"> <Tooltip tip="Saved Items" placement="left">
<Tippy <Tippy
placement="left-start" placement="left-start"
+3 -6
View File
@@ -15,7 +15,6 @@ import { useAppSelector } from "@/app/store";
import { ChatContext } from "@/types/common"; import { ChatContext } from "@/types/common";
import ContextMenu, { Item } from "@/components/ContextMenu"; import ContextMenu, { Item } from "@/components/ContextMenu";
import useUserOperation from "@/hooks/useUserOperation"; import useUserOperation from "@/hooks/useUserOperation";
import { compareVersion } from "@/utils";
type Props = { type Props = {
context: ChatContext; context: ChatContext;
@@ -52,9 +51,8 @@ const SessionContextMenu: FC<Props> = ({
const dispatch = useDispatch(); const dispatch = useDispatch();
const navigateTo = useNavigate(); const navigateTo = useNavigate();
const { pathname } = useLocation(); const { pathname } = useLocation();
const { channelMuted, serverVersion } = useAppSelector((store) => { const { channelMuted } = useAppSelector((store) => {
return { return {
serverVersion: store.server.version,
channelMuted: context == "channel" ? store.footprint.muteChannels[id] : false channelMuted: context == "channel" ? store.footprint.muteChannels[id] : false
}; };
}); });
@@ -95,11 +93,10 @@ const SessionContextMenu: FC<Props> = ({
}; };
const pinTxt = t(pinned ? "unpin_chat" : "pin_chat", { ns: "chat" }); const pinTxt = t(pinned ? "unpin_chat" : "pin_chat", { ns: "chat" });
const pinVisible = compareVersion(serverVersion, "0.3.7") >= 0;
const items = const items =
context == "dm" context == "dm"
? [ ? [
pinVisible && { {
title: pinTxt, title: pinTxt,
handler: handlePinChat handler: handlePinChat
}, },
@@ -122,7 +119,7 @@ const SessionContextMenu: FC<Props> = ({
} }
] ]
: [ : [
pinVisible && { {
title: pinTxt, title: pinTxt,
handler: handlePinChat handler: handlePinChat
}, },
+1 -6
View File
@@ -9,7 +9,6 @@ import Loading from "@/components/Loading";
import Manifest from "@/components/Manifest"; import Manifest from "@/components/Manifest";
import Notification from "@/components/Notification"; import Notification from "@/components/Notification";
import ReLoginModal from "@/components/ReLoginModal"; import ReLoginModal from "@/components/ReLoginModal";
import ServerVersionChecker from "@/components/ServerVersionChecker";
import Tooltip from "@/components/Tooltip"; import Tooltip from "@/components/Tooltip";
import UnreadTabTip from "@/components/UnreadTabTip"; import UnreadTabTip from "@/components/UnreadTabTip";
import Voice from "@/components/Voice"; import Voice from "@/components/Voice";
@@ -68,11 +67,7 @@ function HomePage() {
<> <>
{roleChanged && <ReLoginModal />} {roleChanged && <ReLoginModal />}
{!guest && <UnreadTabTip />} {!guest && <UnreadTabTip />}
{!guest && ( {!guest && <Voice />}
<ServerVersionChecker empty={true} version="0.3.5">
<Voice />
</ServerVersionChecker>
)}
<Manifest /> <Manifest />
{!guest && <Notification />} {!guest && <Notification />}
<div className={`vocechat-container flex w-screen h-screen bg-gray-200 dark:bg-gray-900`}> <div className={`vocechat-container flex w-screen h-screen bg-gray-200 dark:bg-gray-900`}>
+1 -4
View File
@@ -1,7 +1,6 @@
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { useWizard } from "react-use-wizard"; import { useWizard } from "react-use-wizard";
import ServerVersionChecker from "@/components/ServerVersionChecker";
import StyledButton from "@/components/styled/Button"; import StyledButton from "@/components/styled/Button";
import StyledInput from "@/components/styled/Input"; import StyledInput from "@/components/styled/Input";
import useInviteLink from "@/hooks/useInviteLink"; import useInviteLink from "@/hooks/useInviteLink";
@@ -35,9 +34,7 @@ export default function InviteLink() {
<StyledButton className="w-32 h-11 mt-6" onClick={nextStep}> <StyledButton className="w-32 h-11 mt-6" onClick={nextStep}>
{t("done")} {t("done")}
</StyledButton> </StyledButton>
<ServerVersionChecker version="0.3.3" empty={true}> <UpdateFrontendURL refreshInviteLink={generateNewLink} />
<UpdateFrontendURL refreshInviteLink={generateNewLink} />
</ServerVersionChecker>
</div> </div>
); );
} }
+4 -13
View File
@@ -3,7 +3,6 @@ import { useTranslation } from "react-i18next";
import { useAppSelector } from "@/app/store"; import { useAppSelector } from "@/app/store";
import { LoginConfig, WhoCanSignUp } from "@/types/server"; import { LoginConfig, WhoCanSignUp } from "@/types/server";
import ServerVersionChecker from "@/components/ServerVersionChecker";
import StyledRadio from "@/components/styled/Radio"; import StyledRadio from "@/components/styled/Radio";
import useConfig from "@/hooks/useConfig"; import useConfig from "@/hooks/useConfig";
import ChatLayout from "./ChatLayout"; import ChatLayout from "./ChatLayout";
@@ -37,9 +36,7 @@ export default function Overview() {
<div className="relative w-full md:w-[512px] flex flex-col gap-6"> <div className="relative w-full md:w-[512px] flex flex-col gap-6">
<Server /> <Server />
{/* 设置前端url */} {/* 设置前端url */}
<ServerVersionChecker version="0.3.3" empty={true}> <FrontendURL />
<FrontendURL />
</ServerVersionChecker>
{isAdmin && ( {isAdmin && (
<> <>
<div className="flex flex-col"> <div className="flex flex-col">
@@ -68,17 +65,11 @@ export default function Overview() {
/> />
</SettingBlock> </SettingBlock>
{/* 是否显示在线提示 */} {/* 是否显示在线提示 */}
<ServerVersionChecker version="0.3.4" empty={true}> <OnlineStatus />
<OnlineStatus />
</ServerVersionChecker>
{/* 会话布局 */} {/* 会话布局 */}
<ServerVersionChecker version="0.3.7" empty={true}> <ChatLayout />
<ChatLayout />
</ServerVersionChecker>
{/* 联系人验证模式 */} {/* 联系人验证模式 */}
<ServerVersionChecker version="0.3.7" empty={true}> <ContactVerification />
<ContactVerification />
</ServerVersionChecker>
</> </>
)} )}
+2 -11
View File
@@ -2,7 +2,6 @@ import { useTranslation } from "react-i18next";
import { useAppSelector } from "@/app/store"; import { useAppSelector } from "@/app/store";
import ManageMembers from "@/components/ManageMembers"; import ManageMembers from "@/components/ManageMembers";
import ServerVersionChecker from "@/components/ServerVersionChecker";
import Version from "@/components/Version"; import Version from "@/components/Version";
import APIConfig from "./APIConfig"; import APIConfig from "./APIConfig";
import APIDocument from "./APIDocument"; import APIDocument from "./APIDocument";
@@ -40,11 +39,7 @@ const navs = [
items: [ items: [
{ {
name: "bot", name: "bot",
component: ( component: <BotConfig />,
<ServerVersionChecker version="0.3.2">
<BotConfig />
</ServerVersionChecker>
),
admin: true admin: true
}, },
{ {
@@ -53,11 +48,7 @@ const navs = [
}, },
{ {
name: "agora", name: "agora",
component: ( component: <ConfigAgora />
<ServerVersionChecker version="0.3.5">
<ConfigAgora />
</ServerVersionChecker>
)
}, },
{ {
name: "smtp", name: "smtp",
+1 -3
View File
@@ -5,7 +5,6 @@ import Tippy from "@tippyjs/react";
import { useAppSelector } from "@/app/store"; import { useAppSelector } from "@/app/store";
import AddEntriesMenu from "@/components/AddEntriesMenu"; import AddEntriesMenu from "@/components/AddEntriesMenu";
import Tooltip from "@/components/Tooltip"; import Tooltip from "@/components/Tooltip";
import { compareVersion } from "@/utils";
import IconAdd from "@/assets/icons/add.svg"; import IconAdd from "@/assets/icons/add.svg";
import IconSearch from "@/assets/icons/search.svg"; import IconSearch from "@/assets/icons/search.svg";
@@ -15,12 +14,11 @@ type Props = {
updateInput: (input: string) => void; updateInput: (input: string) => void;
}; };
const Search: FC<Props> = ({ input, updateInput, openModal }) => { const Search: FC<Props> = ({ input, updateInput, openModal }) => {
const serverVersion = useAppSelector((store) => store.server.version); const enableContact = useAppSelector((store) => store.server.contact_verification_enable);
const { t } = useTranslation(); const { t } = useTranslation();
const handleInput = (evt: ChangeEvent<HTMLInputElement>) => { const handleInput = (evt: ChangeEvent<HTMLInputElement>) => {
updateInput(evt.target.value); updateInput(evt.target.value);
}; };
const enableContact = compareVersion(serverVersion, "0.3.7") >= 0;
return ( return (
<div className="hidden md:flex relative min-h-[56px] px-2 py-3 items-center justify-between gap-2 shadow-[rgb(0_0_0_/_10%)_0px_1px_0px] dark:border-b-gray-500"> <div className="hidden md:flex relative min-h-[56px] px-2 py-3 items-center justify-between gap-2 shadow-[rgb(0_0_0_/_10%)_0px_1px_0px] dark:border-b-gray-500">
<div className="flex items-center gap-1"> <div className="flex items-center gap-1">