@chayns-components/core 5.0.0-beta.1360 → 5.0.0-beta.1361
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -59,7 +59,7 @@ const MentionFinder = ({
|
|
|
59
59
|
name
|
|
60
60
|
}) => id.toLowerCase().includes(searchString) || (info === null || info === void 0 ? void 0 : info.replace('chayns', '').toLowerCase().includes(searchString)) || name.toLowerCase().includes(searchString)) : members, [members, searchString]);
|
|
61
61
|
const handleKeyDown = (0, _react2.useCallback)(event => {
|
|
62
|
-
if (event.key === 'ArrowUp' || event.key === 'ArrowDown' && fullMatch) {
|
|
62
|
+
if ((event.key === 'ArrowUp' || event.key === 'ArrowDown') && fullMatch) {
|
|
63
63
|
var _listRef$current;
|
|
64
64
|
event.preventDefault();
|
|
65
65
|
const children = (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.children;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionFinder.js","names":["_react","require","_react2","_interopRequireWildcard","_reactDom","_mentionFinder","_MentionFinderItem","_interopRequireDefault","_MentionFinder","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DRAG_CLOSE_THRESHOLD_IN_PX","findTouchByIdentifier","touchList","identifier","length","touch","item","MentionFinder","inputValue","members","onSelect","popupAlignment","enableDragHandle","dragCloseThresholdInPx","overlayContainerSelector","activeMember","setActiveMember","useState","focusedIndex","setFocusedIndex","shouldShowPopup","setShouldShowPopup","popupRef","useRef","listRef","dragStartYRef","hasTriggeredDragCloseRef","activePointerIdRef","activeTouchIdRef","isDraggingHandle","setIsDraggingHandle","dragOffset","setDragOffset","dragProgress","setDragProgress","overlayContainer","setOverlayContainer","fullMatch","searchString","useMemo","_regExpMatchArray$","regExpMatchArray","match","toLowerCase","filteredMembers","filter","id","info","name","includes","replace","handleKeyDown","useCallback","event","key","_listRef$current","preventDefault","children","current","newIndex","prevElement","tabIndex","member","newElement","focus","stopPropagation","handleMemberClick","handleMemberHover","useEffect","isActiveMemberShown","some","items","map","createElement","isActive","onClick","onHover","window","addEventListener","removeEventListener","closePopupViaDrag","handleOverlayClick","updateDragByClientY","clientY","closingDirectionMultiplier","MentionFinderPopupAlignment","Bottom","rawDelta","normalizedDelta","positiveDelta","Math","max","limitedDelta","min","handleDragPointerDown","pointerType","button","pointerId","currentTarget","setPointerCapture","handleDragPointerMove","hasClosed","releasePointerCapture","resetDragState","shouldClose","handleDragPointerUp","handleDragPointerCancel","handleDragTouchStart","touches","handleDragTouchMove","changedTouches","handleDragTouchEnd","handleDragTouchCancel","dragHandle","StyledMentionFinderDragHandle","$alignment","StyledMentionFinderDragHandleInner","$dragOffset","$dragProgress","$isDragging","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","shouldRenderPopup","_popupRef$current","container","closest","document","body","overlayPortal","createPortal","AnimatePresence","initial","StyledMentionFinderOverlay","animate","opacity","exit","Fragment","StyledMentionFinder","className","StyledMotionMentionFinderPopup","ref","height","y","$popupAlignment","transition","duration","Top","StyledMentionFinderItemList","displayName","_default","exports"],"sources":["../../../../src/components/mention-finder/MentionFinder.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n PointerEvent,\n TouchList,\n TouchEvent,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { MentionFinderPopupAlignment } from '../../constants/mentionFinder';\nimport MentionFinderItem from './mention-finder-item/MentionFinderItem';\nimport {\n StyledMentionFinder,\n StyledMentionFinderDragHandle,\n StyledMentionFinderDragHandleInner,\n StyledMentionFinderItemList,\n StyledMentionFinderOverlay,\n StyledMotionMentionFinderPopup,\n} from './MentionFinder.styles';\n\nexport type MentionMember = {\n id: string;\n info?: string;\n imageUrl: string;\n name: string;\n shouldShowRoundImage?: boolean;\n};\n\nexport type MentionFinderProps = {\n /**\n * The text from the input field\n */\n inputValue: string;\n /**\n * Members that can be selected\n */\n members: MentionMember[];\n /**\n * Function to be executed when a member is selected\n */\n onSelect: ({ fullMatch, member }: { fullMatch: string; member: MentionMember }) => void;\n /**\n * Alignment of the popup\n */\n popupAlignment: MentionFinderPopupAlignment;\n /**\n * Enables the optional drag handle inside the popup\n */\n enableDragHandle?: boolean;\n /**\n * Threshold in pixels to drag to close the popup\n */\n dragCloseThresholdInPx?: number;\n /**\n * Selector for the container to render the overlay into (defaults to closest dialog, thread, page provider or tapp)\n */\n overlayContainerSelector?: string;\n};\n\nconst DRAG_CLOSE_THRESHOLD_IN_PX = 60;\n\nconst findTouchByIdentifier = (touchList: TouchList, identifier: number | null) => {\n if (identifier === null) {\n return null;\n }\n\n for (let i = 0; i < touchList.length; i += 1) {\n const touch = touchList.item(i);\n if (touch && touch.identifier === identifier) {\n return touch;\n }\n }\n\n return null;\n};\n\nconst MentionFinder: FC<MentionFinderProps> = ({\n inputValue,\n members,\n onSelect,\n popupAlignment,\n enableDragHandle = false,\n dragCloseThresholdInPx = DRAG_CLOSE_THRESHOLD_IN_PX,\n overlayContainerSelector,\n}) => {\n const [activeMember, setActiveMember] = useState(members[0]);\n const [focusedIndex, setFocusedIndex] = useState(0);\n const [shouldShowPopup, setShouldShowPopup] = useState(true);\n\n const popupRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const dragStartYRef = useRef<number | null>(null);\n const hasTriggeredDragCloseRef = useRef(false);\n const activePointerIdRef = useRef<number | null>(null);\n const activeTouchIdRef = useRef<number | null>(null);\n\n const [isDraggingHandle, setIsDraggingHandle] = useState(false);\n const [dragOffset, setDragOffset] = useState(0);\n const [dragProgress, setDragProgress] = useState(0);\n const [overlayContainer, setOverlayContainer] = useState<Element | null>(null);\n\n const [fullMatch, searchString] = useMemo(() => {\n // eslint-disable-next-line no-irregular-whitespace\n const regExpMatchArray = inputValue.match(/@(?!\\s)([^\\s]*)/);\n\n return [regExpMatchArray?.[0], regExpMatchArray?.[1]?.toLowerCase() ?? ''];\n }, [inputValue]);\n\n const filteredMembers = useMemo(\n () =>\n searchString !== ''\n ? members.filter(\n ({ id, info, name }) =>\n id.toLowerCase().includes(searchString) ||\n info?.replace('chayns', '').toLowerCase().includes(searchString) ||\n name.toLowerCase().includes(searchString),\n )\n : members,\n [members, searchString],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'ArrowUp' || (event.key === 'ArrowDown' && fullMatch)) {\n event.preventDefault();\n\n const children = listRef.current?.children;\n\n if (children && children.length > 0) {\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex +\n (event.key === 'ArrowUp' ? -1 : 1) +\n children.length) %\n children.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const member = filteredMembers[newIndex];\n\n setActiveMember(member);\n\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (event.key === 'Enter' && fullMatch) {\n event.preventDefault();\n event.stopPropagation();\n\n if (fullMatch && activeMember) {\n onSelect({ fullMatch, member: activeMember });\n }\n }\n },\n [activeMember, filteredMembers, focusedIndex, fullMatch, onSelect],\n );\n\n const handleMemberClick = useCallback(\n (member: MentionMember) => {\n if (fullMatch) {\n onSelect({ fullMatch, member });\n }\n },\n [fullMatch, onSelect],\n );\n\n const handleMemberHover = useCallback((member: MentionMember) => {\n setActiveMember(member);\n }, []);\n\n useEffect(() => {\n if (filteredMembers.length > 0) {\n const isActiveMemberShown = filteredMembers.some(({ id }) => id === activeMember?.id);\n\n if (!isActiveMemberShown) {\n setActiveMember(filteredMembers[0]);\n }\n }\n }, [activeMember?.id, filteredMembers]);\n\n const items = useMemo(\n () =>\n filteredMembers.map((member) => (\n <MentionFinderItem\n isActive={member.id === activeMember?.id}\n key={member.id}\n member={member}\n onClick={handleMemberClick}\n onHover={handleMemberHover}\n />\n )),\n [activeMember, filteredMembers, handleMemberClick, handleMemberHover],\n );\n\n useEffect(() => {\n setDragOffset(0);\n setDragProgress(0);\n hasTriggeredDragCloseRef.current = false;\n setShouldShowPopup(true);\n }, [inputValue]);\n\n useEffect(() => {\n if (shouldShowPopup) {\n window.addEventListener('keydown', handleKeyDown, true);\n }\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown, true);\n };\n }, [handleKeyDown, shouldShowPopup]);\n\n const closePopupViaDrag = useCallback(() => {\n if (hasTriggeredDragCloseRef.current) {\n return;\n }\n hasTriggeredDragCloseRef.current = true;\n setDragOffset(0);\n setDragProgress(0);\n setShouldShowPopup(false);\n }, []);\n\n const handleOverlayClick = useCallback(() => {\n closePopupViaDrag();\n }, [closePopupViaDrag]);\n\n const updateDragByClientY = useCallback(\n (clientY: number) => {\n if (dragStartYRef.current === null) {\n return false;\n }\n\n const closingDirectionMultiplier =\n popupAlignment === MentionFinderPopupAlignment.Bottom ? -1 : 1;\n const rawDelta = clientY - dragStartYRef.current;\n const normalizedDelta = rawDelta * closingDirectionMultiplier;\n const positiveDelta = Math.max(0, normalizedDelta);\n const limitedDelta = Math.min(positiveDelta, dragCloseThresholdInPx);\n\n setDragOffset(limitedDelta * closingDirectionMultiplier);\n setDragProgress(Math.min(positiveDelta / dragCloseThresholdInPx, 1));\n\n if (positiveDelta >= dragCloseThresholdInPx) {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n closePopupViaDrag();\n return true;\n }\n\n return false;\n },\n [closePopupViaDrag, dragCloseThresholdInPx, popupAlignment],\n );\n\n const handleDragPointerDown = useCallback((event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch') {\n return;\n }\n if (event.pointerType === 'mouse' && event.button !== 0) {\n return;\n }\n if (dragStartYRef.current !== null) {\n return;\n }\n activePointerIdRef.current = event.pointerId;\n dragStartYRef.current = event.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.currentTarget.setPointerCapture(event.pointerId);\n event.stopPropagation();\n }, []);\n\n const handleDragPointerMove = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n if (dragStartYRef.current === null) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const hasClosed = updateDragByClientY(event.clientY);\n\n if (hasClosed) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const resetDragState = useCallback(\n (shouldClose = false) => {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n if (shouldClose) {\n closePopupViaDrag();\n } else {\n setDragOffset(0);\n setDragProgress(0);\n }\n },\n [closePopupViaDrag],\n );\n\n const handleDragPointerUp = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragPointerCancel = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n resetDragState();\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [resetDragState],\n );\n\n const handleDragTouchStart = useCallback((event: TouchEvent<HTMLDivElement>) => {\n if (event.touches.length === 0 || dragStartYRef.current !== null) {\n return;\n }\n\n const touch = event.touches[0];\n\n if (!touch) return;\n\n activeTouchIdRef.current = touch.identifier;\n dragStartYRef.current = touch.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDragTouchMove = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (dragStartYRef.current === null || activeTouchIdRef.current === null) {\n return;\n }\n const touch =\n findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current) ??\n findTouchByIdentifier(event.touches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n const hasClosed = updateDragByClientY(touch.clientY);\n if (hasClosed) {\n activeTouchIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const handleDragTouchEnd = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragTouchCancel = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n resetDragState();\n },\n [resetDragState],\n );\n\n const dragHandle = useMemo(() => {\n if (!enableDragHandle) {\n return null;\n }\n\n return (\n <StyledMentionFinderDragHandle $alignment={popupAlignment}>\n <StyledMentionFinderDragHandleInner\n $alignment={popupAlignment}\n $dragOffset={dragOffset}\n $dragProgress={dragProgress}\n $isDragging={isDraggingHandle}\n onPointerDown={handleDragPointerDown}\n onPointerMove={handleDragPointerMove}\n onPointerUp={handleDragPointerUp}\n onPointerCancel={handleDragPointerCancel}\n onTouchStart={handleDragTouchStart}\n onTouchMove={handleDragTouchMove}\n onTouchEnd={handleDragTouchEnd}\n onTouchCancel={handleDragTouchCancel}\n />\n </StyledMentionFinderDragHandle>\n );\n }, [\n enableDragHandle,\n popupAlignment,\n dragOffset,\n dragProgress,\n isDraggingHandle,\n handleDragPointerDown,\n handleDragPointerMove,\n handleDragPointerUp,\n handleDragPointerCancel,\n handleDragTouchStart,\n handleDragTouchMove,\n handleDragTouchEnd,\n handleDragTouchCancel,\n ]);\n\n const shouldRenderPopup = shouldShowPopup && fullMatch && items.length > 0;\n\n useEffect(() => {\n if (!enableDragHandle || !shouldRenderPopup) {\n setOverlayContainer(null);\n return;\n }\n\n const container = popupRef.current?.closest(\n overlayContainerSelector ?? '.dialog-inner, .chayns-threads, .page-provider, .tapp',\n );\n\n if (container) {\n setOverlayContainer(container);\n return;\n }\n\n if (typeof document !== 'undefined') {\n setOverlayContainer(document.body);\n }\n }, [enableDragHandle, overlayContainerSelector, shouldRenderPopup]);\n\n const overlayPortal =\n overlayContainer && enableDragHandle\n ? createPortal(\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMentionFinderOverlay\n key=\"mention-finder-overlay\"\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n onClick={handleOverlayClick}\n />\n )}\n </AnimatePresence>,\n overlayContainer,\n )\n : null;\n\n return (\n <>\n {overlayPortal}\n <StyledMentionFinder className=\"beta-chayns-mention-finder\">\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMotionMentionFinderPopup\n ref={popupRef}\n animate={{\n height: 'auto',\n opacity: 1,\n y: dragOffset,\n }}\n className=\"prevent-lose-focus\"\n exit={{ height: 0, opacity: 0 }}\n initial={{ height: 0, opacity: 0 }}\n $popupAlignment={popupAlignment}\n $isDragging={enableDragHandle}\n transition={{ duration: 0.15 }}\n tabIndex={0}\n >\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Top &&\n dragHandle}\n <StyledMentionFinderItemList ref={listRef}>\n {items}\n </StyledMentionFinderItemList>\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Bottom &&\n dragHandle}\n </StyledMotionMentionFinderPopup>\n )}\n </AnimatePresence>\n </StyledMentionFinder>\n </>\n );\n};\n\nMentionFinder.displayName = 'MentionFinder';\n\nexport default MentionFinder;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"MentionFinder.js","names":["_react","require","_react2","_interopRequireWildcard","_reactDom","_mentionFinder","_MentionFinderItem","_interopRequireDefault","_MentionFinder","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DRAG_CLOSE_THRESHOLD_IN_PX","findTouchByIdentifier","touchList","identifier","length","touch","item","MentionFinder","inputValue","members","onSelect","popupAlignment","enableDragHandle","dragCloseThresholdInPx","overlayContainerSelector","activeMember","setActiveMember","useState","focusedIndex","setFocusedIndex","shouldShowPopup","setShouldShowPopup","popupRef","useRef","listRef","dragStartYRef","hasTriggeredDragCloseRef","activePointerIdRef","activeTouchIdRef","isDraggingHandle","setIsDraggingHandle","dragOffset","setDragOffset","dragProgress","setDragProgress","overlayContainer","setOverlayContainer","fullMatch","searchString","useMemo","_regExpMatchArray$","regExpMatchArray","match","toLowerCase","filteredMembers","filter","id","info","name","includes","replace","handleKeyDown","useCallback","event","key","_listRef$current","preventDefault","children","current","newIndex","prevElement","tabIndex","member","newElement","focus","stopPropagation","handleMemberClick","handleMemberHover","useEffect","isActiveMemberShown","some","items","map","createElement","isActive","onClick","onHover","window","addEventListener","removeEventListener","closePopupViaDrag","handleOverlayClick","updateDragByClientY","clientY","closingDirectionMultiplier","MentionFinderPopupAlignment","Bottom","rawDelta","normalizedDelta","positiveDelta","Math","max","limitedDelta","min","handleDragPointerDown","pointerType","button","pointerId","currentTarget","setPointerCapture","handleDragPointerMove","hasClosed","releasePointerCapture","resetDragState","shouldClose","handleDragPointerUp","handleDragPointerCancel","handleDragTouchStart","touches","handleDragTouchMove","changedTouches","handleDragTouchEnd","handleDragTouchCancel","dragHandle","StyledMentionFinderDragHandle","$alignment","StyledMentionFinderDragHandleInner","$dragOffset","$dragProgress","$isDragging","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","shouldRenderPopup","_popupRef$current","container","closest","document","body","overlayPortal","createPortal","AnimatePresence","initial","StyledMentionFinderOverlay","animate","opacity","exit","Fragment","StyledMentionFinder","className","StyledMotionMentionFinderPopup","ref","height","y","$popupAlignment","transition","duration","Top","StyledMentionFinderItemList","displayName","_default","exports"],"sources":["../../../../src/components/mention-finder/MentionFinder.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n PointerEvent,\n TouchList,\n TouchEvent,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { MentionFinderPopupAlignment } from '../../constants/mentionFinder';\nimport MentionFinderItem from './mention-finder-item/MentionFinderItem';\nimport {\n StyledMentionFinder,\n StyledMentionFinderDragHandle,\n StyledMentionFinderDragHandleInner,\n StyledMentionFinderItemList,\n StyledMentionFinderOverlay,\n StyledMotionMentionFinderPopup,\n} from './MentionFinder.styles';\n\nexport type MentionMember = {\n id: string;\n info?: string;\n imageUrl: string;\n name: string;\n shouldShowRoundImage?: boolean;\n};\n\nexport type MentionFinderProps = {\n /**\n * The text from the input field\n */\n inputValue: string;\n /**\n * Members that can be selected\n */\n members: MentionMember[];\n /**\n * Function to be executed when a member is selected\n */\n onSelect: ({ fullMatch, member }: { fullMatch: string; member: MentionMember }) => void;\n /**\n * Alignment of the popup\n */\n popupAlignment: MentionFinderPopupAlignment;\n /**\n * Enables the optional drag handle inside the popup\n */\n enableDragHandle?: boolean;\n /**\n * Threshold in pixels to drag to close the popup\n */\n dragCloseThresholdInPx?: number;\n /**\n * Selector for the container to render the overlay into (defaults to closest dialog, thread, page provider or tapp)\n */\n overlayContainerSelector?: string;\n};\n\nconst DRAG_CLOSE_THRESHOLD_IN_PX = 60;\n\nconst findTouchByIdentifier = (touchList: TouchList, identifier: number | null) => {\n if (identifier === null) {\n return null;\n }\n\n for (let i = 0; i < touchList.length; i += 1) {\n const touch = touchList.item(i);\n if (touch && touch.identifier === identifier) {\n return touch;\n }\n }\n\n return null;\n};\n\nconst MentionFinder: FC<MentionFinderProps> = ({\n inputValue,\n members,\n onSelect,\n popupAlignment,\n enableDragHandle = false,\n dragCloseThresholdInPx = DRAG_CLOSE_THRESHOLD_IN_PX,\n overlayContainerSelector,\n}) => {\n const [activeMember, setActiveMember] = useState(members[0]);\n const [focusedIndex, setFocusedIndex] = useState(0);\n const [shouldShowPopup, setShouldShowPopup] = useState(true);\n\n const popupRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const dragStartYRef = useRef<number | null>(null);\n const hasTriggeredDragCloseRef = useRef(false);\n const activePointerIdRef = useRef<number | null>(null);\n const activeTouchIdRef = useRef<number | null>(null);\n\n const [isDraggingHandle, setIsDraggingHandle] = useState(false);\n const [dragOffset, setDragOffset] = useState(0);\n const [dragProgress, setDragProgress] = useState(0);\n const [overlayContainer, setOverlayContainer] = useState<Element | null>(null);\n\n const [fullMatch, searchString] = useMemo(() => {\n // eslint-disable-next-line no-irregular-whitespace\n const regExpMatchArray = inputValue.match(/@(?!\\s)([^\\s]*)/);\n\n return [regExpMatchArray?.[0], regExpMatchArray?.[1]?.toLowerCase() ?? ''];\n }, [inputValue]);\n\n const filteredMembers = useMemo(\n () =>\n searchString !== ''\n ? members.filter(\n ({ id, info, name }) =>\n id.toLowerCase().includes(searchString) ||\n info?.replace('chayns', '').toLowerCase().includes(searchString) ||\n name.toLowerCase().includes(searchString),\n )\n : members,\n [members, searchString],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if ((event.key === 'ArrowUp' || event.key === 'ArrowDown') && fullMatch) {\n event.preventDefault();\n\n const children = listRef.current?.children;\n\n if (children && children.length > 0) {\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex +\n (event.key === 'ArrowUp' ? -1 : 1) +\n children.length) %\n children.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const member = filteredMembers[newIndex];\n\n setActiveMember(member);\n\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (event.key === 'Enter' && fullMatch) {\n event.preventDefault();\n event.stopPropagation();\n\n if (fullMatch && activeMember) {\n onSelect({ fullMatch, member: activeMember });\n }\n }\n },\n [activeMember, filteredMembers, focusedIndex, fullMatch, onSelect],\n );\n\n const handleMemberClick = useCallback(\n (member: MentionMember) => {\n if (fullMatch) {\n onSelect({ fullMatch, member });\n }\n },\n [fullMatch, onSelect],\n );\n\n const handleMemberHover = useCallback((member: MentionMember) => {\n setActiveMember(member);\n }, []);\n\n useEffect(() => {\n if (filteredMembers.length > 0) {\n const isActiveMemberShown = filteredMembers.some(({ id }) => id === activeMember?.id);\n\n if (!isActiveMemberShown) {\n setActiveMember(filteredMembers[0]);\n }\n }\n }, [activeMember?.id, filteredMembers]);\n\n const items = useMemo(\n () =>\n filteredMembers.map((member) => (\n <MentionFinderItem\n isActive={member.id === activeMember?.id}\n key={member.id}\n member={member}\n onClick={handleMemberClick}\n onHover={handleMemberHover}\n />\n )),\n [activeMember, filteredMembers, handleMemberClick, handleMemberHover],\n );\n\n useEffect(() => {\n setDragOffset(0);\n setDragProgress(0);\n hasTriggeredDragCloseRef.current = false;\n setShouldShowPopup(true);\n }, [inputValue]);\n\n useEffect(() => {\n if (shouldShowPopup) {\n window.addEventListener('keydown', handleKeyDown, true);\n }\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown, true);\n };\n }, [handleKeyDown, shouldShowPopup]);\n\n const closePopupViaDrag = useCallback(() => {\n if (hasTriggeredDragCloseRef.current) {\n return;\n }\n hasTriggeredDragCloseRef.current = true;\n setDragOffset(0);\n setDragProgress(0);\n setShouldShowPopup(false);\n }, []);\n\n const handleOverlayClick = useCallback(() => {\n closePopupViaDrag();\n }, [closePopupViaDrag]);\n\n const updateDragByClientY = useCallback(\n (clientY: number) => {\n if (dragStartYRef.current === null) {\n return false;\n }\n\n const closingDirectionMultiplier =\n popupAlignment === MentionFinderPopupAlignment.Bottom ? -1 : 1;\n const rawDelta = clientY - dragStartYRef.current;\n const normalizedDelta = rawDelta * closingDirectionMultiplier;\n const positiveDelta = Math.max(0, normalizedDelta);\n const limitedDelta = Math.min(positiveDelta, dragCloseThresholdInPx);\n\n setDragOffset(limitedDelta * closingDirectionMultiplier);\n setDragProgress(Math.min(positiveDelta / dragCloseThresholdInPx, 1));\n\n if (positiveDelta >= dragCloseThresholdInPx) {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n closePopupViaDrag();\n return true;\n }\n\n return false;\n },\n [closePopupViaDrag, dragCloseThresholdInPx, popupAlignment],\n );\n\n const handleDragPointerDown = useCallback((event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch') {\n return;\n }\n if (event.pointerType === 'mouse' && event.button !== 0) {\n return;\n }\n if (dragStartYRef.current !== null) {\n return;\n }\n activePointerIdRef.current = event.pointerId;\n dragStartYRef.current = event.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.currentTarget.setPointerCapture(event.pointerId);\n event.stopPropagation();\n }, []);\n\n const handleDragPointerMove = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n if (dragStartYRef.current === null) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const hasClosed = updateDragByClientY(event.clientY);\n\n if (hasClosed) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const resetDragState = useCallback(\n (shouldClose = false) => {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n if (shouldClose) {\n closePopupViaDrag();\n } else {\n setDragOffset(0);\n setDragProgress(0);\n }\n },\n [closePopupViaDrag],\n );\n\n const handleDragPointerUp = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragPointerCancel = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n resetDragState();\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [resetDragState],\n );\n\n const handleDragTouchStart = useCallback((event: TouchEvent<HTMLDivElement>) => {\n if (event.touches.length === 0 || dragStartYRef.current !== null) {\n return;\n }\n\n const touch = event.touches[0];\n\n if (!touch) return;\n\n activeTouchIdRef.current = touch.identifier;\n dragStartYRef.current = touch.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDragTouchMove = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (dragStartYRef.current === null || activeTouchIdRef.current === null) {\n return;\n }\n const touch =\n findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current) ??\n findTouchByIdentifier(event.touches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n const hasClosed = updateDragByClientY(touch.clientY);\n if (hasClosed) {\n activeTouchIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const handleDragTouchEnd = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragTouchCancel = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n resetDragState();\n },\n [resetDragState],\n );\n\n const dragHandle = useMemo(() => {\n if (!enableDragHandle) {\n return null;\n }\n\n return (\n <StyledMentionFinderDragHandle $alignment={popupAlignment}>\n <StyledMentionFinderDragHandleInner\n $alignment={popupAlignment}\n $dragOffset={dragOffset}\n $dragProgress={dragProgress}\n $isDragging={isDraggingHandle}\n onPointerDown={handleDragPointerDown}\n onPointerMove={handleDragPointerMove}\n onPointerUp={handleDragPointerUp}\n onPointerCancel={handleDragPointerCancel}\n onTouchStart={handleDragTouchStart}\n onTouchMove={handleDragTouchMove}\n onTouchEnd={handleDragTouchEnd}\n onTouchCancel={handleDragTouchCancel}\n />\n </StyledMentionFinderDragHandle>\n );\n }, [\n enableDragHandle,\n popupAlignment,\n dragOffset,\n dragProgress,\n isDraggingHandle,\n handleDragPointerDown,\n handleDragPointerMove,\n handleDragPointerUp,\n handleDragPointerCancel,\n handleDragTouchStart,\n handleDragTouchMove,\n handleDragTouchEnd,\n handleDragTouchCancel,\n ]);\n\n const shouldRenderPopup = shouldShowPopup && fullMatch && items.length > 0;\n\n useEffect(() => {\n if (!enableDragHandle || !shouldRenderPopup) {\n setOverlayContainer(null);\n return;\n }\n\n const container = popupRef.current?.closest(\n overlayContainerSelector ?? '.dialog-inner, .chayns-threads, .page-provider, .tapp',\n );\n\n if (container) {\n setOverlayContainer(container);\n return;\n }\n\n if (typeof document !== 'undefined') {\n setOverlayContainer(document.body);\n }\n }, [enableDragHandle, overlayContainerSelector, shouldRenderPopup]);\n\n const overlayPortal =\n overlayContainer && enableDragHandle\n ? createPortal(\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMentionFinderOverlay\n key=\"mention-finder-overlay\"\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n onClick={handleOverlayClick}\n />\n )}\n </AnimatePresence>,\n overlayContainer,\n )\n : null;\n\n return (\n <>\n {overlayPortal}\n <StyledMentionFinder className=\"beta-chayns-mention-finder\">\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMotionMentionFinderPopup\n ref={popupRef}\n animate={{\n height: 'auto',\n opacity: 1,\n y: dragOffset,\n }}\n className=\"prevent-lose-focus\"\n exit={{ height: 0, opacity: 0 }}\n initial={{ height: 0, opacity: 0 }}\n $popupAlignment={popupAlignment}\n $isDragging={enableDragHandle}\n transition={{ duration: 0.15 }}\n tabIndex={0}\n >\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Top &&\n dragHandle}\n <StyledMentionFinderItemList ref={listRef}>\n {items}\n </StyledMentionFinderItemList>\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Bottom &&\n dragHandle}\n </StyledMotionMentionFinderPopup>\n )}\n </AnimatePresence>\n </StyledMentionFinder>\n </>\n );\n};\n\nMentionFinder.displayName = 'MentionFinder';\n\nexport default MentionFinder;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -50,7 +50,7 @@ const MentionFinder = ({
|
|
|
50
50
|
name
|
|
51
51
|
}) => id.toLowerCase().includes(searchString) || info?.replace('chayns', '').toLowerCase().includes(searchString) || name.toLowerCase().includes(searchString)) : members, [members, searchString]);
|
|
52
52
|
const handleKeyDown = useCallback(event => {
|
|
53
|
-
if (event.key === 'ArrowUp' || event.key === 'ArrowDown' && fullMatch) {
|
|
53
|
+
if ((event.key === 'ArrowUp' || event.key === 'ArrowDown') && fullMatch) {
|
|
54
54
|
event.preventDefault();
|
|
55
55
|
const children = listRef.current?.children;
|
|
56
56
|
if (children && children.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MentionFinder.js","names":["AnimatePresence","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","MentionFinderPopupAlignment","MentionFinderItem","StyledMentionFinder","StyledMentionFinderDragHandle","StyledMentionFinderDragHandleInner","StyledMentionFinderItemList","StyledMentionFinderOverlay","StyledMotionMentionFinderPopup","DRAG_CLOSE_THRESHOLD_IN_PX","findTouchByIdentifier","touchList","identifier","i","length","touch","item","MentionFinder","inputValue","members","onSelect","popupAlignment","enableDragHandle","dragCloseThresholdInPx","overlayContainerSelector","activeMember","setActiveMember","focusedIndex","setFocusedIndex","shouldShowPopup","setShouldShowPopup","popupRef","listRef","dragStartYRef","hasTriggeredDragCloseRef","activePointerIdRef","activeTouchIdRef","isDraggingHandle","setIsDraggingHandle","dragOffset","setDragOffset","dragProgress","setDragProgress","overlayContainer","setOverlayContainer","fullMatch","searchString","regExpMatchArray","match","toLowerCase","filteredMembers","filter","id","info","name","includes","replace","handleKeyDown","event","key","preventDefault","children","current","newIndex","prevElement","tabIndex","member","newElement","focus","stopPropagation","handleMemberClick","handleMemberHover","isActiveMemberShown","some","items","map","createElement","isActive","onClick","onHover","window","addEventListener","removeEventListener","closePopupViaDrag","handleOverlayClick","updateDragByClientY","clientY","closingDirectionMultiplier","Bottom","rawDelta","normalizedDelta","positiveDelta","Math","max","limitedDelta","min","handleDragPointerDown","pointerType","button","pointerId","currentTarget","setPointerCapture","handleDragPointerMove","hasClosed","releasePointerCapture","resetDragState","shouldClose","handleDragPointerUp","handleDragPointerCancel","handleDragTouchStart","touches","handleDragTouchMove","changedTouches","handleDragTouchEnd","handleDragTouchCancel","dragHandle","$alignment","$dragOffset","$dragProgress","$isDragging","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","shouldRenderPopup","container","closest","document","body","overlayPortal","initial","animate","opacity","exit","Fragment","className","ref","height","y","$popupAlignment","transition","duration","Top","displayName"],"sources":["../../../../src/components/mention-finder/MentionFinder.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n PointerEvent,\n TouchList,\n TouchEvent,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { MentionFinderPopupAlignment } from '../../constants/mentionFinder';\nimport MentionFinderItem from './mention-finder-item/MentionFinderItem';\nimport {\n StyledMentionFinder,\n StyledMentionFinderDragHandle,\n StyledMentionFinderDragHandleInner,\n StyledMentionFinderItemList,\n StyledMentionFinderOverlay,\n StyledMotionMentionFinderPopup,\n} from './MentionFinder.styles';\n\nexport type MentionMember = {\n id: string;\n info?: string;\n imageUrl: string;\n name: string;\n shouldShowRoundImage?: boolean;\n};\n\nexport type MentionFinderProps = {\n /**\n * The text from the input field\n */\n inputValue: string;\n /**\n * Members that can be selected\n */\n members: MentionMember[];\n /**\n * Function to be executed when a member is selected\n */\n onSelect: ({ fullMatch, member }: { fullMatch: string; member: MentionMember }) => void;\n /**\n * Alignment of the popup\n */\n popupAlignment: MentionFinderPopupAlignment;\n /**\n * Enables the optional drag handle inside the popup\n */\n enableDragHandle?: boolean;\n /**\n * Threshold in pixels to drag to close the popup\n */\n dragCloseThresholdInPx?: number;\n /**\n * Selector for the container to render the overlay into (defaults to closest dialog, thread, page provider or tapp)\n */\n overlayContainerSelector?: string;\n};\n\nconst DRAG_CLOSE_THRESHOLD_IN_PX = 60;\n\nconst findTouchByIdentifier = (touchList: TouchList, identifier: number | null) => {\n if (identifier === null) {\n return null;\n }\n\n for (let i = 0; i < touchList.length; i += 1) {\n const touch = touchList.item(i);\n if (touch && touch.identifier === identifier) {\n return touch;\n }\n }\n\n return null;\n};\n\nconst MentionFinder: FC<MentionFinderProps> = ({\n inputValue,\n members,\n onSelect,\n popupAlignment,\n enableDragHandle = false,\n dragCloseThresholdInPx = DRAG_CLOSE_THRESHOLD_IN_PX,\n overlayContainerSelector,\n}) => {\n const [activeMember, setActiveMember] = useState(members[0]);\n const [focusedIndex, setFocusedIndex] = useState(0);\n const [shouldShowPopup, setShouldShowPopup] = useState(true);\n\n const popupRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const dragStartYRef = useRef<number | null>(null);\n const hasTriggeredDragCloseRef = useRef(false);\n const activePointerIdRef = useRef<number | null>(null);\n const activeTouchIdRef = useRef<number | null>(null);\n\n const [isDraggingHandle, setIsDraggingHandle] = useState(false);\n const [dragOffset, setDragOffset] = useState(0);\n const [dragProgress, setDragProgress] = useState(0);\n const [overlayContainer, setOverlayContainer] = useState<Element | null>(null);\n\n const [fullMatch, searchString] = useMemo(() => {\n // eslint-disable-next-line no-irregular-whitespace\n const regExpMatchArray = inputValue.match(/@(?!\\s)([^\\s]*)/);\n\n return [regExpMatchArray?.[0], regExpMatchArray?.[1]?.toLowerCase() ?? ''];\n }, [inputValue]);\n\n const filteredMembers = useMemo(\n () =>\n searchString !== ''\n ? members.filter(\n ({ id, info, name }) =>\n id.toLowerCase().includes(searchString) ||\n info?.replace('chayns', '').toLowerCase().includes(searchString) ||\n name.toLowerCase().includes(searchString),\n )\n : members,\n [members, searchString],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'ArrowUp' || (event.key === 'ArrowDown' && fullMatch)) {\n event.preventDefault();\n\n const children = listRef.current?.children;\n\n if (children && children.length > 0) {\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex +\n (event.key === 'ArrowUp' ? -1 : 1) +\n children.length) %\n children.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const member = filteredMembers[newIndex];\n\n setActiveMember(member);\n\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (event.key === 'Enter' && fullMatch) {\n event.preventDefault();\n event.stopPropagation();\n\n if (fullMatch && activeMember) {\n onSelect({ fullMatch, member: activeMember });\n }\n }\n },\n [activeMember, filteredMembers, focusedIndex, fullMatch, onSelect],\n );\n\n const handleMemberClick = useCallback(\n (member: MentionMember) => {\n if (fullMatch) {\n onSelect({ fullMatch, member });\n }\n },\n [fullMatch, onSelect],\n );\n\n const handleMemberHover = useCallback((member: MentionMember) => {\n setActiveMember(member);\n }, []);\n\n useEffect(() => {\n if (filteredMembers.length > 0) {\n const isActiveMemberShown = filteredMembers.some(({ id }) => id === activeMember?.id);\n\n if (!isActiveMemberShown) {\n setActiveMember(filteredMembers[0]);\n }\n }\n }, [activeMember?.id, filteredMembers]);\n\n const items = useMemo(\n () =>\n filteredMembers.map((member) => (\n <MentionFinderItem\n isActive={member.id === activeMember?.id}\n key={member.id}\n member={member}\n onClick={handleMemberClick}\n onHover={handleMemberHover}\n />\n )),\n [activeMember, filteredMembers, handleMemberClick, handleMemberHover],\n );\n\n useEffect(() => {\n setDragOffset(0);\n setDragProgress(0);\n hasTriggeredDragCloseRef.current = false;\n setShouldShowPopup(true);\n }, [inputValue]);\n\n useEffect(() => {\n if (shouldShowPopup) {\n window.addEventListener('keydown', handleKeyDown, true);\n }\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown, true);\n };\n }, [handleKeyDown, shouldShowPopup]);\n\n const closePopupViaDrag = useCallback(() => {\n if (hasTriggeredDragCloseRef.current) {\n return;\n }\n hasTriggeredDragCloseRef.current = true;\n setDragOffset(0);\n setDragProgress(0);\n setShouldShowPopup(false);\n }, []);\n\n const handleOverlayClick = useCallback(() => {\n closePopupViaDrag();\n }, [closePopupViaDrag]);\n\n const updateDragByClientY = useCallback(\n (clientY: number) => {\n if (dragStartYRef.current === null) {\n return false;\n }\n\n const closingDirectionMultiplier =\n popupAlignment === MentionFinderPopupAlignment.Bottom ? -1 : 1;\n const rawDelta = clientY - dragStartYRef.current;\n const normalizedDelta = rawDelta * closingDirectionMultiplier;\n const positiveDelta = Math.max(0, normalizedDelta);\n const limitedDelta = Math.min(positiveDelta, dragCloseThresholdInPx);\n\n setDragOffset(limitedDelta * closingDirectionMultiplier);\n setDragProgress(Math.min(positiveDelta / dragCloseThresholdInPx, 1));\n\n if (positiveDelta >= dragCloseThresholdInPx) {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n closePopupViaDrag();\n return true;\n }\n\n return false;\n },\n [closePopupViaDrag, dragCloseThresholdInPx, popupAlignment],\n );\n\n const handleDragPointerDown = useCallback((event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch') {\n return;\n }\n if (event.pointerType === 'mouse' && event.button !== 0) {\n return;\n }\n if (dragStartYRef.current !== null) {\n return;\n }\n activePointerIdRef.current = event.pointerId;\n dragStartYRef.current = event.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.currentTarget.setPointerCapture(event.pointerId);\n event.stopPropagation();\n }, []);\n\n const handleDragPointerMove = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n if (dragStartYRef.current === null) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const hasClosed = updateDragByClientY(event.clientY);\n\n if (hasClosed) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const resetDragState = useCallback(\n (shouldClose = false) => {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n if (shouldClose) {\n closePopupViaDrag();\n } else {\n setDragOffset(0);\n setDragProgress(0);\n }\n },\n [closePopupViaDrag],\n );\n\n const handleDragPointerUp = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragPointerCancel = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n resetDragState();\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [resetDragState],\n );\n\n const handleDragTouchStart = useCallback((event: TouchEvent<HTMLDivElement>) => {\n if (event.touches.length === 0 || dragStartYRef.current !== null) {\n return;\n }\n\n const touch = event.touches[0];\n\n if (!touch) return;\n\n activeTouchIdRef.current = touch.identifier;\n dragStartYRef.current = touch.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDragTouchMove = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (dragStartYRef.current === null || activeTouchIdRef.current === null) {\n return;\n }\n const touch =\n findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current) ??\n findTouchByIdentifier(event.touches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n const hasClosed = updateDragByClientY(touch.clientY);\n if (hasClosed) {\n activeTouchIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const handleDragTouchEnd = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragTouchCancel = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n resetDragState();\n },\n [resetDragState],\n );\n\n const dragHandle = useMemo(() => {\n if (!enableDragHandle) {\n return null;\n }\n\n return (\n <StyledMentionFinderDragHandle $alignment={popupAlignment}>\n <StyledMentionFinderDragHandleInner\n $alignment={popupAlignment}\n $dragOffset={dragOffset}\n $dragProgress={dragProgress}\n $isDragging={isDraggingHandle}\n onPointerDown={handleDragPointerDown}\n onPointerMove={handleDragPointerMove}\n onPointerUp={handleDragPointerUp}\n onPointerCancel={handleDragPointerCancel}\n onTouchStart={handleDragTouchStart}\n onTouchMove={handleDragTouchMove}\n onTouchEnd={handleDragTouchEnd}\n onTouchCancel={handleDragTouchCancel}\n />\n </StyledMentionFinderDragHandle>\n );\n }, [\n enableDragHandle,\n popupAlignment,\n dragOffset,\n dragProgress,\n isDraggingHandle,\n handleDragPointerDown,\n handleDragPointerMove,\n handleDragPointerUp,\n handleDragPointerCancel,\n handleDragTouchStart,\n handleDragTouchMove,\n handleDragTouchEnd,\n handleDragTouchCancel,\n ]);\n\n const shouldRenderPopup = shouldShowPopup && fullMatch && items.length > 0;\n\n useEffect(() => {\n if (!enableDragHandle || !shouldRenderPopup) {\n setOverlayContainer(null);\n return;\n }\n\n const container = popupRef.current?.closest(\n overlayContainerSelector ?? '.dialog-inner, .chayns-threads, .page-provider, .tapp',\n );\n\n if (container) {\n setOverlayContainer(container);\n return;\n }\n\n if (typeof document !== 'undefined') {\n setOverlayContainer(document.body);\n }\n }, [enableDragHandle, overlayContainerSelector, shouldRenderPopup]);\n\n const overlayPortal =\n overlayContainer && enableDragHandle\n ? createPortal(\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMentionFinderOverlay\n key=\"mention-finder-overlay\"\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n onClick={handleOverlayClick}\n />\n )}\n </AnimatePresence>,\n overlayContainer,\n )\n : null;\n\n return (\n <>\n {overlayPortal}\n <StyledMentionFinder className=\"beta-chayns-mention-finder\">\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMotionMentionFinderPopup\n ref={popupRef}\n animate={{\n height: 'auto',\n opacity: 1,\n y: dragOffset,\n }}\n className=\"prevent-lose-focus\"\n exit={{ height: 0, opacity: 0 }}\n initial={{ height: 0, opacity: 0 }}\n $popupAlignment={popupAlignment}\n $isDragging={enableDragHandle}\n transition={{ duration: 0.15 }}\n tabIndex={0}\n >\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Top &&\n dragHandle}\n <StyledMentionFinderItemList ref={listRef}>\n {items}\n </StyledMentionFinderItemList>\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Bottom &&\n dragHandle}\n </StyledMotionMentionFinderPopup>\n )}\n </AnimatePresence>\n </StyledMentionFinder>\n </>\n );\n};\n\nMentionFinder.displayName = 'MentionFinder';\n\nexport default MentionFinder;\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,cAAc;AAC9C,OAAOC,KAAK,IAERC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAIL,OAAO;AACd,SAASC,YAAY,QAAQ,WAAW;AACxC,SAASC,2BAA2B,QAAQ,+BAA+B;AAC3E,OAAOC,iBAAiB,MAAM,yCAAyC;AACvE,SACIC,mBAAmB,EACnBC,6BAA6B,EAC7BC,kCAAkC,EAClCC,2BAA2B,EAC3BC,0BAA0B,EAC1BC,8BAA8B,QAC3B,wBAAwB;AAyC/B,MAAMC,0BAA0B,GAAG,EAAE;AAErC,MAAMC,qBAAqB,GAAGA,CAACC,SAAoB,EAAEC,UAAyB,KAAK;EAC/E,IAAIA,UAAU,KAAK,IAAI,EAAE;IACrB,OAAO,IAAI;EACf;EAEA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,SAAS,CAACG,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IAC1C,MAAME,KAAK,GAAGJ,SAAS,CAACK,IAAI,CAACH,CAAC,CAAC;IAC/B,IAAIE,KAAK,IAAIA,KAAK,CAACH,UAAU,KAAKA,UAAU,EAAE;MAC1C,OAAOG,KAAK;IAChB;EACJ;EAEA,OAAO,IAAI;AACf,CAAC;AAED,MAAME,aAAqC,GAAGA,CAAC;EAC3CC,UAAU;EACVC,OAAO;EACPC,QAAQ;EACRC,cAAc;EACdC,gBAAgB,GAAG,KAAK;EACxBC,sBAAsB,GAAGd,0BAA0B;EACnDe;AACJ,CAAC,KAAK;EACF,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG3B,QAAQ,CAACoB,OAAO,CAAC,CAAC,CAAC,CAAC;EAC5D,MAAM,CAACQ,YAAY,EAAEC,eAAe,CAAC,GAAG7B,QAAQ,CAAC,CAAC,CAAC;EACnD,MAAM,CAAC8B,eAAe,EAAEC,kBAAkB,CAAC,GAAG/B,QAAQ,CAAC,IAAI,CAAC;EAE5D,MAAMgC,QAAQ,GAAGjC,MAAM,CAAiB,IAAI,CAAC;EAC7C,MAAMkC,OAAO,GAAGlC,MAAM,CAAiB,IAAI,CAAC;EAC5C,MAAMmC,aAAa,GAAGnC,MAAM,CAAgB,IAAI,CAAC;EACjD,MAAMoC,wBAAwB,GAAGpC,MAAM,CAAC,KAAK,CAAC;EAC9C,MAAMqC,kBAAkB,GAAGrC,MAAM,CAAgB,IAAI,CAAC;EACtD,MAAMsC,gBAAgB,GAAGtC,MAAM,CAAgB,IAAI,CAAC;EAEpD,MAAM,CAACuC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGvC,QAAQ,CAAC,KAAK,CAAC;EAC/D,MAAM,CAACwC,UAAU,EAAEC,aAAa,CAAC,GAAGzC,QAAQ,CAAC,CAAC,CAAC;EAC/C,MAAM,CAAC0C,YAAY,EAAEC,eAAe,CAAC,GAAG3C,QAAQ,CAAC,CAAC,CAAC;EACnD,MAAM,CAAC4C,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG7C,QAAQ,CAAiB,IAAI,CAAC;EAE9E,MAAM,CAAC8C,SAAS,EAAEC,YAAY,CAAC,GAAGjD,OAAO,CAAC,MAAM;IAC5C;IACA,MAAMkD,gBAAgB,GAAG7B,UAAU,CAAC8B,KAAK,CAAC,kBAAkB,CAAC;IAE7D,OAAO,CAACD,gBAAgB,GAAG,CAAC,CAAC,EAAEA,gBAAgB,GAAG,CAAC,CAAC,EAAEE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;EAC9E,CAAC,EAAE,CAAC/B,UAAU,CAAC,CAAC;EAEhB,MAAMgC,eAAe,GAAGrD,OAAO,CAC3B,MACIiD,YAAY,KAAK,EAAE,GACb3B,OAAO,CAACgC,MAAM,CACV,CAAC;IAAEC,EAAE;IAAEC,IAAI;IAAEC;EAAK,CAAC,KACfF,EAAE,CAACH,WAAW,CAAC,CAAC,CAACM,QAAQ,CAACT,YAAY,CAAC,IACvCO,IAAI,EAAEG,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAACP,WAAW,CAAC,CAAC,CAACM,QAAQ,CAACT,YAAY,CAAC,IAChEQ,IAAI,CAACL,WAAW,CAAC,CAAC,CAACM,QAAQ,CAACT,YAAY,CAChD,CAAC,GACD3B,OAAO,EACjB,CAACA,OAAO,EAAE2B,YAAY,CAC1B,CAAC;EAED,MAAMW,aAAa,GAAG9D,WAAW,CAC5B+D,KAAoB,IAAK;IACtB,IAAIA,KAAK,CAACC,GAAG,KAAK,SAAS,IAAKD,KAAK,CAACC,GAAG,KAAK,WAAW,IAAId,SAAU,EAAE;MACrEa,KAAK,CAACE,cAAc,CAAC,CAAC;MAEtB,MAAMC,QAAQ,GAAG7B,OAAO,CAAC8B,OAAO,EAAED,QAAQ;MAE1C,IAAIA,QAAQ,IAAIA,QAAQ,CAAC/C,MAAM,GAAG,CAAC,EAAE;QACjC,MAAMiD,QAAQ,GACVpC,YAAY,KAAK,IAAI,GACf,CAACA,YAAY,IACR+B,KAAK,CAACC,GAAG,KAAK,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAClCE,QAAQ,CAAC/C,MAAM,IACnB+C,QAAQ,CAAC/C,MAAM,GACf,CAAC;QAEX,IAAIa,YAAY,KAAK,IAAI,EAAE;UACvB,MAAMqC,WAAW,GAAGH,QAAQ,CAAClC,YAAY,CAAmB;UAC5DqC,WAAW,CAACC,QAAQ,GAAG,CAAC,CAAC;QAC7B;QAEArC,eAAe,CAACmC,QAAQ,CAAC;QAEzB,MAAMG,MAAM,GAAGhB,eAAe,CAACa,QAAQ,CAAC;QAExCrC,eAAe,CAACwC,MAAM,CAAC;QAEvB,MAAMC,UAAU,GAAGN,QAAQ,CAACE,QAAQ,CAAmB;QACvDI,UAAU,CAACF,QAAQ,GAAG,CAAC;QACvBE,UAAU,CAACC,KAAK,CAAC,CAAC;MACtB;IACJ,CAAC,MAAM,IAAIV,KAAK,CAACC,GAAG,KAAK,OAAO,IAAId,SAAS,EAAE;MAC3Ca,KAAK,CAACE,cAAc,CAAC,CAAC;MACtBF,KAAK,CAACW,eAAe,CAAC,CAAC;MAEvB,IAAIxB,SAAS,IAAIpB,YAAY,EAAE;QAC3BL,QAAQ,CAAC;UAAEyB,SAAS;UAAEqB,MAAM,EAAEzC;QAAa,CAAC,CAAC;MACjD;IACJ;EACJ,CAAC,EACD,CAACA,YAAY,EAAEyB,eAAe,EAAEvB,YAAY,EAAEkB,SAAS,EAAEzB,QAAQ,CACrE,CAAC;EAED,MAAMkD,iBAAiB,GAAG3E,WAAW,CAChCuE,MAAqB,IAAK;IACvB,IAAIrB,SAAS,EAAE;MACXzB,QAAQ,CAAC;QAAEyB,SAAS;QAAEqB;MAAO,CAAC,CAAC;IACnC;EACJ,CAAC,EACD,CAACrB,SAAS,EAAEzB,QAAQ,CACxB,CAAC;EAED,MAAMmD,iBAAiB,GAAG5E,WAAW,CAAEuE,MAAqB,IAAK;IAC7DxC,eAAe,CAACwC,MAAM,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;EAENtE,SAAS,CAAC,MAAM;IACZ,IAAIsD,eAAe,CAACpC,MAAM,GAAG,CAAC,EAAE;MAC5B,MAAM0D,mBAAmB,GAAGtB,eAAe,CAACuB,IAAI,CAAC,CAAC;QAAErB;MAAG,CAAC,KAAKA,EAAE,KAAK3B,YAAY,EAAE2B,EAAE,CAAC;MAErF,IAAI,CAACoB,mBAAmB,EAAE;QACtB9C,eAAe,CAACwB,eAAe,CAAC,CAAC,CAAC,CAAC;MACvC;IACJ;EACJ,CAAC,EAAE,CAACzB,YAAY,EAAE2B,EAAE,EAAEF,eAAe,CAAC,CAAC;EAEvC,MAAMwB,KAAK,GAAG7E,OAAO,CACjB,MACIqD,eAAe,CAACyB,GAAG,CAAET,MAAM,iBACvBxE,KAAA,CAAAkF,aAAA,CAAC1E,iBAAiB;IACd2E,QAAQ,EAAEX,MAAM,CAACd,EAAE,KAAK3B,YAAY,EAAE2B,EAAG;IACzCO,GAAG,EAAEO,MAAM,CAACd,EAAG;IACfc,MAAM,EAAEA,MAAO;IACfY,OAAO,EAAER,iBAAkB;IAC3BS,OAAO,EAAER;EAAkB,CAC9B,CACJ,CAAC,EACN,CAAC9C,YAAY,EAAEyB,eAAe,EAAEoB,iBAAiB,EAAEC,iBAAiB,CACxE,CAAC;EAED3E,SAAS,CAAC,MAAM;IACZ4C,aAAa,CAAC,CAAC,CAAC;IAChBE,eAAe,CAAC,CAAC,CAAC;IAClBR,wBAAwB,CAAC4B,OAAO,GAAG,KAAK;IACxChC,kBAAkB,CAAC,IAAI,CAAC;EAC5B,CAAC,EAAE,CAACZ,UAAU,CAAC,CAAC;EAEhBtB,SAAS,CAAC,MAAM;IACZ,IAAIiC,eAAe,EAAE;MACjBmD,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAExB,aAAa,EAAE,IAAI,CAAC;IAC3D;IAEA,OAAO,MAAM;MACTuB,MAAM,CAACE,mBAAmB,CAAC,SAAS,EAAEzB,aAAa,EAAE,IAAI,CAAC;IAC9D,CAAC;EACL,CAAC,EAAE,CAACA,aAAa,EAAE5B,eAAe,CAAC,CAAC;EAEpC,MAAMsD,iBAAiB,GAAGxF,WAAW,CAAC,MAAM;IACxC,IAAIuC,wBAAwB,CAAC4B,OAAO,EAAE;MAClC;IACJ;IACA5B,wBAAwB,CAAC4B,OAAO,GAAG,IAAI;IACvCtB,aAAa,CAAC,CAAC,CAAC;IAChBE,eAAe,CAAC,CAAC,CAAC;IAClBZ,kBAAkB,CAAC,KAAK,CAAC;EAC7B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMsD,kBAAkB,GAAGzF,WAAW,CAAC,MAAM;IACzCwF,iBAAiB,CAAC,CAAC;EACvB,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,MAAME,mBAAmB,GAAG1F,WAAW,CAClC2F,OAAe,IAAK;IACjB,IAAIrD,aAAa,CAAC6B,OAAO,KAAK,IAAI,EAAE;MAChC,OAAO,KAAK;IAChB;IAEA,MAAMyB,0BAA0B,GAC5BlE,cAAc,KAAKpB,2BAA2B,CAACuF,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;IAClE,MAAMC,QAAQ,GAAGH,OAAO,GAAGrD,aAAa,CAAC6B,OAAO;IAChD,MAAM4B,eAAe,GAAGD,QAAQ,GAAGF,0BAA0B;IAC7D,MAAMI,aAAa,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,eAAe,CAAC;IAClD,MAAMI,YAAY,GAAGF,IAAI,CAACG,GAAG,CAACJ,aAAa,EAAEpE,sBAAsB,CAAC;IAEpEiB,aAAa,CAACsD,YAAY,GAAGP,0BAA0B,CAAC;IACxD7C,eAAe,CAACkD,IAAI,CAACG,GAAG,CAACJ,aAAa,GAAGpE,sBAAsB,EAAE,CAAC,CAAC,CAAC;IAEpE,IAAIoE,aAAa,IAAIpE,sBAAsB,EAAE;MACzCU,aAAa,CAAC6B,OAAO,GAAG,IAAI;MAC5BxB,mBAAmB,CAAC,KAAK,CAAC;MAC1B6C,iBAAiB,CAAC,CAAC;MACnB,OAAO,IAAI;IACf;IAEA,OAAO,KAAK;EAChB,CAAC,EACD,CAACA,iBAAiB,EAAE5D,sBAAsB,EAAEF,cAAc,CAC9D,CAAC;EAED,MAAM2E,qBAAqB,GAAGrG,WAAW,CAAE+D,KAAmC,IAAK;IAC/E,IAAIA,KAAK,CAACuC,WAAW,KAAK,OAAO,EAAE;MAC/B;IACJ;IACA,IAAIvC,KAAK,CAACuC,WAAW,KAAK,OAAO,IAAIvC,KAAK,CAACwC,MAAM,KAAK,CAAC,EAAE;MACrD;IACJ;IACA,IAAIjE,aAAa,CAAC6B,OAAO,KAAK,IAAI,EAAE;MAChC;IACJ;IACA3B,kBAAkB,CAAC2B,OAAO,GAAGJ,KAAK,CAACyC,SAAS;IAC5ClE,aAAa,CAAC6B,OAAO,GAAGJ,KAAK,CAAC4B,OAAO;IACrCpD,wBAAwB,CAAC4B,OAAO,GAAG,KAAK;IACxCtB,aAAa,CAAC,CAAC,CAAC;IAChBE,eAAe,CAAC,CAAC,CAAC;IAClBJ,mBAAmB,CAAC,IAAI,CAAC;IACzBoB,KAAK,CAAC0C,aAAa,CAACC,iBAAiB,CAAC3C,KAAK,CAACyC,SAAS,CAAC;IACtDzC,KAAK,CAACW,eAAe,CAAC,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMiC,qBAAqB,GAAG3G,WAAW,CACpC+D,KAAmC,IAAK;IACrC,IAAIA,KAAK,CAACuC,WAAW,KAAK,OAAO,IAAI9D,kBAAkB,CAAC2B,OAAO,KAAKJ,KAAK,CAACyC,SAAS,EAAE;MACjF;IACJ;IACA,IAAIlE,aAAa,CAAC6B,OAAO,KAAK,IAAI,EAAE;MAChC;IACJ;IAEAJ,KAAK,CAACE,cAAc,CAAC,CAAC;IACtBF,KAAK,CAACW,eAAe,CAAC,CAAC;IAEvB,MAAMkC,SAAS,GAAGlB,mBAAmB,CAAC3B,KAAK,CAAC4B,OAAO,CAAC;IAEpD,IAAIiB,SAAS,EAAE;MACX7C,KAAK,CAAC0C,aAAa,CAACI,qBAAqB,CAAC9C,KAAK,CAACyC,SAAS,CAAC;MAC1DhE,kBAAkB,CAAC2B,OAAO,GAAG,IAAI;IACrC;EACJ,CAAC,EACD,CAACuB,mBAAmB,CACxB,CAAC;EAED,MAAMoB,cAAc,GAAG9G,WAAW,CAC9B,CAAC+G,WAAW,GAAG,KAAK,KAAK;IACrBzE,aAAa,CAAC6B,OAAO,GAAG,IAAI;IAC5BxB,mBAAmB,CAAC,KAAK,CAAC;IAC1B,IAAIoE,WAAW,EAAE;MACbvB,iBAAiB,CAAC,CAAC;IACvB,CAAC,MAAM;MACH3C,aAAa,CAAC,CAAC,CAAC;MAChBE,eAAe,CAAC,CAAC,CAAC;IACtB;EACJ,CAAC,EACD,CAACyC,iBAAiB,CACtB,CAAC;EAED,MAAMwB,mBAAmB,GAAGhH,WAAW,CAClC+D,KAAmC,IAAK;IACrC,IAAIA,KAAK,CAACuC,WAAW,KAAK,OAAO,IAAI9D,kBAAkB,CAAC2B,OAAO,KAAKJ,KAAK,CAACyC,SAAS,EAAE;MACjF;IACJ;IACAzC,KAAK,CAACW,eAAe,CAAC,CAAC;IACvB,MAAMqC,WAAW,GAAGjE,YAAY,IAAI,CAAC;IACrCgE,cAAc,CAACC,WAAW,CAAC;IAC3BhD,KAAK,CAAC0C,aAAa,CAACI,qBAAqB,CAAC9C,KAAK,CAACyC,SAAS,CAAC;IAC1DhE,kBAAkB,CAAC2B,OAAO,GAAG,IAAI;EACrC,CAAC,EACD,CAACrB,YAAY,EAAEgE,cAAc,CACjC,CAAC;EAED,MAAMG,uBAAuB,GAAGjH,WAAW,CACtC+D,KAAmC,IAAK;IACrC,IAAIA,KAAK,CAACuC,WAAW,KAAK,OAAO,IAAI9D,kBAAkB,CAAC2B,OAAO,KAAKJ,KAAK,CAACyC,SAAS,EAAE;MACjF;IACJ;IACAzC,KAAK,CAACW,eAAe,CAAC,CAAC;IACvBoC,cAAc,CAAC,CAAC;IAChB/C,KAAK,CAAC0C,aAAa,CAACI,qBAAqB,CAAC9C,KAAK,CAACyC,SAAS,CAAC;IAC1DhE,kBAAkB,CAAC2B,OAAO,GAAG,IAAI;EACrC,CAAC,EACD,CAAC2C,cAAc,CACnB,CAAC;EAED,MAAMI,oBAAoB,GAAGlH,WAAW,CAAE+D,KAAiC,IAAK;IAC5E,IAAIA,KAAK,CAACoD,OAAO,CAAChG,MAAM,KAAK,CAAC,IAAImB,aAAa,CAAC6B,OAAO,KAAK,IAAI,EAAE;MAC9D;IACJ;IAEA,MAAM/C,KAAK,GAAG2C,KAAK,CAACoD,OAAO,CAAC,CAAC,CAAC;IAE9B,IAAI,CAAC/F,KAAK,EAAE;IAEZqB,gBAAgB,CAAC0B,OAAO,GAAG/C,KAAK,CAACH,UAAU;IAC3CqB,aAAa,CAAC6B,OAAO,GAAG/C,KAAK,CAACuE,OAAO;IACrCpD,wBAAwB,CAAC4B,OAAO,GAAG,KAAK;IACxCtB,aAAa,CAAC,CAAC,CAAC;IAChBE,eAAe,CAAC,CAAC,CAAC;IAClBJ,mBAAmB,CAAC,IAAI,CAAC;IACzBoB,KAAK,CAACE,cAAc,CAAC,CAAC;IACtBF,KAAK,CAACW,eAAe,CAAC,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM0C,mBAAmB,GAAGpH,WAAW,CAClC+D,KAAiC,IAAK;IACnC,IAAIzB,aAAa,CAAC6B,OAAO,KAAK,IAAI,IAAI1B,gBAAgB,CAAC0B,OAAO,KAAK,IAAI,EAAE;MACrE;IACJ;IACA,MAAM/C,KAAK,GACPL,qBAAqB,CAACgD,KAAK,CAACsD,cAAc,EAAE5E,gBAAgB,CAAC0B,OAAO,CAAC,IACrEpD,qBAAqB,CAACgD,KAAK,CAACoD,OAAO,EAAE1E,gBAAgB,CAAC0B,OAAO,CAAC;IAElE,IAAI,CAAC/C,KAAK,EAAE;IAEZ2C,KAAK,CAACE,cAAc,CAAC,CAAC;IACtBF,KAAK,CAACW,eAAe,CAAC,CAAC;IACvB,MAAMkC,SAAS,GAAGlB,mBAAmB,CAACtE,KAAK,CAACuE,OAAO,CAAC;IACpD,IAAIiB,SAAS,EAAE;MACXnE,gBAAgB,CAAC0B,OAAO,GAAG,IAAI;IACnC;EACJ,CAAC,EACD,CAACuB,mBAAmB,CACxB,CAAC;EAED,MAAM4B,kBAAkB,GAAGtH,WAAW,CACjC+D,KAAiC,IAAK;IACnC,IAAItB,gBAAgB,CAAC0B,OAAO,KAAK,IAAI,EAAE;IAEvC,MAAM/C,KAAK,GAAGL,qBAAqB,CAACgD,KAAK,CAACsD,cAAc,EAAE5E,gBAAgB,CAAC0B,OAAO,CAAC;IAEnF,IAAI,CAAC/C,KAAK,EAAE;IAEZ2C,KAAK,CAACE,cAAc,CAAC,CAAC;IACtBF,KAAK,CAACW,eAAe,CAAC,CAAC;IACvBjC,gBAAgB,CAAC0B,OAAO,GAAG,IAAI;IAC/B,MAAM4C,WAAW,GAAGjE,YAAY,IAAI,CAAC;IACrCgE,cAAc,CAACC,WAAW,CAAC;EAC/B,CAAC,EACD,CAACjE,YAAY,EAAEgE,cAAc,CACjC,CAAC;EAED,MAAMS,qBAAqB,GAAGvH,WAAW,CACpC+D,KAAiC,IAAK;IACnC,IAAItB,gBAAgB,CAAC0B,OAAO,KAAK,IAAI,EAAE;IAEvC,MAAM/C,KAAK,GAAGL,qBAAqB,CAACgD,KAAK,CAACsD,cAAc,EAAE5E,gBAAgB,CAAC0B,OAAO,CAAC;IAEnF,IAAI,CAAC/C,KAAK,EAAE;IAEZ2C,KAAK,CAACE,cAAc,CAAC,CAAC;IACtBF,KAAK,CAACW,eAAe,CAAC,CAAC;IACvBjC,gBAAgB,CAAC0B,OAAO,GAAG,IAAI;IAC/B2C,cAAc,CAAC,CAAC;EACpB,CAAC,EACD,CAACA,cAAc,CACnB,CAAC;EAED,MAAMU,UAAU,GAAGtH,OAAO,CAAC,MAAM;IAC7B,IAAI,CAACyB,gBAAgB,EAAE;MACnB,OAAO,IAAI;IACf;IAEA,oBACI5B,KAAA,CAAAkF,aAAA,CAACxE,6BAA6B;MAACgH,UAAU,EAAE/F;IAAe,gBACtD3B,KAAA,CAAAkF,aAAA,CAACvE,kCAAkC;MAC/B+G,UAAU,EAAE/F,cAAe;MAC3BgG,WAAW,EAAE9E,UAAW;MACxB+E,aAAa,EAAE7E,YAAa;MAC5B8E,WAAW,EAAElF,gBAAiB;MAC9BmF,aAAa,EAAExB,qBAAsB;MACrCyB,aAAa,EAAEnB,qBAAsB;MACrCoB,WAAW,EAAEf,mBAAoB;MACjCgB,eAAe,EAAEf,uBAAwB;MACzCgB,YAAY,EAAEf,oBAAqB;MACnCgB,WAAW,EAAEd,mBAAoB;MACjCe,UAAU,EAAEb,kBAAmB;MAC/Bc,aAAa,EAAEb;IAAsB,CACxC,CAC0B,CAAC;EAExC,CAAC,EAAE,CACC5F,gBAAgB,EAChBD,cAAc,EACdkB,UAAU,EACVE,YAAY,EACZJ,gBAAgB,EAChB2D,qBAAqB,EACrBM,qBAAqB,EACrBK,mBAAmB,EACnBC,uBAAuB,EACvBC,oBAAoB,EACpBE,mBAAmB,EACnBE,kBAAkB,EAClBC,qBAAqB,CACxB,CAAC;EAEF,MAAMc,iBAAiB,GAAGnG,eAAe,IAAIgB,SAAS,IAAI6B,KAAK,CAAC5D,MAAM,GAAG,CAAC;EAE1ElB,SAAS,CAAC,MAAM;IACZ,IAAI,CAAC0B,gBAAgB,IAAI,CAAC0G,iBAAiB,EAAE;MACzCpF,mBAAmB,CAAC,IAAI,CAAC;MACzB;IACJ;IAEA,MAAMqF,SAAS,GAAGlG,QAAQ,CAAC+B,OAAO,EAAEoE,OAAO,CACvC1G,wBAAwB,IAAI,uDAChC,CAAC;IAED,IAAIyG,SAAS,EAAE;MACXrF,mBAAmB,CAACqF,SAAS,CAAC;MAC9B;IACJ;IAEA,IAAI,OAAOE,QAAQ,KAAK,WAAW,EAAE;MACjCvF,mBAAmB,CAACuF,QAAQ,CAACC,IAAI,CAAC;IACtC;EACJ,CAAC,EAAE,CAAC9G,gBAAgB,EAAEE,wBAAwB,EAAEwG,iBAAiB,CAAC,CAAC;EAEnE,MAAMK,aAAa,GACf1F,gBAAgB,IAAIrB,gBAAgB,gBAC9BtB,YAAY,cACRN,KAAA,CAAAkF,aAAA,CAACnF,eAAe;IAAC6I,OAAO,EAAE;EAAM,GAC3BN,iBAAiB,iBACdtI,KAAA,CAAAkF,aAAA,CAACrE,0BAA0B;IACvBoD,GAAG,EAAC,wBAAwB;IAC5B4E,OAAO,EAAE;MAAEC,OAAO,EAAE;IAAE,CAAE;IACxBC,IAAI,EAAE;MAAED,OAAO,EAAE;IAAE,CAAE;IACrBF,OAAO,EAAE;MAAEE,OAAO,EAAE;IAAE,CAAE;IACxB1D,OAAO,EAAEM;EAAmB,CAC/B,CAEQ,CAAC,EAClBzC,gBACJ,CAAC,GACD,IAAI;EAEd,oBACIjD,KAAA,CAAAkF,aAAA,CAAAlF,KAAA,CAAAgJ,QAAA,QACKL,aAAa,eACd3I,KAAA,CAAAkF,aAAA,CAACzE,mBAAmB;IAACwI,SAAS,EAAC;EAA4B,gBACvDjJ,KAAA,CAAAkF,aAAA,CAACnF,eAAe;IAAC6I,OAAO,EAAE;EAAM,GAC3BN,iBAAiB,iBACdtI,KAAA,CAAAkF,aAAA,CAACpE,8BAA8B;IAC3BoI,GAAG,EAAE7G,QAAS;IACdwG,OAAO,EAAE;MACLM,MAAM,EAAE,MAAM;MACdL,OAAO,EAAE,CAAC;MACVM,CAAC,EAAEvG;IACP,CAAE;IACFoG,SAAS,EAAC,oBAAoB;IAC9BF,IAAI,EAAE;MAAEI,MAAM,EAAE,CAAC;MAAEL,OAAO,EAAE;IAAE,CAAE;IAChCF,OAAO,EAAE;MAAEO,MAAM,EAAE,CAAC;MAAEL,OAAO,EAAE;IAAE,CAAE;IACnCO,eAAe,EAAE1H,cAAe;IAChCkG,WAAW,EAAEjG,gBAAiB;IAC9B0H,UAAU,EAAE;MAAEC,QAAQ,EAAE;IAAK,CAAE;IAC/BhF,QAAQ,EAAE;EAAE,GAEX3C,gBAAgB,IACbD,cAAc,KAAKpB,2BAA2B,CAACiJ,GAAG,IAClD/B,UAAU,eACdzH,KAAA,CAAAkF,aAAA,CAACtE,2BAA2B;IAACsI,GAAG,EAAE5G;EAAQ,GACrC0C,KACwB,CAAC,EAC7BpD,gBAAgB,IACbD,cAAc,KAAKpB,2BAA2B,CAACuF,MAAM,IACrD2B,UACwB,CAEvB,CACA,CACvB,CAAC;AAEX,CAAC;AAEDlG,aAAa,CAACkI,WAAW,GAAG,eAAe;AAE3C,eAAelI,aAAa","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"MentionFinder.js","names":["AnimatePresence","React","useCallback","useEffect","useMemo","useRef","useState","createPortal","MentionFinderPopupAlignment","MentionFinderItem","StyledMentionFinder","StyledMentionFinderDragHandle","StyledMentionFinderDragHandleInner","StyledMentionFinderItemList","StyledMentionFinderOverlay","StyledMotionMentionFinderPopup","DRAG_CLOSE_THRESHOLD_IN_PX","findTouchByIdentifier","touchList","identifier","i","length","touch","item","MentionFinder","inputValue","members","onSelect","popupAlignment","enableDragHandle","dragCloseThresholdInPx","overlayContainerSelector","activeMember","setActiveMember","focusedIndex","setFocusedIndex","shouldShowPopup","setShouldShowPopup","popupRef","listRef","dragStartYRef","hasTriggeredDragCloseRef","activePointerIdRef","activeTouchIdRef","isDraggingHandle","setIsDraggingHandle","dragOffset","setDragOffset","dragProgress","setDragProgress","overlayContainer","setOverlayContainer","fullMatch","searchString","regExpMatchArray","match","toLowerCase","filteredMembers","filter","id","info","name","includes","replace","handleKeyDown","event","key","preventDefault","children","current","newIndex","prevElement","tabIndex","member","newElement","focus","stopPropagation","handleMemberClick","handleMemberHover","isActiveMemberShown","some","items","map","createElement","isActive","onClick","onHover","window","addEventListener","removeEventListener","closePopupViaDrag","handleOverlayClick","updateDragByClientY","clientY","closingDirectionMultiplier","Bottom","rawDelta","normalizedDelta","positiveDelta","Math","max","limitedDelta","min","handleDragPointerDown","pointerType","button","pointerId","currentTarget","setPointerCapture","handleDragPointerMove","hasClosed","releasePointerCapture","resetDragState","shouldClose","handleDragPointerUp","handleDragPointerCancel","handleDragTouchStart","touches","handleDragTouchMove","changedTouches","handleDragTouchEnd","handleDragTouchCancel","dragHandle","$alignment","$dragOffset","$dragProgress","$isDragging","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","shouldRenderPopup","container","closest","document","body","overlayPortal","initial","animate","opacity","exit","Fragment","className","ref","height","y","$popupAlignment","transition","duration","Top","displayName"],"sources":["../../../../src/components/mention-finder/MentionFinder.tsx"],"sourcesContent":["import { AnimatePresence } from 'motion/react';\nimport React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n PointerEvent,\n TouchList,\n TouchEvent,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { MentionFinderPopupAlignment } from '../../constants/mentionFinder';\nimport MentionFinderItem from './mention-finder-item/MentionFinderItem';\nimport {\n StyledMentionFinder,\n StyledMentionFinderDragHandle,\n StyledMentionFinderDragHandleInner,\n StyledMentionFinderItemList,\n StyledMentionFinderOverlay,\n StyledMotionMentionFinderPopup,\n} from './MentionFinder.styles';\n\nexport type MentionMember = {\n id: string;\n info?: string;\n imageUrl: string;\n name: string;\n shouldShowRoundImage?: boolean;\n};\n\nexport type MentionFinderProps = {\n /**\n * The text from the input field\n */\n inputValue: string;\n /**\n * Members that can be selected\n */\n members: MentionMember[];\n /**\n * Function to be executed when a member is selected\n */\n onSelect: ({ fullMatch, member }: { fullMatch: string; member: MentionMember }) => void;\n /**\n * Alignment of the popup\n */\n popupAlignment: MentionFinderPopupAlignment;\n /**\n * Enables the optional drag handle inside the popup\n */\n enableDragHandle?: boolean;\n /**\n * Threshold in pixels to drag to close the popup\n */\n dragCloseThresholdInPx?: number;\n /**\n * Selector for the container to render the overlay into (defaults to closest dialog, thread, page provider or tapp)\n */\n overlayContainerSelector?: string;\n};\n\nconst DRAG_CLOSE_THRESHOLD_IN_PX = 60;\n\nconst findTouchByIdentifier = (touchList: TouchList, identifier: number | null) => {\n if (identifier === null) {\n return null;\n }\n\n for (let i = 0; i < touchList.length; i += 1) {\n const touch = touchList.item(i);\n if (touch && touch.identifier === identifier) {\n return touch;\n }\n }\n\n return null;\n};\n\nconst MentionFinder: FC<MentionFinderProps> = ({\n inputValue,\n members,\n onSelect,\n popupAlignment,\n enableDragHandle = false,\n dragCloseThresholdInPx = DRAG_CLOSE_THRESHOLD_IN_PX,\n overlayContainerSelector,\n}) => {\n const [activeMember, setActiveMember] = useState(members[0]);\n const [focusedIndex, setFocusedIndex] = useState(0);\n const [shouldShowPopup, setShouldShowPopup] = useState(true);\n\n const popupRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const dragStartYRef = useRef<number | null>(null);\n const hasTriggeredDragCloseRef = useRef(false);\n const activePointerIdRef = useRef<number | null>(null);\n const activeTouchIdRef = useRef<number | null>(null);\n\n const [isDraggingHandle, setIsDraggingHandle] = useState(false);\n const [dragOffset, setDragOffset] = useState(0);\n const [dragProgress, setDragProgress] = useState(0);\n const [overlayContainer, setOverlayContainer] = useState<Element | null>(null);\n\n const [fullMatch, searchString] = useMemo(() => {\n // eslint-disable-next-line no-irregular-whitespace\n const regExpMatchArray = inputValue.match(/@(?!\\s)([^\\s]*)/);\n\n return [regExpMatchArray?.[0], regExpMatchArray?.[1]?.toLowerCase() ?? ''];\n }, [inputValue]);\n\n const filteredMembers = useMemo(\n () =>\n searchString !== ''\n ? members.filter(\n ({ id, info, name }) =>\n id.toLowerCase().includes(searchString) ||\n info?.replace('chayns', '').toLowerCase().includes(searchString) ||\n name.toLowerCase().includes(searchString),\n )\n : members,\n [members, searchString],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if ((event.key === 'ArrowUp' || event.key === 'ArrowDown') && fullMatch) {\n event.preventDefault();\n\n const children = listRef.current?.children;\n\n if (children && children.length > 0) {\n const newIndex =\n focusedIndex !== null\n ? (focusedIndex +\n (event.key === 'ArrowUp' ? -1 : 1) +\n children.length) %\n children.length\n : 0;\n\n if (focusedIndex !== null) {\n const prevElement = children[focusedIndex] as HTMLDivElement;\n prevElement.tabIndex = -1;\n }\n\n setFocusedIndex(newIndex);\n\n const member = filteredMembers[newIndex];\n\n setActiveMember(member);\n\n const newElement = children[newIndex] as HTMLDivElement;\n newElement.tabIndex = 0;\n newElement.focus();\n }\n } else if (event.key === 'Enter' && fullMatch) {\n event.preventDefault();\n event.stopPropagation();\n\n if (fullMatch && activeMember) {\n onSelect({ fullMatch, member: activeMember });\n }\n }\n },\n [activeMember, filteredMembers, focusedIndex, fullMatch, onSelect],\n );\n\n const handleMemberClick = useCallback(\n (member: MentionMember) => {\n if (fullMatch) {\n onSelect({ fullMatch, member });\n }\n },\n [fullMatch, onSelect],\n );\n\n const handleMemberHover = useCallback((member: MentionMember) => {\n setActiveMember(member);\n }, []);\n\n useEffect(() => {\n if (filteredMembers.length > 0) {\n const isActiveMemberShown = filteredMembers.some(({ id }) => id === activeMember?.id);\n\n if (!isActiveMemberShown) {\n setActiveMember(filteredMembers[0]);\n }\n }\n }, [activeMember?.id, filteredMembers]);\n\n const items = useMemo(\n () =>\n filteredMembers.map((member) => (\n <MentionFinderItem\n isActive={member.id === activeMember?.id}\n key={member.id}\n member={member}\n onClick={handleMemberClick}\n onHover={handleMemberHover}\n />\n )),\n [activeMember, filteredMembers, handleMemberClick, handleMemberHover],\n );\n\n useEffect(() => {\n setDragOffset(0);\n setDragProgress(0);\n hasTriggeredDragCloseRef.current = false;\n setShouldShowPopup(true);\n }, [inputValue]);\n\n useEffect(() => {\n if (shouldShowPopup) {\n window.addEventListener('keydown', handleKeyDown, true);\n }\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown, true);\n };\n }, [handleKeyDown, shouldShowPopup]);\n\n const closePopupViaDrag = useCallback(() => {\n if (hasTriggeredDragCloseRef.current) {\n return;\n }\n hasTriggeredDragCloseRef.current = true;\n setDragOffset(0);\n setDragProgress(0);\n setShouldShowPopup(false);\n }, []);\n\n const handleOverlayClick = useCallback(() => {\n closePopupViaDrag();\n }, [closePopupViaDrag]);\n\n const updateDragByClientY = useCallback(\n (clientY: number) => {\n if (dragStartYRef.current === null) {\n return false;\n }\n\n const closingDirectionMultiplier =\n popupAlignment === MentionFinderPopupAlignment.Bottom ? -1 : 1;\n const rawDelta = clientY - dragStartYRef.current;\n const normalizedDelta = rawDelta * closingDirectionMultiplier;\n const positiveDelta = Math.max(0, normalizedDelta);\n const limitedDelta = Math.min(positiveDelta, dragCloseThresholdInPx);\n\n setDragOffset(limitedDelta * closingDirectionMultiplier);\n setDragProgress(Math.min(positiveDelta / dragCloseThresholdInPx, 1));\n\n if (positiveDelta >= dragCloseThresholdInPx) {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n closePopupViaDrag();\n return true;\n }\n\n return false;\n },\n [closePopupViaDrag, dragCloseThresholdInPx, popupAlignment],\n );\n\n const handleDragPointerDown = useCallback((event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch') {\n return;\n }\n if (event.pointerType === 'mouse' && event.button !== 0) {\n return;\n }\n if (dragStartYRef.current !== null) {\n return;\n }\n activePointerIdRef.current = event.pointerId;\n dragStartYRef.current = event.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.currentTarget.setPointerCapture(event.pointerId);\n event.stopPropagation();\n }, []);\n\n const handleDragPointerMove = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n if (dragStartYRef.current === null) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n const hasClosed = updateDragByClientY(event.clientY);\n\n if (hasClosed) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const resetDragState = useCallback(\n (shouldClose = false) => {\n dragStartYRef.current = null;\n setIsDraggingHandle(false);\n if (shouldClose) {\n closePopupViaDrag();\n } else {\n setDragOffset(0);\n setDragProgress(0);\n }\n },\n [closePopupViaDrag],\n );\n\n const handleDragPointerUp = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragPointerCancel = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === 'touch' || activePointerIdRef.current !== event.pointerId) {\n return;\n }\n event.stopPropagation();\n resetDragState();\n event.currentTarget.releasePointerCapture(event.pointerId);\n activePointerIdRef.current = null;\n },\n [resetDragState],\n );\n\n const handleDragTouchStart = useCallback((event: TouchEvent<HTMLDivElement>) => {\n if (event.touches.length === 0 || dragStartYRef.current !== null) {\n return;\n }\n\n const touch = event.touches[0];\n\n if (!touch) return;\n\n activeTouchIdRef.current = touch.identifier;\n dragStartYRef.current = touch.clientY;\n hasTriggeredDragCloseRef.current = false;\n setDragOffset(0);\n setDragProgress(0);\n setIsDraggingHandle(true);\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const handleDragTouchMove = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (dragStartYRef.current === null || activeTouchIdRef.current === null) {\n return;\n }\n const touch =\n findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current) ??\n findTouchByIdentifier(event.touches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n const hasClosed = updateDragByClientY(touch.clientY);\n if (hasClosed) {\n activeTouchIdRef.current = null;\n }\n },\n [updateDragByClientY],\n );\n\n const handleDragTouchEnd = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n const shouldClose = dragProgress >= 1;\n resetDragState(shouldClose);\n },\n [dragProgress, resetDragState],\n );\n\n const handleDragTouchCancel = useCallback(\n (event: TouchEvent<HTMLDivElement>) => {\n if (activeTouchIdRef.current === null) return;\n\n const touch = findTouchByIdentifier(event.changedTouches, activeTouchIdRef.current);\n\n if (!touch) return;\n\n event.preventDefault();\n event.stopPropagation();\n activeTouchIdRef.current = null;\n resetDragState();\n },\n [resetDragState],\n );\n\n const dragHandle = useMemo(() => {\n if (!enableDragHandle) {\n return null;\n }\n\n return (\n <StyledMentionFinderDragHandle $alignment={popupAlignment}>\n <StyledMentionFinderDragHandleInner\n $alignment={popupAlignment}\n $dragOffset={dragOffset}\n $dragProgress={dragProgress}\n $isDragging={isDraggingHandle}\n onPointerDown={handleDragPointerDown}\n onPointerMove={handleDragPointerMove}\n onPointerUp={handleDragPointerUp}\n onPointerCancel={handleDragPointerCancel}\n onTouchStart={handleDragTouchStart}\n onTouchMove={handleDragTouchMove}\n onTouchEnd={handleDragTouchEnd}\n onTouchCancel={handleDragTouchCancel}\n />\n </StyledMentionFinderDragHandle>\n );\n }, [\n enableDragHandle,\n popupAlignment,\n dragOffset,\n dragProgress,\n isDraggingHandle,\n handleDragPointerDown,\n handleDragPointerMove,\n handleDragPointerUp,\n handleDragPointerCancel,\n handleDragTouchStart,\n handleDragTouchMove,\n handleDragTouchEnd,\n handleDragTouchCancel,\n ]);\n\n const shouldRenderPopup = shouldShowPopup && fullMatch && items.length > 0;\n\n useEffect(() => {\n if (!enableDragHandle || !shouldRenderPopup) {\n setOverlayContainer(null);\n return;\n }\n\n const container = popupRef.current?.closest(\n overlayContainerSelector ?? '.dialog-inner, .chayns-threads, .page-provider, .tapp',\n );\n\n if (container) {\n setOverlayContainer(container);\n return;\n }\n\n if (typeof document !== 'undefined') {\n setOverlayContainer(document.body);\n }\n }, [enableDragHandle, overlayContainerSelector, shouldRenderPopup]);\n\n const overlayPortal =\n overlayContainer && enableDragHandle\n ? createPortal(\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMentionFinderOverlay\n key=\"mention-finder-overlay\"\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n onClick={handleOverlayClick}\n />\n )}\n </AnimatePresence>,\n overlayContainer,\n )\n : null;\n\n return (\n <>\n {overlayPortal}\n <StyledMentionFinder className=\"beta-chayns-mention-finder\">\n <AnimatePresence initial={false}>\n {shouldRenderPopup && (\n <StyledMotionMentionFinderPopup\n ref={popupRef}\n animate={{\n height: 'auto',\n opacity: 1,\n y: dragOffset,\n }}\n className=\"prevent-lose-focus\"\n exit={{ height: 0, opacity: 0 }}\n initial={{ height: 0, opacity: 0 }}\n $popupAlignment={popupAlignment}\n $isDragging={enableDragHandle}\n transition={{ duration: 0.15 }}\n tabIndex={0}\n >\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Top &&\n dragHandle}\n <StyledMentionFinderItemList ref={listRef}>\n {items}\n </StyledMentionFinderItemList>\n {enableDragHandle &&\n popupAlignment === MentionFinderPopupAlignment.Bottom &&\n dragHandle}\n </StyledMotionMentionFinderPopup>\n )}\n </AnimatePresence>\n </StyledMentionFinder>\n </>\n );\n};\n\nMentionFinder.displayName = 'MentionFinder';\n\nexport default MentionFinder;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chayns-components/core",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.1361",
|
|
4
4
|
"description": "A set of beautiful React components for developing your own applications with chayns.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"browserslist": [
|
|
@@ -86,5 +86,5 @@
|
|
|
86
86
|
"publishConfig": {
|
|
87
87
|
"access": "public"
|
|
88
88
|
},
|
|
89
|
-
"gitHead": "
|
|
89
|
+
"gitHead": "9f19bb2f70cf83e35adbd18d3145748aa3a3ed42"
|
|
90
90
|
}
|