@@ -4,12 +4,28 @@ import { useIsMobile } from './useIsMobile'
44import { IS_MOBILE_KEY } from '../keys'
55
66export function useInitPinboardApp ( localeAppKey ?: string ) {
7- const { locale, init, setLocale } = localeAppKey ? useLocale ( localeAppKey ) : { }
8- if ( init ) init ( )
9-
107 const infoSheetOpen = ref ( false )
118 const isDraggingSheet = ref ( false )
129 const dragY = ref ( 0 )
10+ const isMobile = useIsMobile ( )
11+ const { locale, init, setLocale } = localeAppKey ? useLocale ( localeAppKey ) : { }
12+
13+ if ( init ) init ( )
14+ provide ( IS_MOBILE_KEY , isMobile )
15+
16+ /* Drag-down-to-dismiss. BottomSheet's built-in drag is snap-point based
17+ * and a single snap point ([60]) clamps it to no movement, so we layer
18+ * our own pointer tracking on top: translate the sheet to follow the
19+ * pointer, dismiss past DRAG_DISMISS_THRESHOLD on release, otherwise
20+ * spring back. Clicks (zero delta) pass through. */
21+ const DRAG_DISMISS_THRESHOLD = 160
22+ let dragStartY = 0
23+
24+ onBeforeUnmount ( ( ) => {
25+ document . removeEventListener ( 'pointermove' , onSheetPointerMove )
26+ document . removeEventListener ( 'pointerup' , onSheetPointerUp )
27+ document . removeEventListener ( 'pointercancel' , onSheetPointerUp )
28+ } )
1329
1430 function openInfoSheet ( event : Event ) {
1531 event . preventDefault ( )
@@ -22,14 +38,6 @@ export function useInitPinboardApp(localeAppKey?: string) {
2238 dragY . value = 0
2339 }
2440
25- /* Drag-down-to-dismiss. BottomSheet's built-in drag is snap-point based
26- * and a single snap point ([60]) clamps it to no movement, so we layer
27- * our own pointer tracking on top: translate the sheet to follow the
28- * pointer, dismiss past DRAG_DISMISS_THRESHOLD on release, otherwise
29- * spring back. Clicks (zero delta) pass through. */
30- const DRAG_DISMISS_THRESHOLD = 160
31- let dragStartY = 0
32-
3341 function onSheetPointerDown ( e : PointerEvent ) {
3442 dragStartY = e . clientY
3543 dragY . value = 0
@@ -57,15 +65,6 @@ export function useInitPinboardApp(localeAppKey?: string) {
5765 }
5866 }
5967
60- const isMobile = useIsMobile ( )
61- provide ( IS_MOBILE_KEY , isMobile )
62-
63- onBeforeUnmount ( ( ) => {
64- document . removeEventListener ( 'pointermove' , onSheetPointerMove )
65- document . removeEventListener ( 'pointerup' , onSheetPointerUp )
66- document . removeEventListener ( 'pointercancel' , onSheetPointerUp )
67- } )
68-
6968 return {
7069 isMobile,
7170 locale,
0 commit comments