@stokr/components-library 2.3.65-beta.20 → 2.3.65-beta.22

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.
@@ -86,7 +86,7 @@ const LoginWithOTP = _ref => {
86
86
  message: undefined
87
87
  });
88
88
  };
89
- const backgroundProp = "url(".concat(_background.default, ") left center no-repeat");
89
+ const backgroundProp = "url(".concat(_background.default, ") left top no-repeat");
90
90
  return /*#__PURE__*/_react.default.createElement(_Layout.Layout, {
91
91
  noHeader: true,
92
92
  noFooter: true
@@ -17,7 +17,7 @@ var _colors = _interopRequireDefault(require("../../styles/colors"));
17
17
  var _InfoIcon = _interopRequireDefault(require("../InfoIcon/InfoIcon"));
18
18
  var _Modal = require("../Modal/Modal");
19
19
  var _Sucess2FA = _interopRequireDefault(require("./Sucess2FA"));
20
- const _excluded = ["onRequiresRecentLoginError", "open2faflow", "onLoginAgainClick", "openDisable2faflow", "title", "subtitle", "showSwitch", "customComponent"];
20
+ const _excluded = ["onRequiresRecentLoginError", "open2faflow", "onLoginAgainClick", "openDisable2faflow", "title", "subtitle", "showSwitch", "customComponent", "onFlowClose"];
21
21
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
22
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
23
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -36,7 +36,8 @@ const Main2FAFlow = _ref => {
36
36
  title = 'SET UP YOUR LOG IN TWO FACTOR AUTHENTICATION',
37
37
  subtitle = 'Protect your account with an additional layer of security to log in',
38
38
  showSwitch = true,
39
- customComponent
39
+ customComponent,
40
+ onFlowClose
40
41
  } = _ref,
41
42
  props = _objectWithoutProperties(_ref, _excluded);
42
43
  const {
@@ -79,6 +80,9 @@ const Main2FAFlow = _ref => {
79
80
  } catch (error) {
80
81
  if (error.code === 'auth/requires-recent-login' || error.code === 'auth/unsupported-first-factor') {
81
82
  setisLoginRequired(true);
83
+ if (isFlowopen.enable2fa && !isFlowopen.requiresRecentLogin) {
84
+ onRequiresRecentLoginErrorHandler();
85
+ }
82
86
  }
83
87
  }
84
88
  };
@@ -88,6 +92,14 @@ const Main2FAFlow = _ref => {
88
92
  [nextFlowId]: true
89
93
  }));
90
94
  };
95
+
96
+ // Helper to close a flow and call the custom onFlowClose handler
97
+ const handleFlowClose = flowId => {
98
+ setIsFlowOpen(prev => _objectSpread(_objectSpread({}, prev), {}, {
99
+ [flowId]: false
100
+ }));
101
+ onFlowClose && onFlowClose(flowId);
102
+ };
91
103
  const onEnable2FASuccess = async () => {
92
104
  setis2FAEnabled(true);
93
105
  checkMfaEnrollment();
@@ -112,11 +124,15 @@ const Main2FAFlow = _ref => {
112
124
  openEnable2FA: () => switchOpenFlow('disable2fa', 'enable2fa'),
113
125
  openDisable2FA: () => switchOpenFlow('enable2fa', 'disable2fa'),
114
126
  closeFlows: () => {
127
+ const wasOpen = Object.keys(isFlowopen).find(key => isFlowopen[key]);
115
128
  setIsFlowOpen({
116
129
  enable2fa: false,
117
130
  disable2fa: false,
118
131
  requiresRecentLogin: false
119
132
  });
133
+ if (wasOpen) {
134
+ onFlowClose && onFlowClose(wasOpen);
135
+ }
120
136
  },
121
137
  is2FAEnabled,
122
138
  isFlowOpen: isFlowopen
@@ -169,24 +185,34 @@ const Main2FAFlow = _ref => {
169
185
  flowActions
170
186
  }) : customComponent), isFlowopen.enable2fa && /*#__PURE__*/_react.default.createElement(_enable2faFlow.default, {
171
187
  showFlow: isFlowopen.enable2fa,
172
- setShowFlow: value => setIsFlowOpen(_objectSpread(_objectSpread({}, isFlowopen), {}, {
173
- enable2fa: value
174
- })),
188
+ setShowFlow: value => {
189
+ if (!value) {
190
+ handleFlowClose('enable2fa');
191
+ } else {
192
+ setIsFlowOpen(_objectSpread(_objectSpread({}, isFlowopen), {}, {
193
+ enable2fa: value
194
+ }));
195
+ }
196
+ },
175
197
  totpData: totpData,
176
198
  onRequiresRecentLoginError: onRequiresRecentLoginErrorHandler,
177
199
  onSuccess: onEnable2FASuccess
178
200
  }), isFlowopen.disable2fa && /*#__PURE__*/_react.default.createElement(_disable2faFlow.default, {
179
201
  showFlow: isFlowopen.disable2fa,
180
- setShowFlow: value => setIsFlowOpen(_objectSpread(_objectSpread({}, isFlowopen), {}, {
181
- disable2fa: value
182
- })),
202
+ setShowFlow: value => {
203
+ if (!value) {
204
+ handleFlowClose('disable2fa');
205
+ } else {
206
+ setIsFlowOpen(_objectSpread(_objectSpread({}, isFlowopen), {}, {
207
+ disable2fa: value
208
+ }));
209
+ }
210
+ },
183
211
  onRequiresRecentLoginError: onRequiresRecentLoginErrorHandler,
184
212
  onSuccess: onDisable2FASuccess
185
213
  }), isFlowopen.requiresRecentLogin && /*#__PURE__*/_react.default.createElement(_Modal.Modal, {
186
214
  isOpen: isFlowopen.requiresRecentLogin,
187
- onClose: () => setIsFlowOpen(_objectSpread(_objectSpread({}, isFlowopen), {}, {
188
- requiresRecentLogin: false
189
- }))
215
+ onClose: () => handleFlowClose('requiresRecentLogin')
190
216
  }, /*#__PURE__*/_react.default.createElement(_Modal.ModalInner, {
191
217
  noPadding: true
192
218
  }, /*#__PURE__*/_react.default.createElement(_Sucess2FA.default, {
@@ -200,6 +226,8 @@ const Main2FAFlow = _ref => {
200
226
  };
201
227
  exports.Main2FAFlow = Main2FAFlow;
202
228
  Main2FAFlow.propTypes = {
203
- onRequiresRecentLoginError: _propTypes.default.func
229
+ onRequiresRecentLoginError: _propTypes.default.func,
230
+ /** Called when any flow/modal is closed. Receives the flowId: 'enable2fa' | 'disable2fa' | 'requiresRecentLogin' */
231
+ onFlowClose: _propTypes.default.func
204
232
  };
205
233
  var _default = exports.default = Main2FAFlow;
@@ -10,7 +10,7 @@ var _FooterMenu = _interopRequireDefault(require("./FooterMenu"));
10
10
  var _Newsletter = _interopRequireDefault(require("../Newsletter/Newsletter"));
11
11
  var _Footer = _interopRequireDefault(require("./Footer"));
12
12
  var _globalVariables = require("../../constants/globalVariables");
13
- const _excluded = ["withNewsLetter", "withFooterMenu", "color", "jobOpeningsNumber", "lemonWayLogo", "dropdownCollapsed"];
13
+ const _excluded = ["withNewsLetter", "withFooterMenu", "color", "jobOpeningsNumber", "lemonWayLogo", "dropdownCollapsed", "footnotes", "footnotesTitle"];
14
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
16
16
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
@@ -22,13 +22,17 @@ function FooterLayout(_ref) {
22
22
  color = 'red',
23
23
  jobOpeningsNumber = 0,
24
24
  lemonWayLogo,
25
- dropdownCollapsed
25
+ dropdownCollapsed,
26
+ footnotes,
27
+ footnotesTitle
26
28
  } = _ref,
27
29
  props = _objectWithoutProperties(_ref, _excluded);
28
30
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, withFooterMenu && /*#__PURE__*/_react.default.createElement(_FooterMenu.default, {
29
31
  groups: footerGroups,
30
32
  jobOpeningsNumber: jobOpeningsNumber,
31
- dropdownCollapsed: dropdownCollapsed
33
+ dropdownCollapsed: dropdownCollapsed,
34
+ footnotes: footnotes,
35
+ footnotesTitle: footnotesTitle
32
36
  }), withNewsLetter && /*#__PURE__*/_react.default.createElement(_Newsletter.default, null), /*#__PURE__*/_react.default.createElement(_Footer.default, _extends({
33
37
  color: color,
34
38
  lemonwayLogo: lemonWayLogo
@@ -40,7 +44,12 @@ FooterLayout.propTypes = {
40
44
  color: _propTypes.default.oneOf(['primary', 'red']),
41
45
  jobOpeningsNumber: _propTypes.default.number,
42
46
  lemonwayLogo: _propTypes.default.string,
43
- dropdownCollapsed: _propTypes.default.bool
47
+ dropdownCollapsed: _propTypes.default.bool,
48
+ footnotesTitle: _propTypes.default.string,
49
+ footnotes: _propTypes.default.arrayOf(_propTypes.default.shape({
50
+ number: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
51
+ description: _propTypes.default.string
52
+ }))
44
53
  };
45
54
  var _default = exports.default = FooterLayout;
46
55
  const footerGroups = exports.footerGroups = [{
@@ -78,9 +78,12 @@ const FooterMenu = _ref2 => {
78
78
  let {
79
79
  groups,
80
80
  jobOpeningsNumber = 0,
81
- dropdownCollapsed
81
+ dropdownCollapsed,
82
+ footnotes,
83
+ footnotesTitle = 'Disclosures'
82
84
  } = _ref2;
83
85
  const isMobile = (0, _customHooks.useMobileView)(_rwd.sizes.MLarge);
86
+ const hasFootnotes = Array.isArray(footnotes) && footnotes.length > 0;
84
87
 
85
88
  // "New to STOKR" needs to be open by default
86
89
  const [activeGroups, setactiveGroups] = _react.default.useState(() => {
@@ -137,10 +140,23 @@ const FooterMenu = _ref2 => {
137
140
  style: {
138
141
  marginLeft: '4px'
139
142
  }
140
- }, jobOpeningsNumber))))))))));
143
+ }, jobOpeningsNumber))))))))), hasFootnotes && /*#__PURE__*/_react.default.createElement(_FooterMenu.Footnotes, null, /*#__PURE__*/_react.default.createElement(_FooterMenu.FootnotesText, null, footnotesTitle), footnotes.map((note, index) => {
144
+ var _note$number;
145
+ return /*#__PURE__*/_react.default.createElement(_FooterMenu.FootnotesItem, {
146
+ key: "".concat(note.number || index, "-").concat(note.description || 'note')
147
+ }, /*#__PURE__*/_react.default.createElement(_FooterMenu.FootnotesText, {
148
+ isNumber: true
149
+ }, (_note$number = note.number) !== null && _note$number !== void 0 ? _note$number : index + 1), /*#__PURE__*/_react.default.createElement(_FooterMenu.FootnotesText, null, note.description));
150
+ })));
141
151
  };
142
152
  FooterMenu.propTypes = {
143
153
  groups: _propTypes.default.arrayOf(Object).isRequired,
144
- jobOpeningsNumber: _propTypes.default.number
154
+ jobOpeningsNumber: _propTypes.default.number,
155
+ dropdownCollapsed: _propTypes.default.bool,
156
+ footnotesTitle: _propTypes.default.string,
157
+ footnotes: _propTypes.default.arrayOf(_propTypes.default.shape({
158
+ number: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
159
+ description: _propTypes.default.string
160
+ }))
145
161
  };
146
162
  var _default = exports.default = FooterMenu;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TitleContainer = exports.Title = exports.SocialLink = exports.Link = exports.Items = exports.Item = exports.HiringTotalNumber = exports.Groups = exports.Group = exports.Container = exports.ArrowDown = void 0;
6
+ exports.TitleContainer = exports.Title = exports.SocialLink = exports.Link = exports.Items = exports.Item = exports.HiringTotalNumber = exports.Groups = exports.Group = exports.FootnotesText = exports.FootnotesItem = exports.Footnotes = exports.Container = exports.ArrowDown = void 0;
7
7
  var _styledComponents = _interopRequireDefault(require("styled-components"));
8
8
  var _colors = _interopRequireDefault(require("../../styles/colors"));
9
9
  var _rwd = _interopRequireDefault(require("../../styles/rwd"));
@@ -54,4 +54,16 @@ const ArrowDown = exports.ArrowDown = _styledComponents.default.i.attrs({
54
54
  }).withConfig({
55
55
  displayName: "FooterMenustyles__ArrowDown",
56
56
  componentId: "sc-40ddqf-10"
57
- })(["&&&{top:50%;right:0;transition:0.3s transform;transform:rotate(0);text-align:center;font-size:16px;line-height:16px;height:16px;margin-top:-8px;", "}", ""], props => props.isOpened && "\n transform: rotate(180deg);\n ", props => !props.displayAlways && "\n @media screen and (min-width: 992px) {\n display: none;\n }\n ");
57
+ })(["&&&{top:50%;right:0;transition:0.3s transform;transform:rotate(0);text-align:center;font-size:16px;line-height:16px;height:16px;margin-top:-8px;", "}", ""], props => props.isOpened && "\n transform: rotate(180deg);\n ", props => !props.displayAlways && "\n @media screen and (min-width: 992px) {\n display: none;\n }\n ");
58
+ const Footnotes = exports.Footnotes = _styledComponents.default.div.withConfig({
59
+ displayName: "FooterMenustyles__Footnotes",
60
+ componentId: "sc-40ddqf-11"
61
+ })(["padding:0px 48px 40px;display:flex;flex-direction:column;gap:6px;@media screen and (min-width:992px){padding:0px 65px 48px;}"]);
62
+ const FootnotesText = exports.FootnotesText = _styledComponents.default.div.withConfig({
63
+ displayName: "FooterMenustyles__FootnotesText",
64
+ componentId: "sc-40ddqf-12"
65
+ })(["font-family:'Open Sans';font-weight:300;font-size:11px;line-height:16px;letter-spacing:0.4px;color:", ";", ""], _theme.default.cBlack, props => props.isNumber && "\n font-size: 9px;\n\n ");
66
+ const FootnotesItem = exports.FootnotesItem = _styledComponents.default.div.withConfig({
67
+ displayName: "FooterMenustyles__FootnotesItem",
68
+ componentId: "sc-40ddqf-13"
69
+ })(["display:flex;gap:6px;"]);
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stokr/components-library",
3
- "version": "2.3.65-beta.20",
3
+ "version": "2.3.65-beta.22",
4
4
  "description": "STOKR - Components Library",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",