refactor: type improvement of file oneMoreStep.tsx (#17431)

This commit is contained in:
yusheng chen 2025-04-04 21:11:33 +08:00 committed by GitHub
parent da2113bde9
commit 95212af935
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,5 +1,5 @@
'use client'
import React, { useEffect, useReducer } from 'react'
import React, { type Reducer, useEffect, useReducer } from 'react'
import { useTranslation } from 'react-i18next'
import Link from 'next/link'
import useSWR from 'swr'
@ -20,7 +20,14 @@ type IState = {
timezone: string
}
const reducer = (state: IState, action: any) => {
type IAction =
| { type: 'failed', payload: null }
| { type: 'invitation_code', value: string }
| { type: 'interface_language', value: string }
| { type: 'timezone', value: string }
| { type: 'formState', value: 'processing' }
const reducer: Reducer<IState, IAction> = (state: IState, action: IAction) => {
switch (action.type) {
case 'invitation_code':
return { ...state, invitation_code: action.value }
@ -120,7 +127,7 @@ const OneMoreStep = () => {
defaultValue={LanguagesSupported[0]}
items={languages.filter(item => item.supported)}
onSelect={(item) => {
dispatch({ type: 'interface_language', value: item.value })
dispatch({ type: 'interface_language', value: item.value as typeof LanguagesSupported[number] })
}}
/>
</div>
@ -134,7 +141,7 @@ const OneMoreStep = () => {
defaultValue={state.timezone}
items={timezones}
onSelect={(item) => {
dispatch({ type: 'timezone', value: item.value })
dispatch({ type: 'timezone', value: item.value as typeof state.timezone })
}}
/>
</div>