From ae91ac47c292753e2f5d10514ea684895c559047 Mon Sep 17 00:00:00 2001 From: jeremygan2021 Date: Mon, 23 Feb 2026 15:08:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E5=90=8D=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/pages/activity/Detail.jsx | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/activity/Detail.jsx b/frontend/src/pages/activity/Detail.jsx index 848fbf9..ae2f49f 100644 --- a/frontend/src/pages/activity/Detail.jsx +++ b/frontend/src/pages/activity/Detail.jsx @@ -23,7 +23,7 @@ const ActivityDetail = () => { const navigate = useNavigate(); const queryClient = useQueryClient(); const { scrollY } = useScroll(); - const { login } = useAuth(); + const { login, user } = useAuth(); const [loginVisible, setLoginVisible] = useState(false); const [signupFormVisible, setSignupFormVisible] = useState(false); const [paymentModalVisible, setPaymentModalVisible] = useState(false); @@ -68,6 +68,28 @@ const ActivityDetail = () => { return () => clearTimeout(timer); }, [id, refetch]); + // Auto-fill form fields when the signup form becomes visible + useEffect(() => { + if (signupFormVisible && user && activity?.signup_form_config) { + const initialValues = {}; + + activity.signup_form_config.forEach(field => { + // Auto-fill phone number + if (field.name === 'phone' && user.phone_number) { + initialValues[field.name] = user.phone_number; + } + // Auto-fill name (nickname) if the field name is 'name' + if (field.name === 'name' && user.nickname) { + initialValues[field.name] = user.nickname; + } + }); + + if (Object.keys(initialValues).length > 0) { + form.setFieldsValue(initialValues); + } + } + }, [signupFormVisible, user, activity, form]); + const signUpMutation = useMutation({ mutationFn: (values) => signUpActivity(id, { signup_info: values || {} }), onSuccess: (data) => {