From 21ea49f7c7a11d2c5726e654f630d29663f02dbb Mon Sep 17 00:00:00 2001 From: kyuuseiryuu Date: Thu, 26 Mar 2026 15:54:42 +0900 Subject: [PATCH] refactor(global): import alias @ --- src/components/AppBar.tsx | 2 +- src/components/BattleTable.tsx | 6 +++--- src/components/BindKaiqiuAccount.tsx | 2 +- src/components/CascaderProvinceCity.tsx | 2 +- src/components/ClubEventList.tsx | 2 +- src/components/ClubSearchTable.tsx | 4 ++-- src/components/ClubSummary.tsx | 6 +++--- src/components/EventCard.tsx | 8 ++++---- src/components/FavButton.tsx | 4 ++-- src/components/GamePanel.tsx | 2 +- src/components/GameSelector/GameSelector.tsx | 10 +++++----- src/components/GameTable.tsx | 2 +- src/components/GroupMember.tsx | 2 +- src/components/GroupingPrediction.tsx | 4 ++-- src/components/Layout/AppBarLayout.tsx | 8 ++++---- src/components/Layout/BaseLayout.tsx | 4 ++-- src/components/NotificationPermissionContorl.tsx | 2 +- src/components/PlayerList.tsx | 2 +- src/components/Tags.tsx | 2 +- src/context/WebsocketContext.tsx | 2 +- src/hooks/useAuthHeaders.tsx | 2 +- src/hooks/useHandlerServerMessage.tsx | 4 ++-- src/page/ClubEvents.tsx | 6 +++--- src/page/EventPage.tsx | 4 ++-- src/page/FavPlayersPage.tsx | 8 ++++---- src/page/FindUserPage.tsx | 6 +++--- src/page/ProfilePage.tsx | 14 +++++++------- src/page/UserCenter.tsx | 14 +++++++------- tsconfig.json | 5 ++++- 29 files changed, 71 insertions(+), 68 deletions(-) diff --git a/src/components/AppBar.tsx b/src/components/AppBar.tsx index 5e15357..da498e3 100644 --- a/src/components/AppBar.tsx +++ b/src/components/AppBar.tsx @@ -2,7 +2,7 @@ import { HeartOutlined, ScheduleOutlined, SearchOutlined, UserOutlined } from "@ import { Button, Flex } from "antd"; import { useNavigate } from "react-router"; import styled from "styled-components"; -import { isRunningStandalone } from "../utils/front"; +import { isRunningStandalone } from "@/utils/front"; const StyledContainer = styled.div` position: fixed; diff --git a/src/components/BattleTable.tsx b/src/components/BattleTable.tsx index 3aef4fc..fb97d7f 100644 --- a/src/components/BattleTable.tsx +++ b/src/components/BattleTable.tsx @@ -1,12 +1,12 @@ -import type { BasePlayer } from "../types"; +import type { BasePlayer } from "@/types"; import { useCallback, useEffect, useMemo, useState } from "react"; -import { calculate, getRoundTable } from "../utils/common"; +import { calculate, getRoundTable } from "@/utils/common"; import { Button, Card, Divider, Flex, Table, Modal, Typography, Input } from "antd"; import styled from "styled-components"; import { cloneDeep } from "lodash"; import { ClearOutlined, EditOutlined, ShareAltOutlined } from "@ant-design/icons"; import { useLocation } from "react-router"; -import { MATCH_RESULT_MAP_KEY } from "../utils/constants"; +import { MATCH_RESULT_MAP_KEY } from "@/utils/constants"; const StyledContainer = styled(Flex)` min-width: 300px; diff --git a/src/components/BindKaiqiuAccount.tsx b/src/components/BindKaiqiuAccount.tsx index a4d1fd1..d234b2b 100644 --- a/src/components/BindKaiqiuAccount.tsx +++ b/src/components/BindKaiqiuAccount.tsx @@ -1,5 +1,5 @@ import { useRequest } from "ahooks"; -import { useAuthHeaders } from "../hooks/useAuthHeaders"; +import { useAuthHeaders } from "@/hooks/useAuthHeaders"; import { Alert, App, Button, Drawer, Flex, Form, Input, Skeleton, Space, Spin, Typography } from "antd"; import { ExportOutlined, LinkOutlined } from "@ant-design/icons"; import { useCallback, useState } from "react"; diff --git a/src/components/CascaderProvinceCity.tsx b/src/components/CascaderProvinceCity.tsx index 1a6551e..3c15ebb 100644 --- a/src/components/CascaderProvinceCity.tsx +++ b/src/components/CascaderProvinceCity.tsx @@ -1,7 +1,7 @@ import { Cascader } from "antd"; import { useMemo } from "react"; -const provinceCityConfig = require('../private/city.json'); +const provinceCityConfig = require('@/private/city.json'); interface Props { onChange?: (province?: string, city?: string) => void; diff --git a/src/components/ClubEventList.tsx b/src/components/ClubEventList.tsx index b802b63..fb2fde9 100644 --- a/src/components/ClubEventList.tsx +++ b/src/components/ClubEventList.tsx @@ -1,5 +1,5 @@ import { Button, Divider, Empty, Flex, Pagination, Skeleton, Space, Switch, Typography } from "antd"; -import type { IEventInfo } from "../types"; +import type { IEventInfo } from "@/types"; import { useCallback, useEffect, useMemo, useState } from "react"; import { EventCard } from "./EventCard"; import { useRequest } from "ahooks"; diff --git a/src/components/ClubSearchTable.tsx b/src/components/ClubSearchTable.tsx index 548c923..7cd8d18 100644 --- a/src/components/ClubSearchTable.tsx +++ b/src/components/ClubSearchTable.tsx @@ -1,9 +1,9 @@ import { useRequest } from "ahooks"; import { Avatar, Button, Flex, Input, Radio, Space, Table } from "antd"; import { useCallback, useRef, useState } from "react"; -import type { ClubInfo } from "../types"; +import type { ClubInfo } from "@/types"; import { EyeOutlined, StarFilled, StarOutlined } from "@ant-design/icons"; -import { useClubStore } from "../store/useClubStore"; +import { useClubStore } from "@/store/useClubStore"; import { CascaderProvinceCity } from "./CascaderProvinceCity"; diff --git a/src/components/ClubSummary.tsx b/src/components/ClubSummary.tsx index 46a0417..7f46161 100644 --- a/src/components/ClubSummary.tsx +++ b/src/components/ClubSummary.tsx @@ -2,11 +2,11 @@ import { Avatar, Button, Drawer, Dropdown, Flex, Skeleton, Typography } from "an import { ChangeBackground } from "./ChangeBackground"; import { useMemo, useState } from "react"; import { useRequest } from "ahooks"; -import type { ClubDetail } from "../types"; -import { MapType, openWebMapRaw } from "../utils/front"; +import type { ClubDetail } from "@/types"; +import { MapType, openWebMapRaw } from "@/utils/front"; import type { ItemType } from "antd/es/menu/interface"; import { NotificationOutlined, PushpinOutlined, StarFilled, StarOutlined } from "@ant-design/icons"; -import { useClubStore } from "../store/useClubStore"; +import { useClubStore } from "@/store/useClubStore"; interface Props { clubId: string; diff --git a/src/components/EventCard.tsx b/src/components/EventCard.tsx index 80126cf..112ec50 100644 --- a/src/components/EventCard.tsx +++ b/src/components/EventCard.tsx @@ -1,5 +1,5 @@ import { Button, Card, Statistic, Typography } from "antd"; -import type { IEventInfo } from "../types"; +import type { IEventInfo } from "@/types"; import dayjs from "dayjs"; import utc from 'dayjs/plugin/utc'; import timezone from 'dayjs/plugin/timezone'; @@ -8,10 +8,10 @@ import { useCallback, useContext, useEffect, useMemo, useState } from "react"; import { useNavigate } from "react-router"; import type { TimerType } from "antd/lib/statistic/Timer"; import { useLogto } from "@logto/react"; -import { useAuthHeaders } from "../hooks/useAuthHeaders"; +import { useAuthHeaders } from "@/hooks/useAuthHeaders"; import { useRequest } from "ahooks"; -import { WebScoketContext } from "../context/WebsocketContext"; -import { getEventSubKey } from "../utils/common"; +import { WebScoketContext } from "@/context/WebsocketContext"; +import { getEventSubKey } from "@/utils/common"; dayjs.extend(utc); dayjs.extend(timezone); diff --git a/src/components/FavButton.tsx b/src/components/FavButton.tsx index 3f15c78..322f665 100644 --- a/src/components/FavButton.tsx +++ b/src/components/FavButton.tsx @@ -1,9 +1,9 @@ import { useCallback, useEffect, useState } from "react"; -import { useFavPlayerStore, type FavPlayer } from "../store/useFavPlayerStore"; +import { useFavPlayerStore, type FavPlayer } from "@/store/useFavPlayerStore"; import styled from "styled-components"; import { useRequest } from "ahooks"; import { useLogto } from "@logto/react"; -import { useAuthHeaders } from "../hooks/useAuthHeaders"; +import { useAuthHeaders } from "@/hooks/useAuthHeaders"; import { StarFilled, StarOutlined } from "@ant-design/icons"; interface Props { diff --git a/src/components/GamePanel.tsx b/src/components/GamePanel.tsx index aa49fc8..7cf9c6d 100644 --- a/src/components/GamePanel.tsx +++ b/src/components/GamePanel.tsx @@ -1,5 +1,5 @@ import type React from "react"; -import type { BasePlayer, Player } from "../types"; +import type { BasePlayer, Player } from "@/types"; import { Tabs } from "antd"; import { PlayerList } from "./PlayerList"; import { GroupingPrediction } from "./GroupingPrediction"; diff --git a/src/components/GameSelector/GameSelector.tsx b/src/components/GameSelector/GameSelector.tsx index 4bfcd16..e2a0cb5 100644 --- a/src/components/GameSelector/GameSelector.tsx +++ b/src/components/GameSelector/GameSelector.tsx @@ -2,14 +2,14 @@ import { Button, Drawer, Flex, Select } from 'antd'; import type React from 'react'; import { clubs } from './clubList'; import { useCallback, useEffect, useState } from 'react'; -import { ClubEvenList } from '../ClubEventList'; +import { ClubEvenList } from '@/components/ClubEventList'; import { SearchOutlined } from '@ant-design/icons'; -import { useClubStore } from '../../store/useClubStore'; -import { ClubSearchTable } from '../ClubSearchTable'; +import { useClubStore } from '@/store/useClubStore'; +import { ClubSearchTable } from '@/components/ClubSearchTable'; import styled, { createGlobalStyle } from 'styled-components'; import { useLocalStorageState } from 'ahooks'; -import { CLUB_SELECTOR_KEY } from '../../utils/constants'; -import { ClubSummary } from '../ClubSummary'; +import { CLUB_SELECTOR_KEY } from '@/utils/constants'; +import { ClubSummary } from '@/components/ClubSummary'; interface Props { } diff --git a/src/components/GameTable.tsx b/src/components/GameTable.tsx index 1a9e00b..017b8ab 100644 --- a/src/components/GameTable.tsx +++ b/src/components/GameTable.tsx @@ -1,5 +1,5 @@ import { Button, Divider, Flex, Table as AntTable, Skeleton } from "antd"; -import type { GamesData } from "../types"; +import type { GamesData } from "@/types"; import User from "./User"; import { useMemo, useState } from "react"; import { useRequest } from "ahooks"; diff --git a/src/components/GroupMember.tsx b/src/components/GroupMember.tsx index 4de9e75..f3045d9 100644 --- a/src/components/GroupMember.tsx +++ b/src/components/GroupMember.tsx @@ -1,6 +1,6 @@ import { useMemo, useState } from "react"; import { Button, Card, Drawer, Table } from "antd"; -import type { BasePlayer } from "../types"; +import type { BasePlayer } from "@/types"; import User from "./User"; import BattleTable from "./BattleTable"; import { ExpandOutlined } from "@ant-design/icons"; diff --git a/src/components/GroupingPrediction.tsx b/src/components/GroupingPrediction.tsx index 4696105..36d8cc5 100644 --- a/src/components/GroupingPrediction.tsx +++ b/src/components/GroupingPrediction.tsx @@ -1,9 +1,9 @@ import React, { useCallback, useEffect, useMemo, useState } from "react"; import { Button, Flex, Form, InputNumber, Segmented, Space, Switch } from "antd"; import { chunk } from 'lodash'; -import type { BasePlayer } from "../types"; +import type { BasePlayer } from "@/types"; import { GroupMember } from "./GroupMember"; -import { sneckGroup } from "../utils/common"; +import { sneckGroup } from "@/utils/common"; import { useLoaderData } from "react-router"; import { SyncOutlined } from "@ant-design/icons"; import { useRequest } from "ahooks"; diff --git a/src/components/Layout/AppBarLayout.tsx b/src/components/Layout/AppBarLayout.tsx index 946c9f3..0d1647f 100644 --- a/src/components/Layout/AppBarLayout.tsx +++ b/src/components/Layout/AppBarLayout.tsx @@ -1,11 +1,11 @@ import { Outlet, useNavigation } from "react-router"; -import { HydrateFallback } from "../HydrateFallback"; -import { AppBar } from "../AppBar"; +import { HydrateFallback } from "@/components/HydrateFallback"; +import { AppBar } from "@/components/AppBar"; import styled from "styled-components"; -import { WebScoketContext } from "../../context/WebsocketContext"; +import { WebScoketContext } from "@/context/WebsocketContext"; import { Alert } from "antd"; import { useEffect } from "react"; -import { initServiceWorker } from "../../utils/firebase-frontend"; +import { initServiceWorker } from "@/utils/firebase-frontend"; const StyledContainer = styled.div` padding-bottom: 90px; diff --git a/src/components/Layout/BaseLayout.tsx b/src/components/Layout/BaseLayout.tsx index c47fc9e..c4d496c 100644 --- a/src/components/Layout/BaseLayout.tsx +++ b/src/components/Layout/BaseLayout.tsx @@ -1,6 +1,6 @@ import { Outlet, useNavigation } from "react-router"; -import { HydrateFallback } from "../HydrateFallback"; -import { MenuButtons } from "../MenuButtons"; +import { HydrateFallback } from "@/components/HydrateFallback"; +import { MenuButtons } from "@/components/MenuButtons"; export function BaseLayout() { const navigation = useNavigation(); diff --git a/src/components/NotificationPermissionContorl.tsx b/src/components/NotificationPermissionContorl.tsx index 4c6b936..c391554 100644 --- a/src/components/NotificationPermissionContorl.tsx +++ b/src/components/NotificationPermissionContorl.tsx @@ -1,5 +1,5 @@ import { Button, Drawer, Flex, Form, Switch, Typography } from "antd"; -import { useNotificationControl } from "../hooks/useNotificationControl"; +import { useNotificationControl } from "@/hooks/useNotificationControl"; import { useCallback, useState } from "react"; const NotificationPermissionControl = () => { diff --git a/src/components/PlayerList.tsx b/src/components/PlayerList.tsx index 413e9f6..c3b08f2 100644 --- a/src/components/PlayerList.tsx +++ b/src/components/PlayerList.tsx @@ -1,5 +1,5 @@ import type React from "react"; -import type { Player } from "../types"; +import type { Player } from "@/types"; import { Avatar, Table } from "antd"; import User from "./User"; diff --git a/src/components/Tags.tsx b/src/components/Tags.tsx index e54051c..df1dab7 100644 --- a/src/components/Tags.tsx +++ b/src/components/Tags.tsx @@ -1,6 +1,6 @@ import { useRequest } from "ahooks"; import { Divider, Flex, Skeleton, Tag, Typography } from "antd"; -import { EType, type XCXTag } from "../types"; +import { EType, type XCXTag } from "@/types"; import { useLoaderData } from "react-router"; interface Props { diff --git a/src/context/WebsocketContext.tsx b/src/context/WebsocketContext.tsx index 60105b8..c4f71f0 100644 --- a/src/context/WebsocketContext.tsx +++ b/src/context/WebsocketContext.tsx @@ -1,5 +1,5 @@ import { createContext } from "react"; -import type { WsWebSendTopicPayload, WsWebSendTopics } from "../utils/common"; +import type { WsWebSendTopicPayload, WsWebSendTopics } from "@/utils/common"; interface MessageSender { messageSender?: (topic: T, data: WsWebSendTopicPayload[T]) => void; diff --git a/src/hooks/useAuthHeaders.tsx b/src/hooks/useAuthHeaders.tsx index 5891757..e2e1b51 100644 --- a/src/hooks/useAuthHeaders.tsx +++ b/src/hooks/useAuthHeaders.tsx @@ -1,6 +1,6 @@ import { useLogto } from "@logto/react" import { useEffect, useState } from "react"; -import { LOGTO_RESOURCE } from "../utils/constants"; +import { LOGTO_RESOURCE } from "@/utils/constants"; import { App, Button } from "antd"; import useAutoLogin from "./useAutoLogin"; diff --git a/src/hooks/useHandlerServerMessage.tsx b/src/hooks/useHandlerServerMessage.tsx index d0e1cd1..eda80e6 100644 --- a/src/hooks/useHandlerServerMessage.tsx +++ b/src/hooks/useHandlerServerMessage.tsx @@ -1,6 +1,6 @@ import { useCallback, useEffect } from "react"; -import { ensureTopicData, fromServerMessage } from "../utils/common"; -import { EVENT_WS_MESSAGE } from "../utils/constants"; +import { ensureTopicData, fromServerMessage } from "@/utils/common"; +import { EVENT_WS_MESSAGE } from "@/utils/constants"; import { App } from "antd"; export const useServerMessageHandler = () => { diff --git a/src/page/ClubEvents.tsx b/src/page/ClubEvents.tsx index 0d76fc3..ae8ecc3 100644 --- a/src/page/ClubEvents.tsx +++ b/src/page/ClubEvents.tsx @@ -1,7 +1,7 @@ import { useLoaderData } from "react-router"; -import type { ClubDetail } from "../types"; -import { ClubEvenList } from "../components/ClubEventList"; -import { ClubSummary } from "../components/ClubSummary"; +import type { ClubDetail } from "@/types"; +import { ClubEvenList } from "@/components/ClubEventList"; +import { ClubSummary } from "@/components/ClubSummary"; export const ClubEventsPage = () => { const { info } = useLoaderData<{ diff --git a/src/page/EventPage.tsx b/src/page/EventPage.tsx index 91a4b6f..49bcd14 100644 --- a/src/page/EventPage.tsx +++ b/src/page/EventPage.tsx @@ -1,6 +1,6 @@ import { useLoaderData } from "react-router"; -import { GamePanel } from "../components/GamePanel"; -import type { BasePlayer, MatchInfo, MatchSummary, XCXMember } from "../types"; +import { GamePanel } from "@/components/GamePanel"; +import type { BasePlayer, MatchInfo, MatchSummary, XCXMember } from "@/types"; import { Button, Typography } from "antd"; import { useMemo } from "react"; import { useTitle } from "ahooks"; diff --git a/src/page/FavPlayersPage.tsx b/src/page/FavPlayersPage.tsx index 38a5a8f..c50e2d6 100644 --- a/src/page/FavPlayersPage.tsx +++ b/src/page/FavPlayersPage.tsx @@ -1,13 +1,13 @@ import { Avatar, Button, Card, Divider, Flex, Image, Popconfirm, Radio, Segmented, Spin, Typography, App } from "antd"; -import { useFavPlayerStore, type FavPlayer } from "../store/useFavPlayerStore"; +import { useFavPlayerStore, type FavPlayer } from "@/store/useFavPlayerStore"; import { useNavigate } from "react-router"; import { useCallback, useEffect, useMemo, useState } from "react"; import { useLogto } from "@logto/react"; import { DeleteOutlined, LoginOutlined, SyncOutlined, UploadOutlined } from "@ant-design/icons"; import { useRequest } from "ahooks"; -import type { XCXProfile } from "../types"; -import useAutoLogin from "../hooks/useAutoLogin"; -import { useAuthHeaders } from "../hooks/useAuthHeaders"; +import type { XCXProfile } from "@/types"; +import useAutoLogin from "@/hooks/useAutoLogin"; +import { useAuthHeaders } from "@/hooks/useAuthHeaders"; import styled from "styled-components"; enum SortType { diff --git a/src/page/FindUserPage.tsx b/src/page/FindUserPage.tsx index 66e1d7d..03e8b9e 100644 --- a/src/page/FindUserPage.tsx +++ b/src/page/FindUserPage.tsx @@ -1,8 +1,8 @@ import { useLocalStorageState, useRequest } from "ahooks"; import { Input, Table, Spin, Typography, Flex } from "antd"; -import type { XCXFindUser, XCXFindUserResp } from "../types"; -import User from "../components/User"; -import { SEX } from "../utils/front"; +import type { XCXFindUser, XCXFindUserResp } from "@/types"; +import User from "@/components/User"; +import { SEX } from "@/utils/front"; import dayjs from "dayjs"; export function FindUserPage() { diff --git a/src/page/ProfilePage.tsx b/src/page/ProfilePage.tsx index a999fc4..4301a08 100644 --- a/src/page/ProfilePage.tsx +++ b/src/page/ProfilePage.tsx @@ -2,13 +2,13 @@ import React, { useEffect, useMemo } from "react"; import { Link, useLoaderData, useNavigate } from "react-router"; import { Avatar, Divider, Flex, Image, Typography } from "antd"; import { useTitle } from "ahooks"; -import type { XCXProfile } from "../types/profile"; -import User from "../components/User"; -import { ChangeBackground } from "../components/ChangeBackground"; -import UserTags from "../components/Tags"; -import { GameTable } from "../components/GameTable"; -import { FavButton } from "../components/FavButton"; -import { useFavPlayerStore } from "../store/useFavPlayerStore"; +import type { XCXProfile } from "@/types/profile"; +import User from "@/components/User"; +import { ChangeBackground } from "@/components/ChangeBackground"; +import UserTags from "@/components/Tags"; +import { GameTable } from "@/components/GameTable"; +import { FavButton } from "@/components/FavButton"; +import { useFavPlayerStore } from "@/store/useFavPlayerStore"; function Honor(props: { honors?: XCXProfile['honors'] }) { if (!props.honors?.length) return null; diff --git a/src/page/UserCenter.tsx b/src/page/UserCenter.tsx index 165bda5..d6b2b7b 100644 --- a/src/page/UserCenter.tsx +++ b/src/page/UserCenter.tsx @@ -3,13 +3,13 @@ import { useLogto, type IdTokenClaims } from "@logto/react"; import { App, Avatar, Button, Divider, Flex, Typography } from "antd"; import { useCallback, useEffect, useState } from "react"; import { useLocation, useNavigate } from "react-router"; -import { AUTH_CALLBACK_URL, USER_CENTER_URL } from "../utils/front"; -import useAutoLogin from "../hooks/useAutoLogin"; -import { LOGTO_DOMAIN } from "../utils/common"; -import { useAppVersion } from "../hooks/useAppVersion"; -import { BindKaiqiuAccount } from "../components/BindKaiqiuAccount"; -import { ChangeBackground } from "../components/ChangeBackground"; -import PermissionControlPanel from "../components/PermissionControlPanel"; +import { AUTH_CALLBACK_URL, USER_CENTER_URL } from "@/utils/front"; +import useAutoLogin from "@/hooks/useAutoLogin"; +import { LOGTO_DOMAIN } from "@/utils/common"; +import { useAppVersion } from "@/hooks/useAppVersion"; +import { BindKaiqiuAccount } from "@/components/BindKaiqiuAccount"; +import { ChangeBackground } from "@/components/ChangeBackground"; +import PermissionControlPanel from "@/components/PermissionControlPanel"; enum modifyRoutes { username = '/account/username', diff --git a/tsconfig.json b/tsconfig.json index ba4c18c..95b6ef6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -25,6 +25,9 @@ // Some stricter flags (disabled by default) "noUnusedLocals": false, "noUnusedParameters": false, - "noPropertyAccessFromIndexSignature": false + "noPropertyAccessFromIndexSignature": false, + "paths": { + "@/*": ["./src/*"] + } } }