@artsy/palette 19.0.1 → 19.0.2
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/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# v19.0.2 (Tue Feb 22 2022)
|
|
2
|
+
|
|
3
|
+
#### 🐛 Bug Fix
|
|
4
|
+
|
|
5
|
+
- fix(useclickoutside): wait for stack to clear before adding event [#1135](https://github.com/artsy/palette/pull/1135) ([@dzucconi](https://github.com/dzucconi))
|
|
6
|
+
- fix(useclickoutside): wait for stack to clear before adding event ([@dzucconi](https://github.com/dzucconi))
|
|
7
|
+
|
|
8
|
+
#### Authors: 1
|
|
9
|
+
|
|
10
|
+
- Damon ([@dzucconi](https://github.com/dzucconi))
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
1
14
|
# v19.0.1 (Tue Feb 22 2022)
|
|
2
15
|
|
|
3
16
|
#### 🐛 Bug Fix
|
|
@@ -81,15 +81,12 @@ var Popover = function Popover(_ref) {
|
|
|
81
81
|
if (!anchorRef.current) return;
|
|
82
82
|
anchorRef.current.focus();
|
|
83
83
|
}, [visible]);
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return setVisible(false);
|
|
91
|
-
};
|
|
92
|
-
|
|
84
|
+
var onVisible = (0, _react.useCallback)(function () {
|
|
85
|
+
setVisible(true);
|
|
86
|
+
}, []);
|
|
87
|
+
var onHide = (0, _react.useCallback)(function () {
|
|
88
|
+
setVisible(false);
|
|
89
|
+
}, []);
|
|
93
90
|
(0, _react.useEffect)(function () {
|
|
94
91
|
var handleKeydown = function handleKeydown(event) {
|
|
95
92
|
if (event.key === "Escape") {
|
|
@@ -101,7 +98,7 @@ var Popover = function Popover(_ref) {
|
|
|
101
98
|
return function () {
|
|
102
99
|
document.removeEventListener("keydown", handleKeydown);
|
|
103
100
|
};
|
|
104
|
-
}, []);
|
|
101
|
+
}, [onHide]);
|
|
105
102
|
|
|
106
103
|
var _usePosition = (0, _utils.usePosition)({
|
|
107
104
|
position: placement,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Popover/Popover.tsx"],"names":["Popover","title","placement","visible","_visible","children","popover","setVisible","tooltipRef","current","focus","anchorRef","onVisible","onHide","handleKeydown","event","key","document","addEventListener","removeEventListener","position","offset","active","ref","onClickOutside","when","type","Tip","Box","DROP_SHADOW"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;AAoBA;AACA;AACA;AACA;AACO,IAAMA,OAA+B,GAAG,SAAlCA,OAAkC,OAMzC;AAAA,MALJC,KAKI,QALJA,KAKI;AAAA,4BAJJC,SAII;AAAA,MAJJA,SAII,+BAJQ,KAIR;AAAA,0BAHJC,OAGI;AAAA,MAHKC,QAGL,6BAHgB,KAGhB;AAAA,MAFJC,QAEI,QAFJA,QAEI;AAAA,MADJC,OACI,QADJA,OACI;;AACJ,kBAA8B,qBAAS,KAAT,CAA9B;AAAA;AAAA,MAAOH,OAAP;AAAA,MAAgBI,UAAhB,iBADI,CAGJ;;;AACA,wBAAU,YAAM;AACdA,IAAAA,UAAU,CAACH,QAAD,CAAV;AACD,GAFD,EAEG,CAACA,QAAD,CAFH,EAJI,CAQJ;;AACA,wCAAgB,YAAM;AACpB,QAAID,OAAO,IAAIK,UAAU,CAACC,OAA1B,EAAmC;AACjCD,MAAAA,UAAU,CAACC,OAAX,CAAmBC,KAAnB;AACA;AACD;;AAED,QAAI,CAACC,SAAS,CAACF,OAAf,EAAwB;AACxBE,IAAAA,SAAS,CAACF,OAAV,CAAkBC,KAAlB;AACD,GARD,EAQG,CAACP,OAAD,CARH
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Popover/Popover.tsx"],"names":["Popover","title","placement","visible","_visible","children","popover","setVisible","tooltipRef","current","focus","anchorRef","onVisible","onHide","handleKeydown","event","key","document","addEventListener","removeEventListener","position","offset","active","ref","onClickOutside","when","type","Tip","Box","DROP_SHADOW"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\"\nimport styled from \"styled-components\"\nimport { DROP_SHADOW } from \"../../helpers\"\nimport { isText } from \"../../helpers/isText\"\nimport { CloseIcon } from \"../../svgs\"\nimport { Position, useClickOutside, usePosition } from \"../../utils\"\nimport { useUpdateEffect } from \"../../utils/useUpdateEffect\"\nimport { Box } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { Flex } from \"../Flex\"\nimport { Spacer } from \"../Spacer\"\nimport { Text } from \"../Text\"\n\nexport interface PopoverActions {\n /** Call to show popover */\n onVisible(): void\n /** Call to hide popover */\n onHide(): void\n /** Pass ref to element you want the popover to be anchored to */\n anchorRef: React.MutableRefObject<HTMLElement>\n}\n\nexport interface PopoverProps {\n title?: React.ReactNode\n placement?: Position\n /** Intially visible by default? */\n visible?: boolean\n popover: React.ReactNode\n children: ({ anchorRef, onVisible, onHide }: PopoverActions) => JSX.Element\n}\n\n/**\n * A `Popover` is a small modal-type element which is anchored, and can be\n * positioned relative to, another element.\n */\nexport const Popover: React.FC<PopoverProps> = ({\n title,\n placement = \"top\",\n visible: _visible = false,\n children,\n popover,\n}) => {\n const [visible, setVisible] = useState(false)\n\n // If prop updates/set initial visibility.\n useEffect(() => {\n setVisible(_visible)\n }, [_visible])\n\n // Yields focus back and forth between popover and anchor\n useUpdateEffect(() => {\n if (visible && tooltipRef.current) {\n tooltipRef.current.focus()\n return\n }\n\n if (!anchorRef.current) return\n anchorRef.current.focus()\n }, [visible])\n\n const onVisible = useCallback(() => {\n setVisible(true)\n }, [])\n\n const onHide = useCallback(() => {\n setVisible(false)\n }, [])\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onHide()\n }\n }\n\n document.addEventListener(\"keydown\", handleKeydown)\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown)\n }\n }, [onHide])\n\n const { anchorRef, tooltipRef } = usePosition({\n position: placement,\n offset: 10,\n active: visible,\n })\n\n useClickOutside({\n ref: tooltipRef,\n onClickOutside: onHide,\n when: visible,\n type: \"click\",\n })\n\n return (\n <>\n {children({ anchorRef: anchorRef as any, onVisible, onHide })}\n\n {visible && (\n <Tip\n tabIndex={0}\n ref={tooltipRef as any}\n zIndex={1}\n display=\"inline-block\"\n bg=\"white100\"\n p={2}\n >\n {title && (\n <>\n <Flex alignItems=\"center\" flex={1} justifyContent=\"space-between\">\n {isText(title) ? (\n <Text variant=\"lg\" lineHeight={1}>\n {title}\n </Text>\n ) : (\n title\n )}\n\n <Spacer ml={4} />\n </Flex>\n\n <Spacer mt={0.5} />\n </>\n )}\n\n <Clickable\n position=\"absolute\"\n right={0}\n top={0}\n pt={2}\n px={1}\n mx={0.5}\n onClick={onHide}\n aria-label=\"Close\"\n >\n <CloseIcon fill=\"black100\" display=\"block\" />\n </Clickable>\n\n {!title && <Spacer mt={2} />}\n\n {popover}\n </Tip>\n )}\n </>\n )\n}\n\nconst Tip = styled(Box)`\n position: fixed;\n z-index: 1;\n text-align: left;\n transition: opacity 250ms ease-out;\n box-shadow: ${DROP_SHADOW};\n`\n"],"file":"Popover.js"}
|
|
@@ -19,24 +19,25 @@ var useClickOutside = function useClickOutside(_ref) {
|
|
|
19
19
|
when = _ref$when === void 0 ? true : _ref$when,
|
|
20
20
|
onClickOutside = _ref.onClickOutside;
|
|
21
21
|
var savedHandler = (0, _react.useRef)(onClickOutside);
|
|
22
|
-
var handleClick = (0, _react.useCallback)(function (e) {
|
|
23
|
-
if (ref && ref.current && !ref.current.contains(e.target)) {
|
|
24
|
-
savedHandler.current(e);
|
|
25
|
-
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
26
|
-
|
|
27
|
-
}, []);
|
|
28
22
|
(0, _react.useEffect)(function () {
|
|
29
23
|
savedHandler.current = onClickOutside;
|
|
30
24
|
}, [onClickOutside]);
|
|
31
25
|
(0, _react.useEffect)(function () {
|
|
26
|
+
var handleClick = function handleClick(event) {
|
|
27
|
+
if (ref.current && !ref.current.contains(event.target)) {
|
|
28
|
+
savedHandler.current(event);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
32
|
if (when) {
|
|
33
|
-
|
|
33
|
+
setTimeout(function () {
|
|
34
|
+
document.addEventListener(type, handleClick);
|
|
35
|
+
}, 0);
|
|
34
36
|
return function () {
|
|
35
37
|
document.removeEventListener(type, handleClick);
|
|
36
38
|
};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
}, [when]);
|
|
39
|
+
}
|
|
40
|
+
}, [ref, type, when]);
|
|
40
41
|
};
|
|
41
42
|
|
|
42
43
|
exports.useClickOutside = useClickOutside;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/useClickOutside.ts"],"names":["useClickOutside","ref","type","when","onClickOutside","savedHandler","
|
|
1
|
+
{"version":3,"sources":["../../src/utils/useClickOutside.ts"],"names":["useClickOutside","ref","type","when","onClickOutside","savedHandler","current","handleClick","event","contains","target","setTimeout","document","addEventListener","removeEventListener"],"mappings":";;;;;;;AAAA;;AASA;AACA;AACA;AACA;AACO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,OAKR;AAAA,MAJrBC,GAIqB,QAJrBA,GAIqB;AAAA,uBAHrBC,IAGqB;AAAA,MAHrBA,IAGqB,0BAHd,OAGc;AAAA,uBAFrBC,IAEqB;AAAA,MAFrBA,IAEqB,0BAFd,IAEc;AAAA,MADrBC,cACqB,QADrBA,cACqB;AACrB,MAAMC,YAAY,GAAG,mBAAOD,cAAP,CAArB;AAEA,wBAAU,YAAM;AACdC,IAAAA,YAAY,CAACC,OAAb,GAAuBF,cAAvB;AACD,GAFD,EAEG,CAACA,cAAD,CAFH;AAIA,wBAAU,YAAM;AACd,QAAMG,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAkB;AACpC,UAAIP,GAAG,CAACK,OAAJ,IAAe,CAACL,GAAG,CAACK,OAAJ,CAAYG,QAAZ,CAAqBD,KAAK,CAACE,MAA3B,CAApB,EAAmE;AACjEL,QAAAA,YAAY,CAACC,OAAb,CAAqBE,KAArB;AACD;AACF,KAJD;;AAMA,QAAIL,IAAJ,EAAU;AACRQ,MAAAA,UAAU,CAAC,YAAM;AACfC,QAAAA,QAAQ,CAACC,gBAAT,CAA0BX,IAA1B,EAAgCK,WAAhC;AACD,OAFS,EAEP,CAFO,CAAV;AAIA,aAAO,YAAM;AACXK,QAAAA,QAAQ,CAACE,mBAAT,CAA6BZ,IAA7B,EAAmCK,WAAnC;AACD,OAFD;AAGD;AACF,GAhBD,EAgBG,CAACN,GAAD,EAAMC,IAAN,EAAYC,IAAZ,CAhBH;AAiBD,CA7BM","sourcesContent":["import { useEffect, useRef } from \"react\"\n\nexport interface UseClickOutside {\n ref: React.RefObject<HTMLElement>\n when: boolean\n type?: keyof DocumentEventMap\n onClickOutside: (event: Event) => void\n}\n\n/**\n * Use click outside is a hook that will listen for clicks outside of a ref,\n * and when true, execute a callback.\n */\nexport const useClickOutside = ({\n ref,\n type = \"click\",\n when = true,\n onClickOutside,\n}: UseClickOutside) => {\n const savedHandler = useRef(onClickOutside)\n\n useEffect(() => {\n savedHandler.current = onClickOutside\n }, [onClickOutside])\n\n useEffect(() => {\n const handleClick = (event: Event) => {\n if (ref.current && !ref.current.contains(event.target as Element)) {\n savedHandler.current(event)\n }\n }\n\n if (when) {\n setTimeout(() => {\n document.addEventListener(type, handleClick)\n }, 0)\n\n return () => {\n document.removeEventListener(type, handleClick)\n }\n }\n }, [ref, type, when])\n}\n"],"file":"useClickOutside.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artsy/palette",
|
|
3
|
-
"version": "19.0.
|
|
3
|
+
"version": "19.0.2",
|
|
4
4
|
"description": "Design system library for react components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -178,5 +178,5 @@
|
|
|
178
178
|
"<rootDir>/www/"
|
|
179
179
|
]
|
|
180
180
|
},
|
|
181
|
-
"gitHead": "
|
|
181
|
+
"gitHead": "6dedb2e28b57add22bc991aedf18fec317424eaa"
|
|
182
182
|
}
|