继续收口生成页顶部返回按钮
抽出生成页共用返回按钮壳并复用共享图标按钮能力 将自定义世界生成页接入共享返回按钮壳 将汪汪声浪生成页接入共享返回按钮壳并保留禁用态 补充两个生成页返回按钮的样式与交互回归测试
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import { Clock3, Hourglass } from 'lucide-react';
|
||||
import { ArrowLeft, Clock3, Hourglass } from 'lucide-react';
|
||||
import { useEffect, useId, useRef } from 'react';
|
||||
|
||||
import generationHeroVideo from '../../media/create_bg_video.mp4';
|
||||
import { PlatformIconButton } from './common/PlatformIconButton';
|
||||
import { PlatformProgressBar } from './common/PlatformProgressBar';
|
||||
|
||||
const GENERATION_PROGRESS_RING_GAP_DEGREES = 90;
|
||||
@@ -35,6 +36,14 @@ type GenerationCurrentStepCardProps = {
|
||||
progressValue: number;
|
||||
};
|
||||
|
||||
type GenerationHeaderBackButtonProps = {
|
||||
label: string;
|
||||
onClick: () => void;
|
||||
disabled?: boolean;
|
||||
disabledOpacity?: number;
|
||||
className?: string;
|
||||
};
|
||||
|
||||
function clampGenerationProgress(value: number) {
|
||||
return Math.max(0, Math.min(100, Math.round(value)));
|
||||
}
|
||||
@@ -51,6 +60,34 @@ function buildGenerationRingMetrics(progressValue: number) {
|
||||
};
|
||||
}
|
||||
|
||||
export function GenerationHeaderBackButton({
|
||||
label,
|
||||
onClick,
|
||||
disabled = false,
|
||||
disabledOpacity,
|
||||
className,
|
||||
}: GenerationHeaderBackButtonProps) {
|
||||
return (
|
||||
<PlatformIconButton
|
||||
label={label}
|
||||
title={label}
|
||||
variant="darkMini"
|
||||
onClick={onClick}
|
||||
disabled={disabled}
|
||||
className={[
|
||||
'gap-2 rounded-full !border-transparent !bg-transparent px-0 py-2 text-xs font-black !text-[#171411] shadow-none hover:!bg-transparent hover:!text-[#171411] sm:text-sm',
|
||||
className,
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join(' ')}
|
||||
style={disabled && disabledOpacity != null ? { opacity: disabledOpacity } : undefined}
|
||||
icon={<ArrowLeft className="h-5 w-5 shrink-0" strokeWidth={2.6} />}
|
||||
>
|
||||
<span className="break-keep">{label}</span>
|
||||
</PlatformIconButton>
|
||||
);
|
||||
}
|
||||
|
||||
export function GenerationPageBackdrop() {
|
||||
const videoRef = useRef<HTMLVideoElement | null>(null);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user