refactor: 深化公开作品详情状态策略
This commit is contained in:
@@ -516,7 +516,9 @@ import {
|
||||
type RecommendRuntimeKind,
|
||||
} from './platformPublicGalleryFlow';
|
||||
import {
|
||||
resolveActivePlatformPublicWorkAuthorEntry,
|
||||
resolvePlatformPublicWorkActionMode,
|
||||
resolvePlatformPublicWorkDetailOpenDecision,
|
||||
resolvePlatformPublicWorkDetailOpenStrategy,
|
||||
} from './platformPublicWorkDetailFlow';
|
||||
import {
|
||||
@@ -10908,20 +10910,19 @@ export function PlatformEntryFlowShellImpl({
|
||||
|
||||
const openPublicWorkDetail = useCallback(
|
||||
(entry: PlatformPublicGalleryCard) => {
|
||||
if (!canExposePublicWork(entry)) {
|
||||
setSelectedPublicWorkDetail(null);
|
||||
setPublicWorkDetailError(EDUTAINMENT_HIDDEN_MESSAGE);
|
||||
setSelectionStage('platform');
|
||||
const decision = resolvePlatformPublicWorkDetailOpenDecision(entry);
|
||||
if (decision.type === 'blocked') {
|
||||
setSelectedPublicWorkDetail(decision.selectedDetail);
|
||||
setPublicWorkDetailError(decision.errorMessage);
|
||||
setSelectionStage(decision.selectionStage);
|
||||
return;
|
||||
}
|
||||
|
||||
setSelectedPublicWorkDetail(entry);
|
||||
setPublicWorkDetailError(null);
|
||||
setSelectionStage('work-detail');
|
||||
if (entry.publicWorkCode?.trim()) {
|
||||
pushAppHistoryPath(
|
||||
buildPublicWorkStagePath('work-detail', entry.publicWorkCode),
|
||||
);
|
||||
setSelectedPublicWorkDetail(decision.selectedDetail);
|
||||
setPublicWorkDetailError(decision.errorMessage);
|
||||
setSelectionStage(decision.selectionStage);
|
||||
if (decision.historyPath) {
|
||||
pushAppHistoryPath(decision.historyPath);
|
||||
}
|
||||
},
|
||||
[setSelectionStage],
|
||||
@@ -11118,14 +11119,11 @@ export function PlatformEntryFlowShellImpl({
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
const detailEntry =
|
||||
selectionStage === 'work-detail'
|
||||
? selectedPublicWorkDetail
|
||||
: selectionStage === 'detail' &&
|
||||
selectedDetailEntry &&
|
||||
selectedDetailEntry.visibility !== 'draft'
|
||||
? mapRpgGalleryCardToPublicWorkDetail(selectedDetailEntry)
|
||||
: null;
|
||||
const detailEntry = resolveActivePlatformPublicWorkAuthorEntry({
|
||||
selectionStage,
|
||||
selectedPublicWorkDetail,
|
||||
selectedRpgDetailEntry: selectedDetailEntry,
|
||||
});
|
||||
|
||||
if (!detailEntry) {
|
||||
clearSelectedPublicWorkAuthor();
|
||||
|
||||
Reference in New Issue
Block a user