bright-components 10.2.6 → 10.2.7

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.
@@ -19,6 +19,8 @@ var _vars = _interopRequireDefault(require("../../constants/vars"));
19
19
 
20
20
  var _colors = _interopRequireDefault(require("../../constants/colors"));
21
21
 
22
+ var _reactAutobind = _interopRequireDefault(require("react-autobind"));
23
+
22
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
25
 
24
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -77,6 +79,14 @@ ModalContainer.displayName = 'ModalContainer';
77
79
  Background.displayName = 'Background';
78
80
 
79
81
  class Modal extends _react.default.Component {
82
+ constructor(props) {
83
+ super(props);
84
+ this.state = {
85
+ createdElement: null
86
+ };
87
+ (0, _reactAutobind.default)(this);
88
+ }
89
+
80
90
  componentDidMount() {
81
91
  /* istanbul ignore next */
82
92
  if (this.props.version === '1') {
@@ -85,10 +95,18 @@ class Modal extends _react.default.Component {
85
95
  }
86
96
 
87
97
  document.body.style.overflow = 'hidden';
98
+ const randomId = Math.random().toString();
99
+ const wrapperElement = document.createElement('div');
100
+ wrapperElement.setAttribute('id', `modal${randomId}`);
101
+ document.body.appendChild(wrapperElement);
102
+ this.setState({
103
+ createdElement: wrapperElement
104
+ });
88
105
  }
89
106
 
90
107
  componentWillUnmount() {
91
108
  document.body.style.overflow = 'auto';
109
+ this.state.createdElement.parentNode.removeChild(this.state.createdElement);
92
110
  }
93
111
 
94
112
  render() {
@@ -111,6 +129,10 @@ class Modal extends _react.default.Component {
111
129
  }
112
130
  };
113
131
 
132
+ if (!this.state.createdElement) {
133
+ return null;
134
+ }
135
+
114
136
  return (0, _reactDom.createPortal)(_react.default.createElement(Background, _extends({
115
137
  onClick: dismiss,
116
138
  version: version
@@ -132,7 +154,7 @@ class Modal extends _react.default.Component {
132
154
  return _react.default.cloneElement(child, {
133
155
  close
134
156
  });
135
- }))), document.body);
157
+ }))), this.state.createdElement);
136
158
  }
137
159
 
138
160
  }
@@ -124,6 +124,9 @@ const delays = {
124
124
  class Snackbar extends _react.default.Component {
125
125
  constructor(props) {
126
126
  super(props);
127
+ this.state = {
128
+ createdElement: null
129
+ };
127
130
  (0, _reactAutobind.default)(this);
128
131
  this.timer = null;
129
132
  }
@@ -132,6 +135,14 @@ class Snackbar extends _react.default.Component {
132
135
  if (this.props.visible) {
133
136
  this.hideAfterDelay();
134
137
  }
138
+
139
+ const randomId = Math.random().toString();
140
+ const wrapperElement = document.createElement('div');
141
+ wrapperElement.setAttribute('id', `modal${randomId}`);
142
+ document.body.appendChild(wrapperElement);
143
+ this.setState({
144
+ createdElement: wrapperElement
145
+ });
135
146
  }
136
147
 
137
148
  componentDidUpdate(prevProps) {
@@ -141,6 +152,7 @@ class Snackbar extends _react.default.Component {
141
152
  }
142
153
 
143
154
  componentWillUnmount() {
155
+ this.state.createdElement.parentNode.removeChild(this.state.createdElement);
144
156
  window.clearTimeout(this.timer);
145
157
  }
146
158
 
@@ -172,6 +184,10 @@ class Snackbar extends _react.default.Component {
172
184
  } = _this$props,
173
185
  rest = _objectWithoutProperties(_this$props, ["visible", "children", "onClose", "hideClose", "action", "onAction", "displayTime", "type"]);
174
186
 
187
+ if (!this.state.createdElement) {
188
+ return null;
189
+ }
190
+
175
191
  return (0, _reactDom.createPortal)(_react.default.createElement(SlideUpLeft, _extends({
176
192
  visible: visible
177
193
  }, rest), _react.default.createElement(SnackWrapper, {
@@ -188,7 +204,7 @@ class Snackbar extends _react.default.Component {
188
204
  }, action), displayTime === 'persistent' && _react.default.createElement(ToastOutlineButton, {
189
205
  type: type,
190
206
  onClick: onClose
191
- }, "Dismiss")))))), document.body);
207
+ }, "Dismiss")))))), this.state.createdElement);
192
208
  }
193
209
 
194
210
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bright-components",
3
- "version": "10.2.6",
3
+ "version": "10.2.7",
4
4
  "private": false,
5
5
  "main": "./dist",
6
6
  "repository": {
@@ -6,6 +6,7 @@ import get from 'lodash.get';
6
6
  import spacing from 'constants/spacing';
7
7
  import vars from 'constants/vars';
8
8
  import colors from 'constants/colors';
9
+ import autobind from 'react-autobind';
9
10
 
10
11
  const MODAL_WIDTHS = vars.modalWidths;
11
12
 
@@ -59,6 +60,12 @@ ModalContainer.displayName = 'ModalContainer';
59
60
  Background.displayName = 'Background';
60
61
 
61
62
  class Modal extends React.Component {
63
+ constructor(props) {
64
+ super(props);
65
+ this.state = { createdElement: null };
66
+ autobind(this);
67
+ }
68
+
62
69
  componentDidMount() {
63
70
  /* istanbul ignore next */
64
71
  if (this.props.version === '1') {
@@ -67,10 +74,20 @@ class Modal extends React.Component {
67
74
  }
68
75
 
69
76
  document.body.style.overflow = 'hidden';
77
+
78
+ const randomId = Math.random().toString();
79
+ const wrapperElement = document.createElement('div');
80
+ wrapperElement.setAttribute('id', `modal${randomId}`);
81
+ document.body.appendChild(wrapperElement);
82
+ this.setState({ createdElement: wrapperElement });
70
83
  }
71
84
 
72
85
  componentWillUnmount() {
73
86
  document.body.style.overflow = 'auto';
87
+
88
+ this.state.createdElement.parentNode.removeChild(
89
+ this.state.createdElement
90
+ );
74
91
  }
75
92
 
76
93
  render() {
@@ -91,6 +108,10 @@ class Modal extends React.Component {
91
108
  }
92
109
  };
93
110
 
111
+ if (!this.state.createdElement) {
112
+ return null;
113
+ }
114
+
94
115
  return createPortal(
95
116
  <Background
96
117
  onClick={dismiss}
@@ -117,7 +138,7 @@ class Modal extends React.Component {
117
138
  })}
118
139
  </ModalContainer>
119
140
  </Background>,
120
- document.body
141
+ this.state.createdElement
121
142
  );
122
143
  }
123
144
  }
@@ -114,6 +114,7 @@ const delays = {
114
114
  class Snackbar extends React.Component {
115
115
  constructor(props) {
116
116
  super(props);
117
+ this.state = { createdElement: null };
117
118
  autobind(this);
118
119
 
119
120
  this.timer = null;
@@ -123,6 +124,12 @@ class Snackbar extends React.Component {
123
124
  if (this.props.visible) {
124
125
  this.hideAfterDelay();
125
126
  }
127
+
128
+ const randomId = Math.random().toString();
129
+ const wrapperElement = document.createElement('div');
130
+ wrapperElement.setAttribute('id', `modal${randomId}`);
131
+ document.body.appendChild(wrapperElement);
132
+ this.setState({ createdElement: wrapperElement });
126
133
  }
127
134
 
128
135
  componentDidUpdate(prevProps) {
@@ -132,6 +139,10 @@ class Snackbar extends React.Component {
132
139
  }
133
140
 
134
141
  componentWillUnmount() {
142
+ this.state.createdElement.parentNode.removeChild(
143
+ this.state.createdElement
144
+ );
145
+
135
146
  window.clearTimeout(this.timer);
136
147
  }
137
148
 
@@ -159,6 +170,10 @@ class Snackbar extends React.Component {
159
170
  ...rest
160
171
  } = this.props;
161
172
 
173
+ if (!this.state.createdElement) {
174
+ return null;
175
+ }
176
+
162
177
  return createPortal(
163
178
  <SlideUpLeft visible={visible} {...rest}>
164
179
  <SnackWrapper type={type} data-testid="snackwrapper">
@@ -190,7 +205,7 @@ class Snackbar extends React.Component {
190
205
  </ContentWrapper>
191
206
  </SnackWrapper>
192
207
  </SlideUpLeft>,
193
- document.body
208
+ this.state.createdElement
194
209
  );
195
210
  }
196
211
  }