From 78ce8527fc9fb2e2052ac61ec1cc24c219b8ac71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8E=86=E5=86=B0=E9=83=81-hermes=E7=89=88?= Date: Fri, 8 May 2026 12:25:08 +0800 Subject: [PATCH] feat: wire profile feedback navigation --- .../PlatformEntryFlowShellImpl.tsx | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx b/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx index 799fe92f..e00e70e4 100644 --- a/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx +++ b/src/components/platform-entry/PlatformEntryFlowShellImpl.tsx @@ -222,6 +222,7 @@ import { useRpgCreationEnterWorld } from '../rpg-entry/useRpgCreationEnterWorld' import { useRpgCreationResultAutosave } from '../rpg-entry/useRpgCreationResultAutosave'; import { useRpgCreationSessionController } from '../rpg-entry/useRpgCreationSessionController'; import { PlatformEntryCreationTypeModal } from './PlatformEntryCreationTypeModal'; +import { PlatformFeedbackView } from './PlatformFeedbackView'; import type { PlatformCreationTypeId } from './platformEntryCreationTypes'; import { isPlatformCreationTypeVisible } from './platformEntryCreationTypes'; import { @@ -1352,6 +1353,22 @@ export function PlatformEntryFlowShellImpl({ }); const { setPlatformTab } = platformBootstrap; + useEffect(() => { + if (selectionStage === 'profile-feedback') { + setPlatformTab('profile'); + } + }, [selectionStage, setPlatformTab]); + + const openProfileFeedback = useCallback(() => { + if (!authUi?.user) { + authUi?.openLoginModal(); + return; + } + + setPlatformTab('profile'); + setSelectionStage('profile-feedback'); + }, [authUi, setPlatformTab, setSelectionStage]); + const enterCreateTab = useCallback(() => { // 只依赖稳定的 setter,避免把 bootstrap 对象的 render 级引用变化 // 传导成 Agent session 恢复 effect 的重复触发。 @@ -5465,6 +5482,7 @@ export function PlatformEntryFlowShellImpl({ setIsProfilePlayStatsOpen(false); }} onOpenPlayedWork={openPlayedWork} + onOpenFeedback={openProfileFeedback} onOpenProfileDashboardCard={(cardKey) => { if (cardKey === 'playedWorks') { openProfilePlayedWorks(); @@ -5479,6 +5497,23 @@ export function PlatformEntryFlowShellImpl({ )} + {selectionStage === 'profile-feedback' && ( + + { + setPlatformTab('profile'); + setSelectionStage('platform'); + }} + /> + + )} + {selectionStage === 'work-detail' && selectedPublicWorkDetail && (