Skip to content

Commit 436f48c

Browse files
committed
0.7.0
1 parent deddc9a commit 436f48c

13 files changed

+34
-121
lines changed

docs/878.f8b1124d74b378686746.manager.bundle.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/878.f8b1124d74b378686746.manager.bundle.js.LICENSE.txt

Lines changed: 0 additions & 97 deletions
This file was deleted.

docs/iframe.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,4 +361,4 @@
361361

362362

363363

364-
window['STORIES'] = [{"titlePrefix":"","directory":"./src","files":"**/*.story.tsx","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.story\\.tsx)$"}];</script><script src="runtime~main.18d1c39a.iframe.bundle.js"></script><script src="4.683ff1ef.iframe.bundle.js"></script><script src="main.dbc16293.iframe.bundle.js"></script></body></html>
364+
window['STORIES'] = [{"titlePrefix":"","directory":"./src","files":"**/*.story.tsx","importPathMatcher":"^\\.[\\\\/](?:src(?:\\/(?!\\.)(?:(?:(?!(?:^|\\/)\\.).)*?)\\/|\\/|$)(?!\\.)(?=.)[^/]*?\\.story\\.tsx)$"}];</script><script src="runtime~main.18d1c39a.iframe.bundle.js"></script><script src="4.683ff1ef.iframe.bundle.js"></script><script src="main.5f3505d3.iframe.bundle.js"></script></body></html>

docs/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,4 @@
5656

5757

5858

59-
window['DOCS_MODE'] = false;</script><script src="runtime~main.a2e7216eeb43d1d39bb6.manager.bundle.js"></script><script src="878.f8b1124d74b378686746.manager.bundle.js"></script><script src="main.19fc47386682c587a928.manager.bundle.js"></script></body></html>
59+
window['DOCS_MODE'] = false;</script><script src="runtime~main.a2e7216eeb43d1d39bb6.manager.bundle.js"></script><script src="314.1580f25bbfad0ec5ab41.manager.bundle.js"></script><script src="main.609c61f43a727ced808b.manager.bundle.js"></script></body></html>

docs/main.19fc47386682c587a928.manager.bundle.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/main.dbc16293.iframe.bundle.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/project.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"generatedAt":1670329174351,"builder":{"name":"webpack5"},"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"packageManager":{"type":"npm","version":"8.19.2"},"storybookVersion":"6.5.14","language":"typescript","storybookPackages":{"@storybook/builder-webpack5":{"version":"6.5.14"},"@storybook/manager-webpack5":{"version":"6.5.14"},"@storybook/react":{"version":"6.5.14"}},"framework":{"name":"react"},"addons":{"@storybook/addon-essentials":{"version":"6.5.14"},"@storybook/addon-storysource":{"options":{"rule":{"test":{},"include":["/Users/mvolke/Documents/work/codastic/react-positioning-portal/src"]},"loaderOptions":{"parser":"typescript"}},"version":"6.5.14"}}}
1+
{"generatedAt":1688568205173,"builder":{"name":"webpack5"},"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"packageManager":{"type":"npm","version":"8.19.3"},"storybookVersion":"6.5.14","language":"typescript","storybookPackages":{"@storybook/builder-webpack5":{"version":"6.5.14"},"@storybook/manager-webpack5":{"version":"6.5.14"},"@storybook/react":{"version":"6.5.14"}},"framework":{"name":"react"},"addons":{"@storybook/addon-essentials":{"version":"6.5.14"},"@storybook/addon-storysource":{"options":{"rule":{"test":{},"include":["/Users/mvolke/Documents/work/codastic/react-positioning-portal/src"]},"loaderOptions":{"parser":"typescript"}},"version":"6.5.14"}}}

lib/components/PositioningPortal.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export interface Props<Strategy> {
66
onOpen?: () => void;
77
onClose?: () => void;
88
onShouldClose?: () => void;
9+
closeOnScroll?: boolean;
910
closeOnOutsideClick?: boolean;
1011
closeOnKeyDown?: (event: KeyboardEvent) => boolean;
1112
isOpen?: boolean;
@@ -49,6 +50,7 @@ interface State<Strategy> {
4950
declare class PositioningPortal<Strategy = Position> extends React.Component<Props<Strategy>, State<Strategy>> {
5051
static defaultProps: {
5152
isOpen: boolean;
53+
closeOnScroll: boolean;
5254
onOpen: () => void;
5355
onClose: () => void;
5456
onShouldClose: () => void;

lib/index.js

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,12 @@ var PositioningPortal = /** @class */ (function (_super) {
234234
var parentRect = parentDom.getBoundingClientRect();
235235
var scrollParents = [];
236236
// Register scroll listener on all scrollable parents to close the portal on scroll
237-
scrollParents = getScrollParents(parentDom);
238-
scrollParents.forEach(function (node) {
239-
return node.addEventListener('scroll', _this.close, false);
240-
});
237+
if (_this.props.closeOnScroll) {
238+
scrollParents = getScrollParents(parentDom);
239+
scrollParents.forEach(function (node) {
240+
return node.addEventListener('scroll', _this.close, false);
241+
});
242+
}
241243
_this.setState({
242244
isOpen: true,
243245
transitionActive: false,
@@ -302,9 +304,11 @@ var PositioningPortal = /** @class */ (function (_super) {
302304
window.document.removeEventListener('keydown', this.handleKeydown, false);
303305
window.document.removeEventListener('click', this.handleOutsideMouseClick, false);
304306
// Remove scroll event listeners
305-
this.state.scrollParents.forEach(function (node) {
306-
return node.removeEventListener('scroll', _this.close, false);
307-
});
307+
if (this.props.closeOnScroll) {
308+
this.state.scrollParents.forEach(function (node) {
309+
return node.removeEventListener('scroll', _this.close, false);
310+
});
311+
}
308312
};
309313
PositioningPortal.prototype.render = function () {
310314
var _this = this;
@@ -342,6 +346,7 @@ var PositioningPortal = /** @class */ (function (_super) {
342346
};
343347
PositioningPortal.defaultProps = {
344348
isOpen: false,
349+
closeOnScroll: true,
345350
onOpen: noop,
346351
onClose: noop,
347352
onShouldClose: noop,

lib/legacy/index.js/components/PositioningPortal.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export interface Props<Strategy> {
66
onOpen?: () => void;
77
onClose?: () => void;
88
onShouldClose?: () => void;
9+
closeOnScroll?: boolean;
910
closeOnOutsideClick?: boolean;
1011
closeOnKeyDown?: (event: KeyboardEvent) => boolean;
1112
isOpen?: boolean;
@@ -49,6 +50,7 @@ interface State<Strategy> {
4950
declare class PositioningPortal<Strategy = Position> extends React.Component<Props<Strategy>, State<Strategy>> {
5051
static defaultProps: {
5152
isOpen: boolean;
53+
closeOnScroll: boolean;
5254
onOpen: () => void;
5355
onClose: () => void;
5456
onShouldClose: () => void;

0 commit comments

Comments
 (0)