@os-design/use-closable 1.0.33 → 1.0.34

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","require","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","useClosable","visible","delay","_useState","useState","_useState2","mounted","setMounted","delayRef","useRef","useEffect","current","undefined","timeout","setTimeout","clearTimeout","_default","exports"],"sources":["../../src/index.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nconst useClosable = (visible: boolean, delay: number): boolean => {\n const [mounted, setMounted] = useState(visible);\n const delayRef = useRef(delay);\n\n useEffect(() => {\n delayRef.current = delay;\n }, [delay]);\n\n useEffect(() => {\n if (visible) {\n setMounted(true);\n return () => undefined;\n }\n const timeout = setTimeout(() => setMounted(false), delayRef.current);\n return () => clearTimeout(timeout);\n }, [visible]);\n\n return mounted;\n};\n\nexport default useClosable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_react","require","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","useClosable","visible","delay","_useState","useState","_useState2","mounted","setMounted","delayRef","useRef","useEffect","current","undefined","timeout","setTimeout","clearTimeout","_default","exports"],"sources":["../../src/index.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nconst useClosable = (visible: boolean, delay: number): boolean => {\n const [mounted, setMounted] = useState(visible);\n const delayRef = useRef(delay);\n\n useEffect(() => {\n delayRef.current = delay;\n }, [delay]);\n\n useEffect(() => {\n if (visible) {\n setMounted(true);\n return () => undefined;\n }\n const timeout = setTimeout(() => setMounted(false), delayRef.current);\n return () => clearTimeout(timeout);\n }, [visible]);\n\n return mounted;\n};\n\nexport default useClosable;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAoD,SAAAC,eAAAC,GAAA,EAAAC,CAAA,WAAAC,eAAA,CAAAF,GAAA,KAAAG,qBAAA,CAAAH,GAAA,EAAAC,CAAA,KAAAG,2BAAA,CAAAJ,GAAA,EAAAC,CAAA,KAAAI,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAG,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAC,IAAA,CAAAP,CAAA,EAAAQ,KAAA,aAAAL,CAAA,iBAAAH,CAAA,CAAAS,WAAA,EAAAN,CAAA,GAAAH,CAAA,CAAAS,WAAA,CAAAC,IAAA,MAAAP,CAAA,cAAAA,CAAA,mBAAAQ,KAAA,CAAAC,IAAA,CAAAZ,CAAA,OAAAG,CAAA,+DAAAU,IAAA,CAAAV,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAT,GAAA,EAAAqB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAArB,GAAA,CAAAsB,MAAA,EAAAD,GAAA,GAAArB,GAAA,CAAAsB,MAAA,WAAArB,CAAA,MAAAsB,IAAA,OAAAL,KAAA,CAAAG,GAAA,GAAApB,CAAA,GAAAoB,GAAA,EAAApB,CAAA,IAAAsB,IAAA,CAAAtB,CAAA,IAAAD,GAAA,CAAAC,CAAA,UAAAsB,IAAA;AAAA,SAAApB,sBAAAqB,CAAA,EAAAC,CAAA,QAAAC,CAAA,WAAAF,CAAA,gCAAAG,MAAA,IAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,4BAAAE,CAAA,QAAAG,CAAA,EAAAnB,CAAA,EAAAT,CAAA,EAAA6B,CAAA,EAAAC,CAAA,OAAAC,CAAA,OAAAzB,CAAA,iBAAAN,CAAA,IAAAyB,CAAA,GAAAA,CAAA,CAAAZ,IAAA,CAAAU,CAAA,GAAAS,IAAA,QAAAR,CAAA,QAAAd,MAAA,CAAAe,CAAA,MAAAA,CAAA,UAAAM,CAAA,uBAAAA,CAAA,IAAAH,CAAA,GAAA5B,CAAA,CAAAa,IAAA,CAAAY,CAAA,GAAAQ,IAAA,MAAAH,CAAA,CAAAI,IAAA,CAAAN,CAAA,CAAAO,KAAA,GAAAL,CAAA,CAAAT,MAAA,KAAAG,CAAA,GAAAO,CAAA,iBAAAR,CAAA,IAAAjB,CAAA,OAAAG,CAAA,GAAAc,CAAA,yBAAAQ,CAAA,YAAAN,CAAA,eAAAI,CAAA,GAAAJ,CAAA,cAAAf,MAAA,CAAAmB,CAAA,MAAAA,CAAA,2BAAAvB,CAAA,QAAAG,CAAA,aAAAqB,CAAA;AAAA,SAAA7B,gBAAAF,GAAA,QAAAkB,KAAA,CAAAmB,OAAA,CAAArC,GAAA,UAAAA,GAAA;AAEpD,IAAMsC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,OAAgB,EAAEC,KAAa,EAAc;EAChE,IAAAC,SAAA,GAA8B,IAAAC,eAAQ,EAACH,OAAO,CAAC;IAAAI,UAAA,GAAA5C,cAAA,CAAA0C,SAAA;IAAxCG,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAC1B,IAAMG,QAAQ,GAAG,IAAAC,aAAM,EAACP,KAAK,CAAC;EAE9B,IAAAQ,gBAAS,EAAC,YAAM;IACdF,QAAQ,CAACG,OAAO,GAAGT,KAAK;EAC1B,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,IAAAQ,gBAAS,EAAC,YAAM;IACd,IAAIT,OAAO,EAAE;MACXM,UAAU,CAAC,IAAI,CAAC;MAChB,OAAO;QAAA,OAAMK,SAAS;MAAA;IACxB;IACA,IAAMC,OAAO,GAAGC,UAAU,CAAC;MAAA,OAAMP,UAAU,CAAC,KAAK,CAAC;IAAA,GAAEC,QAAQ,CAACG,OAAO,CAAC;IACrE,OAAO;MAAA,OAAMI,YAAY,CAACF,OAAO,CAAC;IAAA;EACpC,CAAC,EAAE,CAACZ,OAAO,CAAC,CAAC;EAEb,OAAOK,OAAO;AAChB,CAAC;AAAC,IAAAU,QAAA,GAAAC,OAAA,cAEajB,WAAW","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useEffect","useRef","useState","useClosable","visible","delay","mounted","setMounted","delayRef","current","undefined","timeout","setTimeout","clearTimeout"],"sources":["../../src/index.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nconst useClosable = (visible: boolean, delay: number): boolean => {\n const [mounted, setMounted] = useState(visible);\n const delayRef = useRef(delay);\n\n useEffect(() => {\n delayRef.current = delay;\n }, [delay]);\n\n useEffect(() => {\n if (visible) {\n setMounted(true);\n return () => undefined;\n }\n const timeout = setTimeout(() => setMounted(false), delayRef.current);\n return () => clearTimeout(timeout);\n }, [visible]);\n\n return mounted;\n};\n\nexport default useClosable;\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEnD,MAAMC,WAAW,GAAGA,CAACC,OAAgB,EAAEC,KAAa,KAAc;EAChE,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGL,QAAQ,CAACE,OAAO,CAAC;EAC/C,MAAMI,QAAQ,GAAGP,MAAM,CAACI,KAAK,CAAC;EAE9BL,SAAS,CAAC,MAAM;IACdQ,QAAQ,CAACC,OAAO,GAAGJ,KAAK;EAC1B,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEXL,SAAS,CAAC,MAAM;IACd,IAAII,OAAO,EAAE;MACXG,UAAU,CAAC,IAAI,CAAC;MAChB,OAAO,MAAMG,SAAS;IACxB;IACA,MAAMC,OAAO,GAAGC,UAAU,CAAC,MAAML,UAAU,CAAC,KAAK,CAAC,EAAEC,QAAQ,CAACC,OAAO,CAAC;IACrE,OAAO,MAAMI,YAAY,CAACF,OAAO,CAAC;EACpC,CAAC,EAAE,CAACP,OAAO,CAAC,CAAC;EAEb,OAAOE,OAAO;AAChB,CAAC;AAED,eAAeH,WAAW"}
1
+ {"version":3,"file":"index.js","names":["useEffect","useRef","useState","useClosable","visible","delay","mounted","setMounted","delayRef","current","undefined","timeout","setTimeout","clearTimeout"],"sources":["../../src/index.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nconst useClosable = (visible: boolean, delay: number): boolean => {\n const [mounted, setMounted] = useState(visible);\n const delayRef = useRef(delay);\n\n useEffect(() => {\n delayRef.current = delay;\n }, [delay]);\n\n useEffect(() => {\n if (visible) {\n setMounted(true);\n return () => undefined;\n }\n const timeout = setTimeout(() => setMounted(false), delayRef.current);\n return () => clearTimeout(timeout);\n }, [visible]);\n\n return mounted;\n};\n\nexport default useClosable;\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEnD,MAAMC,WAAW,GAAGA,CAACC,OAAgB,EAAEC,KAAa,KAAc;EAChE,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGL,QAAQ,CAACE,OAAO,CAAC;EAC/C,MAAMI,QAAQ,GAAGP,MAAM,CAACI,KAAK,CAAC;EAE9BL,SAAS,CAAC,MAAM;IACdQ,QAAQ,CAACC,OAAO,GAAGJ,KAAK;EAC1B,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEXL,SAAS,CAAC,MAAM;IACd,IAAII,OAAO,EAAE;MACXG,UAAU,CAAC,IAAI,CAAC;MAChB,OAAO,MAAMG,SAAS;IACxB;IACA,MAAMC,OAAO,GAAGC,UAAU,CAAC,MAAML,UAAU,CAAC,KAAK,CAAC,EAAEC,QAAQ,CAACC,OAAO,CAAC;IACrE,OAAO,MAAMI,YAAY,CAACF,OAAO,CAAC;EACpC,CAAC,EAAE,CAACP,OAAO,CAAC,CAAC;EAEb,OAAOE,OAAO;AAChB,CAAC;AAED,eAAeH,WAAW","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@os-design/use-closable",
3
- "version": "1.0.33",
3
+ "version": "1.0.34",
4
4
  "license": "UNLICENSED",
5
5
  "repository": "git@gitlab.com:os-team/libs/os-design.git",
6
6
  "main": "dist/cjs/index.js",
@@ -30,11 +30,11 @@
30
30
  "access": "public"
31
31
  },
32
32
  "devDependencies": {
33
- "@os-design/omit-emotion-props": "^1.0.18",
34
- "@os-design/styles": "^1.0.54"
33
+ "@os-design/omit-emotion-props": "^1.0.19",
34
+ "@os-design/styles": "^1.0.55"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "react": ">=18"
38
38
  },
39
- "gitHead": "01c24b2665ad10a4b4976a6c0b4982e534e7727a"
39
+ "gitHead": "1f17189e344a56fd6347dd6b896d6e7ef6e7b35d"
40
40
  }
package/src/index.mdx ADDED
@@ -0,0 +1,69 @@
1
+ import { Meta } from '@storybook/blocks';
2
+ import UseClosableExample from './index.example';
3
+
4
+ <Meta title='Utils/useClosable' />
5
+
6
+ # useClosable
7
+
8
+ Sets the closed state to true after a delay to apply the fade out animation.
9
+
10
+ ## Example of usage
11
+
12
+ ```tsx
13
+ import React, { useState } from 'react';
14
+ import styled from '@emotion/styled';
15
+ import { Switch } from '@os-design/core';
16
+ import { css, keyframes } from '@emotion/react';
17
+ import { omitEmotionProps } from '@os-design/styles';
18
+ import { useClosable } from '@os-design/utils';
19
+
20
+ const fadeIn = keyframes`
21
+ from { opacity: 0; }
22
+ to { opacity: 1; }
23
+ `;
24
+
25
+ const fadeOut = keyframes`
26
+ from { opacity: 1; }
27
+ to { opacity: 0; }
28
+ `;
29
+
30
+ const visibleStyles = (p) =>
31
+ p.visible &&
32
+ css`
33
+ animation: ${fadeIn} 1s forwards;
34
+ `;
35
+
36
+ const invisibleStyles = (p) =>
37
+ !p.visible &&
38
+ css`
39
+ animation: ${fadeOut} 1s forwards;
40
+ `;
41
+
42
+ interface ContainerProps {
43
+ visible: boolean;
44
+ }
45
+ const Container = styled('div', omitEmotionProps('visible'))<ContainerProps>`
46
+ background-color: hsl(0, 50%, 50%);
47
+ width: 10em;
48
+ height: 10em;
49
+ ${visibleStyles};
50
+ ${invisibleStyles};
51
+ `;
52
+
53
+ const UseClosableExample: React.FC = () => {
54
+ const [visible, setVisible] = useState(false);
55
+ const mounted = useClosable(visible, 1000);
56
+
57
+ return (
58
+ <>
59
+ <Switch value={visible} onChange={setVisible} />
60
+ <p>Container is {mounted ? 'mounted' : 'unmounted'}.</p>
61
+ {!mounted && <Container visible={visible} />}
62
+ </>
63
+ );
64
+ };
65
+
66
+ export default UseClosableExample;
67
+ ```
68
+
69
+ <UseClosableExample />