From a1424a4794ccdddc7b90c6f9f4730d952666bd35 Mon Sep 17 00:00:00 2001 From: corpi Date: Fri, 13 Mar 2026 16:22:11 +0900 Subject: [PATCH] =?UTF-8?q?fix(app):=20=EB=B0=B0=EA=B2=BD=20=EA=B3=B5?= =?UTF-8?q?=EA=B0=84=20=EB=93=9C=EB=9E=98=EA=B7=B8=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A1=A4=20=ED=81=B4=EB=A6=AD=20=EC=B6=A9=EB=8F=8C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scene-select/ui/SceneSelectCarousel.tsx | 19 ++- src/shared/lib/useDragScroll.ts | 155 ++++++++++++++++++ .../ui/ControlCenterSheetWidget.tsx | 22 ++- .../ui/FocusDashboardWidget.tsx | 30 +++- 4 files changed, 215 insertions(+), 11 deletions(-) create mode 100644 src/shared/lib/useDragScroll.ts diff --git a/src/features/scene-select/ui/SceneSelectCarousel.tsx b/src/features/scene-select/ui/SceneSelectCarousel.tsx index 145061e..0f585de 100644 --- a/src/features/scene-select/ui/SceneSelectCarousel.tsx +++ b/src/features/scene-select/ui/SceneSelectCarousel.tsx @@ -2,6 +2,7 @@ import type { SceneTheme } from '@/entities/scene'; import { getSceneCardBackgroundStyle, type SceneAssetMap } from '@/entities/media'; import { copy } from '@/shared/i18n'; import { cn } from '@/shared/lib/cn'; +import { useDragScroll } from '@/shared/lib/useDragScroll'; interface SceneSelectCarouselProps { scenes: SceneTheme[]; @@ -16,8 +17,17 @@ export const SceneSelectCarousel = ({ sceneAssetMap, onSelect, }: SceneSelectCarouselProps) => { + const { containerRef, events, isDragging, shouldSuppressClick } = useDragScroll(); + return ( -
+
{scenes.map((scene) => { const selected = scene.id === selectedSceneId; @@ -26,12 +36,17 @@ export const SceneSelectCarousel = ({
); -}; \ No newline at end of file +};