fix(app): premium entry 조정과 duration 입력 버그 수정
This commit is contained in:
@@ -140,6 +140,15 @@ export const FocusDashboardWidget = () => {
|
||||
() => getAtmosphereOptionById(selectedAtmosphereId),
|
||||
[selectedAtmosphereId],
|
||||
);
|
||||
const rawDurationValue = useMemo(() => {
|
||||
const digitsOnly = durationDraft.replace(/[^\d]/g, '');
|
||||
if (!digitsOnly) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const parsed = Number(digitsOnly);
|
||||
return Number.isFinite(parsed) ? parsed : null;
|
||||
}, [durationDraft]);
|
||||
const parsedDurationMinutes = parseDurationMinutes(durationDraft);
|
||||
const resolvedTimerPreset = useMemo(() => {
|
||||
const targetMinutes =
|
||||
@@ -178,9 +187,11 @@ export const FocusDashboardWidget = () => {
|
||||
isPro && reviewEntryPresetConfig ? `추천 ritual · ${reviewEntryPresetConfig.label}` : null;
|
||||
const reviewTeaserTitle = isPro ? entryCopy.reviewTitlePro : entryCopy.reviewTitle;
|
||||
const durationHelper =
|
||||
parsedDurationMinutes === null
|
||||
? 'Please enter the estimated duration in minutes.'
|
||||
: entryCopy.durationHelper;
|
||||
rawDurationValue !== null && rawDurationValue < 5
|
||||
? 'Please enter at least 5 minutes.'
|
||||
: parsedDurationMinutes === null
|
||||
? 'Please enter the estimated duration in minutes.'
|
||||
: entryCopy.durationHelper;
|
||||
const hasCurrentSession = Boolean(currentSession);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -301,13 +312,13 @@ export const FocusDashboardWidget = () => {
|
||||
<div
|
||||
className={cn(
|
||||
'absolute inset-0 bg-cover bg-center transition-transform duration-[1.5s] ease-[cubic-bezier(0.22,1,0.36,1)]',
|
||||
isStartingSession ? 'scale-[1.08] blur-[2px] brightness-75' : 'scale-100 blur-0 brightness-100',
|
||||
isStartingSession ? 'scale-[1.08] blur-[2px] brightness-75' : 'scale-100 blur-[60px] brightness-50',
|
||||
)}
|
||||
style={getSceneStageBackgroundStyle(activeScene, sceneAssetMap?.[activeScene.id])}
|
||||
/>
|
||||
{/* Immersive Overlay Gradients */}
|
||||
<div className="absolute inset-0 bg-[radial-gradient(circle_at_center,transparent_0%,rgba(0,0,0,0.6)_100%)] mix-blend-multiply pointer-events-none" />
|
||||
<div className="absolute inset-0 bg-black/10 pointer-events-none" />
|
||||
<div className="absolute inset-0 bg-[radial-gradient(circle_at_center,transparent_0%,rgba(0,0,0,0.85)_100%)] mix-blend-multiply pointer-events-none" />
|
||||
<div className="absolute inset-0 bg-black/40 pointer-events-none" />
|
||||
|
||||
{/* Header */}
|
||||
<header className="absolute top-0 inset-x-0 z-50 flex items-center justify-between px-8 py-8 md:px-12 md:py-10">
|
||||
|
||||
Reference in New Issue
Block a user