refactor(types): 统一类型导入导出管理
- 将类型定义从各个模块统一到 type 文件中进行管理 - 移除 auth-session 中不再使用的 AuthSessionInput 和 AuthUser 类型导入 - 移除 game store 中多余的类型导入如 BetSelection、StartAutoHostingInput 等 - 将 i18n 模块中的 AppLanguage 类型改为从 type 文件导入 - 移除 mobile-header 中未使用的 MessageBroadcast 组件导入 - 统一各组件中的类型引用路径,全部指向 type 文件 - 修复 withdraw 组件中 currencies 映射的类型注解问题 - 更新 modal-store 中移除未使用的 ModalKey 类型导入
This commit is contained in:
@@ -22,12 +22,8 @@ import {
|
||||
} from '@/features/game/shared'
|
||||
import { cn } from '@/lib/utils'
|
||||
import { useAuthStore } from '@/store/auth'
|
||||
import {
|
||||
type RewardAnimationType,
|
||||
useGameAutoHostingStore,
|
||||
useGameRoundStore,
|
||||
} from '@/store/game'
|
||||
import type { BetSelection } from '@/type'
|
||||
import { useGameAutoHostingStore, useGameRoundStore } from '@/store/game'
|
||||
import type { BetSelection, RewardAnimationType } from '@/type'
|
||||
|
||||
const REWARD_OVERLAY_FADE_OUT_MS = 300
|
||||
const REWARD_CHILDREN_FADE_IN_MS = 2_000
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { useMutation } from '@tanstack/react-query'
|
||||
import { useRef } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { createDeposit, type DepositTierItem } from '@/api'
|
||||
import { createDeposit } from '@/api'
|
||||
import { DataLoadingIndicator } from '@/components/ui/data-loading-indicator'
|
||||
import { useDepositTierList } from '@/hooks/use-deposit-tier-list'
|
||||
import { notify } from '@/lib/notify'
|
||||
import { cn } from '@/lib/utils'
|
||||
import type { DepositTierItem } from '@/type'
|
||||
|
||||
const PANEL_CLASS =
|
||||
'rounded-md border border-[rgba(110,229,243,0.24)] bg-[linear-gradient(180deg,rgba(7,30,43,0.9),rgba(3,15,26,0.94))] shadow-[inset_0_0_calc(var(--design-unit)*14)_rgba(88,225,238,0.08),0_0_calc(var(--design-unit)*10)_rgba(32,163,186,0.12)]'
|
||||
|
||||
@@ -16,6 +16,7 @@ import { useWithdrawSubmit } from '@/hooks/use-withdraw-submit'
|
||||
import { useWithdrawVm } from '@/hooks/use-withdraw-vm'
|
||||
import { cn } from '@/lib/utils'
|
||||
import { useModalStore } from '@/store'
|
||||
import type { FinanceCurrencyConfig } from '@/type'
|
||||
|
||||
const PANEL_CLASS =
|
||||
'rounded-md border border-[rgba(110,229,243,0.24)] bg-[linear-gradient(180deg,rgba(7,30,43,0.9),rgba(3,15,26,0.94))] shadow-[inset_0_0_calc(var(--design-unit)*14)_rgba(88,225,238,0.08),0_0_calc(var(--design-unit)*10)_rgba(32,163,186,0.12)]'
|
||||
@@ -428,7 +429,7 @@ function DesktopWithdraw() {
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.config.currencies.map((option) => (
|
||||
{vm.config.currencies.map((option: FinanceCurrencyConfig) => (
|
||||
<SelectItem key={option.code} value={option.code}>
|
||||
{option.label}
|
||||
</SelectItem>
|
||||
|
||||
@@ -13,7 +13,6 @@ import chatImage from '@/assets/system/chat.webp'
|
||||
import diamond from '@/assets/system/diamond.webp'
|
||||
import logo from '@/assets/system/logo.webp'
|
||||
import { SmartImage } from '@/components/smart-image.tsx'
|
||||
import { MessageBroadcast } from '@/features/game/components/desktop/desktop-title.tsx'
|
||||
import { useHeaderClockLabel, useHeaderVm } from '@/hooks/use-header-vm'
|
||||
import { useModalStore } from '@/store'
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { useMutation } from '@tanstack/react-query'
|
||||
import { useRef } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { createDeposit, type DepositTierItem } from '@/api'
|
||||
import { createDeposit } from '@/api'
|
||||
import { DataLoadingIndicator } from '@/components/ui/data-loading-indicator'
|
||||
import { useDepositTierList } from '@/hooks/use-deposit-tier-list'
|
||||
import { notify } from '@/lib/notify'
|
||||
import { cn } from '@/lib/utils'
|
||||
import type { DepositTierItem } from '@/type'
|
||||
|
||||
const PANEL_CLASS =
|
||||
'rounded-md border border-[rgba(110,229,243,0.24)] bg-[linear-gradient(180deg,rgba(7,30,43,0.9),rgba(3,15,26,0.94))] shadow-[inset_0_0_calc(var(--design-unit)*12)_rgba(88,225,238,0.08)]'
|
||||
|
||||
@@ -16,6 +16,7 @@ import { useWithdrawSubmit } from '@/hooks/use-withdraw-submit'
|
||||
import { useWithdrawVm } from '@/hooks/use-withdraw-vm'
|
||||
import { cn } from '@/lib/utils'
|
||||
import { useModalStore } from '@/store'
|
||||
import type { FinanceCurrencyConfig } from '@/type'
|
||||
|
||||
const PANEL_CLASS =
|
||||
'rounded-md border border-[rgba(110,229,243,0.24)] bg-[linear-gradient(180deg,rgba(7,30,43,0.9),rgba(3,15,26,0.94))] shadow-[inset_0_0_calc(var(--design-unit)*10)_rgba(88,225,238,0.08)]'
|
||||
@@ -414,7 +415,7 @@ function MobileWithdraw() {
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.config.currencies.map((option) => (
|
||||
{vm.config.currencies.map((option: FinanceCurrencyConfig) => (
|
||||
<SelectItem key={option.code} value={option.code}>
|
||||
{option.label}
|
||||
</SelectItem>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { type ModalKey, useModalStore } from '@/store'
|
||||
import { useModalStore } from '@/store'
|
||||
import type { ModalKey } from '@/type'
|
||||
|
||||
export function useAuth() {
|
||||
const setModalOpen = useModalStore((state) => state.setModalOpen)
|
||||
|
||||
@@ -3,9 +3,9 @@ import { useForm } from 'react-hook-form'
|
||||
import { loginWithPassword } from '@/api'
|
||||
import i18n from '@/i18n'
|
||||
import { notify } from '@/lib/notify'
|
||||
import { type LoginFormValues, loginFormSchema } from '@/schema/auth-schema'
|
||||
import { loginFormSchema } from '@/schema/auth-schema'
|
||||
import { useAuthStore } from '@/store/auth'
|
||||
import type { UseLoginFormOptions } from '@/type'
|
||||
import type { LoginFormValues, UseLoginFormOptions } from '@/type'
|
||||
import { toAuthSubmitErrorKey } from './auth-error-key'
|
||||
import { createZodResolver } from './zod-form-resolver'
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import { useQuery } from '@tanstack/react-query'
|
||||
import { useMemo } from 'react'
|
||||
|
||||
import { type GamePeriodHistoryItemDto, getGamePeriodHistory } from '@/api'
|
||||
import { getGamePeriodHistory } from '@/api'
|
||||
import { FLOWER_IMAGE_BY_ID } from '@/features/game/shared'
|
||||
import type { PeriodHistoryDisplayItem } from '@/type'
|
||||
import type { GamePeriodHistoryItemDto, PeriodHistoryDisplayItem } from '@/type'
|
||||
|
||||
export type { PeriodHistoryDisplayItem } from '@/type'
|
||||
|
||||
export const DEFAULT_PERIOD_HISTORY_LIMIT = 36
|
||||
|
||||
|
||||
@@ -7,12 +7,9 @@ import {
|
||||
} from '@/constants'
|
||||
import i18n from '@/i18n'
|
||||
import { notify } from '@/lib/notify'
|
||||
import {
|
||||
type RegisterFormValues,
|
||||
registerFormSchema,
|
||||
} from '@/schema/auth-schema'
|
||||
import { registerFormSchema } from '@/schema/auth-schema'
|
||||
import { useAuthStore } from '@/store/auth'
|
||||
import type { UseRegisterFormOptions } from '@/type'
|
||||
import type { RegisterFormValues, UseRegisterFormOptions } from '@/type'
|
||||
import { toAuthSubmitErrorKey } from './auth-error-key'
|
||||
import { createZodResolver } from './zod-form-resolver'
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { useMutation } from '@tanstack/react-query'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
import { createWithdraw, type WithdrawCreateRequestDto } from '@/api'
|
||||
import { createWithdraw } from '@/api'
|
||||
import { notify } from '@/lib/notify'
|
||||
import type { WithdrawCreateRequestDto } from '@/type'
|
||||
|
||||
export function useWithdrawSubmit() {
|
||||
const { i18n, t } = useTranslation()
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import type { DepositWithdrawConfig } from '@/api'
|
||||
import {
|
||||
DEFAULT_CURRENCY_CODE,
|
||||
DEFAULT_WITHDRAW_CONFIG,
|
||||
@@ -10,6 +9,7 @@ import {
|
||||
} from '@/constants'
|
||||
import { useDepositWithdrawConfig } from '@/hooks/use-deposit-withdraw-config'
|
||||
import { useAuthStore } from '@/store'
|
||||
import type { DepositWithdrawConfig } from '@/type'
|
||||
|
||||
function formatNumber(locale: string, value: number) {
|
||||
return new Intl.NumberFormat(locale).format(value)
|
||||
|
||||
@@ -7,6 +7,7 @@ import idID from '@/locales/id-ID'
|
||||
import msMY from '@/locales/ms-MY'
|
||||
import zhCN from '@/locales/zh-CN'
|
||||
import { getStoredAppLanguage, setStoredAppLanguage } from '@/store/auth'
|
||||
import type { AppLanguage } from '@/type'
|
||||
|
||||
export type { AppLanguage } from '@/type'
|
||||
|
||||
@@ -45,7 +46,7 @@ export function getLanguageFromPathname(pathname: string) {
|
||||
}
|
||||
|
||||
void i18n.use(initReactI18next).init({
|
||||
lng: getInitialLanguage(),
|
||||
lng: getInitialLanguage() ?? DEFAULT_APP_LANGUAGE,
|
||||
fallbackLng: DEFAULT_APP_LANGUAGE,
|
||||
debug: false,
|
||||
interpolation: {
|
||||
|
||||
@@ -9,8 +9,6 @@ import { queryClient } from '@/lib/query/query-client'
|
||||
import { useAuthStore } from '@/store/auth'
|
||||
import { useModalStore } from '@/store/modal'
|
||||
import type {
|
||||
AuthSessionInput,
|
||||
AuthUser,
|
||||
ClearAuthenticatedSessionOptions,
|
||||
CurrentUserInitializer,
|
||||
RefreshSessionHandler,
|
||||
|
||||
@@ -10,12 +10,12 @@ import { notify } from '@/lib/notify'
|
||||
import { useModalStore } from '@/store'
|
||||
import { useAuthStore } from '@/store/auth'
|
||||
import {
|
||||
type AutoHostingStopRules,
|
||||
selectSelectionTotal,
|
||||
useGameAutoHostingStore,
|
||||
useGameRoundStore,
|
||||
useGameSessionStore,
|
||||
} from '@/store/game'
|
||||
import type { AutoHostingStopRules } from '@/type'
|
||||
|
||||
function parseAmount(value: string) {
|
||||
const parsed = Number(value)
|
||||
|
||||
@@ -10,12 +10,12 @@ import { notify } from '@/lib/notify'
|
||||
import { useModalStore } from '@/store'
|
||||
import { useAuthStore } from '@/store/auth'
|
||||
import {
|
||||
type AutoHostingStopRules,
|
||||
selectSelectionTotal,
|
||||
useGameAutoHostingStore,
|
||||
useGameRoundStore,
|
||||
useGameSessionStore,
|
||||
} from '@/store/game'
|
||||
import type { AutoHostingStopRules } from '@/type'
|
||||
|
||||
function parseAmount(value: string) {
|
||||
const parsed = Number(value)
|
||||
|
||||
@@ -5,7 +5,8 @@ import {
|
||||
PASSWORD_MAX_LENGTH,
|
||||
PASSWORD_MIN_LENGTH,
|
||||
} from '@/constants'
|
||||
import type { LoginFormValues, RegisterFormValues } from '@/type'
|
||||
|
||||
export type { LoginFormValues, RegisterFormValues } from '@/type'
|
||||
|
||||
const usernameSchema = z
|
||||
.string()
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
import { create } from 'zustand'
|
||||
|
||||
import { AUTO_HOSTING_DEFAULT_SINGLE_WIN_THRESHOLD } from '@/constants'
|
||||
import type {
|
||||
AutoHostingStopRules,
|
||||
BetSelection,
|
||||
GameAutoHostingStoreState,
|
||||
StartAutoHostingInput,
|
||||
} from '@/type'
|
||||
import type { AutoHostingStopRules, GameAutoHostingStoreState } from '@/type'
|
||||
|
||||
const DEFAULT_AUTO_HOSTING_RULES: AutoHostingStopRules = {
|
||||
stopIfBalanceBelow: {
|
||||
|
||||
@@ -13,13 +13,9 @@ import type {
|
||||
Chip,
|
||||
GameCell,
|
||||
GameRoundSlice,
|
||||
GameRoundStoreData,
|
||||
GameRoundStoreState,
|
||||
HistoryEntry,
|
||||
RevealAnimationPhase,
|
||||
RevealAnimationState,
|
||||
RewardAnimationType,
|
||||
RoundPhase,
|
||||
RoundSnapshot,
|
||||
TrendEntry,
|
||||
} from '@/type'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { create } from 'zustand'
|
||||
import { INITIAL_MODAL_VISIBILITY, MODAL_KEYS } from '@/constants'
|
||||
import type { ModalKey, ModalStoreState } from '@/type'
|
||||
import type { ModalStoreState } from '@/type'
|
||||
|
||||
export { MODAL_KEYS }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user