refactor: project configuration

This commit is contained in:
Tristan Yang
2023-05-15 16:46:50 +08:00
parent 187ffd24d1
commit 20b907aae4
293 changed files with 991 additions and 964 deletions
+6 -6
View File
@@ -2,15 +2,15 @@ import { useEffect } from "react";
import Tippy from "@tippyjs/react";
import toast from "react-hot-toast";
import { hideAll } from "tippy.js";
import Input from "../../common/component/styled/Input";
import Toggle from "../../common/component/styled/Toggle";
import Button from "../../common/component/styled/Button";
import Input from "@/components/styled/Input";
import Toggle from "@/components/styled/Toggle";
import Button from "@/components/styled/Button";
import {
useGetThirdPartySecretQuery,
useUpdateThirdPartySecretMutation
} from "../../app/services/server";
import useConfig from "../../common/hook/useConfig";
import { LoginConfig } from "../../types/server";
} from "@/app/services/server";
import useConfig from "@/hooks/useConfig";
import { LoginConfig } from "@/types/server";
import { useTranslation } from "react-i18next";
+2 -2
View File
@@ -1,8 +1,8 @@
// import React from 'react';
import { useTranslation } from 'react-i18next';
import { useAppSelector } from '../../app/store';
import IconCopy from '../../assets/icons/copy.svg';
import useCopy from '../../common/hook/useCopy';
import IconCopy from '@/assets/icons/copy.svg';
import useCopy from '../../hooks/useCopy';
// type Props = {}
const APIUrl = `${location.origin}/api/swagger`;
const APIDocument = () => {
+2 -2
View File
@@ -3,8 +3,8 @@ import dayjs from 'dayjs';
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { useGetBotAPIKeysQuery } from '../../../app/services/user';
import IconDelete from '../../../assets/icons/delete.svg';
import IconAdd from '../../../assets/icons/add.svg';
import IconDelete from '@/assets/icons/delete.svg';
import IconAdd from '@/assets/icons/add.svg';
import CreateAPIKeyModal from './CreateAPIKeyModal';
import DeleteAPIKeyModal from './DeleteAPIKeyModal';
import clsx from 'clsx';
@@ -2,11 +2,11 @@ import { useRef, useEffect } from 'react';
import { toast } from 'react-hot-toast';
import { useTranslation } from 'react-i18next';
import { useCreateBotAPIKeyMutation } from '../../../app/services/user';
import Modal from '../../../common/component/Modal';
import Button from '../../../common/component/styled/Button';
import Input from '../../../common/component/styled/Input';
import StyledModal from '../../../common/component/styled/Modal';
import useCopy from '../../../common/hook/useCopy';
import Modal from '../../../components/Modal';
import Button from '../../../components/styled/Button';
import Input from '../../../components/styled/Input';
import StyledModal from '../../../components/styled/Modal';
import useCopy from '../../../hooks/useCopy';
type Props = {
uid: number,
+4 -4
View File
@@ -2,10 +2,10 @@ import { useRef, useState, useEffect } from 'react';
import { toast } from 'react-hot-toast';
import { useTranslation } from 'react-i18next';
import { useCreateUserMutation } from '../../../app/services/user';
import Modal from '../../../common/component/Modal';
import Button from '../../../common/component/styled/Button';
import Input from '../../../common/component/styled/Input';
import StyledModal from '../../../common/component/styled/Modal';
import Modal from '../../../components/Modal';
import Button from '../../../components/styled/Button';
import Input from '../../../components/styled/Input';
import StyledModal from '../../../components/styled/Modal';
import { BASE_ORIGIN } from '../../../app/config';
type Props = {
@@ -2,9 +2,9 @@ import { useEffect } from 'react';
import { toast } from 'react-hot-toast';
import { useTranslation } from 'react-i18next';
import { useLazyDeleteBotAPIKeyQuery } from '../../../app/services/user';
import Modal from '../../../common/component/Modal';
import Button from '../../../common/component/styled/Button';
import StyledModal from '../../../common/component/styled/Modal';
import Modal from '../../../components/Modal';
import Button from '../../../components/styled/Button';
import StyledModal from '../../../components/styled/Modal';
type Props = {
uid: number,
+3 -3
View File
@@ -2,9 +2,9 @@ import { useEffect } from 'react';
import { toast } from 'react-hot-toast';
import { useTranslation } from 'react-i18next';
import { useLazyDeleteUserQuery } from '../../../app/services/user';
import Modal from '../../../common/component/Modal';
import Button from '../../../common/component/styled/Button';
import StyledModal from '../../../common/component/styled/Modal';
import Modal from '../../../components/Modal';
import Button from '../../../components/styled/Button';
import StyledModal from '../../../components/styled/Modal';
type Props = {
uid: number,
@@ -1,10 +1,10 @@
import { useEffect, useRef, useState } from 'react';
// import { toast } from 'react-hot-toast';
import { useTranslation } from 'react-i18next';
import Modal from '../../../common/component/Modal';
import Button from '../../../common/component/styled/Button';
import Textarea from '../../../common/component/styled/Textarea';
import StyledModal from '../../../common/component/styled/Modal';
import Modal from '../../../components/Modal';
import Button from '../../../components/styled/Button';
import Textarea from '../../../components/styled/Textarea';
import StyledModal from '../../../components/styled/Modal';
import { useLazyGetBotRelatedChannelsQuery, useSendMessageByBotMutation } from '../../../app/services/server';
import clsx from 'clsx';
import { MessageTypes } from '../../../app/config';
+3 -3
View File
@@ -3,9 +3,9 @@ import { useState, useEffect, useRef } from 'react';
import { toast } from 'react-hot-toast';
import { Orbit } from "@uiball/loaders";
import { useGetUserByAdminQuery, useUpdateUserMutation } from '../../../app/services/user';
import IconEdit from '../../../assets/icons/edit.svg';
import IconSave from '../../../assets/icons/save.svg';
import IconCancel from '../../../assets/icons/close.circle.svg';
import IconEdit from '@/assets/icons/edit.svg';
import IconSave from '@/assets/icons/save.svg';
import IconCancel from '@/assets/icons/close.circle.svg';
type Props = {
uid: number
}
@@ -2,10 +2,10 @@ import { useRef, useState, useEffect, ChangeEvent } from 'react';
import { toast } from 'react-hot-toast';
import { useTranslation } from 'react-i18next';
import { useUpdateUserMutation } from '../../../app/services/user';
import Modal from '../../../common/component/Modal';
import Button from '../../../common/component/styled/Button';
import Input from '../../../common/component/styled/Input';
import StyledModal from '../../../common/component/styled/Modal';
import Modal from '../../../components/Modal';
import Button from '../../../components/styled/Button';
import Input from '../../../components/styled/Input';
import StyledModal from '../../../components/styled/Modal';
type Props = {
uid: number,
+4 -4
View File
@@ -4,10 +4,10 @@ import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { useUpdateAvatarByAdminMutation } from '../../../app/services/user';
import { useAppSelector } from '../../../app/store';
import AvatarUploader from '../../../common/component/AvatarUploader';
import Button from '../../../common/component/styled/Button';
import IconDelete from '../../../assets/icons/delete.svg';
// import IconTest from '../../../assets/icons/test.svg';
import AvatarUploader from '../../../components/AvatarUploader';
import Button from '../../../components/styled/Button';
import IconDelete from '@/assets/icons/delete.svg';
// import IconTest from '@/assets/icons/test.svg';
import CreateModal from './CreateModal';
import WebhookEdit from './WebhookEdit';
import WebhookModal from './WebhookModal';
@@ -1,19 +1,19 @@
import { ChangeEvent, FC, useState } from "react";
import toast from "react-hot-toast";
import * as linkify from 'linkifyjs';
import Modal from "../../../common/component/Modal";
import StyledModal from "../../../common/component/styled/Modal";
import Button from "../../../common/component/styled/Button";
import StyledRadio from "../../../common/component/styled/Radio";
import Input from "../../../common/component/styled/Input";
import Modal from "@/components/Modal";
import StyledModal from "@/components/styled/Modal";
import Button from "@/components/styled/Button";
import StyledRadio from "@/components/styled/Radio";
import Input from "@/components/styled/Input";
import { useGetLicensePaymentUrlMutation } from "../../../app/services/server";
import { getLicensePriceList } from "../../../app/config";
import { useGetLicensePaymentUrlMutation } from "@/app/services/server";
import { getLicensePriceList } from "@/app/config";
import { useTranslation } from "react-i18next";
import dayjs from "dayjs";
import { PriceSubscriptionDuration, PriceType } from "../../../types/common";
import { PriceSubscriptionDuration, PriceType } from "@/types/common";
import Tippy from "@tippyjs/react";
// import { LicenseMetadata, RenewLicense } from "../../types/server";
// import { LicenseMetadata, RenewLicense } from "@/types/server";
interface Props {
closeModal: () => void;
@@ -1,9 +1,9 @@
import { ChangeEvent, FC, useState, useEffect } from "react";
import toast from "react-hot-toast";
import Modal from "../../../common/component/Modal";
import StyledModal from "../../../common/component/styled/Modal";
import Button from "../../../common/component/styled/Button";
import Textarea from "../../../common/component/styled/Textarea";
import Modal from "@/components/Modal";
import StyledModal from "@/components/styled/Modal";
import Button from "@/components/styled/Button";
import Textarea from "@/components/styled/Textarea";
import { useTranslation } from "react-i18next";
interface Props {
+2 -2
View File
@@ -1,7 +1,7 @@
import { useState, HTMLAttributes } from "react";
import dayjs from "dayjs";
import Button from "../../../common/component/styled/Button";
import useLicense from "../../../common/hook/useLicense";
import Button from "@/components/styled/Button";
import useLicense from "@/hooks/useLicense";
import LicensePriceListModal from "./LicensePriceListModal";
import clsx from "clsx";
import { useTranslation } from "react-i18next";
+5 -5
View File
@@ -1,10 +1,10 @@
import { ChangeEvent, FC, useEffect, useState } from "react";
import toast from "react-hot-toast";
import Modal from "../../common/component/Modal";
import StyledModal from "../../common/component/styled/Modal";
import Button from "../../common/component/styled/Button";
import Checkbox from "../../common/component/styled/Checkbox";
import useLogout from "../../common/hook/useLogout";
import Modal from "@/components/Modal";
import StyledModal from "@/components/styled/Modal";
import Button from "@/components/styled/Button";
import Checkbox from "@/components/styled/Checkbox";
import useLogout from "@/hooks/useLogout";
import { useTranslation } from "react-i18next";
+4 -4
View File
@@ -1,12 +1,12 @@
import { useEffect, useState, MouseEvent } from "react";
import toast from "react-hot-toast";
import { useUpdateAvatarMutation } from "../../app/services/user";
import AvatarUploader from "../../common/component/AvatarUploader";
import Button from "../../common/component/styled/Button";
import { useUpdateAvatarMutation } from "@/app/services/user";
import AvatarUploader from "@/components/AvatarUploader";
import Button from "@/components/styled/Button";
import ProfileBasicEditModal from "./ProfileBasicEditModal";
import RemoveAccountConfirmModal from "./RemoveAccountConfirmModal";
import UpdatePasswordModal from "./UpdatePasswordModal";
import { useAppSelector } from "../../app/store";
import { useAppSelector } from "@/app/store";
import { useTranslation } from "react-i18next";
type EditField = "name" | "email" | "";
+1 -1
View File
@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next';
import { useGetSystemCommonQuery, useUpdateSystemCommonMutation } from '../../../app/services/server';
import { useEffect } from 'react';
import { toast } from 'react-hot-toast';
import StyledRadio from "../../../common/component/styled/Radio";
import StyledRadio from "@/components/styled/Radio";
import { useAppSelector } from '../../../app/store';
import SettingBlock from './SettingBlock';
import { ChatLayout } from '../../../types/server';
@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next';
import { useGetSystemCommonQuery, useUpdateSystemCommonMutation } from '../../../app/services/server';
import { useEffect } from 'react';
import { toast } from 'react-hot-toast';
import StyledRadio from "../../../common/component/styled/Radio";
import StyledRadio from "@/components/styled/Radio";
import { useAppSelector } from '../../../app/store';
import SettingBlock from './SettingBlock';
// type Props = {}
+1 -1
View File
@@ -1,6 +1,6 @@
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import Radio from '../../../common/component/styled/Radio';
import Radio from '../../../components/styled/Radio';
import { Theme } from '../../../types/common';
import SettingBlock from './SettingBlock';
+2 -2
View File
@@ -2,8 +2,8 @@
import { useTranslation } from 'react-i18next';
import { toast } from 'react-hot-toast';
import { useGetFrontendUrlQuery, useUpdateFrontendUrlMutation } from '../../../app/services/server';
import StyledInput from "../../../common/component/styled/Input";
import StyledButton from "../../../common/component/styled/Button";
import StyledInput from "@/components/styled/Input";
import StyledButton from "@/components/styled/Button";
import { ChangeEvent, useState, useEffect } from 'react';
import SettingBlock from './SettingBlock';
// type Props = {}
+1 -1
View File
@@ -1,6 +1,6 @@
// import React from 'react'
import { useTranslation } from 'react-i18next';
import StyledRadio from "../../../common/component/styled/Radio";
import StyledRadio from "@/components/styled/Radio";
import SettingBlock from './SettingBlock';
// type Props = {}
+1 -1
View File
@@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next';
import { useGetSystemCommonQuery, useUpdateSystemCommonMutation } from '../../../app/services/server';
import { useEffect } from 'react';
import { toast } from 'react-hot-toast';
import StyledRadio from "../../../common/component/styled/Radio";
import StyledRadio from "@/components/styled/Radio";
import { useAppSelector } from '../../../app/store';
import SettingBlock from './SettingBlock';
// type Props = {}
+5 -5
View File
@@ -2,11 +2,11 @@ import { ChangeEvent, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import toast from "react-hot-toast";
import { useUpdateLogoMutation, useUpdateServerMutation } from '../../../app/services/server';
import LogoUploader from "../../../common/component/AvatarUploader";
import Input from "../../../common/component/styled/Input";
import Label from "../../../common/component/styled/Label";
import Textarea from "../../../common/component/styled/Textarea";
import SaveTip from '../../../common/component/SaveTip';
import LogoUploader from "@/components/AvatarUploader";
import Input from "@/components/styled/Input";
import Label from "@/components/styled/Label";
import Textarea from "@/components/styled/Textarea";
import SaveTip from '../../../components/SaveTip';
import { useAppSelector } from '../../../app/store';
const Index = () => {
+5 -5
View File
@@ -1,14 +1,14 @@
// import { useState, useEffect, ChangeEvent } from "react";
import { useTranslation } from "react-i18next";
import StyledRadio from "../../../common/component/styled/Radio";
import { useAppSelector } from "../../../app/store";
import { LoginConfig, WhoCanSignUp } from "../../../types/server";
import useConfig from "../../../common/hook/useConfig";
import StyledRadio from "@/components/styled/Radio";
import { useAppSelector } from "@/app/store";
import { LoginConfig, WhoCanSignUp } from "@/types/server";
import useConfig from "@/hooks/useConfig";
import Server from './Server';
import Language from './Language';
import FrontendURL from "./FrontendURL";
import DarkMode from "./DarkMode";
import ServerVersionChecker from "../../../common/component/ServerVersionChecker";
import ServerVersionChecker from "@/components/ServerVersionChecker";
import OnlineStatus from "./OnlineStatus";
import ChatLayout from "./ChatLayout";
import SettingBlock from "./SettingBlock";
+1 -1
View File
@@ -1,6 +1,6 @@
// import React from 'react'
import { useTranslation } from 'react-i18next';
import StyledRadio from "../../../common/component/styled/Radio";
import StyledRadio from "@/components/styled/Radio";
import SettingBlock from './SettingBlock';
// type Props = {}
+5 -5
View File
@@ -2,11 +2,11 @@ import { ChangeEvent, useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import toast from "react-hot-toast";
import { useUpdateLogoMutation, useUpdateServerMutation } from '../../../app/services/server';
import LogoUploader from "../../../common/component/AvatarUploader";
import Input from "../../../common/component/styled/Input";
import Label from "../../../common/component/styled/Label";
import Textarea from "../../../common/component/styled/Textarea";
import SaveTip from '../../../common/component/SaveTip';
import LogoUploader from "@/components/AvatarUploader";
import Input from "@/components/styled/Input";
import Label from "@/components/styled/Label";
import Textarea from "@/components/styled/Textarea";
import SaveTip from '../../../components/SaveTip';
import { useAppSelector } from '../../../app/store';
const Index = () => {
+5 -5
View File
@@ -1,10 +1,10 @@
import { ChangeEvent, FC, useEffect, useState, useRef } from "react";
import toast from "react-hot-toast";
import Input from "../../common/component/styled/Input";
import { useUpdateInfoMutation } from "../../app/services/user";
import StyledModal from "../../common/component/styled/Modal";
import Button from "../../common/component/styled/Button";
import Modal from "../../common/component/Modal";
import Input from "@/components/styled/Input";
import { useUpdateInfoMutation } from "@/app/services/user";
import StyledModal from "@/components/styled/Modal";
import Button from "@/components/styled/Button";
import Modal from "@/components/Modal";
import { useTranslation } from "react-i18next";
@@ -1,9 +1,9 @@
import { FC } from "react";
import toast from "react-hot-toast";
import Modal from "../../common/component/Modal";
import StyledModal from "../../common/component/styled/Modal";
import Button from "../../common/component/styled/Button";
import { useLazyDeleteCurrentAccountQuery } from "../../app/services/auth";
import Modal from "@/components/Modal";
import StyledModal from "@/components/styled/Modal";
import Button from "@/components/styled/Button";
import { useLazyDeleteCurrentAccountQuery } from "@/app/services/auth";
import { useTranslation } from "react-i18next";
interface Props {
+5 -5
View File
@@ -1,10 +1,10 @@
import { ChangeEvent, useEffect, useState, FC } from "react";
import toast from "react-hot-toast";
import Input from "../../common/component/styled/Input";
import { useUpdatePasswordMutation, useGetCredentialsQuery } from "../../app/services/auth";
import StyledModal from "../../common/component/styled/Modal";
import Button from "../../common/component/styled/Button";
import Modal from "../../common/component/Modal";
import Input from "@/components/styled/Input";
import { useUpdatePasswordMutation, useGetCredentialsQuery } from "@/app/services/auth";
import StyledModal from "@/components/styled/Modal";
import Button from "@/components/styled/Button";
import Modal from "@/components/Modal";
import { useTranslation } from "react-i18next";
+4 -4
View File
@@ -4,10 +4,10 @@ import { useTranslation } from 'react-i18next';
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
import { vscDarkPlus } from 'react-syntax-highlighter/dist/esm/styles/prism';
import { useAppSelector } from '../../app/store';
import Button from '../../common/component/styled/Button';
import Input from '../../common/component/styled/Input';
import useCopy from '../../common/hook/useCopy';
import IconQuestion from '../../assets/icons/question.svg';
import Button from '../../components/styled/Button';
import Input from '../../components/styled/Input';
import useCopy from '../../hooks/useCopy';
import IconQuestion from '@/assets/icons/question.svg';
const Row = ({ paramKey, paramDefault, remarks }: { paramKey: string, paramDefault: string | number, remarks: string }) => {
+7 -6
View File
@@ -1,10 +1,11 @@
import Input from "../../../common/component/styled/Input";
import Label from "../../../common/component/styled/Label";
import Toggle from "../../../common/component/styled/Toggle";
import SaveTip from "../../../common/component/SaveTip";
import useConfig from "../../../common/hook/useConfig";
import { ChangeEvent } from "react";
import { AgoraConfig } from "../../../types/server";
import Input from "@/components/styled/Input";
import Label from "@/components/styled/Label";
import Toggle from "@/components/styled/Toggle";
import SaveTip from "@/components/SaveTip";
import useConfig from "@/hooks/useConfig";
import { AgoraConfig } from "@/types/server";
export default function ConfigAgora() {
const { changed, reset, values, setValues, toggleEnable, updateConfig } = useConfig("agora");
+7 -7
View File
@@ -1,12 +1,12 @@
import { ChangeEvent } from "react";
import Input from "../../../common/component/styled/Input";
import Textarea from "../../../common/component/styled/Textarea";
import Label from "../../../common/component/styled/Label";
import SaveTip from "../../../common/component/SaveTip";
import useConfig from "../../../common/hook/useConfig";
import StyledRadio from "../../../common/component/styled/Radio";
import Input from "@/components/styled/Input";
import Textarea from "@/components/styled/Textarea";
import Label from "@/components/styled/Label";
import SaveTip from "@/components/SaveTip";
import useConfig from "@/hooks/useConfig";
import StyledRadio from "@/components/styled/Radio";
import { FirebaseConfig } from "../../../types/server";
import { FirebaseConfig } from "@/types/server";
import { useTranslation } from "react-i18next";
interface IOptions {
@@ -1,11 +1,11 @@
import { ChangeEvent, FC, useState } from "react";
import { useTranslation } from "react-i18next";
import Select, { Option } from "../../../../common/component/styled/Select";
import Button from "../../../../common/component/styled/Button";
import Input from "../../../../common/component/styled/Input";
import Toggle from "../../../../common/component/styled/Toggle";
import Select, { Option } from "@/components/styled/Select";
import Button from "@/components/styled/Button";
import Input from "@/components/styled/Input";
import Toggle from "@/components/styled/Toggle";
import options from "./items.json";
import IconMinus from "../../../../assets/icons/minus.circle.svg";
import IconMinus from "@/assets/icons/minus.circle.svg";
interface Issuer {
domain: string;
+8 -8
View File
@@ -1,15 +1,15 @@
import { ChangeEvent } from "react";
import toast from "react-hot-toast";
import Toggle from "../../../common/component/styled/Toggle";
import Label from "../../../common/component/styled/Label";
import Input from "../../../common/component/styled/Input";
import SaveTip from "../../../common/component/SaveTip";
import useConfig from "../../../common/hook/useConfig";
import Toggle from "@/components/styled/Toggle";
import Label from "@/components/styled/Label";
import Input from "@/components/styled/Input";
import SaveTip from "@/components/SaveTip";
import useConfig from "@/hooks/useConfig";
import Tooltip from "./Tooltip";
import IssuerList from "./IssuerList";
import useGoogleAuthConfig from "../../../common/hook/useGoogleAuthConfig";
import useGithubAuthConfig from "../../../common/hook/useGithubAuthConfig";
import { LoginConfig } from "../../../types/server";
import useGoogleAuthConfig from "@/hooks/useGoogleAuthConfig";
import useGithubAuthConfig from "@/hooks/useGithubAuthConfig";
import { LoginConfig } from "@/types/server";
import { useTranslation } from "react-i18next";
export default function Logins() {
+9 -9
View File
@@ -2,15 +2,15 @@ import { useState, useEffect, ChangeEvent } from "react";
import toast from "react-hot-toast";
import { useTranslation } from "react-i18next";
import { useSendTestEmailMutation } from "../../../app/services/server";
import IconQuestion from "../../../assets/icons/question.svg";
import useConfig from "../../../common/hook/useConfig";
import Input from "../../../common/component/styled/Input";
import Button from "../../../common/component/styled/Button";
import Toggle from "../../../common/component/styled/Toggle";
import Label from "../../../common/component/styled/Label";
import SaveTip from "../../../common/component/SaveTip";
import { SMTPConfig } from "../../../types/server";
import { useSendTestEmailMutation } from "@/app/services/server";
import IconQuestion from "@/assets/icons/question.svg";
import useConfig from "@/hooks/useConfig";
import Input from "@/components/styled/Input";
import Button from "@/components/styled/Button";
import Toggle from "@/components/styled/Toggle";
import Label from "@/components/styled/Label";
import SaveTip from "@/components/SaveTip";
import { SMTPConfig } from "@/types/server";
export default function ConfigSMTP() {
const { t } = useTranslation("setting", { keyPrefix: "smtp" });
+1 -1
View File
@@ -1,7 +1,7 @@
import Tippy from "@tippyjs/react";
import { roundArrow } from "tippy.js";
import "tippy.js/dist/svg-arrow.css";
import IconQuestion from "../../../assets/icons/question.svg";
import IconQuestion from "@/assets/icons/question.svg";
// import { useTranslation } from "react-i18next";
import { PropsWithChildren } from "react";
import { Trans } from 'react-i18next';
+3 -2
View File
@@ -1,9 +1,10 @@
import { useState } from "react";
import { useTranslation } from "react-i18next";
import { useNavigate, useParams, useSearchParams } from "react-router-dom";
import StyledSettingContainer from "../../common/component/StyledSettingContainer";
import StyledSettingContainer from "@/components/StyledSettingContainer";
import useNavs from "./navs";
import LogoutConfirmModal from "./LogoutConfirmModal";
import { useTranslation } from "react-i18next";
let pageFrom: string = "";
+4 -4
View File
@@ -9,11 +9,11 @@ import License from "./License";
import Widget from "./Widget";
import BotConfig from "./BotConfig";
import APIDocument from "./APIDocument";
import ManageMembers from "../../common/component/ManageMembers";
import Version from "../../common/component/Version";
import ManageMembers from "@/components/ManageMembers";
import Version from "@/components/Version";
import ConfigAgora from "./config/Agora";
import { useAppSelector } from "../../app/store";
import ServerVersionChecker from "../../common/component/ServerVersionChecker";
import { useAppSelector } from "@/app/store";
import ServerVersionChecker from "@/components/ServerVersionChecker";
const navs = [
{