| @@ -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> | |||