@bbodek/hooks 0.0.29 → 0.0.31
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.
- package/dist/hooks/useDropzone/constants/index.d.ts +3 -3
- package/dist/hooks/useDropzone/constants/index.d.ts.map +1 -1
- package/dist/hooks/useDropzone/effects/useDropzonePropsErrorEffect.d.ts +4 -0
- package/dist/hooks/useDropzone/effects/useDropzonePropsErrorEffect.d.ts.map +1 -0
- package/dist/hooks/useDropzone/types/index.d.ts +3 -2
- package/dist/hooks/useDropzone/types/index.d.ts.map +1 -1
- package/dist/hooks/useDropzone/useDropzone.d.ts.map +1 -1
- package/dist/hooks/useDropzone/useDropzoneInput.d.ts +2 -3
- package/dist/hooks/useDropzone/useDropzoneInput.d.ts.map +1 -1
- package/dist/hooks/useDropzone/useDropzoneUpload.d.ts +1 -1
- package/dist/hooks/useDropzone/useDropzoneUpload.d.ts.map +1 -1
- package/dist/index.es.js +1 -1
- package/package.json +4 -4
|
@@ -8,10 +8,10 @@ export declare const DROPZONE_ACTION_MAPPER: {
|
|
|
8
8
|
readonly RESET_FILES: "resetFiles";
|
|
9
9
|
};
|
|
10
10
|
export declare const DROPZONE_REJECT_CODE_MAPPER: {
|
|
11
|
-
readonly SINGLE_FILE_ONLY: "SINGLE_FILE_ONLY";
|
|
12
|
-
readonly TOO_MANY_FILES: "TOO_MANY_FILES";
|
|
13
|
-
readonly NEED_ACTIVE_MULTIPLE_OPTION: "NEED_ACTIVE_MULTIPLE_OPTION";
|
|
14
11
|
readonly INVALID_FILE_FORMAT: "INVALID_FILE_FORMAT";
|
|
12
|
+
readonly TOO_LARGE_FILE: "TOO_LARGE_FILE";
|
|
13
|
+
readonly TOO_MANY_FILES: "TOO_MANY_FILES";
|
|
15
14
|
};
|
|
16
15
|
export declare const DROPZONE_REJECT_MESSAGE: Record<DropzoneRejectionCodes, string>;
|
|
16
|
+
export declare const FILE_DEFAULT_MAX_SIZE = 50;
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDropzone/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,eAAO,MAAM,sBAAsB;;;;;;;CAOzB,CAAC;AAEX,eAAO,MAAM,2BAA2B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDropzone/constants/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,eAAO,MAAM,sBAAsB;;;;;;;CAOzB,CAAC;AAEX,eAAO,MAAM,2BAA2B;;;;CAI9B,CAAC;AAEX,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAO1E,CAAC;AAEF,eAAO,MAAM,qBAAqB,KAAK,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { UseDropzone } from '../../../hooks/useDropzone/types';
|
|
2
|
+
declare const useDropzonePropsErrorEffect: ({ multiple, limit, }: Pick<UseDropzone, "multiple" | "limit">) => void;
|
|
3
|
+
export default useDropzonePropsErrorEffect;
|
|
4
|
+
//# sourceMappingURL=useDropzonePropsErrorEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDropzonePropsErrorEffect.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDropzone/effects/useDropzonePropsErrorEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,QAAA,MAAM,2BAA2B,GAAI,sBAGlC,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,SAMzC,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
|
|
@@ -25,13 +25,14 @@ export interface OnDropAccepted extends Pick<DropzoneState, 'acceptedFiles'>, Pa
|
|
|
25
25
|
export interface OnDropRejected extends Required<Pick<DropzoneState, 'rejectedFiles'>>, Partial<UseDropzoneReducerReturnType> {
|
|
26
26
|
}
|
|
27
27
|
export interface UseDropzone {
|
|
28
|
-
|
|
28
|
+
multiple?: boolean;
|
|
29
29
|
onDrop?: ({ acceptedFiles, rejectedFiles, state, dispatch }: OnDrop) => void;
|
|
30
30
|
onDropAccepted?: ({ acceptedFiles, state, dispatch }: OnDropAccepted) => void;
|
|
31
31
|
onDropRejected?: ({ rejectedFiles, state, dispatch }: OnDropRejected) => void;
|
|
32
32
|
limit?: number;
|
|
33
33
|
disabled?: boolean;
|
|
34
34
|
accept?: string[];
|
|
35
|
+
max?: number;
|
|
35
36
|
}
|
|
36
37
|
export interface UseDropzoneReturn extends UseDropzoneReducerReturnType, Omit<UseDropzoneUploadReturnType, 'handleUpload'> {
|
|
37
38
|
rootProps: (params?: HTMLAttributes<HTMLDivElement>) => Omit<HTMLAttributes<HTMLDivElement>, 'color'>;
|
|
@@ -40,7 +41,7 @@ export interface UseDropzoneReturn extends UseDropzoneReducerReturnType, Omit<Us
|
|
|
40
41
|
export interface UseDropzoneRoot extends Pick<UseDropzone, 'disabled'>, Pick<UseDropzoneReducerReturnType, 'dispatch'>, Pick<UseDropzoneUploadReturnType, 'handleUpload'> {
|
|
41
42
|
inputRef: RefObject<HTMLInputElement | null>;
|
|
42
43
|
}
|
|
43
|
-
export interface UseDropzoneInput extends Pick<UseDropzone, 'disabled' | '
|
|
44
|
+
export interface UseDropzoneInput extends Pick<UseDropzone, 'disabled' | 'multiple' | 'accept'>, Pick<UseDropzoneUploadReturnType, 'handleUpload'> {
|
|
44
45
|
}
|
|
45
46
|
export interface FileData extends File {
|
|
46
47
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDropzone/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EACnC,4BAA4B;IAC9B,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;IACnD,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC;IACxE,UAAU,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,MACf,SAAQ,IAAI,CAAC,aAAa,EAAE,eAAe,GAAG,eAAe,CAAC,EAC5D,OAAO,CAAC,4BAA4B,CAAC;CAAG;AAE5C,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,EAC1C,OAAO,CAAC,4BAA4B,CAAC;CAAG;AAE5C,MAAM,WAAW,cACf,SAAQ,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,EACpD,OAAO,CAAC,4BAA4B,CAAC;CAAG;AAE5C,MAAM,WAAW,WAAW;IAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useDropzone/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropzone.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropzone/useDropzone.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDropzone.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropzone/useDropzone.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAM3E,QAAA,MAAM,WAAW,GAAI,OAAO,WAAW,KAAG,iBAyCzC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChangeEvent, InputHTMLAttributes } from 'react';
|
|
2
2
|
import { UseDropzoneInput } from '../../hooks/useDropzone/types';
|
|
3
|
-
declare const useDropzoneInput: ({
|
|
3
|
+
declare const useDropzoneInput: ({ multiple, accept, disabled, handleUpload, }: UseDropzoneInput) => {
|
|
4
4
|
inputProps: ({ onChange, ...rest }?: InputHTMLAttributes<HTMLInputElement>) => {
|
|
5
5
|
accept: string;
|
|
6
6
|
alt?: string | undefined;
|
|
@@ -20,7 +20,7 @@ declare const useDropzoneInput: ({ isMultiple, accept, disabled, handleUpload, }
|
|
|
20
20
|
maxLength?: number | undefined;
|
|
21
21
|
min?: number | string | undefined;
|
|
22
22
|
minLength?: number | undefined;
|
|
23
|
-
multiple
|
|
23
|
+
multiple: boolean;
|
|
24
24
|
name?: string | undefined;
|
|
25
25
|
pattern?: string | undefined;
|
|
26
26
|
placeholder?: string | undefined;
|
|
@@ -313,7 +313,6 @@ declare const useDropzoneInput: ({ isMultiple, accept, disabled, handleUpload, }
|
|
|
313
313
|
onTransitionRunCapture?: import("react").TransitionEventHandler<HTMLInputElement> | undefined;
|
|
314
314
|
onTransitionStart?: import("react").TransitionEventHandler<HTMLInputElement> | undefined;
|
|
315
315
|
onTransitionStartCapture?: import("react").TransitionEventHandler<HTMLInputElement> | undefined;
|
|
316
|
-
isMultiple: boolean;
|
|
317
316
|
ref: import("react").RefObject<HTMLInputElement | null>;
|
|
318
317
|
onChange: import("react").EventHandler<ChangeEvent<HTMLInputElement>> | undefined;
|
|
319
318
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropzoneInput.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropzone/useDropzoneInput.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,mBAAmB,EAIpB,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAI7D,QAAA,MAAM,gBAAgB,GAAI,
|
|
1
|
+
{"version":3,"file":"useDropzoneInput.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropzone/useDropzoneInput.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,mBAAmB,EAIpB,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAI7D,QAAA,MAAM,gBAAgB,GAAI,+CAKvB,gBAAgB;yCAmBW,mBAAmB,CAAC,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgClE,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { UseDropzoneUpload, UseDropzoneUploadReturnType } from '../../hooks/useDropzone/types';
|
|
2
|
-
declare const useDropzoneUpload: ({ uploadedFiles, state, dispatch,
|
|
2
|
+
declare const useDropzoneUpload: ({ uploadedFiles, state, dispatch, multiple, limit, onDrop, onDropAccepted, onDropRejected, accept, max, }: UseDropzoneUpload) => UseDropzoneUploadReturnType;
|
|
3
3
|
export default useDropzoneUpload;
|
|
4
4
|
//# sourceMappingURL=useDropzoneUpload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropzoneUpload.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropzone/useDropzoneUpload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDropzoneUpload.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDropzone/useDropzoneUpload.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,2BAA2B,CAAC;AAGnC,QAAA,MAAM,iBAAiB,GAAI,2GAWxB,iBAAiB,KAAG,2BA+FtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
package/dist/index.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRef as e,useEffect as t,useLayoutEffect as r,useCallback as n,useMemo as i,useReducer as s,useState as a}from"react";import{composeEventHandler as l,ACCEPT_FILES as
|
|
1
|
+
import{useRef as e,useEffect as t,useLayoutEffect as r,useCallback as n,useMemo as i,useReducer as s,useState as a}from"react";import{composeEventHandler as l,ACCEPT_FILES as o,executeFunction as c,getUUID as d}from"@bbodek/utils";const p=r=>{const n=e(!0);t((()=>{n.current&&(n.current=!1,r())}),[])},u="undefined"!=typeof window?r:t,E=({isLocked:e,target:r})=>{t((()=>{const t=r?document.getElementById(r):document.body;if(t)return t.style.overflow=e?"hidden":"auto",()=>{t.style.overflow="auto"}}),[e,r])},v=({ref:e,onClose:r,useClickOutsideEvent:n=!0})=>{t((()=>{const t=t=>{e.current&&!e.current.contains(t.target)&&r(t)};return n?document.addEventListener("mousedown",t):document.removeEventListener("mousedown",t),()=>{n&&document.removeEventListener("mousedown",t)}}),[e.current,n])},F=({onClose:t,useClickOutsideEvent:r})=>{const n=e(null);return v({ref:n,onClose:t,useClickOutsideEvent:r}),{contentRef:n}},L=()=>({compose:n((e=>l(e)),[])}),f={DRAG:"drag",HOVER:"hover",SET_FILES:"setFiles",SET_REJECT:"setReject",DELETE_FILE:"deleteFile",RESET_FILES:"resetFiles"},D={INVALID_FILE_FORMAT:"INVALID_FILE_FORMAT",TOO_LARGE_FILE:"TOO_LARGE_FILE",TOO_MANY_FILES:"TOO_MANY_FILES"},m={[D.INVALID_FILE_FORMAT]:"지원되지 않는 확장자입니다",[D.TOO_LARGE_FILE]:"업로드 가능한 용량을 초과하였습니다",[D.TOO_MANY_FILES]:"업로드 가능한 개수를 초과하였습니다"},T=50,A=({url:e})=>Array.isArray(e)?e.forEach((e=>URL.revokeObjectURL(e))):URL.revokeObjectURL(e),O=({accept:e=o})=>e.join(","),R=()=>({execute:n((e=>c(e)),[])}),_={isDragActive:!1,isHover:!1,isActive:!1,acceptedFiles:[],rejectedFiles:void 0},I=(e,t)=>{switch(t.type){case f.DRAG:return{...e,isDragActive:t.isDragActive??e.isDragActive,isActive:t.isDragActive??e.isDragActive};case f.HOVER:return{...e,isHover:t.isHover??e.isHover,isActive:t.isHover??e.isHover};case f.SET_FILES:return{...e,acceptedFiles:t.acceptedFiles??e.acceptedFiles,rejectedFiles:void 0,isDragActive:!1,isHover:!1,isActive:!1};case f.SET_REJECT:return{...e,rejectedFiles:t.rejectedFiles??e.rejectedFiles,isDragActive:!1,isHover:!1,isActive:!1};case f.DELETE_FILE:return{...e,acceptedFiles:e.acceptedFiles.filter((e=>e.id!==t.id))};case f.RESET_FILES:return{...e,acceptedFiles:[]};default:return e}},g=({uploadedFiles:e,state:t,dispatch:r,multiple:n=!0,limit:i,onDrop:s,onDropAccepted:a,onDropRejected:l,accept:c=o,max:p=50})=>{const u=e=>{const{name:t,size:r,type:n,lastModified:i,webkitRelativePath:s}=e;return{id:d(),name:t,size:r,type:n,lastModified:i,webkitRelativePath:s,blob:URL.createObjectURL(e),original:e}};return{handleUpload:({files:e})=>{const o=Array.from(e,u),d=(({acceptedFiles:e})=>{const t=void 0!==i&&e.length>i,r=!n&&e.length>1;return t||r?D.TOO_MANY_FILES:e.some((e=>e.size>1048576*p))?D.TOO_LARGE_FILE:e.some((e=>["type","name"].every((t=>!c.some((r=>e[t].toLowerCase().includes(r)))))))?D.INVALID_FILE_FORMAT:null})({acceptedFiles:o});if(d)return(({acceptedFiles:e,rejectCode:n})=>{const i={files:e,code:n};r({type:f.SET_REJECT,acceptedFiles:e,rejectedFiles:i}),l?.({rejectedFiles:i,state:t,dispatch:r}),s?.({acceptedFiles:[],rejectedFiles:i,state:t,dispatch:r})})({acceptedFiles:o,rejectCode:d});r({type:f.SET_FILES,acceptedFiles:o}),a?.({acceptedFiles:o,state:t,dispatch:r}),s?.({acceptedFiles:o,state:t,dispatch:r})},deleteFile:({id:e})=>{r({type:f.DELETE_FILE,id:e})},resetFiles:()=>{A({url:e.map((e=>e.blob))}),r({type:f.RESET_FILES})}}},h=r=>{const{multiple:a=!0,limit:l,disabled:c=!1,onDrop:d,onDropAccepted:u,onDropRejected:E,accept:v=o,max:F}=r,{state:D,dispatch:m}=(()=>{const[e,t]=s(I,_);return{state:e,dispatch:t}})(),{handleUpload:T,deleteFile:h,resetFiles:H}=g({uploadedFiles:D.acceptedFiles,state:D,dispatch:m,multiple:a,limit:l,onDrop:d,onDropAccepted:u,onDropRejected:E,accept:v,max:F}),{inputProps:b,inputRef:y}=(({multiple:t=!0,accept:r=o,disabled:s=!1,handleUpload:a})=>{const l=e(null),{execute:c}=R(),{compose:d}=L(),p=n((e=>{if(e.preventDefault(),!e.target||!e.target.files)return;const{files:t}=e.target;a({files:t})}),[a]);return{inputProps:i((()=>({onChange:e,...n}={})=>({multiple:t,type:"file",style:{display:"none"},tabIndex:-1,ref:l,onChange:c({disabled:s,fn:d({externalEventHandler:e,internalEventHandler:p})}),accept:O({accept:r}),disabled:s,...n})),[t,r,l,p,s,c,d]),inputRef:l}})({disabled:c,handleUpload:T,multiple:a,accept:v}),{rootProps:S}=(({inputRef:t,dispatch:r,disabled:s=!1,handleUpload:a})=>{const l=e(null),{execute:o}=R(),{compose:c}=L(),d=i((()=>e=>e.relatedTarget instanceof Node&&l.current&&l.current.contains(e.relatedTarget)),[l.current]),p=n((()=>r({type:f.HOVER,isHover:!0})),[r]),u=n((e=>{d(e)||r({type:f.HOVER,isHover:!1})}),[r,d]),E=n((e=>{e.preventDefault(),r({type:f.DRAG,isDragActive:!0})}),[r]),v=n((e=>{e.preventDefault(),d(e)||r({type:f.DRAG,isDragActive:!1})}),[r,d]),F=n((e=>e.preventDefault()),[]),D=n((e=>{if(e.preventDefault(),!e.dataTransfer||!e.dataTransfer.files)return;const{files:t}=e.dataTransfer;a({files:t})}),[a]),m=n((()=>{t.current&&(t.current.value="",t.current.click())}),[t.current]);return{rootProps:i((()=>({onDrop:e,onClick:t,onDragEnter:r,onDragLeave:n,onDragOver:i,onMouseEnter:a,onMouseLeave:d,role:L,...f}={})=>({onDrop:o({disabled:s,fn:c({externalEventHandler:e,internalEventHandler:D})}),onClick:o({disabled:s,fn:c({externalEventHandler:t,internalEventHandler:m})}),onDragEnter:o({disabled:s,fn:c({externalEventHandler:r,internalEventHandler:E})}),onDragLeave:o({disabled:s,fn:c({externalEventHandler:n,internalEventHandler:v})}),onDragOver:o({disabled:s,fn:c({externalEventHandler:i,internalEventHandler:F})}),onMouseEnter:o({disabled:s,fn:c({externalEventHandler:a,internalEventHandler:p})}),onMouseLeave:o({disabled:s,fn:c({externalEventHandler:d,internalEventHandler:u})}),role:"string"==typeof L&&""!==L?L:"presentation",ref:l,...f})),[D,m,E,v,F,p,u,l,s,o,c])}})({inputRef:y,dispatch:m,disabled:c,handleUpload:T});return(({acceptedFiles:e})=>{p((()=>{A({url:e.map((e=>e.blob))})}))})({acceptedFiles:D.acceptedFiles}),(({multiple:e,limit:r})=>{t((()=>{if(void 0!==r&&r>1&&!e)throw new Error("limit이 1 이상일 경우 multiple 옵션을 활성화 해주세요")}),[e,r])})({multiple:a,limit:l}),{state:D,deleteFile:h,resetFiles:H,rootProps:S,inputProps:b,dispatch:m}},H=({initialValues:e,validate:t})=>{const[r,n]=a(e),[i,s]=a({});return{values:r,setValues:e=>{const i="function"==typeof e?e(r):e;if(n(i),t){const e=t(i);s(e)}},errors:i,handleChange:i=>{const{name:a,value:l}=i.target;if(a in e&&(n({...r,[a]:l}),t)){const e=t({...r,[a]:l});s(e)}},setErrors:s}},b={MOBILE:"MOBILE",TABLET:"TABLET",DESKTOP:"DESKTOP"},y={[b.MOBILE]:360,[b.TABLET]:820,[b.DESKTOP]:1180},S=()=>{const[e,r]=a(null);return(({setStatus:e})=>{t((()=>{const t=()=>{const t=window.innerWidth;e(t>=y.DESKTOP?b.DESKTOP:t>=y.TABLET?b.TABLET:b.MOBILE)};return t(),window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}}),[])})({setStatus:r}),{status:e}};export{y as BREAKPOINT_SIZE,f as DROPZONE_ACTION_MAPPER,D as DROPZONE_REJECT_CODE_MAPPER,m as DROPZONE_REJECT_MESSAGE,T as FILE_DEFAULT_MAX_SIZE,b as RESPONSIBLE_STATUS,v as useClickOutSideEffect,F as useClickOutside,L as useComposeEventHandler,h as useDropzone,R as useExecuteFunction,p as useFirstRenderEffect,H as useForm,u as useIsomorphicLayoutEffect,S as useResponsible,E as useScrollLockEffect};
|
|
2
2
|
//# sourceMappingURL=index.es.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bbodek/hooks",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.31",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
"dist"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@bbodek/utils": "0.0.
|
|
22
|
+
"@bbodek/utils": "0.0.28"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"next": "^15.3.6",
|
|
26
26
|
"react": "^19.2.1",
|
|
27
27
|
"react-dom": "^19.2.1",
|
|
28
|
-
"@bbodek/utils": "0.0.
|
|
28
|
+
"@bbodek/utils": "0.0.28"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"next": "^15.3.6",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"tsc-alias": "^1.8.16",
|
|
40
40
|
"tslib": "^2.8.1",
|
|
41
41
|
"typescript": "^5.8.3",
|
|
42
|
-
"@bbodek/eslint-config": "0.0.
|
|
42
|
+
"@bbodek/eslint-config": "0.0.5",
|
|
43
43
|
"@dotoli/typescript-config": "0.0.0",
|
|
44
44
|
"@dotoli/rollup-config": "0.0.0"
|
|
45
45
|
},
|