import Choice from '@/components/user-message.tsx/choice'; import Done from '@/components/user-message.tsx/done'; import Look from '@/components/user-message.tsx/look'; import UserName from '@/components/user-message.tsx/userName'; import { fetchApi } from '@/lib/server-api-util'; import { FileUploadItem } from '@/types/upload'; import { User } from '@/types/user'; import { useLocalSearchParams } from 'expo-router'; import React, { useEffect, useState } from 'react'; import { KeyboardAvoidingView, Platform, ScrollView, StatusBar, View } from 'react-native'; export type Steps = "userName" | "look" | "choice" | "done"; export default function UserMessage() { // 步骤 const [steps, setSteps] = useState("userName") const [username, setUsername] = useState('') const [avatar, setAvatar] = useState('') const [fileData, setFileData] = useState([]) const [isLoading, setIsLoading] = useState(false); const [userInfo, setUserInfo] = useState(null); const statusBarHeight = StatusBar?.currentHeight ?? 0; // 获取路由参数 const params = useLocalSearchParams(); const { username: usernameParam } = params; // 获取用户信息 const getUserInfo = async () => { const res = await fetchApi("/iam/user-info"); setUserInfo(res); setUsername(res?.nickname || ''); setAvatar(res?.avatar_file_url || ''); } const handleUser = () => { setIsLoading(true); fetchApi("/iam/user/info", { method: "POST", body: JSON.stringify({ username, avatar_file_id: fileData?.[0]?.originalFile?.file_id }) }).then(() => { setIsLoading(false); setSteps('done'); }).catch(() => { setIsLoading(false); }); }; useEffect(() => { getUserInfo(); setSteps("userName") }, [usernameParam]); return ( {(() => { const components = { userName: ( ), look: ( ), choice: , done: }; return components[steps as keyof typeof components] || null; })()} ); }