@os-design/use-closable 1.0.33 → 1.0.35
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/cjs/index.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +4 -4
- package/src/index.mdx +69 -0
package/dist/cjs/index.js.map
CHANGED
|
@@ -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":"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","ignoreList":[]}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -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.
|
|
3
|
+
"version": "1.0.35",
|
|
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.
|
|
34
|
-
"@os-design/styles": "^1.0.
|
|
33
|
+
"@os-design/omit-emotion-props": "^1.0.19",
|
|
34
|
+
"@os-design/styles": "^1.0.56"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"react": ">=18"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "f9cb806c601f5118bb20331f1b785816c56d3af8"
|
|
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 />
|