);
@@ -130,18 +115,12 @@ export const ControlCenterSheetWidget = ({
{timerPresets.slice(0, 3).map((preset) => {
const selected = preset.label === selectedTimerLabel;
- const locked = !isPro && PRO_LOCKED_TIMER_LABELS.includes(preset.label);
return (
);
})}
@@ -168,18 +146,12 @@ export const ControlCenterSheetWidget = ({
{SOUND_PRESETS.slice(0, 6).map((preset) => {
const selected = preset.id === selectedSoundPresetId;
- const locked = !isPro && PRO_LOCKED_SOUND_IDS.includes(preset.id);
return (
);
})}
@@ -212,6 +183,37 @@ export const ControlCenterSheetWidget = ({
+
+
+
+ {PRO_FEATURE_CARDS.map((feature) => {
+ const locked = !isPro;
+
+ return (
+
+ );
+ })}
+
+
+
diff --git a/src/widgets/space-tools-dock/ui/SpaceToolsDockWidget.tsx b/src/widgets/space-tools-dock/ui/SpaceToolsDockWidget.tsx
index 09b6b5d..60b49a8 100644
--- a/src/widgets/space-tools-dock/ui/SpaceToolsDockWidget.tsx
+++ b/src/widgets/space-tools-dock/ui/SpaceToolsDockWidget.tsx
@@ -311,6 +311,17 @@ export const SpaceToolsDockWidget = ({
openUtilityPanel('paywall');
};
+ const handleSelectProFeature = (featureId: string) => {
+ const label =
+ featureId === 'scene-packs'
+ ? 'Scene Packs'
+ : featureId === 'sound-packs'
+ ? 'Sound Packs'
+ : 'Profiles';
+
+ onStatusMessage({ message: `${label} 준비 중(더미)` });
+ };
+
const handleStartPro = () => {
setPlan('pro');
onStatusMessage({ message: '결제(더미)' });
@@ -502,6 +513,7 @@ export const SpaceToolsDockWidget = ({
onTimerSelect(label);
}}
onSelectSound={onQuickSoundSelect}
+ onSelectProFeature={handleSelectProFeature}
onLockedClick={handleLockedClick}
onResetToRecommended={onResetToSceneRecommended}
/>