Skip to content

Commit 88c5400

Browse files
committed
#317 🧊 update jsdoc
1 parent d7c0d31 commit 88c5400

File tree

2 files changed

+83
-6
lines changed

2 files changed

+83
-6
lines changed

‎packages/core/src/bundle/hooks/useDropZone/useDropZone.js

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,46 @@ import { useRefState } from '../useRefState/useRefState';
66
* @description - Hook that provides drop zone functionality
77
* @category Elements
88
*
9+
* @overload
10+
* @template Target The target element
11+
* @param {Target} target The target element drop zone's
12+
* @param {DataTypes} [options.dataTypes] The data types
13+
* @param {boolean} [options.multiple] The multiple mode
14+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function
15+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onEnter] The on enter callback function
16+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onLeave] The on leave callback function
17+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onOver] The on over callback function
18+
* @returns {[boolean, File[] | null]} The object with drop zone states
919
*
1020
* @example
11-
* const {ref, isOver} = useDropZone({onDrop})
21+
* const {isOver, files} = useDropZone(ref, options);
22+
*
23+
* @overload
24+
* @param {Target} target The target element drop zone's
25+
* @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop
26+
* @returns {[boolean, File[] | null]} The object with drop zone states
27+
*
28+
* @example
29+
* const {isOver, files} = useDropZone(ref, () => console.log('callback'));
30+
*
31+
* @overload
32+
* @param {DataTypes} [options.dataTypes] The data types
33+
* @param {boolean} [options.multiple] The multiple mode
34+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function
35+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onEnter] The on enter callback function
36+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onLeave] The on leave callback function
37+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onOver] The on over callback function
38+
* @returns {[StateRef<Target>, boolean, File[] | null]} The object with drop zone states and ref
39+
*
40+
* @example
41+
* const { ref, isOver, files } = useDropZone(options);
42+
*
43+
* @overload
44+
* @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop
45+
* @returns {[StateRef<Target>, boolean, File[] | null]} The object with drop zone states and ref
1246
*
1347
* @example
14-
* const { isOver } = useDropZone(ref, {onDrop});
48+
* const { ref, isOver, files } = useDropZone(() => console.log('callback'));
1549
*/
1650
export const useDropZone = (...params) => {
1751
const target = isTarget(params[0]) ? params[0] : undefined;

‎packages/core/src/hooks/useDropZone/useDropZone.ts

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,27 @@ import type { StateRef } from '../useRefState/useRefState';
99
import { useRefState } from '../useRefState/useRefState';
1010

1111
type DragEventType = 'drop' | 'enter' | 'leave' | 'over';
12+
type DataTypes = ((types: string[]) => boolean) | string[];
1213

1314
export interface UseDropZoneOptions {
14-
dataTypes?: ((types: string[]) => boolean) | string[];
15+
/** The data types for drop zone */
16+
dataTypes?: DataTypes;
17+
/** The multiple mode for drop zone */
1518
multiple?: boolean;
19+
/** The on drop callback */
1620
onDrop?: (files: File[] | null, event: DragEvent) => void;
21+
/** The on enter callback */
1722
onEnter?: (files: File[] | null, event: DragEvent) => void;
23+
/** The on leave callback */
1824
onLeave?: (files: File[] | null, event: DragEvent) => void;
25+
/** The on over callback */
1926
onOver?: (files: File[] | null, event: DragEvent) => void;
2027
}
2128

22-
interface UseDropZoneReturn {
29+
export interface UseDropZoneReturn {
30+
/** The files that was dropped in drop zone */
2331
files: File[] | null;
32+
/** The boolean flag that indicate when drop zone is over */
2433
isOver: boolean;
2534
}
2635

@@ -52,12 +61,46 @@ export interface UseDropZone {
5261
* @description - Hook that provides drop zone functionality
5362
* @category Elements
5463
*
64+
* @overload
65+
* @template Target The target element
66+
* @param {Target} target The target element drop zone's
67+
* @param {DataTypes} [options.dataTypes] The data types
68+
* @param {boolean} [options.multiple] The multiple mode
69+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function
70+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onEnter] The on enter callback function
71+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onLeave] The on leave callback function
72+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onOver] The on over callback function
73+
* @returns {[boolean, File[] | null]} The object with drop zone states
5574
*
5675
* @example
57-
* const {ref, isOver} = useDropZone({onDrop})
76+
* const {isOver, files} = useDropZone(ref, options);
77+
*
78+
* @overload
79+
* @param {Target} target The target element drop zone's
80+
* @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop
81+
* @returns {[boolean, File[] | null]} The object with drop zone states
82+
*
83+
* @example
84+
* const {isOver, files} = useDropZone(ref, () => console.log('callback'));
85+
*
86+
* @overload
87+
* @param {DataTypes} [options.dataTypes] The data types
88+
* @param {boolean} [options.multiple] The multiple mode
89+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onDrop] The on drop callback function
90+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onEnter] The on enter callback function
91+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onLeave] The on leave callback function
92+
* @param {(files: File[] | null, event: DragEvent) => void} [options.onOver] The on over callback function
93+
* @returns {[StateRef<Target>, boolean, File[] | null]} The object with drop zone states and ref
94+
*
95+
* @example
96+
* const { ref, isOver, files } = useDropZone(options);
97+
*
98+
* @overload
99+
* @param {(files: File[] | null, event: DragEvent) => void} [callback] The callback function to be invoked on drop
100+
* @returns {[StateRef<Target>, boolean, File[] | null]} The object with drop zone states and ref
58101
*
59102
* @example
60-
* const { isOver } = useDropZone(ref, {onDrop});
103+
* const { ref, isOver, files } = useDropZone(() => console.log('callback'));
61104
*/
62105

63106
export const useDropZone = ((...params: any[]) => {

0 commit comments

Comments
 (0)