合并泥点弹窗透明修复
# Conflicts: # src/components/common/PublishShareModal.test.tsx # src/components/common/PublishShareModal.tsx # src/index.test.ts
This commit is contained in:
@@ -18,6 +18,9 @@ import {
|
||||
useState,
|
||||
} from 'react';
|
||||
|
||||
import { PlatformActionButton } from '../common/PlatformActionButton';
|
||||
import { PlatformIconButton } from '../common/PlatformIconButton';
|
||||
import { PlatformPillBadge } from '../common/PlatformPillBadge';
|
||||
import { CustomWorldCoverArtwork } from '../CustomWorldCoverArtwork';
|
||||
import {
|
||||
formatPlatformWorkDisplayName,
|
||||
@@ -44,10 +47,17 @@ type CustomWorldWorkCardProps = {
|
||||
pointIncentiveBusy?: boolean;
|
||||
};
|
||||
|
||||
const BADGE_TONE_CLASS: Record<CreationWorkShelfBadgeTone, string> = {
|
||||
warm: 'platform-pill--warm',
|
||||
success: 'platform-pill--success',
|
||||
neutral: 'platform-pill--neutral',
|
||||
type WorkCardPillBadgeTone = React.ComponentProps<
|
||||
typeof PlatformPillBadge
|
||||
>['tone'];
|
||||
|
||||
const BADGE_TONE_CLASS: Record<
|
||||
CreationWorkShelfBadgeTone,
|
||||
NonNullable<WorkCardPillBadgeTone>
|
||||
> = {
|
||||
warm: 'warning',
|
||||
success: 'success',
|
||||
neutral: 'neutral',
|
||||
};
|
||||
|
||||
const METRIC_ANIMATION_DURATION_MS = 820;
|
||||
@@ -627,8 +637,9 @@ export function CustomWorldWorkCard({
|
||||
</div>
|
||||
{canUseShareAction ? (
|
||||
<div className="creation-work-card__quick-actions">
|
||||
<button
|
||||
type="button"
|
||||
<PlatformIconButton
|
||||
label="分享"
|
||||
icon={<Share2 aria-hidden="true" className="h-4 w-4" />}
|
||||
onClick={(event) => {
|
||||
event.stopPropagation();
|
||||
suppressOpenRef.current = false;
|
||||
@@ -645,23 +656,22 @@ export function CustomWorldWorkCard({
|
||||
event.stopPropagation();
|
||||
}}
|
||||
title="分享作品"
|
||||
aria-label="分享"
|
||||
className="creation-work-card__quick-action-button"
|
||||
>
|
||||
<Share2 aria-hidden="true" className="h-4 w-4" />
|
||||
</button>
|
||||
/>
|
||||
</div>
|
||||
) : null}
|
||||
</div>
|
||||
|
||||
<div className="creation-work-card__meta platform-category-game-item__meta">
|
||||
{item.badges.slice(1).map((badge) => (
|
||||
<span
|
||||
<PlatformPillBadge
|
||||
key={`${item.id}-${badge.id}`}
|
||||
className={`creation-work-card__badge platform-pill ${BADGE_TONE_CLASS[badge.tone]}`}
|
||||
tone={BADGE_TONE_CLASS[badge.tone]}
|
||||
size="xs"
|
||||
className="creation-work-card__badge"
|
||||
>
|
||||
{formatPlatformWorkDisplayTag(badge.label)}
|
||||
</span>
|
||||
</PlatformPillBadge>
|
||||
))}
|
||||
</div>
|
||||
|
||||
@@ -670,13 +680,15 @@ export function CustomWorldWorkCard({
|
||||
</div>
|
||||
|
||||
{item.hasGenerationFailure ? (
|
||||
<div
|
||||
<PlatformPillBadge
|
||||
tone="danger"
|
||||
size="xs"
|
||||
aria-label={item.generationFailureSummary ?? '生成失败'}
|
||||
className="creation-work-card__failure-status"
|
||||
icon={<CircleAlert aria-hidden="true" className="h-3.5 w-3.5" />}
|
||||
>
|
||||
<CircleAlert aria-hidden="true" className="h-3.5 w-3.5" />
|
||||
<span>{item.generationFailureSummary ?? '生成失败'}</span>
|
||||
</div>
|
||||
</PlatformPillBadge>
|
||||
) : null}
|
||||
|
||||
{isPublished ? (
|
||||
@@ -709,8 +721,9 @@ export function CustomWorldWorkCard({
|
||||
)}
|
||||
</span>
|
||||
</div>
|
||||
<button
|
||||
type="button"
|
||||
<PlatformActionButton
|
||||
tone="secondary"
|
||||
size="xxs"
|
||||
disabled={!canClaimPointIncentive || pointIncentiveBusy}
|
||||
onClick={(event) => {
|
||||
event.stopPropagation();
|
||||
@@ -722,7 +735,7 @@ export function CustomWorldWorkCard({
|
||||
className="creation-work-card-incentive__button"
|
||||
>
|
||||
{pointIncentiveBusy ? '领取中' : '领取积分'}
|
||||
</button>
|
||||
</PlatformActionButton>
|
||||
</div>
|
||||
) : null}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user