修导航高亮:从共创侧进的详情/族谱/对比也高亮「共创」(复用入口来源标记,判定收敛在一处)
Project CI / Backend tests (pull_request) Failing after 22s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m17s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m30s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m27s
Project CI / Repository checks (pull_request) Failing after 26s
Project CI / Frontend tests (pull_request) Successful in 3m13s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m32s
Project CI / Native shell tests (pull_request) Successful in 8m50s
Project CI / Backend tests (pull_request) Failing after 22s
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Successful in 7m17s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 4m30s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m27s
Project CI / Repository checks (pull_request) Failing after 26s
Project CI / Frontend tests (pull_request) Successful in 3m13s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m32s
Project CI / Native shell tests (pull_request) Successful in 8m50s
This commit is contained in:
@@ -47,6 +47,8 @@ import { ClientDownloadEntry } from '../creation-home/ClientDownloadEntry';
|
||||
import { setCreatorViewer } from '../creator/creatorRelationshipState';
|
||||
import {
|
||||
CO_CREATION_DETAIL_SOURCE,
|
||||
isCoCreator,
|
||||
resolveGameViewerContext,
|
||||
shouldCarryCoCreationSource,
|
||||
} from '../game-distribution/gameViewerRole';
|
||||
import { PaymentCheckoutView } from './PaymentCheckoutView';
|
||||
@@ -830,10 +832,6 @@ export function PlatformEntryFlowShellImpl({
|
||||
selectionStage === 'game-mine' ||
|
||||
selectionStage === 'game-lineage' ||
|
||||
selectionStage === 'game-publish';
|
||||
/** 侧边栏 / 底部导航的「共创」高亮(顶层入口,2026-10-07 从游戏页子页签升上来)。 */
|
||||
const isCoCreationStage = selectionStage === 'game-co-creation';
|
||||
/** 游戏区但不在共创页时,「游戏」这个导航项才是激活态——进共创时高亮共创、不再高亮游戏。 */
|
||||
const isGamesNavActive = isGamesStage && !isCoCreationStage;
|
||||
/**
|
||||
* 游玩页自己撑满剩余高度,面板不能再滚动,否则移动端会出现整页可滚的
|
||||
* 半屏播放器;其余舞台继续沿用面板滚动。
|
||||
@@ -842,8 +840,32 @@ export function PlatformEntryFlowShellImpl({
|
||||
const gameSearchParams = new URLSearchParams(
|
||||
typeof window === 'undefined' ? '' : window.location.search,
|
||||
);
|
||||
/**
|
||||
* 本屏的**入口来源标记**:详情页上是「从哪一侧点进来」(`from=co-creation`),
|
||||
* 族谱页上含义不同(`from=<gameId>` = 高亮哪个作品)——所以只认 `co-creation` 这一个值
|
||||
* (复用 `resolveGameViewerContext` 的白名单,不自己判字符串)。
|
||||
*/
|
||||
const gameEntrySource = gameSearchParams.get('from');
|
||||
/**
|
||||
* 本屏是否属于「**共创侧**」上下文 —— **导航高亮(侧边栏 / 底部 dock)的唯一判据**。
|
||||
*
|
||||
* 用户报的 bug:共创页 → 点卡 → 详情后,侧边栏仍高亮「游戏」。根因是这里原先只看 `stage`,
|
||||
* 而详情页的 stage 属于游戏区(`game-detail`),**来源被丢掉**。修法是复用详情页那套
|
||||
* 已落地的来源判定(不新造参数、不新造标记):
|
||||
* ① URL 的来源标记就是 `co-creation`(详情页,以及从它继续跳过去的页面);
|
||||
* ② 或当前就在「共创侧才进得来的阶段」(共创页 / 族谱 / 对比,见 `shouldCarryCoCreationSource`)。
|
||||
*/
|
||||
const isCoCreationContext =
|
||||
isGamesStage &&
|
||||
(isCoCreator(resolveGameViewerContext(gameEntrySource)) ||
|
||||
shouldCarryCoCreationSource({
|
||||
stage: selectionStage,
|
||||
currentSource: gameEntrySource,
|
||||
}));
|
||||
/** 游戏区、且**不在共创侧上下文**时,「游戏」这个导航项才是激活态(两者互斥、不双亮)。 */
|
||||
const isGamesNavActive = isGamesStage && !isCoCreationContext;
|
||||
const gameId = gameSearchParams.get('id');
|
||||
const lineageHighlightGameId = gameSearchParams.get('from');
|
||||
const lineageHighlightGameId = gameEntrySource;
|
||||
const compareLeftGameId = gameSearchParams.get('left');
|
||||
const compareRightGameId = gameSearchParams.get('right');
|
||||
const creatorConnectionTab = gameSearchParams.get('tab');
|
||||
@@ -912,12 +934,13 @@ export function PlatformEntryFlowShellImpl({
|
||||
/>
|
||||
{/*
|
||||
「共创」:**顶层入口**(2026-10-07 用户口径:不该是游戏页里的子页签)。
|
||||
指向 `scope="forkable"` 的那个列表页(`/games/co-creation`),
|
||||
与「游戏」平级;在共创页时高亮的是这一项,不再是「游戏」。
|
||||
指向 `scope="forkable"` 的那个列表页(`/games/co-creation`),与「游戏」平级。
|
||||
高亮读 `isCoCreationContext`:共创页本身、以及**从共创侧点进去的详情/族谱/对比**
|
||||
都算共创侧(用户报的「共创 → 详情后仍高亮游戏」就是这里原先只看 stage 造成的)。
|
||||
*/}
|
||||
<ActiveRailButton
|
||||
active={isCoCreationStage}
|
||||
emphasized={isCoCreationStage}
|
||||
active={isCoCreationContext}
|
||||
emphasized={isCoCreationContext}
|
||||
icon={Sparkles}
|
||||
iconSrc="/creation-home/nav-discover.png"
|
||||
label="共创"
|
||||
@@ -1206,7 +1229,7 @@ export function PlatformEntryFlowShellImpl({
|
||||
<MobileProfileDock
|
||||
active={isProfileStage}
|
||||
gameActive={isGamesNavActive}
|
||||
coCreationActive={isCoCreationStage}
|
||||
coCreationActive={isCoCreationContext}
|
||||
creatorActive={isCreatorStage}
|
||||
onOpenCreator={() => openCreator()}
|
||||
onOpenProfile={openProfile}
|
||||
|
||||
Reference in New Issue
Block a user