@bbodek/hooks 0.0.15 → 0.0.17

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.
Files changed (45) hide show
  1. package/README.md +6 -4
  2. package/dist/effects/index.d.ts +2 -0
  3. package/dist/effects/index.d.ts.map +1 -1
  4. package/dist/effects/useIsomorphicLayoutEffect/index.d.ts.map +1 -0
  5. package/dist/effects/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts.map +1 -0
  6. package/dist/effects/useScrollLockEffect/index.d.ts +3 -0
  7. package/dist/effects/useScrollLockEffect/index.d.ts.map +1 -0
  8. package/dist/effects/useScrollLockEffect/types/index.d.ts +5 -0
  9. package/dist/effects/useScrollLockEffect/types/index.d.ts.map +1 -0
  10. package/dist/effects/useScrollLockEffect/useScrollLockEffect.d.ts +4 -0
  11. package/dist/effects/useScrollLockEffect/useScrollLockEffect.d.ts.map +1 -0
  12. package/dist/hooks/index.d.ts +6 -0
  13. package/dist/hooks/index.d.ts.map +1 -0
  14. package/dist/hooks/useClickOutSide/index.d.ts.map +1 -0
  15. package/dist/hooks/useClickOutSide/types/index.d.ts.map +1 -0
  16. package/dist/{useClickOutSide → hooks/useClickOutSide}/useClickOutSide.d.ts +1 -1
  17. package/dist/hooks/useClickOutSide/useClickOutSide.d.ts.map +1 -0
  18. package/dist/{useClickOutSide → hooks/useClickOutSide}/useClickOutSideEffect.d.ts +1 -1
  19. package/dist/hooks/useClickOutSide/useClickOutSideEffect.d.ts.map +1 -0
  20. package/dist/hooks/useDropzone/useDropzoneInput.d.ts +17 -17
  21. package/dist/hooks/useExecuteFunction/index.d.ts +2 -0
  22. package/dist/hooks/useExecuteFunction/index.d.ts.map +1 -0
  23. package/dist/hooks/useForm/index.d.ts.map +1 -0
  24. package/dist/hooks/useForm/types/index.d.ts.map +1 -0
  25. package/dist/{useForm → hooks/useForm}/useForm.d.ts +1 -1
  26. package/dist/hooks/useForm/useForm.d.ts.map +1 -0
  27. package/dist/index.d.ts +2 -3
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.es.js +1 -1
  30. package/package.json +9 -9
  31. package/dist/useClickOutSide/index.d.ts.map +0 -1
  32. package/dist/useClickOutSide/types/index.d.ts.map +0 -1
  33. package/dist/useClickOutSide/useClickOutSide.d.ts.map +0 -1
  34. package/dist/useClickOutSide/useClickOutSideEffect.d.ts.map +0 -1
  35. package/dist/useForm/index.d.ts.map +0 -1
  36. package/dist/useForm/types/index.d.ts.map +0 -1
  37. package/dist/useForm/useForm.d.ts.map +0 -1
  38. package/dist/useIsomorphicLayoutEffect/index.d.ts.map +0 -1
  39. package/dist/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.d.ts.map +0 -1
  40. /package/dist/{useIsomorphicLayoutEffect → effects/useIsomorphicLayoutEffect}/index.d.ts +0 -0
  41. /package/dist/{useIsomorphicLayoutEffect → effects/useIsomorphicLayoutEffect}/useIsomorphicLayoutEffect.d.ts +0 -0
  42. /package/dist/{useClickOutSide → hooks/useClickOutSide}/index.d.ts +0 -0
  43. /package/dist/{useClickOutSide → hooks/useClickOutSide}/types/index.d.ts +0 -0
  44. /package/dist/{useForm → hooks/useForm}/index.d.ts +0 -0
  45. /package/dist/{useForm → hooks/useForm}/types/index.d.ts +0 -0
package/README.md CHANGED
@@ -35,8 +35,10 @@ useIsomorphicLayoutEffect(() => {
35
35
  Licensed under the [MIT license](https://github.com/thebbodek/dotoli/blob/main/LICENSE).
36
36
 
37
37
  <a href="https://bbodek.com/" target="_blank">
38
- <picture>
39
- <source media="(prefers-color-scheme: dark)" srcset="https://image.thebbodek.com/logo/logo-white.png"/>
40
- <img align="center" alt="BBODEK" width="100" hspace="16" src="https://image.thebbodek.com/logo/logo-color.png"/>
41
- </picture>
38
+ <p align="center">
39
+ <picture>
40
+ <source media="(prefers-color-scheme: dark)" srcset="https://image.thebbodek.com/logo/logo-white.png"/>
41
+ <img alt="BBODEK" width="100" hspace="16" src="https://image.thebbodek.com/logo/logo-color.png"/>
42
+ </picture>
43
+ </p>
42
44
  </a>
@@ -1,2 +1,4 @@
1
1
  export * from './useFirstRenderEffect';
2
+ export * from './useIsomorphicLayoutEffect';
3
+ export * from './useScrollLockEffect';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/effects/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/effects/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/effects/useIsomorphicLayoutEffect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsomorphicLayoutEffect.d.ts","sourceRoot":"","sources":["../../../src/effects/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,eAAe,EAAE,MAAM,OAAO,CAAC;AAEnD,QAAA,MAAM,yBAAyB,wBAC8B,CAAC;AAE9D,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './types';
2
+ export { default as useScrollLockEffect } from './useScrollLockEffect';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/effects/useScrollLockEffect/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface UseScrollLockEffectProps {
2
+ isLocked: boolean;
3
+ target?: string;
4
+ }
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/effects/useScrollLockEffect/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,4 @@
1
+ import { UseScrollLockEffectProps } from '../../effects/useScrollLockEffect/types';
2
+ declare const useScrollLockEffect: ({ isLocked, target, }: UseScrollLockEffectProps) => void;
3
+ export default useScrollLockEffect;
4
+ //# sourceMappingURL=useScrollLockEffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScrollLockEffect.d.ts","sourceRoot":"","sources":["../../../src/effects/useScrollLockEffect/useScrollLockEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,QAAA,MAAM,mBAAmB,GAAI,uBAG1B,wBAAwB,SAgB1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './useClickOutSide';
2
+ export * from './useComposeEventHandler';
3
+ export * from './useDropzone';
4
+ export * from './useExecuteFunction';
5
+ export * from './useForm';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useClickOutSide/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useClickOutSide/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B,CAAC,CAAC,SAAS,WAAW,CAC/D,SAAQ,oBAAoB;IAC5B,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAC1B"}
@@ -1,4 +1,4 @@
1
- import { UseClickOutsideProps } from '../useClickOutSide/types';
1
+ import { UseClickOutsideProps } from '../../hooks/useClickOutSide/types';
2
2
  declare const useClickOutside: <T extends HTMLElement>({ onClose, useClickOutsideEvent, }: UseClickOutsideProps) => {
3
3
  contentRef: import("react").RefObject<T | null>;
4
4
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClickOutSide.d.ts","sourceRoot":"","sources":["../../../src/hooks/useClickOutSide/useClickOutSide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAGrE,QAAA,MAAM,eAAe,GAAI,CAAC,SAAS,WAAW,EAAE,oCAG7C,oBAAoB;;CAUtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- import { UseClickOutSideEffectProps } from '../useClickOutSide/types';
1
+ import { UseClickOutSideEffectProps } from '../../hooks/useClickOutSide/types';
2
2
  declare const useClickOutSideEffect: <T extends HTMLElement>({ ref, onClose, useClickOutsideEvent, }: UseClickOutSideEffectProps<T>) => void;
3
3
  export default useClickOutSideEffect;
4
4
  //# sourceMappingURL=useClickOutSideEffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClickOutSideEffect.d.ts","sourceRoot":"","sources":["../../../src/hooks/useClickOutSide/useClickOutSideEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,QAAA,MAAM,qBAAqB,GAAI,CAAC,SAAS,WAAW,EAAE,yCAInD,0BAA0B,CAAC,CAAC,CAAC,SAoB/B,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -40,20 +40,20 @@ declare const useDropzoneInput: ({ multiple, accept, disabled, handleUpload, }:
40
40
  autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
41
41
  autoFocus?: boolean | undefined;
42
42
  className?: string | undefined;
43
- contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
43
+ contentEditable?: (boolean | "false" | "true") | "inherit" | "plaintext-only" | undefined;
44
44
  contextMenu?: string | undefined;
45
45
  dir?: string | undefined;
46
- draggable?: (boolean | "true" | "false") | undefined;
46
+ draggable?: (boolean | "false" | "true") | undefined;
47
47
  enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
48
48
  hidden?: boolean | undefined;
49
49
  id?: string | undefined;
50
50
  lang?: string | undefined;
51
51
  nonce?: string | undefined;
52
52
  slot?: string | undefined;
53
- spellCheck?: (boolean | "true" | "false") | undefined;
54
- style: import("react").CSSProperties | {
53
+ spellCheck?: (boolean | "false" | "true") | undefined;
54
+ style: {
55
55
  display: string;
56
- };
56
+ } | import("react").CSSProperties;
57
57
  tabIndex: number;
58
58
  title?: string | undefined;
59
59
  translate?: "yes" | "no" | undefined;
@@ -90,11 +90,11 @@ declare const useDropzoneInput: ({ multiple, accept, disabled, handleUpload, }:
90
90
  exportparts?: string | undefined;
91
91
  part?: string | undefined;
92
92
  "aria-activedescendant"?: string | undefined;
93
- "aria-atomic"?: (boolean | "true" | "false") | undefined;
93
+ "aria-atomic"?: (boolean | "false" | "true") | undefined;
94
94
  "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
95
95
  "aria-braillelabel"?: string | undefined;
96
96
  "aria-brailleroledescription"?: string | undefined;
97
- "aria-busy"?: (boolean | "true" | "false") | undefined;
97
+ "aria-busy"?: (boolean | "false" | "true") | undefined;
98
98
  "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
99
99
  "aria-colcount"?: number | undefined;
100
100
  "aria-colindex"?: number | undefined;
@@ -105,37 +105,37 @@ declare const useDropzoneInput: ({ multiple, accept, disabled, handleUpload, }:
105
105
  "aria-describedby"?: string | undefined;
106
106
  "aria-description"?: string | undefined;
107
107
  "aria-details"?: string | undefined;
108
- "aria-disabled"?: (boolean | "true" | "false") | undefined;
108
+ "aria-disabled"?: (boolean | "false" | "true") | undefined;
109
109
  "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
110
110
  "aria-errormessage"?: string | undefined;
111
- "aria-expanded"?: (boolean | "true" | "false") | undefined;
111
+ "aria-expanded"?: (boolean | "false" | "true") | undefined;
112
112
  "aria-flowto"?: string | undefined;
113
- "aria-grabbed"?: (boolean | "true" | "false") | undefined;
113
+ "aria-grabbed"?: (boolean | "false" | "true") | undefined;
114
114
  "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
115
- "aria-hidden"?: (boolean | "true" | "false") | undefined;
115
+ "aria-hidden"?: (boolean | "false" | "true") | undefined;
116
116
  "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
117
117
  "aria-keyshortcuts"?: string | undefined;
118
118
  "aria-label"?: string | undefined;
119
119
  "aria-labelledby"?: string | undefined;
120
120
  "aria-level"?: number | undefined;
121
121
  "aria-live"?: "off" | "assertive" | "polite" | undefined;
122
- "aria-modal"?: (boolean | "true" | "false") | undefined;
123
- "aria-multiline"?: (boolean | "true" | "false") | undefined;
124
- "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
122
+ "aria-modal"?: (boolean | "false" | "true") | undefined;
123
+ "aria-multiline"?: (boolean | "false" | "true") | undefined;
124
+ "aria-multiselectable"?: (boolean | "false" | "true") | undefined;
125
125
  "aria-orientation"?: "horizontal" | "vertical" | undefined;
126
126
  "aria-owns"?: string | undefined;
127
127
  "aria-placeholder"?: string | undefined;
128
128
  "aria-posinset"?: number | undefined;
129
129
  "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
130
- "aria-readonly"?: (boolean | "true" | "false") | undefined;
130
+ "aria-readonly"?: (boolean | "false" | "true") | undefined;
131
131
  "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
132
- "aria-required"?: (boolean | "true" | "false") | undefined;
132
+ "aria-required"?: (boolean | "false" | "true") | undefined;
133
133
  "aria-roledescription"?: string | undefined;
134
134
  "aria-rowcount"?: number | undefined;
135
135
  "aria-rowindex"?: number | undefined;
136
136
  "aria-rowindextext"?: string | undefined;
137
137
  "aria-rowspan"?: number | undefined;
138
- "aria-selected"?: (boolean | "true" | "false") | undefined;
138
+ "aria-selected"?: (boolean | "false" | "true") | undefined;
139
139
  "aria-setsize"?: number | undefined;
140
140
  "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
141
141
  "aria-valuemax"?: number | undefined;
@@ -0,0 +1,2 @@
1
+ export { default as useExecuteFunction } from './useExecuteFunction';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExecuteFunction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useForm/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useForm/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,aAAa,CAAC;CACzC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC;IACV,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,CAAC,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;CACpD"}
@@ -1,4 +1,4 @@
1
- import { Props, UseFormReturnType } from '../useForm/types';
1
+ import { Props, UseFormReturnType } from '../../hooks/useForm/types';
2
2
  declare const useForm: <T extends object>({ initialValues, validate, }: Props<T>) => UseFormReturnType<T>;
3
3
  export default useForm;
4
4
  //# sourceMappingURL=useForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../src/hooks/useForm/useForm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAiB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,QAAA,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,EAAE,8BAGhC,KAAK,CAAC,CAAC,CAAC,KAAG,iBAAiB,CAAC,CAAC,CA2ChC,CAAC;AAEF,eAAe,OAAO,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from './useClickOutSide';
2
- export * from './useForm';
3
- export * from './useIsomorphicLayoutEffect';
1
+ export * from './effects';
2
+ export * from './hooks';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
package/dist/index.es.js CHANGED
@@ -1,2 +1,2 @@
1
- import{useEffect as e,useRef as n,useState as t,useLayoutEffect as o}from"react";const r=({ref:n,onClose:t,useClickOutsideEvent:o=!0})=>{e((()=>{const e=e=>{n.current&&!n.current.contains(e.target)&&t(e)};return o?document.addEventListener("mousedown",e):document.removeEventListener("mousedown",e),()=>{o&&document.removeEventListener("mousedown",e)}}),[n.current,o])},s=({onClose:e,useClickOutsideEvent:t})=>{const o=n(null);return r({ref:o,onClose:e,useClickOutsideEvent:t}),{contentRef:o}},u=({initialValues:e,validate:n})=>{const[o,r]=t(e),[s,u]=t({});return{values:o,setValues:e=>{const t="function"==typeof e?e(o):e;if(r(t),n){const e=n(t);u(e)}},errors:s,handleChange:t=>{const{name:s,value:c}=t.target;if(s in e&&(r({...o,[s]:c}),n)){const e=n({...o,[s]:c});u(e)}},setErrors:u}},c="undefined"!=typeof window?o:e;export{r as useClickOutSideEffect,s as useClickOutside,u as useForm,c as useIsomorphicLayoutEffect};
1
+ import{useRef as e,useEffect as t,useLayoutEffect as r,useCallback as n,useMemo as i,useReducer as a,useState as s}from"react";import{composeEventHandler as l,ACCEPT_FILES as c,executeFunction as o,getUUID as d}from"@bbodek/utils";const p=r=>{const n=e(!0);t((()=>{n.current&&(n.current=!1,r())}),[])},E="undefined"!=typeof window?r:t,u=({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}},f=()=>({compose:n((e=>l(e)),[])}),L={DRAG:"drag",HOVER:"hover",SET_FILES:"setFiles",SET_REJECT:"setReject",DELETE_FILE:"deleteFile",RESET_FILES:"resetFiles"},_={SINGLE_FILE_ONLY:"SINGLE_FILE_ONLY",TOO_MANY_FILES:"TOO_MANY_FILES",NEED_ACTIVE_MULTIPLE_OPTION:"NEED_ACTIVE_MULTIPLE_OPTION",INVALID_FILE_FORMAT:"INVALID_FILE_FORMAT"},D={[_.SINGLE_FILE_ONLY]:"한 개의 파일만 선택할 수 있어요",[_.TOO_MANY_FILES]:"너무 많은 파일이 선택되었어요",[_.NEED_ACTIVE_MULTIPLE_OPTION]:"다중 선택 옵션을 활성화 시켜주세요",[_.INVALID_FILE_FORMAT]:"지원하지 않는 형식의 파일이 있어요"},I=({url:e})=>Array.isArray(e)?e.forEach((e=>URL.revokeObjectURL(e))):URL.revokeObjectURL(e),A=({accept:e=c})=>e.join(","),T=()=>({execute:n((e=>o(e)),[])}),m={isDragActive:!1,isHover:!1,isActive:!1,acceptedFiles:[],rejectedFiles:void 0},O=(e,t)=>{switch(t.type){case L.DRAG:return{...e,isDragActive:t.isDragActive??e.isDragActive,isActive:t.isDragActive??e.isDragActive};case L.HOVER:return{...e,isHover:t.isHover??e.isHover,isActive:t.isHover??e.isHover};case L.SET_FILES:return{...e,acceptedFiles:t.acceptedFiles??e.acceptedFiles,rejectedFiles:void 0,isDragActive:!1,isHover:!1,isActive:!1};case L.SET_REJECT:return{...e,rejectedFiles:t.rejectedFiles??e.rejectedFiles,isDragActive:!1,isHover:!1,isActive:!1};case L.DELETE_FILE:return{...e,acceptedFiles:e.acceptedFiles.filter((e=>e.id!==t.id))};case L.RESET_FILES:return{...e,acceptedFiles:[]};default:return e}},R=t=>{const{multiple:r=!0,limit:s,disabled:l=!1,onDrop:o,onDropAccepted:E,onDropRejected:u,accept:v=c}=t,{state:F,dispatch:D}=(()=>{const[e,t]=a(O,m);return{state:e,dispatch:t}})(),{handleUpload:R,deleteFile:g,resetFiles:H}=(({uploadedFiles:e,state:t,dispatch:r,multiple:n=!0,limit:i,onDrop:a,onDropAccepted:s,onDropRejected:l,accept:o=c})=>{const p=e=>{const{name:t,size:r,type:n,lastModified:i,webkitRelativePath:a}=e;return{id:d(),name:t,size:r,type:n,lastModified:i,webkitRelativePath:a,blob:URL.createObjectURL(e),original:e}},E=({acceptedFiles:e,rejectCode:n})=>{const i={files:e,code:n};r({type:L.SET_REJECT,acceptedFiles:e,rejectedFiles:i}),l?.({rejectedFiles:i,state:t,dispatch:r}),a?.({acceptedFiles:[],rejectedFiles:i,state:t,dispatch:r})};return{handleUpload:({files:e})=>{const l=Array.from(e,p);if(!n&&l.length>1)return E({acceptedFiles:l,rejectCode:_.SINGLE_FILE_ONLY});if(void 0!==i){if(!n)return E({acceptedFiles:l,rejectCode:_.NEED_ACTIVE_MULTIPLE_OPTION});if(l.length>i)return E({acceptedFiles:l,rejectCode:_.TOO_MANY_FILES})}if(l.some((e=>["type","name"].every((t=>!o.some((r=>e[t].toLowerCase().includes(r))))))))return E({acceptedFiles:l,rejectCode:_.INVALID_FILE_FORMAT});r({type:L.SET_FILES,acceptedFiles:l}),s?.({acceptedFiles:l,state:t,dispatch:r}),a?.({acceptedFiles:l,state:t,dispatch:r})},deleteFile:({id:e})=>{r({type:L.DELETE_FILE,id:e})},resetFiles:()=>{I({url:e.map((e=>e.blob))}),r({type:L.RESET_FILES})}}})({uploadedFiles:F.acceptedFiles,state:F,dispatch:D,multiple:r,limit:s,onDrop:o,onDropAccepted:E,onDropRejected:u,accept:v}),{inputProps:b,inputRef:h}=(({multiple:t=!0,accept:r=c,disabled:a=!1,handleUpload:s})=>{const l=e(null),{execute:o}=T(),{compose:d}=f(),p=n((e=>{if(e.preventDefault(),!e.target||!e.target.files)return;const{files:t}=e.target;s({files:t})}),[s]);return{inputProps:i((()=>({onChange:e,...n}={})=>({multiple:t,type:"file",style:{display:"none"},tabIndex:-1,ref:l,onChange:o({disabled:a,fn:d({externalEventHandler:e,internalEventHandler:p})}),accept:A({accept:r}),disabled:a,...n})),[t,r,l,p,a,o,d]),inputRef:l}})({disabled:l,handleUpload:R,multiple:r,accept:v}),{rootProps:y}=(({inputRef:t,dispatch:r,disabled:a=!1,handleUpload:s})=>{const l=e(null),{execute:c}=T(),{compose:o}=f(),d=i((()=>e=>e.relatedTarget instanceof Node&&l.current&&l.current.contains(e.relatedTarget)),[l.current]),p=n((()=>r({type:L.HOVER,isHover:!0})),[r]),E=n((e=>{d(e)||r({type:L.HOVER,isHover:!1})}),[r,d]),u=n((e=>{e.preventDefault(),r({type:L.DRAG,isDragActive:!0})}),[r]),v=n((e=>{e.preventDefault(),d(e)||r({type:L.DRAG,isDragActive:!1})}),[r,d]),F=n((e=>e.preventDefault()),[]),_=n((e=>{if(e.preventDefault(),!e.dataTransfer||!e.dataTransfer.files)return;const{files:t}=e.dataTransfer;s({files:t})}),[s]),D=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:s,onMouseLeave:d,role:f,...L}={})=>({onDrop:c({disabled:a,fn:o({externalEventHandler:e,internalEventHandler:_})}),onClick:c({disabled:a,fn:o({externalEventHandler:t,internalEventHandler:D})}),onDragEnter:c({disabled:a,fn:o({externalEventHandler:r,internalEventHandler:u})}),onDragLeave:c({disabled:a,fn:o({externalEventHandler:n,internalEventHandler:v})}),onDragOver:c({disabled:a,fn:o({externalEventHandler:i,internalEventHandler:F})}),onMouseEnter:c({disabled:a,fn:o({externalEventHandler:s,internalEventHandler:p})}),onMouseLeave:c({disabled:a,fn:o({externalEventHandler:d,internalEventHandler:E})}),role:"string"==typeof f&&""!==f?f:"presentation",ref:l,...L})),[_,D,u,v,F,p,E,l,a,c,o])}})({inputRef:h,dispatch:D,disabled:l,handleUpload:R});return(({acceptedFiles:e})=>{p((()=>{I({url:e.map((e=>e.blob))})}))})({acceptedFiles:F.acceptedFiles}),{state:F,deleteFile:g,resetFiles:H,rootProps:y,inputProps:b,dispatch:D}},g=({initialValues:e,validate:t})=>{const[r,n]=s(e),[i,a]=s({});return{values:r,setValues:e=>{const i="function"==typeof e?e(r):e;if(n(i),t){const e=t(i);a(e)}},errors:i,handleChange:i=>{const{name:s,value:l}=i.target;if(s in e&&(n({...r,[s]:l}),t)){const e=t({...r,[s]:l});a(e)}},setErrors:a}};export{L as DROPZONE_ACTION_MAPPER,_ as DROPZONE_REJECT_CODE_MAPPER,D as DROPZONE_REJECT_MESSAGE,v as useClickOutSideEffect,F as useClickOutside,f as useComposeEventHandler,R as useDropzone,T as useExecuteFunction,p as useFirstRenderEffect,g as useForm,E as useIsomorphicLayoutEffect,u 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.15",
3
+ "version": "0.0.17",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "exports": {
@@ -13,23 +13,23 @@
13
13
  "dist"
14
14
  ],
15
15
  "scripts": {
16
- "dev": "next dev",
16
+ "dev": "rollup -c --watch & tsc -p tsconfig.build.json --watch & tsc-alias -p tsconfig.build.json --watch",
17
17
  "build": "rollup -c && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
18
18
  "start": "next start",
19
19
  "lint": "next lint"
20
20
  },
21
- "dependencies": {
22
- "@bbodek/utils": "^0.0.5",
23
- "next": "^15.3.1",
24
- "react": "^19.1.0",
25
- "react-dom": "^19.1.0"
26
- },
21
+ "dependencies": {},
27
22
  "peerDependencies": {
28
23
  "next": "^15.3.1",
29
24
  "react": "^19.1.0",
30
- "react-dom": "^19.1.0"
25
+ "react-dom": "^19.1.0",
26
+ "@bbodek/utils": "^0.0.6"
31
27
  },
32
28
  "devDependencies": {
29
+ "next": "^15.3.1",
30
+ "react": "^19.1.0",
31
+ "react-dom": "^19.1.0",
32
+ "@bbodek/utils": "^0.0.6",
33
33
  "@dotoli/eslint-config": "workspace:*",
34
34
  "@dotoli/typescript-config": "workspace:*",
35
35
  "@rollup/plugin-node-resolve": "^16.0.1",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/useClickOutSide/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/useClickOutSide/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B,CAAC,CAAC,SAAS,WAAW,CAC/D,SAAQ,oBAAoB;IAC5B,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;CAC1B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClickOutSide.d.ts","sourceRoot":"","sources":["../../src/useClickOutSide/useClickOutSide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,QAAA,MAAM,eAAe,GAAI,CAAC,SAAS,WAAW,EAAE,oCAG7C,oBAAoB;;CAUtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useClickOutSideEffect.d.ts","sourceRoot":"","sources":["../../src/useClickOutSide/useClickOutSideEffect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAErE,QAAA,MAAM,qBAAqB,GAAI,CAAC,SAAS,WAAW,EAAE,yCAInD,0BAA0B,CAAC,CAAC,CAAC,SAoB/B,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/useForm/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/useForm/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,KAAK,CAAC,CAAC;IACtB,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,aAAa,CAAC;CACzC;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC;IACV,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,CAAC,KAAK,EAAE,yBAAyB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;CACpD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../src/useForm/useForm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAiB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,QAAA,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,EAAE,8BAGhC,KAAK,CAAC,CAAC,CAAC,KAAG,iBAAiB,CAAC,CAAC,CA2ChC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/useIsomorphicLayoutEffect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect.d.ts","sourceRoot":"","sources":["../../src/useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,eAAe,EAAE,MAAM,OAAO,CAAC;AAEnD,QAAA,MAAM,yBAAyB,wBAC8B,CAAC;AAE9D,eAAe,yBAAyB,CAAC"}
File without changes