react-modal-sheet
Version:
Flexible bottom sheet component for your React apps
1 lines • 83.8 kB
Source Map (JSON)
{"version":3,"sources":["../src/constants.ts","../src/utils.ts","../src/context.tsx","../src/styles.ts","../src/hooks/use-isomorphic-layout-effect.ts","../src/hooks/use-safe-area-insets.ts","../src/hooks/use-modal-effect.ts","../src/hooks/use-dimensions.ts","../src/hooks/use-stable-callback.ts","../src/hooks/use-prevent-scroll.ts","../src/sheet.tsx","../src/hooks/use-event-callbacks.ts","../src/SheetContainer.tsx","../src/hooks/use-drag-constraints.ts","../src/SheetContent.tsx","../src/SheetHeader.tsx","../src/SheetBackdrop.tsx","../src/SheetScroller.tsx","../src/index.tsx"],"names":["React","useState","isScrollable","useRef","useEffect","dragProps","useCallback","forwardRef","motion","useTransform","Sheet"],"mappings":"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","file":"index.mjs","sourcesContent":["export const MAX_HEIGHT = 'calc(100% - env(safe-area-inset-top) - 34px)';\n\nexport const IS_SSR = typeof window === 'undefined';\n\nexport const DEFAULT_TWEEN_CONFIG = {\n ease: 'easeOut',\n duration: 0.2,\n};\n\nexport const REDUCED_MOTION_TWEEN_CONFIG = {\n ease: 'linear',\n duration: 0.01,\n};\n\nexport const DEFAULT_DRAG_CLOSE_THRESHOLD = 0.6;\n\nexport const DEFAULT_DRAG_VELOCITY_THRESHOLD = 500;\n","import { type ForwardedRef, type RefCallback, type RefObject } from 'react';\nimport { IS_SSR } from './constants';\nimport type { SheetDetent } from './types';\n\n/**\n * Get the rounded height of the sheet element and log a warning if the\n * element is not mounted yet but the height is requested.\n */\nexport function getSheetHeight(sheetRef: RefObject<HTMLDivElement | null>) {\n const sheetEl = sheetRef.current;\n\n if (!sheetEl) {\n console.warn(\n 'Sheet height is not available because the sheet element is not mounted yet.'\n );\n return 0;\n }\n\n return Math.round(sheetEl.getBoundingClientRect().height);\n}\n\n/**\n * Convert negative / percentage snap points to absolute values\n */\nexport function getSnapPoints({\n snapPointsProp,\n sheetHeight,\n}: {\n snapPointsProp: number[];\n sheetHeight: number;\n}) {\n const snapPointValues = snapPointsProp.map((point) => {\n // Percentage values e.g. between 0.0 and 1.0\n if (point > 0 && point <= 1) {\n return Math.round(point * sheetHeight);\n }\n\n return point < 0 ? sheetHeight + point : point; // negative values\n });\n\n console.assert(\n inDescendingOrder(snapPointValues) || sheetHeight === 0,\n `Snap points need to be in descending order got: [${snapPointsProp.join(', ')}]`\n );\n\n return snapPointValues;\n}\n\nexport function getClosestSnapPoint({\n snapPoints,\n currentY,\n sheetHeight,\n detent,\n}: {\n snapPoints: number[];\n currentY: number;\n sheetHeight: number;\n detent?: SheetDetent;\n}) {\n // Inverse values are the values that can be passed to `animate`\n const snapInverse = snapPoints.map(\n (p) => sheetHeight - Math.min(p, sheetHeight)\n );\n\n // Allow snapping to the top of the sheet if detent is set to `content-height`\n if (detent === 'content-height' && !snapInverse.includes(0)) {\n snapInverse.unshift(0);\n }\n\n // Get the closest snap point\n const snapTo = getClosest(snapInverse, currentY);\n const snapIndex = snapInverse.indexOf(snapTo);\n\n const snapY = validateSnapTo({\n snapTo: getClosest(snapInverse, currentY),\n sheetHeight,\n });\n\n return { snapY, snapIndex };\n}\n\n/**\n * Get the closest number to the goal from the array of numbers.\n */\nexport function getClosest(nums: number[], goal: number) {\n let closest = nums[0];\n let minDifference = Math.abs(nums[0] - goal);\n\n for (let i = 1; i < nums.length; i++) {\n const difference = Math.abs(nums[i] - goal);\n if (difference < minDifference) {\n closest = nums[i];\n minDifference = difference;\n }\n }\n\n return closest;\n}\n\n/**\n * Check if the array is in descending order.\n * This is used to validate the snap points.\n */\nexport function inDescendingOrder(arr: number[]) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i + 1] > arr[i]) return false;\n }\n\n return true;\n}\n\n/**\n * Get the Y value of the given snap point. This can be passed to the `animate`\n * function to animate the sheet to the given snap point.\n */\nexport function getSnapY({\n sheetHeight,\n snapPoints,\n snapIndex,\n}: {\n sheetHeight: number;\n snapPoints: number[];\n snapIndex: number;\n}) {\n const snapPoint = snapPoints[snapIndex];\n\n if (snapPoint === undefined) {\n console.warn(\n `Invalid snap index ${snapIndex}. Snap points are: [${snapPoints.join(', ')}]`\n );\n return null;\n }\n\n const y = validateSnapTo({ snapTo: sheetHeight - snapPoint, sheetHeight });\n\n return y;\n}\n\n/**\n * Make sure the snap point is not out of bounds.\n * Snap points cannot be negative - `0` means the sheet is fully open.\n */\nexport function validateSnapTo({\n snapTo,\n sheetHeight,\n}: {\n snapTo: number;\n sheetHeight: number;\n}) {\n if (snapTo < 0) {\n console.warn(\n `Snap point is out of bounds. Sheet height is ${sheetHeight} but snap point is ${sheetHeight + Math.abs(snapTo)}.`\n );\n }\n\n return Math.max(Math.round(snapTo), 0);\n}\n\nexport function mergeRefs<T = any>(refs: ForwardedRef<T>[]): RefCallback<T> {\n return (value: any) => {\n refs.forEach((ref: any) => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n });\n };\n}\n\nexport function isTouchDevice() {\n if (IS_SSR) return false;\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n}\n\nfunction testPlatform(re: RegExp) {\n return typeof window !== 'undefined' && window.navigator != null\n ? re.test(\n // @ts-expect-error\n window.navigator.userAgentData?.platform || window.navigator.platform\n )\n : false;\n}\n\nfunction cached(fn: () => boolean) {\n let res: boolean | null = null;\n return () => {\n if (res == null) {\n res = fn();\n }\n return res;\n };\n}\n\nconst isMac = cached(function () {\n return testPlatform(/^Mac/i);\n});\n\nconst isIPhone = cached(function () {\n return testPlatform(/^iPhone/i);\n});\n\nconst isIPad = cached(function () {\n // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n return testPlatform(/^iPad/i) || (isMac() && navigator.maxTouchPoints > 1);\n});\n\nexport const isIOS = cached(function () {\n return isIPhone() || isIPad();\n});\n","import React, {\n type ReactNode,\n createContext,\n useContext,\n useState,\n} from 'react';\nimport { type SheetScrollerContextType, type SheetContextType } from './types';\n\nexport const SheetContext = createContext<SheetContextType | undefined>(\n undefined\n);\n\nexport function useSheetContext() {\n const context = useContext(SheetContext);\n if (!context) throw new Error('Sheet context error');\n return context;\n}\n\nexport const SheetScrollerContext = createContext<\n SheetScrollerContextType | undefined\n>(undefined);\n\nexport function SheetScrollerContextProvider({\n children,\n}: {\n children: ReactNode;\n}) {\n const sheetContext = useSheetContext();\n const [disableDrag, setDisableDrag] = useState(!!sheetContext.disableDrag);\n\n function setDragEnabled() {\n if (!sheetContext.disableDrag) setDisableDrag(false);\n }\n\n function setDragDisabled() {\n if (!disableDrag) setDisableDrag(true);\n }\n\n return (\n <SheetScrollerContext.Provider\n value={{ disableDrag, setDragEnabled, setDragDisabled }}\n >\n {children}\n </SheetScrollerContext.Provider>\n );\n}\n\nexport function useSheetScrollerContext() {\n const context = useContext(SheetScrollerContext);\n if (!context) throw new Error('Sheet scroller context error');\n return context;\n}\n","import { type Properties } from 'csstype';\n\nexport const styles: Record<string, Properties> = {\n wrapper: {\n position: 'fixed',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n overflow: 'hidden',\n pointerEvents: 'none',\n },\n backdrop: {\n zIndex: 1,\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\n touchAction: 'none',\n border: 'none',\n userSelect: 'none',\n WebkitTapHighlightColor: 'transparent',\n },\n container: {\n zIndex: 2,\n position: 'absolute',\n left: 0,\n bottom: 0,\n width: '100%',\n backgroundColor: '#fff',\n borderTopRightRadius: '8px',\n borderTopLeftRadius: '8px',\n boxShadow: '0px -2px 16px rgba(0, 0, 0, 0.3)',\n display: 'flex',\n flexDirection: 'column',\n pointerEvents: 'auto',\n },\n headerWrapper: {\n width: '100%',\n },\n header: {\n height: '40px',\n width: '100%',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n indicator: {\n width: '18px',\n height: '4px',\n borderRadius: '99px',\n backgroundColor: '#ddd',\n },\n content: {\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n minHeight: '0px',\n position: 'relative',\n },\n scroller: {\n height: '100%',\n overflowY: 'auto',\n overscrollBehaviorY: 'none',\n },\n};\n","import { useEffect, useLayoutEffect } from 'react';\n\nimport { IS_SSR } from '../constants';\n\nexport const useIsomorphicLayoutEffect = IS_SSR ? useEffect : useLayoutEffect;\n","import { useState } from 'react';\n\nimport { IS_SSR } from '../constants';\n\nexport function useSafeAreaInsets() {\n const [insets] = useState(() => {\n const fallback = { top: 0, left: 0, right: 0, bottom: 0 };\n\n if (IS_SSR) return fallback;\n\n const root = document.querySelector<HTMLElement>(':root');\n\n if (!root) return fallback;\n\n root.style.setProperty('--rms-sat', 'env(safe-area-inset-top)');\n root.style.setProperty('--rms-sal', 'env(safe-area-inset-left)');\n root.style.setProperty('--rms-sar', 'env(safe-area-inset-right)');\n root.style.setProperty('--rms-sab', 'env(safe-area-inset-bottom)');\n\n const computedStyle = getComputedStyle(root);\n const sat = getComputedValue(computedStyle, '--rms-sat');\n const sal = getComputedValue(computedStyle, '--rms-sal');\n const sar = getComputedValue(computedStyle, '--rms-sar');\n const sab = getComputedValue(computedStyle, '--rms-sab');\n\n root.style.removeProperty('--rms-sat');\n root.style.removeProperty('--rms-sal');\n root.style.removeProperty('--rms-sar');\n root.style.removeProperty('--rms-sab');\n\n return { top: sat, left: sal, right: sar, bottom: sab };\n });\n\n return insets;\n}\n\nfunction getComputedValue(computed: CSSStyleDeclaration, property: string) {\n const strValue = computed.getPropertyValue(property).replace('px', '').trim();\n return parseInt(strValue, 10) || 0;\n}\n","import { transform, type MotionValue } from 'motion';\nimport { type RefObject } from 'react';\n\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nimport { useSafeAreaInsets } from './use-safe-area-insets';\nimport { getSheetHeight, getSnapPoints } from '../utils';\n\nexport function useModalEffect({\n y,\n rootId,\n sheetRef,\n snapPointsProp,\n startThreshold,\n}: {\n y: MotionValue<number>;\n rootId?: string;\n sheetRef: RefObject<HTMLDivElement | null>;\n snapPointsProp?: number[];\n startThreshold?: number;\n}) {\n const insetTop = useSafeAreaInsets().top;\n\n // Cleanup on unmount\n useIsomorphicLayoutEffect(() => {\n return () => {\n if (rootId) cleanupModalEffect(rootId);\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (!rootId) return;\n\n const root = document.querySelector(`#${rootId}`) as HTMLDivElement;\n if (!root) return;\n\n let sheetHeight = 0;\n\n const removeStartListener = y.on('animationStart', () => {\n /**\n * Only calculate the sheet height when the animation starts to avoid\n * unnecessary layout calculations when y value changes.\n */\n sheetHeight = getSheetHeight(sheetRef);\n\n // biome-ignore lint/style/noNonNullAssertion: root is always defined here\n setupModalEffect(rootId!);\n });\n\n /**\n * NOTE: The `y` value gets smaller when the sheet is opened and larger\n * when the sheet is being closed.\n */\n const removeChangeListener = y.on('change', (yValue) => {\n if (!root) return;\n\n let progress = Math.max(0, 1 - yValue / sheetHeight);\n\n const snapPoints = snapPointsProp\n ? getSnapPoints({ snapPointsProp, sheetHeight })\n : undefined;\n\n /**\n * Start the effect only if we have dragged over the second snap point\n * to make the effect more natural as the sheet will reach it's final\n * position when the user drags it over the second snap point.\n */\n const snapThresholdPoint =\n snapPoints && snapPoints.length > 1 ? snapPoints[1] : undefined;\n\n /**\n * If we have snap points, we need to calculate the progress percentage\n * based on the snap point threshold. Note that the maximum value is also\n * different in this case as the range between the start of the effect\n * and its end is different.\n */\n if (snapThresholdPoint !== undefined) {\n const snapThresholdValue =\n sheetHeight - Math.min(snapThresholdPoint, sheetHeight);\n\n if (yValue <= snapThresholdValue) {\n progress = (snapThresholdValue - yValue) / snapThresholdValue;\n } else {\n progress = 0;\n }\n }\n\n /**\n * If we have a start threshold, we need to calculate the progress\n * percentage based on the start threshold (0 to 1). For example,\n * if the start threshold is 0.5, the progress will be 0 until the sheet\n * is dragged over 50% of the complete drag distance.\n */\n if (startThreshold !== undefined) {\n const startThresholdValue =\n sheetHeight -\n Math.min(Math.floor(startThreshold * sheetHeight), sheetHeight);\n\n if (yValue <= startThresholdValue) {\n progress = (startThresholdValue - yValue) / startThresholdValue;\n } else {\n progress = 0;\n }\n }\n\n // Make sure progress is between 0 and 1\n progress = Math.max(0, Math.min(1, progress));\n\n const pageWidth = window.innerWidth;\n const ty = transform(progress, [0, 1], [0, 24 + insetTop]);\n const s = transform(progress, [0, 1], [1, (pageWidth - 16) / pageWidth]);\n const borderRadius = transform(progress, [0, 1], [0, 10]);\n\n root.style.transform = `scale(${s}) translate3d(0, ${ty}px, 0)`;\n root.style.borderTopRightRadius = `${borderRadius}px`;\n root.style.borderTopLeftRadius = `${borderRadius}px`;\n });\n\n function onCompleted() {\n // -5 just to take into account some inprecision to ensure the cleanup is done\n if (y.get() - 5 >= sheetHeight) {\n // biome-ignore lint/style/noNonNullAssertion: root is always defined here\n cleanupModalEffect(rootId!);\n }\n }\n\n const removeCompleteListener = y.on('animationComplete', onCompleted);\n const removeCancelListener = y.on('animationCancel', onCompleted);\n\n return () => {\n removeStartListener();\n removeChangeListener();\n removeCompleteListener();\n removeCancelListener();\n };\n }, [y, rootId, insetTop, startThreshold, snapPointsProp]);\n}\n\nfunction setupModalEffect(rootId: string) {\n const root = document.querySelector(`#${rootId}`) as HTMLDivElement;\n const body = document.querySelector('body') as HTMLBodyElement;\n if (!root) return;\n\n body.style.backgroundColor = '#000';\n root.style.overflow = 'hidden';\n root.style.transitionTimingFunction = 'cubic-bezier(0.32, 0.72, 0, 1)';\n root.style.transitionProperty = 'transform, border-radius';\n root.style.transitionDuration = '0.5s';\n root.style.transformOrigin = 'center top';\n}\n\nfunction cleanupModalEffect(rootId: string) {\n const root = document.querySelector(`#${rootId}`) as HTMLDivElement;\n const body = document.querySelector('body') as HTMLBodyElement;\n if (!root) return;\n\n body.style.removeProperty('background-color');\n root.style.removeProperty('overflow');\n root.style.removeProperty('transition-timing-function');\n root.style.removeProperty('transition-property');\n root.style.removeProperty('transition-duration');\n root.style.removeProperty('transform-origin');\n root.style.removeProperty('transform');\n root.style.removeProperty('border-top-right-radius');\n root.style.removeProperty('border-top-left-radius');\n}\n","import { useState } from 'react';\n\nimport { IS_SSR } from '../constants';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\n\nexport function useDimensions() {\n const [dimensions, setDimensions] = useState(() => ({\n height: !IS_SSR ? window.innerHeight : 0,\n width: !IS_SSR ? window.innerWidth : 0,\n }));\n\n useIsomorphicLayoutEffect(() => {\n function handler() {\n setDimensions({\n height: window.innerHeight,\n width: window.innerWidth,\n });\n }\n\n handler();\n\n window.addEventListener('resize', handler);\n\n return () => {\n window.removeEventListener('resize', handler);\n };\n }, []);\n\n return dimensions;\n}\n","import { useCallback, useRef } from 'react';\n\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\n\nexport function useStableCallback<T extends (...args: any[]) => any>(\n handler: T\n) {\n const handlerRef = useRef<T>(undefined);\n\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n\n return useCallback((...args: any[]) => {\n const fn = handlerRef.current;\n return fn?.(...args);\n }, []) as T;\n}\n","// This code originates from https://github.com/adobe/react-spectrum/blob/main/p