refactor(import): fix import order

This commit is contained in:
haitao(lj) 2022-10-31 11:39:33 +08:00
parent e2cf6d2b3d
commit d3cd9a94dd
35 changed files with 65 additions and 41 deletions

View File

@ -3,7 +3,6 @@ import { Row, Col, ListGroup } from 'react-bootstrap';
import { NavLink, useParams, useSearchParams } from 'react-router-dom'; import { NavLink, useParams, useSearchParams } from 'react-router-dom';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQuestionList } from '@/services';
import type * as Type from '@answer/common/interface'; import type * as Type from '@answer/common/interface';
import { import {
Icon, Icon,
@ -15,6 +14,8 @@ import {
QueryGroup, QueryGroup,
} from '@answer/components'; } from '@answer/components';
import { useQuestionList } from '@/services';
const QuestionOrderKeys: Type.QuestionOrderBy[] = [ const QuestionOrderKeys: Type.QuestionOrderBy[] = [
'newest', 'newest',
'active', 'active',

View File

@ -6,9 +6,10 @@ import { marked } from 'marked';
import classNames from 'classnames'; import classNames from 'classnames';
import { useTagModal } from '@answer/hooks'; import { useTagModal } from '@answer/hooks';
import { queryTags } from '@/services';
import type * as Type from '@answer/common/interface'; import type * as Type from '@answer/common/interface';
import { queryTags } from '@/services';
import './index.scss'; import './index.scss';
interface IProps { interface IProps {

View File

@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react';
import { Button, Col } from 'react-bootstrap'; import { Button, Col } from 'react-bootstrap';
import { Trans, useTranslation } from 'react-i18next'; import { Trans, useTranslation } from 'react-i18next';
import { resendEmail, checkImgCode } from '@/services';
import { PicAuthCodeModal } from '@answer/components/Modal'; import { PicAuthCodeModal } from '@answer/components/Modal';
import type { import type {
ImgCodeRes, ImgCodeRes,
@ -11,6 +10,7 @@ import type {
} from '@answer/common/interface'; } from '@answer/common/interface';
import { loggedUserInfoStore } from '@answer/stores'; import { loggedUserInfoStore } from '@answer/stores';
import { resendEmail, checkImgCode } from '@/services';
import { CAPTCHA_CODE_STORAGE_KEY } from '@/common/constants'; import { CAPTCHA_CODE_STORAGE_KEY } from '@/common/constants';
import Storage from '@/utils/storage'; import Storage from '@/utils/storage';

View File

@ -4,9 +4,10 @@ import { useTranslation } from 'react-i18next';
import ReactDOM from 'react-dom/client'; import ReactDOM from 'react-dom/client';
import { changeUserStatus } from '@/services';
import { Modal as AnswerModal } from '@answer/components'; import { Modal as AnswerModal } from '@answer/components';
import { changeUserStatus } from '@/services';
const div = document.createElement('div'); const div = document.createElement('div');
const root = ReactDOM.createRoot(div); const root = ReactDOM.createRoot(div);

View File

@ -14,9 +14,10 @@ import {
} from '@answer/components'; } from '@answer/components';
import { ADMIN_LIST_STATUS } from '@answer/common/constants'; import { ADMIN_LIST_STATUS } from '@answer/common/constants';
import { useEditStatusModal } from '@answer/hooks'; import { useEditStatusModal } from '@answer/hooks';
import { useAnswerSearch, changeAnswerStatus } from '@/services';
import * as Type from '@answer/common/interface'; import * as Type from '@answer/common/interface';
import { useAnswerSearch, changeAnswerStatus } from '@/services';
import '../index.scss'; import '../index.scss';
const answerFilterItems: Type.AdminContentsFilterBy[] = ['normal', 'deleted']; const answerFilterItems: Type.AdminContentsFilterBy[] = ['normal', 'deleted'];

View File

@ -12,6 +12,7 @@ import {
} from '@answer/components'; } from '@answer/components';
import { useReportModal } from '@answer/hooks'; import { useReportModal } from '@answer/hooks';
import * as Type from '@answer/common/interface'; import * as Type from '@answer/common/interface';
import { useFlagSearch } from '@/services'; import { useFlagSearch } from '@/services';
import '../index.scss'; import '../index.scss';

View File

@ -5,6 +5,7 @@ import { useTranslation } from 'react-i18next';
import type * as Type from '@answer/common/interface'; import type * as Type from '@answer/common/interface';
import { useToast } from '@answer/hooks'; import { useToast } from '@answer/hooks';
import { siteInfoStore } from '@answer/stores'; import { siteInfoStore } from '@answer/stores';
import { useGeneralSetting, updateGeneralSetting } from '@/services'; import { useGeneralSetting, updateGeneralSetting } from '@/services';
import '../index.scss'; import '../index.scss';

View File

@ -8,6 +8,9 @@ import {
FormDataType, FormDataType,
AdminSettingsInterface, AdminSettingsInterface,
} from '@answer/common/interface'; } from '@answer/common/interface';
import { interfaceStore } from '@answer/stores';
import { UploadImg } from '@answer/components';
import { import {
languages, languages,
uploadAvatar, uploadAvatar,
@ -15,8 +18,6 @@ import {
useInterfaceSetting, useInterfaceSetting,
useThemeOptions, useThemeOptions,
} from '@/services'; } from '@/services';
import { interfaceStore } from '@answer/stores';
import { UploadImg } from '@answer/components';
import '../index.scss'; import '../index.scss';

View File

@ -14,12 +14,13 @@ import {
} from '@answer/components'; } from '@answer/components';
import { ADMIN_LIST_STATUS } from '@answer/common/constants'; import { ADMIN_LIST_STATUS } from '@answer/common/constants';
import { useEditStatusModal, useReportModal } from '@answer/hooks'; import { useEditStatusModal, useReportModal } from '@answer/hooks';
import * as Type from '@answer/common/interface';
import { import {
useQuestionSearch, useQuestionSearch,
changeQuestionStatus, changeQuestionStatus,
deleteQuestion, deleteQuestion,
} from '@/services'; } from '@/services';
import * as Type from '@answer/common/interface';
import '../index.scss'; import '../index.scss';

View File

@ -3,7 +3,6 @@ import { Button, Form, Table, Badge } from 'react-bootstrap';
import { useSearchParams } from 'react-router-dom'; import { useSearchParams } from 'react-router-dom';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQueryUsers } from '@/services';
import { import {
Pagination, Pagination,
FormatTime, FormatTime,
@ -14,6 +13,8 @@ import {
import * as Type from '@answer/common/interface'; import * as Type from '@answer/common/interface';
import { useChangeModal } from '@answer/hooks'; import { useChangeModal } from '@answer/hooks';
import { useQueryUsers } from '@/services';
import '../index.scss'; import '../index.scss';
const UserFilterKeys: Type.UserFilterBy[] = [ const UserFilterKeys: Type.UserFilterBy[] = [

View File

@ -7,8 +7,8 @@ import { SWRConfig } from 'swr';
import { siteInfoStore, interfaceStore, toastStore } from '@answer/stores'; import { siteInfoStore, interfaceStore, toastStore } from '@answer/stores';
import { Header, AdminHeader, Footer, Toast } from '@answer/components'; import { Header, AdminHeader, Footer, Toast } from '@answer/components';
import { useSiteSettings } from '@/services';
import { useSiteSettings } from '@/services';
import Storage from '@/utils/storage'; import Storage from '@/utils/storage';
import { CURRENT_LANG_STORAGE_KEY } from '@/common/constants'; import { CURRENT_LANG_STORAGE_KEY } from '@/common/constants';

View File

@ -7,6 +7,10 @@ import dayjs from 'dayjs';
import classNames from 'classnames'; import classNames from 'classnames';
import { Editor, EditorRef, TagSelector, PageTitle } from '@answer/components'; import { Editor, EditorRef, TagSelector, PageTitle } from '@answer/components';
import type * as Type from '@answer/common/interface';
import SearchQuestion from './components/SearchQuestion';
import { import {
saveQuestion, saveQuestion,
questionDetail, questionDetail,
@ -15,9 +19,6 @@ import {
postAnswer, postAnswer,
useQueryQuestionByTitle, useQueryQuestionByTitle,
} from '@/services'; } from '@/services';
import type * as Type from '@answer/common/interface';
import SearchQuestion from './components/SearchQuestion';
interface FormDataItem { interface FormDataItem {
title: Type.FormValue<string>; title: Type.FormValue<string>;

View File

@ -11,10 +11,11 @@ import {
FormatTime, FormatTime,
htmlRender, htmlRender,
} from '@answer/components'; } from '@answer/components';
import { acceptanceAnswer } from '@/services';
import { scrollTop } from '@answer/utils'; import { scrollTop } from '@answer/utils';
import { AnswerItem } from '@answer/common/interface'; import { AnswerItem } from '@answer/common/interface';
import { acceptanceAnswer } from '@/services';
interface Props { interface Props {
data: AnswerItem; data: AnswerItem;
/** router answer id */ /** router answer id */

View File

@ -13,6 +13,7 @@ import {
htmlRender, htmlRender,
} from '@answer/components'; } from '@answer/components';
import { formatCount } from '@answer/utils'; import { formatCount } from '@answer/utils';
import { following } from '@/services'; import { following } from '@/services';
interface Props { interface Props {

View File

@ -3,9 +3,9 @@ import { Card, ListGroup } from 'react-bootstrap';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useSimilarQuestion } from '@/services';
import { Icon } from '@answer/components'; import { Icon } from '@answer/components';
import { useSimilarQuestion } from '@/services';
import { loggedUserInfoStore } from '@/stores'; import { loggedUserInfoStore } from '@/stores';
interface Props { interface Props {

View File

@ -6,9 +6,10 @@ import { marked } from 'marked';
import classNames from 'classnames'; import classNames from 'classnames';
import { Editor, Modal } from '@answer/components'; import { Editor, Modal } from '@answer/components';
import { postAnswer } from '@/services';
import { FormDataType } from '@answer/common/interface'; import { FormDataType } from '@answer/common/interface';
import { postAnswer } from '@/services';
interface Props { interface Props {
visible?: boolean; visible?: boolean;
data: { data: {

View File

@ -2,7 +2,6 @@ import { useEffect, useState } from 'react';
import { Container, Row, Col } from 'react-bootstrap'; import { Container, Row, Col } from 'react-bootstrap';
import { useParams, useSearchParams, useNavigate } from 'react-router-dom'; import { useParams, useSearchParams, useNavigate } from 'react-router-dom';
import { questionDetail, getAnswers } from '@/services';
import { Pagination, PageTitle } from '@answer/components'; import { Pagination, PageTitle } from '@answer/components';
import { loggedUserInfoStore } from '@answer/stores'; import { loggedUserInfoStore } from '@answer/stores';
import { scrollTop } from '@answer/utils'; import { scrollTop } from '@answer/utils';
@ -22,6 +21,8 @@ import {
Alert, Alert,
} from './components'; } from './components';
import { questionDetail, getAnswers } from '@/services';
import './index.scss'; import './index.scss';
const Index = () => { const Index = () => {

View File

@ -7,12 +7,13 @@ import dayjs from 'dayjs';
import classNames from 'classnames'; import classNames from 'classnames';
import { Editor, EditorRef, Icon, PageTitle } from '@answer/components'; import { Editor, EditorRef, Icon, PageTitle } from '@answer/components';
import type * as Type from '@answer/common/interface';
import { import {
useQueryAnswerInfo, useQueryAnswerInfo,
modifyAnswer, modifyAnswer,
useQueryRevisions, useQueryRevisions,
} from '@/services'; } from '@/services';
import type * as Type from '@answer/common/interface';
import './index.scss'; import './index.scss';

View File

@ -4,10 +4,11 @@ import { useTranslation } from 'react-i18next';
import { useSearchParams } from 'react-router-dom'; import { useSearchParams } from 'react-router-dom';
import { Pagination, PageTitle } from '@answer/components'; import { Pagination, PageTitle } from '@answer/components';
import { useSearch } from '@/services';
import { Head, SearchHead, SearchItem, Tips, Empty } from './components'; import { Head, SearchHead, SearchItem, Tips, Empty } from './components';
import { useSearch } from '@/services';
const Index = () => { const Index = () => {
const { t } = useTranslation('translation'); const { t } = useTranslation('translation');
const [searchParams] = useSearchParams(); const [searchParams] = useSearchParams();

View File

@ -5,8 +5,8 @@ import { useTranslation } from 'react-i18next';
import * as Type from '@answer/common/interface'; import * as Type from '@answer/common/interface';
import { PageTitle, FollowingTags } from '@answer/components'; import { PageTitle, FollowingTags } from '@answer/components';
import { useTagInfo, useFollow } from '@/services';
import { useTagInfo, useFollow } from '@/services';
import QuestionList from '@/components/QuestionList'; import QuestionList from '@/components/QuestionList';
import HotQuestions from '@/components/HotQuestions'; import HotQuestions from '@/components/HotQuestions';

View File

@ -7,10 +7,11 @@ import dayjs from 'dayjs';
import classNames from 'classnames'; import classNames from 'classnames';
import { Editor, EditorRef, PageTitle } from '@answer/components'; import { Editor, EditorRef, PageTitle } from '@answer/components';
import { useTagInfo, modifyTag, useQueryRevisions } from '@/services';
import { loggedUserInfoStore } from '@answer/stores'; import { loggedUserInfoStore } from '@answer/stores';
import type * as Type from '@answer/common/interface'; import type * as Type from '@answer/common/interface';
import { useTagInfo, modifyTag, useQueryRevisions } from '@/services';
interface FormDataItem { interface FormDataItem {
displayName: Type.FormValue<string>; displayName: Type.FormValue<string>;
slugName: Type.FormValue<string>; slugName: Type.FormValue<string>;

View File

@ -12,6 +12,7 @@ import {
Modal, Modal,
PageTitle, PageTitle,
} from '@answer/components'; } from '@answer/components';
import { import {
useTagInfo, useTagInfo,
useQuerySynonymsTags, useQuerySynonymsTags,

View File

@ -3,10 +3,11 @@ import { Container, Row, Col, Card, Button, Form } from 'react-bootstrap';
import { useSearchParams } from 'react-router-dom'; import { useSearchParams } from 'react-router-dom';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useQueryTags, following } from '@/services';
import { Tag, Pagination, PageTitle, QueryGroup } from '@answer/components'; import { Tag, Pagination, PageTitle, QueryGroup } from '@answer/components';
import { formatCount } from '@answer/utils'; import { formatCount } from '@answer/utils';
import { useQueryTags, following } from '@/services';
const sortBtns = ['popular', 'name', 'newest']; const sortBtns = ['popular', 'name', 'newest'];
const Tags = () => { const Tags = () => {

View File

@ -2,13 +2,13 @@ import { FC, memo, useEffect, useState } from 'react';
import { Form, Button } from 'react-bootstrap'; import { Form, Button } from 'react-bootstrap';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { resetPassword, checkImgCode } from '@/services';
import type { import type {
ImgCodeRes, ImgCodeRes,
PasswordResetReq, PasswordResetReq,
FormDataType, FormDataType,
} from '@answer/common/interface'; } from '@answer/common/interface';
import { resetPassword, checkImgCode } from '@/services';
import { PicAuthCodeModal } from '@/components/Modal'; import { PicAuthCodeModal } from '@/components/Modal';
interface IProps { interface IProps {

View File

@ -1,10 +1,10 @@
import { FC, memo, useEffect } from 'react'; import { FC, memo, useEffect } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { activateAccount } from '@/services';
import { loggedUserInfoStore } from '@answer/stores'; import { loggedUserInfoStore } from '@answer/stores';
import { getQueryString } from '@answer/utils'; import { getQueryString } from '@answer/utils';
import { activateAccount } from '@/services';
import { PageTitle } from '@/components'; import { PageTitle } from '@/components';
const Index: FC = () => { const Index: FC = () => {

View File

@ -4,7 +4,6 @@ import { Link, useSearchParams } from 'react-router-dom';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { changeEmailVerify } from '@/services'; import { changeEmailVerify } from '@/services';
import { PageTitle } from '@/components'; import { PageTitle } from '@/components';
const Index: FC = () => { const Index: FC = () => {

View File

@ -3,16 +3,17 @@ import { Container, Row, Col, ButtonGroup, Button } from 'react-bootstrap';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useParams, useNavigate } from 'react-router-dom'; import { useParams, useNavigate } from 'react-router-dom';
import { PageTitle } from '@answer/components';
import Inbox from './components/Inbox';
import Achievements from './components/Achievements';
import { import {
useQueryNotifications, useQueryNotifications,
clearUnreadNotification, clearUnreadNotification,
clearNotificationStatus, clearNotificationStatus,
readNotification, readNotification,
} from '@/services'; } from '@/services';
import { PageTitle } from '@answer/components';
import Inbox from './components/Inbox';
import Achievements from './components/Achievements';
const PAGE_SIZE = 10; const PAGE_SIZE = 10;

View File

@ -5,11 +5,6 @@ import { useParams, useSearchParams } from 'react-router-dom';
import { Pagination, FormatTime, PageTitle, Empty } from '@answer/components'; import { Pagination, FormatTime, PageTitle, Empty } from '@answer/components';
import { loggedUserInfoStore } from '@answer/stores'; import { loggedUserInfoStore } from '@answer/stores';
import {
usePersonalInfoByName,
usePersonalTop,
usePersonalListByTabName,
} from '@/services';
import { import {
UserInfo, UserInfo,
@ -24,6 +19,12 @@ import {
Votes, Votes,
} from './components'; } from './components';
import {
usePersonalInfoByName,
usePersonalTop,
usePersonalListByTabName,
} from '@/services';
const Personal: FC = () => { const Personal: FC = () => {
const { tabName = 'overview', username = '' } = useParams(); const { tabName = 'overview', username = '' } = useParams();
const [searchParams] = useSearchParams(); const [searchParams] = useSearchParams();

View File

@ -3,9 +3,9 @@ import { Form, Button, Col } from 'react-bootstrap';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { Trans, useTranslation } from 'react-i18next'; import { Trans, useTranslation } from 'react-i18next';
import { register } from '@/services';
import type { FormDataType } from '@answer/common/interface'; import type { FormDataType } from '@answer/common/interface';
import { register } from '@/services';
import userStore from '@/stores/userInfo'; import userStore from '@/stores/userInfo';
interface Props { interface Props {

View File

@ -3,9 +3,10 @@ import { Form, Button } from 'react-bootstrap';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import type * as Type from '@answer/common/interface'; import type * as Type from '@answer/common/interface';
import { getLoggedUserInfo, changeEmail } from '@/services';
import { useToast } from '@answer/hooks'; import { useToast } from '@answer/hooks';
import { getLoggedUserInfo, changeEmail } from '@/services';
const reg = /(?<=.{2}).+(?=@)/gi; const reg = /(?<=.{2}).+(?=@)/gi;
const Index: FC = () => { const Index: FC = () => {

View File

@ -2,10 +2,11 @@ import React, { FC, FormEvent, useState } from 'react';
import { Form, Button } from 'react-bootstrap'; import { Form, Button } from 'react-bootstrap';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { modifyPassword } from '@/services';
import { useToast } from '@answer/hooks'; import { useToast } from '@answer/hooks';
import type { FormDataType } from '@answer/common/interface'; import type { FormDataType } from '@answer/common/interface';
import { modifyPassword } from '@/services';
const Index: FC = () => { const Index: FC = () => {
const { t } = useTranslation('translation', { const { t } = useTranslation('translation', {
keyPrefix: 'settings.account', keyPrefix: 'settings.account',

View File

@ -6,10 +6,10 @@ import dayjs from 'dayjs';
import en from 'dayjs/locale/en'; import en from 'dayjs/locale/en';
import zh from 'dayjs/locale/zh-cn'; import zh from 'dayjs/locale/zh-cn';
import { languages } from '@/services';
import type { LangsType, FormDataType } from '@answer/common/interface'; import type { LangsType, FormDataType } from '@answer/common/interface';
import { useToast } from '@answer/hooks'; import { useToast } from '@answer/hooks';
import { languages } from '@/services';
import { DEFAULT_LANG, CURRENT_LANG_STORAGE_KEY } from '@/common/constants'; import { DEFAULT_LANG, CURRENT_LANG_STORAGE_KEY } from '@/common/constants';
import Storage from '@/utils/storage'; import Storage from '@/utils/storage';

View File

@ -3,9 +3,10 @@ import { Form, Button } from 'react-bootstrap';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import type { FormDataType } from '@answer/common/interface'; import type { FormDataType } from '@answer/common/interface';
import { setNotice, getLoggedUserInfo } from '@/services';
import { useToast } from '@answer/hooks'; import { useToast } from '@answer/hooks';
import { setNotice, getLoggedUserInfo } from '@/services';
const Index = () => { const Index = () => {
const toast = useToast(); const toast = useToast();
const { t } = useTranslation('translation', { const { t } = useTranslation('translation', {

View File

@ -4,12 +4,13 @@ import { Trans, useTranslation } from 'react-i18next';
import { marked } from 'marked'; import { marked } from 'marked';
import { modifyUserInfo, uploadAvatar, getLoggedUserInfo } from '@/services';
import type { FormDataType } from '@answer/common/interface'; import type { FormDataType } from '@answer/common/interface';
import { UploadImg, Avatar } from '@answer/components'; import { UploadImg, Avatar } from '@answer/components';
import { loggedUserInfoStore } from '@answer/stores'; import { loggedUserInfoStore } from '@answer/stores';
import { useToast } from '@answer/hooks'; import { useToast } from '@answer/hooks';
import { modifyUserInfo, uploadAvatar, getLoggedUserInfo } from '@/services';
const Index: React.FC = () => { const Index: React.FC = () => {
const { t } = useTranslation('translation', { const { t } = useTranslation('translation', {
keyPrefix: 'settings.profile', keyPrefix: 'settings.profile',

View File

@ -3,11 +3,11 @@ import { Container, Row, Col } from 'react-bootstrap';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { Outlet } from 'react-router-dom'; import { Outlet } from 'react-router-dom';
import { getLoggedUserInfo } from '@/services';
import type { FormDataType } from '@answer/common/interface'; import type { FormDataType } from '@answer/common/interface';
import Nav from './components/Nav'; import Nav from './components/Nav';
import { getLoggedUserInfo } from '@/services';
import { PageTitle } from '@/components'; import { PageTitle } from '@/components';
const Index: React.FC = () => { const Index: React.FC = () => {