feat(admin): 관리자 대시보드와 미디어 자산 UI를 추가

This commit is contained in:
2026-03-09 20:09:10 +09:00
parent cceaa6bd82
commit 986b9ba94b
17 changed files with 1413 additions and 10 deletions

View File

@@ -5,7 +5,8 @@ import type { PlanTier } from '@/entities/plan';
import {
PRO_FEATURE_CARDS,
} from '@/entities/plan';
import { getSceneCardBackgroundStyle, type SceneTheme } from '@/entities/scene';
import type { SceneTheme } from '@/entities/scene';
import { getSceneCardBackgroundStyle, type SceneAssetMap } from '@/entities/media';
import { SOUND_PRESETS, type TimerPreset } from '@/entities/session';
import { cn } from '@/shared/lib/cn';
import { useReducedMotion } from '@/shared/lib/useReducedMotion';
@@ -14,6 +15,7 @@ import { Toggle } from '@/shared/ui';
interface ControlCenterSheetWidgetProps {
plan: PlanTier;
scenes: SceneTheme[];
sceneAssetMap?: SceneAssetMap;
selectedSceneId: string;
selectedTimerLabel: string;
selectedSoundPresetId: string;
@@ -41,6 +43,7 @@ const SectionTitle = ({ title, description }: { title: string; description: stri
export const ControlCenterSheetWidget = ({
plan,
scenes,
sceneAssetMap,
selectedSceneId,
selectedTimerLabel,
selectedSoundPresetId,
@@ -95,13 +98,17 @@ export const ControlCenterSheetWidget = ({
reducedMotion ? '' : 'hover:-translate-y-0.5',
selected ? 'border-sky-200/44 shadow-[0_8px_16px_rgba(56,189,248,0.18)]' : 'border-white/16',
)}
>
<div aria-hidden className="absolute inset-0 bg-cover bg-center" style={getSceneCardBackgroundStyle(scene)} />
>
<div
aria-hidden
className="absolute inset-0 bg-cover bg-center"
style={getSceneCardBackgroundStyle(scene, sceneAssetMap?.[scene.id])}
/>
<div aria-hidden className="absolute inset-0 bg-gradient-to-t from-black/56 via-black/18 to-black/6" />
<div className="absolute inset-x-2 bottom-2 min-w-0">
<p className="truncate text-sm font-medium text-white/90">{scene.name}</p>
<p className="truncate text-[11px] text-white/66">{scene.vibeLabel}</p>
</div>
</div>
</button>
);
})}