refactor: project configuration
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import { useEffect, FC } from 'react';
|
||||
import { KEY_LOCAL_MAGIC_TOKEN } from "../../app/config";
|
||||
import { useLoginMutation } from "../../app/services/auth";
|
||||
import { KEY_LOCAL_MAGIC_TOKEN } from "@/app/config";
|
||||
import { useLoginMutation } from "@/app/services/auth";
|
||||
import toast from "react-hot-toast";
|
||||
import { FetchBaseQueryError } from "@reduxjs/toolkit/dist/query";
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import StyledButton from '../../common/component/styled/Button';
|
||||
import StyledButton from '../../components/styled/Button';
|
||||
|
||||
export type GithubLoginSource = "widget" | "webapp"
|
||||
type Props = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useEffect } from "react";
|
||||
import { useLazyGetGeneratedLicenseQuery } from "../../app/services/server";
|
||||
import useLicense from "../../common/hook/useLicense";
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import { useLazyGetGeneratedLicenseQuery } from "@/app/services/server";
|
||||
import useLicense from "@/hooks/useLicense";
|
||||
import Button from "@/components/styled/Button";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { useRef, useState } from 'react';
|
||||
import { ViewportList } from 'react-viewport-list';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import User from "../../../common/component/User";
|
||||
import IconAdd from "../../../assets/icons/add.svg";
|
||||
import InviteModal from "../../../common/component/InviteModal";
|
||||
import User from "@/components/User";
|
||||
import IconAdd from "@/assets/icons/add.svg";
|
||||
import InviteModal from "@/components/InviteModal";
|
||||
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { FC, FormEvent } from "react";
|
||||
import usePinMessage from "../../../common/hook/usePinMessage";
|
||||
import IconSurprise from "../../../assets/icons/emoji.surprise.svg";
|
||||
import IconClose from "../../../assets/icons/close.svg";
|
||||
import usePinMessage from "@/hooks/usePinMessage";
|
||||
import IconSurprise from "@/assets/icons/emoji.surprise.svg";
|
||||
import IconClose from "@/assets/icons/close.svg";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import PinnedMessage from "../../../common/component/PinnedMessage";
|
||||
import PinnedMessage from "@/components/PinnedMessage";
|
||||
|
||||
type Props = {
|
||||
id: number;
|
||||
|
||||
@@ -6,20 +6,20 @@ import { useDispatch } from "react-redux";
|
||||
|
||||
import PinList from "./PinList";
|
||||
import FavList from "../FavList";
|
||||
import { updateRememberedNavs } from "../../../app/slices/ui";
|
||||
import ChannelIcon from "../../../common/component/ChannelIcon";
|
||||
import Tooltip from "../../../common/component/Tooltip";
|
||||
import { updateRememberedNavs } from "@/app/slices/ui";
|
||||
import ChannelIcon from "@/components/ChannelIcon";
|
||||
import Tooltip from "@/components/Tooltip";
|
||||
import Layout from "../Layout";
|
||||
import IconFav from "../../../assets/icons/bookmark.svg";
|
||||
import IconPeople from "../../../assets/icons/people.svg";
|
||||
import IconPin from "../../../assets/icons/pin.svg";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import GoBackNav from "../../../common/component/GoBackNav";
|
||||
import IconFav from "@/assets/icons/bookmark.svg";
|
||||
import IconPeople from "@/assets/icons/people.svg";
|
||||
import IconPin from "@/assets/icons/pin.svg";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import GoBackNav from "@/components/GoBackNav";
|
||||
import Members from "./Members";
|
||||
import VoiceChat from "../VoiceChat";
|
||||
import { updateChannelVisibleAside } from "../../../app/slices/footprint";
|
||||
import { updateChannelVisibleAside } from "@/app/slices/footprint";
|
||||
import Dashboard from "../VoiceChat/Dashboard";
|
||||
import ServerVersionChecker from "../../../common/component/ServerVersionChecker";
|
||||
import ServerVersionChecker from "@/components/ServerVersionChecker";
|
||||
type Props = {
|
||||
cid?: number;
|
||||
dropFiles?: File[];
|
||||
|
||||
@@ -2,13 +2,13 @@ import { FC, useEffect } from "react";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import Tippy from "@tippyjs/react";
|
||||
import FavList from "../FavList";
|
||||
import Tooltip from "../../../common/component/Tooltip";
|
||||
import FavIcon from "../../../assets/icons/bookmark.svg";
|
||||
import User from "../../../common/component/User";
|
||||
import Tooltip from "@/components/Tooltip";
|
||||
import FavIcon from "@/assets/icons/bookmark.svg";
|
||||
import User from "@/components/User";
|
||||
import Layout from "../Layout";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import GoBackNav from "../../../common/component/GoBackNav";
|
||||
import ServerVersionChecker from "../../../common/component/ServerVersionChecker";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import GoBackNav from "@/components/GoBackNav";
|
||||
import ServerVersionChecker from "@/components/ServerVersionChecker";
|
||||
import VoiceChat from "../VoiceChat";
|
||||
type Props = {
|
||||
uid: number;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { MouseEvent, FC } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import FavoredMessage from "../../common/component/Message/FavoredMessage";
|
||||
import IconSurprise from "../../assets/icons/emoji.surprise.svg";
|
||||
import IconRemove from "../../assets/icons/close.svg";
|
||||
import useFavMessage from "../../common/hook/useFavMessage";
|
||||
import FavoredMessage from "@/components/Message/FavoredMessage";
|
||||
import IconSurprise from "@/assets/icons/emoji.surprise.svg";
|
||||
import IconRemove from "@/assets/icons/close.svg";
|
||||
import useFavMessage from "@/hooks/useFavMessage";
|
||||
|
||||
type Props = { cid?: number; uid?: number };
|
||||
const FavList: FC<Props> = ({ cid = null, uid = null }) => {
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { BASE_ORIGIN } from "../../app/config";
|
||||
import { resetAuthData } from "../../app/slices/auth.data";
|
||||
import { useAppSelector } from "../../app/store";
|
||||
import QRCode from "../../common/component/QRCode";
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import useLogout from "../../common/hook/useLogout";
|
||||
import { BASE_ORIGIN } from "@/app/config";
|
||||
import { resetAuthData } from "@/app/slices/auth.data";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import QRCode from "@/components/QRCode";
|
||||
import Button from "@/components/styled/Button";
|
||||
import useLogout from "@/hooks/useLogout";
|
||||
// type Props = {};
|
||||
|
||||
const GuestBlankPlaceholder = () => {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
// import { useState, useEffect } from "react";
|
||||
// import { NavLink } from "react-router-dom";
|
||||
// import { useTranslation } from "react-i18next";
|
||||
import ChannelIcon from "../../../common/component/ChannelIcon";
|
||||
import ChannelIcon from "@/components/ChannelIcon";
|
||||
import Layout from "../Layout";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import GoBackNav from "../../../common/component/GoBackNav";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import GoBackNav from "@/components/GoBackNav";
|
||||
|
||||
type Props = {
|
||||
cid?: number;
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
import { useState, useEffect, FC } from "react";
|
||||
import clsx from "clsx";
|
||||
import { renderPreviewMessage } from "../../chat/utils";
|
||||
import Avatar from "../../../common/component/Avatar";
|
||||
import Avatar from "@/components/Avatar";
|
||||
import { NavLink } from "react-router-dom";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import { fromNowTime } from "../../../common/utils";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import { fromNowTime } from "@/utils";
|
||||
|
||||
interface IProps {
|
||||
id: number;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { FC } from "react";
|
||||
import { useState, useEffect } from "react";
|
||||
import Session from "./Session";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import LoginTip from "../Layout/LoginTip";
|
||||
export interface ChatSession {
|
||||
key: string;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import IconAdd from '../../../assets/icons/add.person.svg';
|
||||
import IconBlock from '../../../assets/icons/block.svg';
|
||||
import IconAdd from '@/assets/icons/add.person.svg';
|
||||
import IconBlock from '@/assets/icons/block.svg';
|
||||
import { useAppSelector } from '../../../app/store';
|
||||
import { useUpdateContactStatusMutation } from '../../../app/services/user';
|
||||
import { ContactAction } from '../../../types/user';
|
||||
|
||||
@@ -4,19 +4,19 @@ import { useTranslation } from "react-i18next";
|
||||
import { useDispatch } from "react-redux";
|
||||
import clsx from "clsx";
|
||||
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import Tooltip from "../../../common/component/Tooltip";
|
||||
import IconCallOff from '../../../assets/icons/call.off.svg';
|
||||
import IconCallAnswer from '../../../assets/icons/call.svg';
|
||||
import IconMicOff from '../../../assets/icons/mic.off.svg';
|
||||
import IconMic from '../../../assets/icons/mic.on.svg';
|
||||
import IconCamera from '../../../assets/icons/camera.svg';
|
||||
import IconCameraOff from '../../../assets/icons/camera.off.svg';
|
||||
import IconScreen from '../../../assets/icons/share.screen.svg';
|
||||
import { VoicingInfo, updateCalling } from "../../../app/slices/voice";
|
||||
import { useVoice } from "../../../common/component/Voice";
|
||||
import { playAgoraVideo } from "../../../common/utils";
|
||||
import Avatar from "../../../common/component/Avatar";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import Tooltip from "@/components/Tooltip";
|
||||
import IconCallOff from '@/assets/icons/call.off.svg';
|
||||
import IconCallAnswer from '@/assets/icons/call.svg';
|
||||
import IconMicOff from '@/assets/icons/mic.off.svg';
|
||||
import IconMic from '@/assets/icons/mic.on.svg';
|
||||
import IconCamera from '@/assets/icons/camera.svg';
|
||||
import IconCameraOff from '@/assets/icons/camera.off.svg';
|
||||
import IconScreen from '@/assets/icons/share.screen.svg';
|
||||
import { VoicingInfo, updateCalling } from "@/app/slices/voice";
|
||||
import { useVoice } from "@/components/Voice";
|
||||
import { playAgoraVideo } from "@/utils";
|
||||
import Avatar from "@/components/Avatar";
|
||||
|
||||
type VoicingMember = {
|
||||
id: number,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// import { useEffect } from "react";
|
||||
import { ChatPrefixes } from "../../../app/config";
|
||||
import { ChatPrefixes } from "@/app/config";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { ChatContext } from "../../../types/common";
|
||||
import { ChatContext } from "@/types/common";
|
||||
type Props = {
|
||||
context: ChatContext,
|
||||
name: string
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// import { useEffect } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import Button from "../../../common/component/styled/Button";
|
||||
import Button from "@/components/styled/Button";
|
||||
// type Props = {};
|
||||
|
||||
const LicenseUpgradeTip = () => {
|
||||
|
||||
@@ -3,9 +3,9 @@ import clsx from "clsx";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { resetAuthData } from "../../../app/slices/auth.data";
|
||||
import Button from "../../../common/component/styled/Button";
|
||||
import useLogout from "../../../common/hook/useLogout";
|
||||
import { resetAuthData } from "@/app/slices/auth.data";
|
||||
import Button from "@/components/styled/Button";
|
||||
import useLogout from "@/hooks/useLogout";
|
||||
type Props = {
|
||||
placement?: "session" | "chat"
|
||||
};
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
import { FC, useState } from "react";
|
||||
import { useKey } from "rooks";
|
||||
import toast from "react-hot-toast";
|
||||
import useDeleteMessage from "../../../common/hook/useDeleteMessage";
|
||||
import useFavMessage from "../../../common/hook/useFavMessage";
|
||||
import { updateSelectMessages } from "../../../app/slices/ui";
|
||||
import IconForward from "../../../assets/icons/forward.svg";
|
||||
import IconBookmark from "../../../assets/icons/bookmark.svg";
|
||||
import IconDelete from "../../../assets/icons/delete.svg";
|
||||
import IconClose from "../../../assets/icons/close.circle.svg";
|
||||
import ForwardModal from "../../../common/component/ForwardModal";
|
||||
import DeleteMessageConfirmModal from "../../../common/component/DeleteMessageConfirm";
|
||||
import { useAppDispatch, useAppSelector } from "../../../app/store";
|
||||
import { ChatContext } from "../../../types/common";
|
||||
import useDeleteMessage from "@/hooks/useDeleteMessage";
|
||||
import useFavMessage from "@/hooks/useFavMessage";
|
||||
import { updateSelectMessages } from "@/app/slices/ui";
|
||||
import IconForward from "@/assets/icons/forward.svg";
|
||||
import IconBookmark from "@/assets/icons/bookmark.svg";
|
||||
import IconDelete from "@/assets/icons/delete.svg";
|
||||
import IconClose from "@/assets/icons/close.circle.svg";
|
||||
import ForwardModal from "@/components/ForwardModal";
|
||||
import DeleteMessageConfirmModal from "@/components/DeleteMessageConfirm";
|
||||
import { useAppDispatch, useAppSelector } from "@/app/store";
|
||||
import { ChatContext } from "@/types/common";
|
||||
|
||||
type Props = {
|
||||
context: ChatContext;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Waveform } from '@uiball/loaders';
|
||||
import clsx from 'clsx';
|
||||
// import React from 'react'
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { NavLink, useLocation } from 'react-router-dom';
|
||||
import { useAppSelector } from '../../../../app/store';
|
||||
import EditIcon from "../../../../assets/icons/edit.svg";
|
||||
import clsx from 'clsx';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Waveform } from '@uiball/loaders';
|
||||
|
||||
import { useAppSelector } from '@/app/store';
|
||||
import EditIcon from "@/assets/icons/edit.svg";
|
||||
|
||||
type ChannelHeaderProps = {
|
||||
cid: number
|
||||
|
||||
@@ -4,15 +4,15 @@ import { useEffect, useRef, useCallback, useState } from 'react';
|
||||
import { useDebounce } from 'rooks';
|
||||
import { Virtuoso, VirtuosoHandle } from 'react-virtuoso';
|
||||
|
||||
import { useLazyLoadMoreMessagesQuery, useReadMessageMutation } from '../../../../app/services/message';
|
||||
import { useAppSelector } from '../../../../app/store';
|
||||
import { useLazyLoadMoreMessagesQuery, useReadMessageMutation } from '@/app/services/message';
|
||||
import { useAppSelector } from '@/app/store';
|
||||
import { renderMessageFragment } from '../../utils';
|
||||
import NewMessageBottomTip from "../NewMessageBottomTip";
|
||||
import CustomList from './CustomList';
|
||||
import CustomHeader from './CustomHeader';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { updateHistoryMark } from '../../../../app/slices/footprint';
|
||||
import { ChatContext } from '../../../../types/common';
|
||||
import { updateHistoryMark } from '@/app/slices/footprint';
|
||||
import { ChatContext } from '@/types/common';
|
||||
type Props = {
|
||||
context: ChatContext,
|
||||
id: number
|
||||
|
||||
@@ -5,21 +5,21 @@ import clsx from "clsx";
|
||||
import { toast } from "react-hot-toast";
|
||||
|
||||
|
||||
import Send from "../../../common/component/Send";
|
||||
import Send from "@/components/Send";
|
||||
import Operations from "./Operations";
|
||||
import useUploadFile from "../../../common/hook/useUploadFile";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import useUploadFile from "@/hooks/useUploadFile";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import LoginTip from "./LoginTip";
|
||||
import useLicense from "../../../common/hook/useLicense";
|
||||
import useLicense from "@/hooks/useLicense";
|
||||
import LicenseUpgradeTip from "./LicenseOutdatedTip";
|
||||
import DnDTip from "./DnDTip";
|
||||
import IconWarning from '../../../assets/icons/warning.svg';
|
||||
import ImagePreview from "../../../common/component/ImagePreview";
|
||||
import IconWarning from '@/assets/icons/warning.svg';
|
||||
import ImagePreview from "@/components/ImagePreview";
|
||||
|
||||
import VirtualMessageFeed from "./VirtualMessageFeed";
|
||||
import DMVoice from "./DMVoicing";
|
||||
import AddContactTip from "./AddContactTip";
|
||||
import { ChatContext } from "../../../types/common";
|
||||
import { ChatContext } from "@/types/common";
|
||||
|
||||
interface Props {
|
||||
readonly?: boolean;
|
||||
|
||||
@@ -2,18 +2,18 @@
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import clsx from 'clsx';
|
||||
import { useAppSelector } from '../../app/store';
|
||||
import User from '../../common/component/User';
|
||||
import IconMic from '../../assets/icons/mic.on.svg';
|
||||
import IconMicOff from '../../assets/icons/mic.off.svg';
|
||||
import IconCallOff from '../../assets/icons/headphone.svg';
|
||||
import IconSoundOn from '../../assets/icons/sound.on.svg';
|
||||
import IconSoundOff from '../../assets/icons/sound.off.svg';
|
||||
// import IconCameraOff from '../../assets/icons/camera.off.svg';
|
||||
import IconCamera from '../../assets/icons/camera.svg';
|
||||
import IconScreen from '../../assets/icons/share.screen.svg';
|
||||
import { useVoice } from '../../common/component/Voice';
|
||||
import Signal from '../../common/component/Signal';
|
||||
import Tooltip from '../../common/component/Tooltip';
|
||||
import User from '../../components/User';
|
||||
import IconMic from '@/assets/icons/mic.on.svg';
|
||||
import IconMicOff from '@/assets/icons/mic.off.svg';
|
||||
import IconCallOff from '@/assets/icons/headphone.svg';
|
||||
import IconSoundOn from '@/assets/icons/sound.on.svg';
|
||||
import IconSoundOff from '@/assets/icons/sound.off.svg';
|
||||
// import IconCameraOff from '@/assets/icons/camera.off.svg';
|
||||
import IconCamera from '@/assets/icons/camera.svg';
|
||||
import IconScreen from '@/assets/icons/share.screen.svg';
|
||||
import { useVoice } from '../../components/Voice';
|
||||
import Signal from '../../components/Signal';
|
||||
import Tooltip from '../../components/Tooltip';
|
||||
import { ChatContext } from '../../types/common';
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -2,15 +2,15 @@ import { FC, ReactElement } from "react";
|
||||
import Tippy from "@tippyjs/react";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { useNavigate, useLocation, useMatch } from "react-router-dom";
|
||||
import { usePinChatMutation, useUnpinChatMutation, useUpdateMuteSettingMutation } from "../../../app/services/user";
|
||||
import { useReadMessageMutation } from "../../../app/services/message";
|
||||
import { removeUserSession } from "../../../app/slices/message.user";
|
||||
import ContextMenu, { Item } from "../../../common/component/ContextMenu";
|
||||
import useUserOperation from "../../../common/hook/useUserOperation";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import { usePinChatMutation, useUnpinChatMutation, useUpdateMuteSettingMutation } from "@/app/services/user";
|
||||
import { useReadMessageMutation } from "@/app/services/message";
|
||||
import { removeUserSession } from "@/app/slices/message.user";
|
||||
import ContextMenu, { Item } from "@/components/ContextMenu";
|
||||
import useUserOperation from "@/hooks/useUserOperation";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { ChatContext } from "../../../types/common";
|
||||
import { compareVersion } from "../../../common/utils";
|
||||
import { ChatContext } from "@/types/common";
|
||||
import { compareVersion } from "@/utils";
|
||||
type Props = {
|
||||
context: ChatContext;
|
||||
pinned: boolean;
|
||||
|
||||
@@ -6,16 +6,16 @@ import { NativeTypes } from "react-dnd-html5-backend";
|
||||
import { useNavigate, NavLink, useMatch } from "react-router-dom";
|
||||
import ContextMenu from "./ContextMenu";
|
||||
import getUnreadCount, { renderPreviewMessage } from "../utils";
|
||||
import User from "../../../common/component/User";
|
||||
import Avatar from "../../../common/component/Avatar";
|
||||
import IconLock from "../../../assets/icons/lock.svg";
|
||||
import IconMute from "../../../assets/icons/mute.svg";
|
||||
import IconVoicing from "../../../assets/icons/voicing.svg";
|
||||
import useContextMenu from "../../../common/hook/useContextMenu";
|
||||
import useUploadFile from "../../../common/hook/useUploadFile";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import { fromNowTime } from "../../../common/utils";
|
||||
import { ChatContext } from "../../../types/common";
|
||||
import User from "@/components/User";
|
||||
import Avatar from "@/components/Avatar";
|
||||
import IconLock from "@/assets/icons/lock.svg";
|
||||
import IconMute from "@/assets/icons/mute.svg";
|
||||
import IconVoicing from "@/assets/icons/voicing.svg";
|
||||
import useContextMenu from "@/hooks/useContextMenu";
|
||||
import useUploadFile from "@/hooks/useUploadFile";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import { fromNowTime } from "@/utils";
|
||||
import { ChatContext } from "@/types/common";
|
||||
|
||||
interface IProps {
|
||||
type?: ChatContext;
|
||||
|
||||
@@ -3,10 +3,10 @@ import { useState, useEffect } from "react";
|
||||
import { ViewportList } from "react-viewport-list";
|
||||
import Session from "./Session";
|
||||
import DeleteChannelConfirmModal from "../../settingChannel/DeleteConfirmModal";
|
||||
import InviteModal from "../../../common/component/InviteModal";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import { ChatContext } from "../../../types/common";
|
||||
import { PinChatTargetChannel, PinChatTargetUser } from "../../../types/sse";
|
||||
import InviteModal from "@/components/InviteModal";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import { ChatContext } from "@/types/common";
|
||||
import { PinChatTargetChannel, PinChatTargetUser } from "@/types/sse";
|
||||
export interface ChatSession {
|
||||
type: ChatContext;
|
||||
id: number;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// import { useEffect } from 'react';
|
||||
// import { useDispatch } from 'react-redux';
|
||||
import VoiceManagement from './VoiceManagement';
|
||||
import { useVoice } from '../../../common/component/Voice';
|
||||
import { useVoice } from '../../../components/Voice';
|
||||
import { ChatContext } from '../../../types/common';
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -4,19 +4,19 @@ import { useTranslation } from 'react-i18next';
|
||||
|
||||
import { VoicingInfo, updatePin } from '../../../app/slices/voice';
|
||||
import { useAppSelector } from '../../../app/store';
|
||||
import Avatar from '../../../common/component/Avatar';
|
||||
// import IconHeadphone from '../../../assets/icons/sound.on.svg';
|
||||
// import IconHeadphoneOff from '../../../assets/icons/sound.off.svg';
|
||||
import IconMic from '../../../assets/icons/mic.on.svg';
|
||||
import IconMicOff from '../../../assets/icons/mic.off.svg';
|
||||
import IconCameraOff from '../../../assets/icons/camera.off.svg';
|
||||
import IconCamera from '../../../assets/icons/camera.svg';
|
||||
import IconFullscreen from '../../../assets/icons/fullscreen.svg';
|
||||
import IconScreen from '../../../assets/icons/share.screen.svg';
|
||||
import IconCallOff from '../../../assets/icons/call.off.svg';
|
||||
import StyledButton from '../../../common/component/styled/Button';
|
||||
import Tooltip from '../../../common/component/Tooltip';
|
||||
import { playAgoraVideo } from '../../../common/utils';
|
||||
import Avatar from '../../../components/Avatar';
|
||||
// import IconHeadphone from '@/assets/icons/sound.on.svg';
|
||||
// import IconHeadphoneOff from '@/assets/icons/sound.off.svg';
|
||||
import IconMic from '@/assets/icons/mic.on.svg';
|
||||
import IconMicOff from '@/assets/icons/mic.off.svg';
|
||||
import IconCameraOff from '@/assets/icons/camera.off.svg';
|
||||
import IconCamera from '@/assets/icons/camera.svg';
|
||||
import IconFullscreen from '@/assets/icons/fullscreen.svg';
|
||||
import IconScreen from '@/assets/icons/share.screen.svg';
|
||||
import IconCallOff from '@/assets/icons/call.off.svg';
|
||||
import StyledButton from '../../../components/styled/Button';
|
||||
import Tooltip from '../../../components/Tooltip';
|
||||
import { playAgoraVideo } from '@/utils';
|
||||
import { ChatContext } from '../../../types/common';
|
||||
import { updateChannelVisibleAside } from '../../../app/slices/footprint';
|
||||
import { useDispatch } from 'react-redux';
|
||||
|
||||
@@ -5,9 +5,9 @@ import { useTranslation } from 'react-i18next';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { updateChannelVisibleAside, updateDMVisibleAside } from '../../../app/slices/footprint';
|
||||
import { useAppSelector } from '../../../app/store';
|
||||
import IconHeadphone from '../../../assets/icons/headphone.svg';
|
||||
import Tooltip from '../../../common/component/Tooltip';
|
||||
import { useVoice } from '../../../common/component/Voice';
|
||||
import IconHeadphone from '@/assets/icons/headphone.svg';
|
||||
import Tooltip from '../../../components/Tooltip';
|
||||
import { useVoice } from '../../../components/Voice';
|
||||
import { useGetAgoraStatusQuery } from '../../../app/services/server';
|
||||
import { ChatContext } from '../../../types/common';
|
||||
import { updateCalling } from '../../../app/slices/voice';
|
||||
|
||||
@@ -2,22 +2,22 @@ import { useEffect, useState, MouseEvent } from 'react';
|
||||
import { useDispatch } from 'react-redux';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import clsx from 'clsx';
|
||||
import IconMic from '../../assets/icons/mic.on.svg';
|
||||
import IconMicOff from '../../assets/icons/mic.off.svg';
|
||||
import IconCameraOff from '../../assets/icons/camera.off.svg';
|
||||
import IconPin from '../../assets/icons/pin.svg';
|
||||
import IconCamera from '../../assets/icons/camera.svg';
|
||||
import IconScreen from '../../assets/icons/share.screen.svg';
|
||||
import IconExitScreen from '../../assets/icons/fullscreen.exit.svg';
|
||||
import IconCallOff from '../../assets/icons/call.off.svg';
|
||||
import IconMic from '@/assets/icons/mic.on.svg';
|
||||
import IconMicOff from '@/assets/icons/mic.off.svg';
|
||||
import IconCameraOff from '@/assets/icons/camera.off.svg';
|
||||
import IconPin from '@/assets/icons/pin.svg';
|
||||
import IconCamera from '@/assets/icons/camera.svg';
|
||||
import IconScreen from '@/assets/icons/share.screen.svg';
|
||||
import IconExitScreen from '@/assets/icons/fullscreen.exit.svg';
|
||||
import IconCallOff from '@/assets/icons/call.off.svg';
|
||||
import { ChatContext } from '../../types/common';
|
||||
import { useAppSelector } from '../../app/store';
|
||||
import Avatar from '../../common/component/Avatar';
|
||||
import { playAgoraVideo } from '../../common/utils';
|
||||
import Avatar from '../../components/Avatar';
|
||||
import { playAgoraVideo } from '../../utils';
|
||||
import { updateChannelVisibleAside } from '../../app/slices/footprint';
|
||||
import Tooltip from '../../common/component/Tooltip';
|
||||
import { useVoice } from '../../common/component/Voice';
|
||||
import StyledButton from '../../common/component/styled/Button';
|
||||
import Tooltip from '../../components/Tooltip';
|
||||
import { useVoice } from '../../components/Voice';
|
||||
import StyledButton from '../../components/styled/Button';
|
||||
import { updatePin } from '../../app/slices/voice';
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -2,18 +2,18 @@ import { memo, useState } from "react";
|
||||
import { useMatch, useParams } from "react-router-dom";
|
||||
import clsx from "clsx";
|
||||
|
||||
import BlankPlaceholder from "../../common/component/BlankPlaceholder";
|
||||
import Server from "../../common/component/Server";
|
||||
import BlankPlaceholder from "@/components/BlankPlaceholder";
|
||||
import Server from "@/components/Server";
|
||||
import ChannelChat from "./ChannelChat";
|
||||
import DMChat from "./DMChat";
|
||||
import UsersModal from "../../common/component/UsersModal";
|
||||
import ChannelModal from "../../common/component/ChannelModal";
|
||||
import UsersModal from "@/components/UsersModal";
|
||||
import ChannelModal from "@/components/ChannelModal";
|
||||
import SessionList from "./SessionList";
|
||||
import { useAppSelector } from "../../app/store";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import GuestBlankPlaceholder from "./GuestBlankPlaceholder";
|
||||
import GuestChannelChat from "./GuestChannelChat";
|
||||
import GuestSessionList from "./GuestSessionList";
|
||||
import ErrorCatcher from "../../common/component/ErrorCatcher";
|
||||
import ErrorCatcher from "@/components/ErrorCatcher";
|
||||
import RTCWidget from "./RTCWidget";
|
||||
import VoiceFullscreen from "./VoiceFullscreen";
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import React from "react";
|
||||
import dayjs from "dayjs";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { isImage } from "../../common/utils";
|
||||
import { ContentTypes } from "../../app/config";
|
||||
import Checkbox from "../../common/component/styled/Checkbox";
|
||||
import Divider from "../../common/component/Divider";
|
||||
import Message from "../../common/component/Message";
|
||||
import { updateSelectMessages } from "../../app/slices/ui";
|
||||
import { useAppSelector } from "../../app/store";
|
||||
import LinkifyText from "../../common/component/LinkifyText";
|
||||
import { isImage } from "@/utils";
|
||||
import { ContentTypes } from "@/app/config";
|
||||
import Checkbox from "@/components/styled/Checkbox";
|
||||
import Divider from "@/components/Divider";
|
||||
import Message from "@/components/Message";
|
||||
import { updateSelectMessages } from "@/app/slices/ui";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import LinkifyText from "@/components/LinkifyText";
|
||||
import i18n from "../../i18n";
|
||||
import { ChatContext } from "../../types/common";
|
||||
import { ChatContext } from "@/types/common";
|
||||
|
||||
export function getUnreadCount({
|
||||
mids = [],
|
||||
|
||||
+13
-11
@@ -1,20 +1,22 @@
|
||||
import { useState, useEffect, MouseEvent } from "react";
|
||||
import FavoredMessage from "../../common/component/Message/FavoredMessage";
|
||||
import dayjs from "dayjs";
|
||||
import IconAudio from "../../assets/icons/file.audio.svg";
|
||||
import IconVideo from "../../assets/icons/file.video.svg";
|
||||
import IconUnknown from "../../assets/icons/file.unknown.svg";
|
||||
import IconImage from "../../assets/icons/file.image.svg";
|
||||
import IconChannel from "../../assets/icons/channel.svg";
|
||||
import IconRemove from "../../assets/icons/close.svg";
|
||||
import { ContentTypes } from "../../app/config";
|
||||
import { useAppSelector } from "../../app/store";
|
||||
import { Favorite } from "../../app/slices/favorites";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import clsx from "clsx";
|
||||
import useFavMessage from "../../common/hook/useFavMessage";
|
||||
|
||||
import FavoredMessage from "@/components/Message/FavoredMessage";
|
||||
import IconAudio from "@/assets/icons/file.audio.svg";
|
||||
import IconVideo from "@/assets/icons/file.video.svg";
|
||||
import IconUnknown from "@/assets/icons/file.unknown.svg";
|
||||
import IconImage from "@/assets/icons/file.image.svg";
|
||||
import IconChannel from "@/assets/icons/channel.svg";
|
||||
import IconRemove from "@/assets/icons/close.svg";
|
||||
import { ContentTypes } from "@/app/config";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import { Favorite } from "@/app/slices/favorites";
|
||||
import useFavMessage from "@/hooks/useFavMessage";
|
||||
|
||||
type filter = "audio" | "video" | "image" | "";
|
||||
|
||||
function FavsPage() {
|
||||
const { t } = useTranslation("fav");
|
||||
const [filter, setFilter] = useState<filter>("");
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { FC } from "react";
|
||||
import { NavLink, useLocation } from "react-router-dom";
|
||||
import Tooltip from "../../common/component/Tooltip";
|
||||
import IconSetting from "../../assets/icons/setting.svg";
|
||||
import Tooltip from "@/components/Tooltip";
|
||||
import IconSetting from "@/assets/icons/setting.svg";
|
||||
type Props = {};
|
||||
const Menu: FC<Props> = () => {
|
||||
const { pathname } = useLocation();
|
||||
|
||||
@@ -3,9 +3,9 @@ import React from 'react';
|
||||
import { NavLink, useLocation, useMatch } from 'react-router-dom';
|
||||
import { useAppSelector } from '../../app/store';
|
||||
|
||||
import ChatIcon from "../../assets/icons/chat.svg";
|
||||
import UserIcon from "../../assets/icons/user.svg";
|
||||
import SettingIcon from "../../assets/icons/setting.svg";
|
||||
import ChatIcon from "@/assets/icons/chat.svg";
|
||||
import UserIcon from "@/assets/icons/user.svg";
|
||||
import SettingIcon from "@/assets/icons/setting.svg";
|
||||
|
||||
// type Props = {}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { FC } from "react";
|
||||
import { NavLink, useLocation } from "react-router-dom";
|
||||
import Avatar from "../../common/component/Avatar";
|
||||
import { useAppSelector } from "../../app/store";
|
||||
import Avatar from "@/components/Avatar";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
|
||||
interface Props {
|
||||
uid: number;
|
||||
|
||||
+15
-15
@@ -4,23 +4,23 @@ import { useTranslation } from "react-i18next";
|
||||
import { useDispatch } from "react-redux";
|
||||
|
||||
import User from "./User";
|
||||
import Loading from "../../common/component/Loading";
|
||||
import Loading from "@/components/Loading";
|
||||
import Menu from "./Menu";
|
||||
import usePreload from "../../common/hook/usePreload";
|
||||
import Tooltip from "../../common/component/Tooltip";
|
||||
import Notification from "../../common/component/Notification";
|
||||
import Manifest from "../../common/component/Manifest";
|
||||
import ChatIcon from "../../assets/icons/chat.svg";
|
||||
import UserIcon from "../../assets/icons/user.svg";
|
||||
import FavIcon from "../../assets/icons/bookmark.svg";
|
||||
import FolderIcon from "../../assets/icons/folder.svg";
|
||||
import { useAppSelector } from "../../app/store";
|
||||
import usePreload from "@/hooks/usePreload";
|
||||
import Tooltip from "@/components/Tooltip";
|
||||
import Notification from "@/components/Notification";
|
||||
import Manifest from "@/components/Manifest";
|
||||
import ChatIcon from "@/assets/icons/chat.svg";
|
||||
import UserIcon from "@/assets/icons/user.svg";
|
||||
import FavIcon from "@/assets/icons/bookmark.svg";
|
||||
import FolderIcon from "@/assets/icons/folder.svg";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import MobileNavs from "./MobileNavs";
|
||||
import { updateRememberedNavs } from "../../app/slices/ui";
|
||||
import UnreadTabTip from "../../common/component/UnreadTabTip";
|
||||
import ReLoginModal from "../../common/component/ReLoginModal";
|
||||
import Voice from "../../common/component/Voice";
|
||||
import ServerVersionChecker from "../../common/component/ServerVersionChecker";
|
||||
import { updateRememberedNavs } from "@/app/slices/ui";
|
||||
import UnreadTabTip from "@/components/UnreadTabTip";
|
||||
import ReLoginModal from "@/components/ReLoginModal";
|
||||
import Voice from "@/components/Voice";
|
||||
import ServerVersionChecker from "@/components/ServerVersionChecker";
|
||||
|
||||
|
||||
function HomePage() {
|
||||
|
||||
@@ -25,14 +25,14 @@ const ResourceManagement = lazy(() => import("./resources"));
|
||||
const GuestLogin = lazy(() => import("./guest"));
|
||||
const ChatPage = lazy(() => import("./chat"));
|
||||
const HomePage = lazy(() => import("./home"));
|
||||
import RequireAuth from "../common/component/RequireAuth";
|
||||
import RequireNoAuth from "../common/component/RequireNoAuth";
|
||||
import Meta from "../common/component/Meta";
|
||||
import RequireAuth from "@/components/RequireAuth";
|
||||
import RequireNoAuth from "@/components/RequireNoAuth";
|
||||
import Meta from "@/components/Meta";
|
||||
import LazyIt from './lazy';
|
||||
import store, { useAppSelector } from "../app/store";
|
||||
import useDeviceToken from "../common/component/Notification/useDeviceToken";
|
||||
import useDeviceToken from "@/components/Notification/useDeviceToken";
|
||||
import { vapidKey } from "../app/config";
|
||||
import RequireSingleTab from "../common/component/RequireSingleTab";
|
||||
import RequireSingleTab from "@/components/RequireSingleTab";
|
||||
import InvitePrivate from "./invitePrivate";
|
||||
let toastId: string;
|
||||
const PageRoutes = () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useEffect } from 'react';
|
||||
import { useNavigate, useParams, useSearchParams } from 'react-router-dom';
|
||||
import { useJoinPrivateChannelMutation, useLazyGetChannelQuery } from '../../app/services/channel';
|
||||
import StyledButton from '../../common/component/styled/Button';
|
||||
import StyledButton from '../../components/styled/Button';
|
||||
import { useCheckMagicTokenValidMutation } from '../../app/services/auth';
|
||||
import { useAppSelector } from '../../app/store';
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
import { ReactNode, Suspense, FC } from "react";
|
||||
import Loading from "../common/component/Loading";
|
||||
import Loading from "@/components/Loading";
|
||||
|
||||
type Props = {
|
||||
children?: ReactNode;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import Button from "@/components/styled/Button";
|
||||
|
||||
export default function MagicLinkLogin() {
|
||||
const navigate = useNavigate();
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* eslint-disable no-undef */
|
||||
import { useState, useEffect, useRef } from "react";
|
||||
import MetaMaskOnboarding from "@metamask/onboarding";
|
||||
import { useLazyGetMetamaskNonceQuery } from "../../app/services/auth";
|
||||
import metamaskSvg from "../../assets/icons/metamask.svg?url";
|
||||
import { LoginCredential } from "../../types/auth";
|
||||
import { useLazyGetMetamaskNonceQuery } from "@/app/services/auth";
|
||||
import metamaskSvg from "@/assets/icons/metamask.svg?url";
|
||||
import { LoginCredential } from "@/types/auth";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { AuthType } from "../../types/common";
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import { AuthType } from "@/types/common";
|
||||
import Button from "@/components/styled/Button";
|
||||
// import toast from "react-hot-toast";
|
||||
|
||||
export default function MetamaskLoginButton({
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
/* eslint-disable no-undef */
|
||||
import { FC, useState } from "react";
|
||||
import StyledModal from "../../common/component/styled/Modal";
|
||||
import Modal from "../../common/component/Modal";
|
||||
import StyledButton from "../../common/component/styled/Button";
|
||||
import StyledModal from "@/components/styled/Modal";
|
||||
import Modal from "@/components/Modal";
|
||||
import StyledButton from "@/components/styled/Button";
|
||||
import OidcLoginEntry from "./OidcLoginEntry";
|
||||
import { OIDCConfig } from "../../types/auth";
|
||||
import { OIDCConfig } from "@/types/auth";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { AuthType } from "../../types/common";
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import { AuthType } from "@/types/common";
|
||||
import Button from "@/components/styled/Button";
|
||||
interface IProps {
|
||||
issuers?: OIDCConfig[];
|
||||
type?: AuthType
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useEffect, FC } from "react";
|
||||
import { useGetOpenidMutation } from "../../app/services/auth";
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import { OIDCConfig } from "../../types/auth";
|
||||
import { useGetOpenidMutation } from "@/app/services/auth";
|
||||
import Button from "@/components/styled/Button";
|
||||
import { OIDCConfig } from "@/types/auth";
|
||||
|
||||
const OidcLoginEntry: FC<{ issuer: OIDCConfig }> = ({ issuer }) => {
|
||||
const [getOpenId, { data, isLoading, isSuccess }] = useGetOpenidMutation();
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { useEffect } from 'react';
|
||||
import toast from 'react-hot-toast';
|
||||
import { useGetLoginConfigQuery } from "../../app/services/server";
|
||||
import useGithubAuthConfig from "../../common/hook/useGithubAuthConfig";
|
||||
import useGoogleAuthConfig from "../../common/hook/useGoogleAuthConfig";
|
||||
import GoogleLoginButton from "../../common/component/GoogleLoginButton";
|
||||
import GithubLoginButton from "../../common/component/GithubLoginButton";
|
||||
import { useGetLoginConfigQuery } from "@/app/services/server";
|
||||
import useGithubAuthConfig from "@/hooks/useGithubAuthConfig";
|
||||
import useGoogleAuthConfig from "@/hooks/useGoogleAuthConfig";
|
||||
import GoogleLoginButton from "@/components/GoogleLoginButton";
|
||||
import GithubLoginButton from "@/components/GithubLoginButton";
|
||||
import MetamaskLoginButton from "./MetamaskLoginButton";
|
||||
import OidcLoginButton from "./OidcLoginButton";
|
||||
import { useLoginMutation } from '../../app/services/auth';
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
/* eslint-disable no-undef */
|
||||
import { useState, useEffect, FormEvent, ChangeEvent } from "react";
|
||||
import toast from "react-hot-toast";
|
||||
import BASE_URL from "../../app/config";
|
||||
import BASE_URL from "@/app/config";
|
||||
|
||||
import Input from "../../common/component/styled/Input";
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import Input from "@/components/styled/Input";
|
||||
import Button from "@/components/styled/Button";
|
||||
import MagicLinkLogin from "./MagicLinkLogin";
|
||||
import SignUpLink from "./SignUpLink";
|
||||
import { useLoginMutation } from "../../app/services/auth";
|
||||
import { useGetLoginConfigQuery, useGetSMTPStatusQuery } from "../../app/services/server";
|
||||
import useGoogleAuthConfig from "../../common/hook/useGoogleAuthConfig";
|
||||
import { useLoginMutation } from "@/app/services/auth";
|
||||
import { useGetLoginConfigQuery, useGetSMTPStatusQuery } from "@/app/services/server";
|
||||
import useGoogleAuthConfig from "@/hooks/useGoogleAuthConfig";
|
||||
import { FetchBaseQueryError } from "@reduxjs/toolkit/dist/query";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import SocialLoginButtons from "./SocialLoginButtons";
|
||||
import Divider from "../../common/component/Divider";
|
||||
import { useAppSelector } from "../../app/store";
|
||||
import Divider from "@/components/Divider";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
|
||||
export default function LoginPage() {
|
||||
const serverName = useAppSelector(store => store.server.name);
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { useState, useEffect } from "react";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { useNavigate, useParams } from "react-router-dom";
|
||||
import { useLoginMutation } from "../../app/services/auth";
|
||||
import { useLoginMutation } from "@/app/services/auth";
|
||||
import toast from "react-hot-toast";
|
||||
import { setAuthData } from "../../app/slices/auth.data";
|
||||
import { setAuthData } from "@/app/slices/auth.data";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
export default function OAuthPage() {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { useState, useEffect, ChangeEvent } from 'react';
|
||||
import { toast } from "react-hot-toast";
|
||||
import StyledInput from "../../../common/component/styled/Input";
|
||||
import StyledButton from "../../../common/component/styled/Button";
|
||||
import { useGetFrontendUrlQuery, useUpdateFrontendUrlMutation } from "../../../app/services/server";
|
||||
import InfoIcon from '../../../assets/icons/info.svg';
|
||||
import StyledInput from "@/components/styled/Input";
|
||||
import StyledButton from "@/components/styled/Button";
|
||||
import { useGetFrontendUrlQuery, useUpdateFrontendUrlMutation } from "@/app/services/server";
|
||||
import InfoIcon from '@/assets/icons/info.svg';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { useEffect, useState, FC, useRef } from "react";
|
||||
import toast from "react-hot-toast";
|
||||
import { useDispatch } from "react-redux";
|
||||
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 {
|
||||
useCreateAdminMutation,
|
||||
useGetServerQuery,
|
||||
useUpdateServerMutation
|
||||
} from "../../../app/services/server";
|
||||
import { useLoginMutation } from "../../../app/services/auth";
|
||||
import { updateInitialized } from "../../../app/slices/auth.data";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
} from "@/app/services/server";
|
||||
import { useLoginMutation } from "@/app/services/auth";
|
||||
import { updateInitialized } from "@/app/slices/auth.data";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useWizard } from "react-use-wizard";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import StyledButton from "../../../common/component/styled/Button";
|
||||
import PlayIcon from "../../../assets/icons/play.svg?url";
|
||||
import StyledButton from "@/components/styled/Button";
|
||||
import PlayIcon from "@/assets/icons/play.svg?url";
|
||||
import { Trans, useTranslation } from "react-i18next";
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useWizard } from "react-use-wizard";
|
||||
import StyledInput from "../../../common/component/styled/Input";
|
||||
import StyledButton from "../../../common/component/styled/Button";
|
||||
import useInviteLink from "../../../common/hook/useInviteLink";
|
||||
import ServerVersionChecker from "../../../common/component/ServerVersionChecker";
|
||||
import StyledInput from "@/components/styled/Input";
|
||||
import StyledButton from "@/components/styled/Button";
|
||||
import useInviteLink from "@/hooks/useInviteLink";
|
||||
import ServerVersionChecker from "@/components/ServerVersionChecker";
|
||||
import UpdateFrontendURL from "./UpdateFrontendURL";
|
||||
|
||||
export default function InviteLink() {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { FC } from "react";
|
||||
import toast from "react-hot-toast";
|
||||
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 { useTranslation } from "react-i18next";
|
||||
import { useWizard } from "react-use-wizard";
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import StyledButton from "../../../common/component/styled/Button";
|
||||
import PlayIcon from "../../../assets/icons/play.svg?url";
|
||||
import StyledButton from "@/components/styled/Button";
|
||||
import PlayIcon from "@/assets/icons/play.svg?url";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useWizard } from "react-use-wizard";
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import toast from "react-hot-toast";
|
||||
import StyledRadio from "../../../common/component/styled/Radio";
|
||||
import StyledButton from "../../../common/component/styled/Button";
|
||||
import { useGetLoginConfigQuery, useUpdateLoginConfigMutation } from "../../../app/services/server";
|
||||
import { WhoCanSignUp } from "../../../types/server";
|
||||
import StyledRadio from "@/components/styled/Radio";
|
||||
import StyledButton from "@/components/styled/Button";
|
||||
import { useGetLoginConfigQuery, useUpdateLoginConfigMutation } from "@/app/services/server";
|
||||
import { WhoCanSignUp } from "@/types/server";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useWizard } from "react-use-wizard";
|
||||
|
||||
|
||||
@@ -3,12 +3,12 @@ import { useDispatch } from "react-redux";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useParams } from "react-router-dom";
|
||||
import toast from "react-hot-toast";
|
||||
import { setAuthData } from "../../app/slices/auth.data";
|
||||
import Input from "../../common/component/styled/Input";
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import { useLoginMutation, useCheckMagicTokenValidMutation } from "../../app/services/auth";
|
||||
import { setAuthData } from "@/app/slices/auth.data";
|
||||
import Input from "@/components/styled/Input";
|
||||
import Button from "@/components/styled/Button";
|
||||
import { useLoginMutation, useCheckMagicTokenValidMutation } from "@/app/services/auth";
|
||||
import ExpiredTip from "./ExpiredTip";
|
||||
import { useRegisterMutation } from "../../app/services/auth";
|
||||
import { useRegisterMutation } from "@/app/services/auth";
|
||||
import { useMagicToken } from "./index";
|
||||
|
||||
const RegWithUsername: FC = () => {
|
||||
|
||||
@@ -2,19 +2,19 @@ import { useState, useEffect, ChangeEvent, FormEvent } from "react";
|
||||
import toast from "react-hot-toast";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import BASE_URL, { KEY_LOCAL_MAGIC_TOKEN } from "../../app/config";
|
||||
import Input from "../../common/component/styled/Input";
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import { useLazyCheckEmailQuery, useRegisterMutation, useSendRegMagicLinkMutation } from "../../app/services/auth";
|
||||
import BASE_URL, { KEY_LOCAL_MAGIC_TOKEN } from "@/app/config";
|
||||
import Input from "@/components/styled/Input";
|
||||
import Button from "@/components/styled/Button";
|
||||
import { useLazyCheckEmailQuery, useRegisterMutation, useSendRegMagicLinkMutation } from "@/app/services/auth";
|
||||
import EmailNextTip from "./EmailNextStepTip";
|
||||
import SignInLink from "./SignInLink";
|
||||
import Divider from "../../common/component/Divider";
|
||||
import Divider from "@/components/Divider";
|
||||
|
||||
import { useGetLoginConfigQuery } from "../../app/services/server";
|
||||
import { useGetLoginConfigQuery } from "@/app/services/server";
|
||||
import SocialLoginButtons from "../login/SocialLoginButtons";
|
||||
import { setAuthData } from "../../app/slices/auth.data";
|
||||
import { setAuthData } from "@/app/slices/auth.data";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { useAppSelector } from "../../app/store";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import { useMagicToken } from "./index";
|
||||
|
||||
interface AuthForm {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useEffect } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { NavLink, useSearchParams } from 'react-router-dom';
|
||||
import { isMobile } from '../../common/utils';
|
||||
import { isMobile } from '../../utils';
|
||||
|
||||
export default function SignInLink({ token }: { token?: string }) {
|
||||
const { t } = useTranslation("auth");
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { FC } from "react";
|
||||
import CheckSign from "../../../assets/icons/check.sign.svg";
|
||||
import ChannelIcon from "../../../common/component/ChannelIcon";
|
||||
import CheckSign from "@/assets/icons/check.sign.svg";
|
||||
import ChannelIcon from "@/components/ChannelIcon";
|
||||
import Search from "../Search";
|
||||
import useFilteredChannels from "../../../common/hook/useFilteredChannels";
|
||||
import useFilteredChannels from "@/hooks/useFilteredChannels";
|
||||
|
||||
type Props = {
|
||||
select: number;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { FC } from "react";
|
||||
import CheckSign from "../../../assets/icons/check.sign.svg";
|
||||
import CheckSign from "@/assets/icons/check.sign.svg";
|
||||
|
||||
|
||||
export const Dates = {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { FC } from "react";
|
||||
import Search from "../Search";
|
||||
import CheckSign from "../../../assets/icons/check.sign.svg";
|
||||
import User from "../../../common/component/User";
|
||||
import useFilteredUsers from "../../../common/hook/useFilteredUsers";
|
||||
import CheckSign from "@/assets/icons/check.sign.svg";
|
||||
import User from "@/components/User";
|
||||
import useFilteredUsers from "@/hooks/useFilteredUsers";
|
||||
|
||||
type Props = {
|
||||
select: number;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import IconPdf from "../../../assets/icons/file.pdf.svg";
|
||||
import IconAudio from "../../../assets/icons/file.audio.svg";
|
||||
import IconVideo from "../../../assets/icons/file.video.svg";
|
||||
import IconUnknown from "../../../assets/icons/file.unknown.svg";
|
||||
import IconDoc from "../../../assets/icons/file.doc.svg";
|
||||
import IconCode from "../../../assets/icons/file.code.svg";
|
||||
import IconImage from "../../../assets/icons/file.image.svg";
|
||||
import CheckSign from "../../../assets/icons/check.sign.svg";
|
||||
import IconPdf from "@/assets/icons/file.pdf.svg";
|
||||
import IconAudio from "@/assets/icons/file.audio.svg";
|
||||
import IconVideo from "@/assets/icons/file.video.svg";
|
||||
import IconUnknown from "@/assets/icons/file.unknown.svg";
|
||||
import IconDoc from "@/assets/icons/file.doc.svg";
|
||||
import IconCode from "@/assets/icons/file.code.svg";
|
||||
import IconImage from "@/assets/icons/file.image.svg";
|
||||
import CheckSign from "@/assets/icons/check.sign.svg";
|
||||
import { FC } from "react";
|
||||
|
||||
export const FileTypes = {
|
||||
|
||||
@@ -2,13 +2,13 @@ import { useState } from "react";
|
||||
import Tippy from "@tippyjs/react";
|
||||
import clsx from "clsx";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import Avatar from "../../../common/component/Avatar";
|
||||
import Avatar from "@/components/Avatar";
|
||||
import FilterDate, { Dates } from "./Date";
|
||||
import FilterFrom from "./From";
|
||||
import FilterChannel from "./Channel";
|
||||
import FilterType, { FileTypes } from "./Type";
|
||||
import ArrowDown from "../../../assets/icons/arrow.down.svg";
|
||||
import { useAppSelector } from "../../../app/store";
|
||||
import ArrowDown from "@/assets/icons/arrow.down.svg";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
|
||||
const getClass = (selected: boolean) => {
|
||||
return clsx(`cursor-pointer flex items-center gap-1 md:gap-2 shadow rounded-lg p-1 md:py-2 md:px-3 text-xs text-gray-900 dark:text-gray-200`, selected ? 'text-white bg-primary-400' : 'border border-solid border-gray-300 dark:border-gray-400 ');
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import clsx from "clsx";
|
||||
import { ChangeEvent, FC } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import IconSearch from "../../assets/icons/search.svg";
|
||||
import IconSearch from "@/assets/icons/search.svg";
|
||||
interface Props {
|
||||
value?: string;
|
||||
updateSearchValue?: (value: string) => void;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { MouseEvent } from "react";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { updateFileListView } from "../../app/slices/ui";
|
||||
import IconList from "../../assets/icons/file.list.svg";
|
||||
import IconGrid from "../../assets/icons/file.grid.svg";
|
||||
import { updateFileListView } from "@/app/slices/ui";
|
||||
import IconList from "@/assets/icons/file.list.svg";
|
||||
import IconGrid from "@/assets/icons/file.grid.svg";
|
||||
import clsx from "clsx";
|
||||
|
||||
const getClass = (selected: boolean) => clsx(`cursor-pointer p-2 box-border flex-center`, selected && `border border-solid border-primary-400 shadow rounded-lg`);
|
||||
|
||||
@@ -4,8 +4,8 @@ import Masonry from "masonry-layout";
|
||||
import View from "./View";
|
||||
import Search from "./Search";
|
||||
import Filter from "./Filter";
|
||||
import FileBox from "../../common/component/FileBox";
|
||||
import { useAppSelector } from "../../app/store";
|
||||
import FileBox from "@/components/FileBox";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import clsx from "clsx";
|
||||
const checkFilter = (data, filter, channelMessage) => {
|
||||
let selected = true;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import Button from "@/components/styled/Button";
|
||||
import { FC, MouseEvent } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { useState, useEffect, ChangeEvent, FormEvent } from "react";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import toast from "react-hot-toast";
|
||||
import BASE_URL from "../../app/config";
|
||||
import Input from "../../common/component/styled/Input";
|
||||
import Button from "../../common/component/styled/Button";
|
||||
import { useSendLoginMagicLinkMutation } from "../../app/services/auth";
|
||||
import BASE_URL from "@/app/config";
|
||||
import Input from "@/components/styled/Input";
|
||||
import Button from "@/components/styled/Button";
|
||||
import { useSendLoginMagicLinkMutation } from "@/app/services/auth";
|
||||
import SentTip from "./SentTip";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import SocialLoginButtons from "../login/SocialLoginButtons";
|
||||
import Divider from "../../common/component/Divider";
|
||||
import Divider from "@/components/Divider";
|
||||
import SignInLink from "../reg/SignInLink";
|
||||
import { useAppSelector } from "../../app/store";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
|
||||
export default function SendMagicLinkPage() {
|
||||
const { t } = useTranslation("auth");
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
|
||||
@@ -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 = () => {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,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,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 {
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
|
||||
@@ -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" | "";
|
||||
|
||||
@@ -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,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,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,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 = {}
|
||||
|
||||
@@ -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 = {}
|
||||
|
||||
@@ -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 = () => {
|
||||
|
||||
@@ -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,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 = {}
|
||||
|
||||
@@ -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 = () => {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,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 }) => {
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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" });
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user