UNPKG

react-aria

Version:
1 lines • 41.1 kB
{"mappings":"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","sources":["packages/react-aria/src/dnd/useDroppableCollection.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n clearGlobalDnDState,\n DIRECTORY_DRAG_TYPE,\n droppableCollectionMap,\n getTypes,\n globalDndState,\n isInternalDropOperation,\n setDropCollectionRef\n} from './utils';\nimport {\n Collection,\n DropEvent,\n DropOperation,\n DroppableCollectionDropEvent,\n DroppableCollectionProps,\n DropPosition,\n DropTarget,\n DropTargetDelegate,\n Key,\n KeyboardDelegate,\n Node,\n RefObject\n} from '@react-types/shared';\nimport * as DragManager from './DragManager';\nimport {DroppableCollectionState} from 'react-stately/useDroppableCollectionState';\nimport {HTMLAttributes, useCallback, useEffect, useRef} from 'react';\nimport {mergeProps} from '../utils/mergeProps';\nimport {navigate} from './DropTargetKeyboardNavigation';\nimport {setInteractionModality} from '../interactions/useFocusVisible';\nimport {useAutoScroll} from './useAutoScroll';\nimport {useDrop} from './useDrop';\nimport {useId} from '../utils/useId';\nimport {useLayoutEffect} from '../utils/useLayoutEffect';\nimport {useLocale} from '../i18n/I18nProvider';\n\nexport interface DroppableCollectionOptions extends DroppableCollectionProps {\n /** A delegate object that implements behavior for keyboard focus movement. */\n keyboardDelegate: KeyboardDelegate;\n /** A delegate object that provides drop targets for pointer coordinates within the collection. */\n dropTargetDelegate: DropTargetDelegate;\n /** A custom keyboard event handler for drop targets. */\n onKeyDown?: (e: KeyboardEvent) => void;\n}\n\nexport interface DroppableCollectionResult {\n /** Props for the collection element. */\n collectionProps: HTMLAttributes<HTMLElement>;\n}\n\ninterface DroppingState {\n collection: Collection<Node<unknown>>;\n focusedKey: Key | null;\n selectedKeys: Set<Key>;\n target: DropTarget;\n draggingKeys: Set<Key | null | undefined>;\n isInternal: boolean;\n timeout: ReturnType<typeof setTimeout> | undefined;\n}\n\n/**\n * Handles drop interactions for a collection component, with support for traditional mouse and\n * touch based drag and drop, in addition to full parity for keyboard and screen reader users.\n */\nexport function useDroppableCollection(\n props: DroppableCollectionOptions,\n state: DroppableCollectionState,\n ref: RefObject<HTMLElement | null>\n): DroppableCollectionResult {\n let localState = useRef<{\n props: DroppableCollectionOptions;\n state: DroppableCollectionState;\n nextTarget: DropTarget | null;\n dropOperation: DropOperation | null;\n }>({\n props,\n state,\n nextTarget: null,\n dropOperation: null\n }).current;\n localState.props = props;\n localState.state = state;\n\n let defaultOnDrop = useCallback(\n async (e: DroppableCollectionDropEvent) => {\n let {\n onInsert,\n onRootDrop,\n onItemDrop,\n onReorder,\n onMove,\n acceptedDragTypes = 'all',\n shouldAcceptItemDrop\n } = localState.props;\n\n let {draggingKeys} = globalDndState;\n let isInternal = isInternalDropOperation(ref);\n let {target, dropOperation, items} = e;\n\n let filteredItems = items;\n if (acceptedDragTypes !== 'all' || shouldAcceptItemDrop) {\n filteredItems = items.filter(item => {\n let itemTypes: Set<string | symbol>;\n if (item.kind === 'directory') {\n itemTypes = new Set([DIRECTORY_DRAG_TYPE]);\n } else {\n itemTypes = item.kind === 'file' ? new Set([item.type]) : item.types;\n }\n\n if (acceptedDragTypes === 'all' || acceptedDragTypes.some(type => itemTypes.has(type))) {\n // If we are performing a on item drop, check if the item in question accepts the dropped item since the item may have heavier restrictions\n // than the droppable collection itself\n if (target.type === 'item' && target.dropPosition === 'on' && shouldAcceptItemDrop) {\n return shouldAcceptItemDrop(target, itemTypes);\n }\n return true;\n }\n\n return false;\n });\n }\n\n if (filteredItems.length > 0) {\n if (target.type === 'root' && onRootDrop) {\n await onRootDrop({items: filteredItems, dropOperation});\n }\n\n if (target.type === 'item') {\n if (target.dropPosition === 'on' && onItemDrop) {\n await onItemDrop({items: filteredItems, dropOperation, isInternal, target});\n }\n\n if (onMove && isInternal) {\n await onMove({keys: draggingKeys, dropOperation, target});\n }\n\n if (target.dropPosition !== 'on') {\n if (!isInternal && onInsert) {\n await onInsert({items: filteredItems, dropOperation, target});\n }\n\n if (isInternal && onReorder) {\n await onReorder({keys: draggingKeys, dropOperation, target});\n }\n }\n }\n }\n },\n [localState, ref]\n );\n\n let autoScroll = useAutoScroll(ref);\n let {dropProps} = useDrop({\n ref,\n onDropEnter() {\n if (localState.nextTarget != null) {\n state.setTarget(localState.nextTarget);\n }\n },\n onDropMove(e) {\n if (localState.nextTarget != null) {\n state.setTarget(localState.nextTarget);\n }\n autoScroll.move(e.x, e.y);\n },\n getDropOperationForPoint(types, allowedOperations, x, y) {\n let {draggingKeys, dropCollectionRef} = globalDndState;\n let isInternal = isInternalDropOperation(ref);\n let isValidDropTarget = target =>\n state.getDropOperation({target, types, allowedOperations, isInternal, draggingKeys}) !==\n 'cancel';\n let target = props.dropTargetDelegate.getDropTargetFromPoint(x, y, isValidDropTarget);\n if (!target) {\n localState.dropOperation = 'cancel';\n localState.nextTarget = null;\n return 'cancel';\n }\n\n localState.dropOperation = state.getDropOperation({\n target,\n types,\n allowedOperations,\n isInternal,\n draggingKeys\n });\n\n // If the target doesn't accept the drop, see if the root accepts it instead.\n if (localState.dropOperation === 'cancel') {\n let rootTarget: DropTarget = {type: 'root'};\n let dropOperation = state.getDropOperation({\n target: rootTarget,\n types,\n allowedOperations,\n isInternal,\n draggingKeys\n });\n if (dropOperation !== 'cancel') {\n target = rootTarget;\n localState.dropOperation = dropOperation;\n }\n }\n\n // Only set dropCollectionRef if there is a valid drop target since we cleanup dropCollectionRef in onDropExit\n // which only runs when leaving a valid drop target or if the dropEffect become none (mouse dnd only).\n if (\n target &&\n localState.dropOperation !== 'cancel' &&\n ref?.current !== dropCollectionRef?.current\n ) {\n setDropCollectionRef(ref);\n }\n localState.nextTarget = localState.dropOperation === 'cancel' ? null : target;\n return localState.dropOperation;\n },\n onDropExit() {\n setDropCollectionRef(undefined);\n state.setTarget(null);\n autoScroll.stop();\n },\n onDropActivate(e) {\n if (state.target?.type === 'item' && typeof props.onDropActivate === 'function') {\n props.onDropActivate({\n type: 'dropactivate',\n x: e.x, // todo\n y: e.y,\n target: state.target\n });\n }\n },\n onDrop(e) {\n setDropCollectionRef(ref);\n if (state.target) {\n onDrop(e, state.target);\n }\n\n // If there wasn't a collection being tracked as a dragged collection, then we are in a case where a non RSP drag is dropped on a\n // RSP collection and thus we don't need to preserve the global DnD state for onDragEnd\n let {draggingCollectionRef} = globalDndState;\n if (draggingCollectionRef == null) {\n clearGlobalDnDState();\n }\n }\n });\n\n let droppingState = useRef<DroppingState>(null);\n let updateFocusAfterDrop = useCallback(() => {\n let {state} = localState;\n if (droppingState.current) {\n let {\n target,\n collection: prevCollection,\n selectedKeys: prevSelectedKeys,\n focusedKey: prevFocusedKey,\n isInternal,\n draggingKeys\n } = droppingState.current;\n\n // If an insert occurs during a drop, we want to immediately select these items to give\n // feedback to the user that a drop occurred. Only do this if the selection didn't change\n // since the drop started so we don't override if the user or application did something.\n if (\n state.collection.size > prevCollection.size &&\n state.selectionManager.isSelectionEqual(prevSelectedKeys)\n ) {\n let newKeys = new Set<Key>();\n let key = state.collection.getFirstKey();\n while (key != null) {\n let item = state.collection.getItem(key);\n if (item?.type === 'item' && !prevCollection.getItem(item.key)) {\n newKeys.add(item.key);\n }\n\n if (\n item?.hasChildNodes &&\n state.collection.getItem(item.lastChildKey!)?.type === 'item'\n ) {\n key = item.firstChildKey!;\n } else {\n key = state.collection.getKeyAfter(key);\n }\n }\n\n state.selectionManager.setSelectedKeys(newKeys);\n\n // If the focused item didn't change since the drop occurred, also focus the first\n // inserted item. If selection is disabled, then also show the focus ring so there\n // is some indication that items were added.\n if (state.selectionManager.focusedKey === prevFocusedKey) {\n let first: Key | null | undefined = newKeys.keys().next().value;\n if (first != null) {\n let item = state.collection.getItem(first);\n let dropTarget = droppingState.current.target;\n let isParentRowExpanded = state.collection['expandedKeys']\n ? state.collection['expandedKeys'].has(item?.parentKey)\n : false;\n // If this is a cell, focus the parent row.\n // eslint-disable-next-line max-depth\n if (\n item &&\n (item?.type === 'cell' ||\n (dropTarget.type === 'item' &&\n dropTarget.dropPosition === 'on' &&\n !isParentRowExpanded))\n ) {\n first = item.parentKey;\n }\n\n // eslint-disable-next-line max-depth\n if (first != null) {\n state.selectionManager.setFocusedKey(first);\n }\n\n // eslint-disable-next-line max-depth\n if (state.selectionManager.selectionMode === 'none') {\n setInteractionModality('keyboard');\n }\n }\n }\n } else if (\n prevFocusedKey != null &&\n state.selectionManager.focusedKey === prevFocusedKey &&\n isInternal &&\n target.type === 'item' &&\n target.dropPosition !== 'on' &&\n draggingKeys.has(state.collection.getItem(prevFocusedKey)?.parentKey)\n ) {\n // Focus row instead of cell when reordering.\n state.selectionManager.setFocusedKey(\n state.collection.getItem(prevFocusedKey)?.parentKey ?? null\n );\n setInteractionModality('keyboard');\n } else if (\n state.selectionManager.focusedKey === prevFocusedKey &&\n target.type === 'item' &&\n target.dropPosition === 'on' &&\n state.collection.getItem(target.key) != null\n ) {\n // If focus didn't move already (e.g. due to an insert), and the user dropped on an item,\n // focus that item and show the focus ring to give the user feedback that the drop occurred.\n // Also show the focus ring if the focused key is not selected, e.g. in case of a reorder.\n state.selectionManager.setFocusedKey(target.key);\n setInteractionModality('keyboard');\n } else if (\n state.selectionManager.focusedKey != null &&\n !state.selectionManager.isSelected(state.selectionManager.focusedKey)\n ) {\n setInteractionModality('keyboard');\n }\n\n state.selectionManager.setFocused(true);\n }\n }, [localState]);\n\n let onDrop = useCallback(\n (e: DropEvent, target: DropTarget) => {\n let {state} = localState;\n\n // Save some state of the collection/selection before the drop occurs so we can compare later.\n droppingState.current = {\n timeout: undefined,\n focusedKey: state.selectionManager.focusedKey,\n collection: state.collection,\n selectedKeys: state.selectionManager.selectedKeys,\n draggingKeys: globalDndState.draggingKeys,\n isInternal: isInternalDropOperation(ref),\n target\n };\n\n let onDropFn = localState.props.onDrop || defaultOnDrop;\n onDropFn({\n type: 'drop',\n x: e.x, // todo\n y: e.y,\n target,\n items: e.items,\n dropOperation: e.dropOperation\n });\n\n // Wait for a short time period after the onDrop is called to allow the data to be read asynchronously\n // and for React to re-render. If the collection didn't already change during this time (handled below),\n // update the focused key here.\n droppingState.current.timeout = setTimeout(() => {\n updateFocusAfterDrop();\n droppingState.current = null;\n }, 50);\n },\n [localState, defaultOnDrop, ref, updateFocusAfterDrop]\n );\n\n useEffect(() => {\n return () => {\n if (droppingState.current) {\n clearTimeout(droppingState.current.timeout);\n }\n };\n }, []);\n\n useLayoutEffect(() => {\n // If the collection changed after a drop, update the focused key.\n if (droppingState.current && state.collection !== droppingState.current.collection) {\n updateFocusAfterDrop();\n }\n });\n\n let {direction} = useLocale();\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n let getNextTarget = (\n target: DropTarget | null | undefined,\n wrap = true,\n key: 'left' | 'right' | 'up' | 'down' = 'down'\n ) => {\n return navigate(\n localState.props.keyboardDelegate,\n localState.state.collection,\n target,\n key,\n direction === 'rtl',\n wrap\n );\n };\n\n let getPreviousTarget = (target: DropTarget | null | undefined, wrap = true) => {\n return getNextTarget(target, wrap, 'up');\n };\n\n let nextValidTarget = (\n target: DropTarget | null | undefined,\n types: Set<string>,\n allowedDropOperations: DropOperation[],\n getNextTarget: (target: DropTarget | null | undefined, wrap: boolean) => DropTarget | null,\n wrap = true\n ): DropTarget | null => {\n let seenRoot = 0;\n let operation: DropOperation;\n let {draggingKeys} = globalDndState;\n let isInternal = isInternalDropOperation(ref);\n do {\n let nextTarget = getNextTarget(target, wrap);\n if (!nextTarget) {\n return null;\n }\n target = nextTarget;\n operation = localState.state.getDropOperation({\n target: nextTarget,\n types,\n allowedOperations: allowedDropOperations,\n isInternal,\n draggingKeys\n });\n if (target.type === 'root') {\n seenRoot++;\n }\n } while (operation === 'cancel' && !localState.state.isDropTarget(target) && seenRoot < 2);\n\n if (operation === 'cancel') {\n return null;\n }\n\n return target;\n };\n\n return DragManager.registerDropTarget({\n element: ref.current,\n preventFocusOnDrop: true,\n getDropOperation(types, allowedOperations) {\n if (localState.state.target) {\n let {draggingKeys} = globalDndState;\n let isInternal = isInternalDropOperation(ref);\n return localState.state.getDropOperation({\n target: localState.state.target,\n types,\n allowedOperations,\n isInternal,\n draggingKeys\n });\n }\n\n // Check if any of the targets accept the drop.\n // TODO: should we have a faster way of doing this or e.g. for pagination?\n let target = nextValidTarget(null, types, allowedOperations, getNextTarget);\n return target ? 'move' : 'cancel';\n },\n onDropEnter(e, drag) {\n let types = getTypes(drag.items);\n let selectionManager = localState.state.selectionManager;\n let target: DropTarget | null = null;\n // Update the drop collection ref tracker for useDroppableItem's getDropOperation isInternal check\n setDropCollectionRef(ref);\n\n // When entering the droppable collection for the first time, the default drop target\n // is after the focused key.\n let key: Key | null | undefined = selectionManager.focusedKey;\n let dropPosition: DropPosition = 'after';\n\n // If the focused key is a cell, get the parent item instead.\n // For now, we assume that individual cells cannot be dropped on.\n let item = key != null ? localState.state.collection.getItem(key) : null;\n if (item?.type === 'cell') {\n key = item.parentKey;\n }\n\n // If the focused item is also selected, the default drop target is after the last selected item.\n // But if the focused key is the first selected item, then default to before the first selected item.\n // This is to make reordering lists slightly easier. If you select top down, we assume you want to\n // move the items down. If you select bottom up, we assume you want to move the items up.\n if (key != null && selectionManager.isSelected(key)) {\n if (selectionManager.selectedKeys.size > 1 && selectionManager.firstSelectedKey === key) {\n dropPosition = 'before';\n } else {\n key = selectionManager.lastSelectedKey;\n }\n }\n\n if (key != null) {\n target = {\n type: 'item',\n key,\n dropPosition\n };\n\n let {draggingKeys} = globalDndState;\n let isInternal = isInternalDropOperation(ref);\n // If the default target is not valid, find the next one that is.\n if (\n localState.state.getDropOperation({\n target,\n types,\n allowedOperations: drag.allowedDropOperations,\n isInternal,\n draggingKeys\n }) === 'cancel'\n ) {\n target =\n nextValidTarget(target, types, drag.allowedDropOperations, getNextTarget, false) ??\n nextValidTarget(target, types, drag.allowedDropOperations, getPreviousTarget, false);\n }\n }\n\n // If no focused key, then start from the root.\n if (!target) {\n target = nextValidTarget(null, types, drag.allowedDropOperations, getNextTarget);\n }\n\n localState.state.setTarget(target);\n },\n onDropExit() {\n setDropCollectionRef(undefined);\n localState.state.setTarget(null);\n },\n onDropTargetEnter(target) {\n localState.state.setTarget(target);\n },\n onDropActivate(e, target) {\n if (\n target?.type === 'item' &&\n target?.dropPosition === 'on' &&\n typeof localState.props.onDropActivate === 'function'\n ) {\n localState.props.onDropActivate({\n type: 'dropactivate',\n x: e.x, // todo\n y: e.y,\n target\n });\n }\n },\n onDrop(e, target) {\n setDropCollectionRef(ref);\n if (localState.state.target) {\n onDrop(e, target || localState.state.target);\n }\n },\n onKeyDown(e, drag) {\n let {keyboardDelegate} = localState.props;\n let types = getTypes(drag.items);\n switch (e.key) {\n case 'ArrowDown': {\n if (keyboardDelegate.getKeyBelow) {\n let target = nextValidTarget(\n localState.state.target,\n types,\n drag.allowedDropOperations,\n (target, wrap) => getNextTarget(target, wrap, 'down')\n );\n localState.state.setTarget(target);\n }\n break;\n }\n case 'ArrowUp': {\n if (keyboardDelegate.getKeyAbove) {\n let target = nextValidTarget(\n localState.state.target,\n types,\n drag.allowedDropOperations,\n (target, wrap) => getNextTarget(target, wrap, 'up')\n );\n localState.state.setTarget(target);\n }\n break;\n }\n case 'ArrowLeft': {\n if (keyboardDelegate.getKeyLeftOf) {\n let target = nextValidTarget(\n localState.state.target,\n types,\n drag.allowedDropOperations,\n (target, wrap) => getNextTarget(target, wrap, 'left')\n );\n localState.state.setTarget(target);\n }\n break;\n }\n case 'ArrowRight': {\n if (keyboardDelegate.getKeyRightOf) {\n let target = nextValidTarget(\n localState.state.target,\n types,\n drag.allowedDropOperations,\n (target, wrap) => getNextTarget(target, wrap, 'right')\n );\n localState.state.setTarget(target);\n }\n break;\n }\n case 'Home': {\n if (keyboardDelegate.getFirstKey) {\n let target = nextValidTarget(null, types, drag.allowedDropOperations, getNextTarget);\n localState.state.setTarget(target);\n }\n break;\n }\n case 'End': {\n if (keyboardDelegate.getLastKey) {\n let target = nextValidTarget(\n null,\n types,\n drag.allowedDropOperations,\n getPreviousTarget\n );\n localState.state.setTarget(target);\n }\n break;\n }\n case 'PageDown': {\n if (keyboardDelegate.getKeyPageBelow) {\n let target = localState.state.target;\n if (!target) {\n target = nextValidTarget(null, types, drag.allowedDropOperations, getNextTarget);\n } else {\n // If on the root, go to the item a page below the top. Otherwise a page below the current item.\n let targetKey = keyboardDelegate.getFirstKey?.();\n if (target.type === 'item') {\n targetKey = target.key;\n }\n let nextKey: Key | null = null;\n if (targetKey != null) {\n nextKey = keyboardDelegate.getKeyPageBelow(targetKey);\n }\n let dropPosition = target.type === 'item' ? target.dropPosition : 'after';\n\n // If there is no next key, or we are starting on the last key, jump to the last possible position.\n if (\n nextKey == null ||\n (target.type === 'item' && target.key === keyboardDelegate.getLastKey?.())\n ) {\n nextKey = keyboardDelegate.getLastKey?.() ?? null;\n dropPosition = 'after';\n }\n\n if (nextKey == null) {\n break;\n }\n target = {\n type: 'item',\n key: nextKey,\n dropPosition\n };\n\n // If the target does not accept the drop, find the next valid target.\n // If no next valid target, find the previous valid target.\n let {draggingCollectionRef, draggingKeys} = globalDndState;\n let isInternal = draggingCollectionRef?.current === ref?.current;\n let operation = localState.state.getDropOperation({\n target,\n types,\n allowedOperations: drag.allowedDropOperations,\n isInternal,\n draggingKeys\n });\n if (operation === 'cancel') {\n target =\n nextValidTarget(\n target,\n types,\n drag.allowedDropOperations,\n getNextTarget,\n false\n ) ??\n nextValidTarget(\n target,\n types,\n drag.allowedDropOperations,\n getPreviousTarget,\n false\n );\n }\n }\n\n localState.state.setTarget(target ?? localState.state.target);\n }\n break;\n }\n case 'PageUp': {\n if (!keyboardDelegate.getKeyPageAbove) {\n break;\n }\n\n let target = localState.state.target;\n if (!target) {\n target = nextValidTarget(null, types, drag.allowedDropOperations, getPreviousTarget);\n } else if (target.type === 'item') {\n // If at the top already, switch to the root. Otherwise navigate a page up.\n if (target.key === keyboardDelegate.getFirstKey?.()) {\n target = {\n type: 'root'\n };\n } else {\n let nextKey: Key | null | undefined = keyboardDelegate.getKeyPageAbove(target.key);\n let dropPosition = target.dropPosition;\n if (nextKey == null) {\n nextKey = keyboardDelegate.getFirstKey?.();\n dropPosition = 'before';\n }\n\n if (nextKey == null) {\n break;\n }\n target = {\n type: 'item',\n key: nextKey,\n dropPosition\n };\n }\n\n // If the target does not accept the drop, find the previous valid target.\n // If no next valid target, find the next valid target.\n let {draggingKeys} = globalDndState;\n let isInternal = isInternalDropOperation(ref);\n let operation = localState.state.getDropOperation({\n target,\n types,\n allowedOperations: drag.allowedDropOperations,\n isInternal,\n draggingKeys\n });\n if (operation === 'cancel') {\n target =\n nextValidTarget(\n target,\n types,\n drag.allowedDropOperations,\n getPreviousTarget,\n false\n ) ??\n nextValidTarget(target, types, drag.allowedDropOperations, getNextTarget, false);\n }\n }\n\n localState.state.setTarget(target ?? localState.state.target);\n break;\n }\n }\n localState.props.onKeyDown?.(e);\n }\n });\n }, [localState, ref, onDrop, direction]);\n\n let id = useId();\n droppableCollectionMap.set(state, {id, ref});\n return {\n collectionProps: mergeProps(dropProps, {\n id,\n // Remove description from collection element. If dropping on the entire collection,\n // there should be a drop indicator that has this description, so no need to double announce.\n 'aria-describedby': null\n })\n };\n}\n"],"names":[],"version":3,"file":"useDroppableCollection.cjs.map"}