@seamly/web-ui 22.2.0 → 22.3.0-beta.1

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.
Files changed (47) hide show
  1. package/build/dist/lib/components.js +269 -138
  2. package/build/dist/lib/components.js.map +1 -1
  3. package/build/dist/lib/components.min.js +1 -1
  4. package/build/dist/lib/components.min.js.map +1 -1
  5. package/build/dist/lib/hooks.js +217 -41
  6. package/build/dist/lib/hooks.js.map +1 -1
  7. package/build/dist/lib/hooks.min.js +1 -1
  8. package/build/dist/lib/hooks.min.js.map +1 -1
  9. package/build/dist/lib/index.debug.js +43 -21
  10. package/build/dist/lib/index.debug.js.map +1 -1
  11. package/build/dist/lib/index.debug.min.js +1 -1
  12. package/build/dist/lib/index.debug.min.js.LICENSE.txt +12 -4
  13. package/build/dist/lib/index.debug.min.js.map +1 -1
  14. package/build/dist/lib/index.js +257 -133
  15. package/build/dist/lib/index.js.map +1 -1
  16. package/build/dist/lib/index.min.js +1 -1
  17. package/build/dist/lib/index.min.js.map +1 -1
  18. package/build/dist/lib/standalone.js +265 -133
  19. package/build/dist/lib/standalone.js.map +1 -1
  20. package/build/dist/lib/standalone.min.js +1 -1
  21. package/build/dist/lib/standalone.min.js.map +1 -1
  22. package/build/dist/lib/style-guide.js +274 -134
  23. package/build/dist/lib/style-guide.js.map +1 -1
  24. package/build/dist/lib/style-guide.min.js +1 -1
  25. package/build/dist/lib/style-guide.min.js.map +1 -1
  26. package/build/dist/lib/styles.css +1 -1
  27. package/build/dist/lib/utils.js +325 -171
  28. package/build/dist/lib/utils.js.map +1 -1
  29. package/build/dist/lib/utils.min.js +1 -1
  30. package/build/dist/lib/utils.min.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/javascripts/api/errors/seamly-api-error.ts +0 -1
  33. package/src/javascripts/api/index.ts +16 -8
  34. package/src/javascripts/domains/app/actions.ts +8 -3
  35. package/src/javascripts/domains/interrupt/selectors.ts +3 -2
  36. package/src/javascripts/domains/interrupt/slice.ts +2 -0
  37. package/src/javascripts/domains/redux/create-debounced-async-thunk.ts +109 -0
  38. package/src/javascripts/domains/redux/redux.types.ts +2 -1
  39. package/src/javascripts/domains/store/actions.ts +38 -0
  40. package/src/javascripts/domains/visibility/actions.ts +4 -1
  41. package/src/javascripts/style-guide/states.js +18 -1
  42. package/src/javascripts/ui/components/conversation/event/{card-component.js → card-component.tsx} +6 -4
  43. package/src/javascripts/ui/components/conversation/event/event-participant.js +1 -1
  44. package/src/javascripts/ui/components/core/seamly-event-subscriber.ts +14 -30
  45. package/src/javascripts/ui/components/view/window-view/window-open-button.js +8 -3
  46. package/src/javascripts/ui/hooks/use-session-expired-command.ts +31 -2
  47. package/src/stylesheets/5-components/_message-count.scss +11 -9
@@ -2686,20 +2686,87 @@ const defaultConfig = {
2686
2686
 
2687
2687
  /***/ }),
2688
2688
 
2689
- /***/ 9201:
2689
+ /***/ 526:
2690
2690
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2691
2691
 
2692
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2693
- /* harmony export */ Z: () => (/* binding */ initializeApp),
2694
- /* harmony export */ m: () => (/* binding */ resetApp)
2695
- /* harmony export */ });
2696
- /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9639);
2697
- /* harmony import */ var api_errors_seamly_session_expired_error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6821);
2698
- /* harmony import */ var api_errors_seamly_unavailable_error__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7265);
2699
- /* harmony import */ var ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1149);
2700
- /* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(257);
2701
- /* harmony import */ var domains_i18n_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5409);
2702
- /* harmony import */ var domains_visibility_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9586);
2692
+
2693
+ // EXPORTS
2694
+ __webpack_require__.d(__webpack_exports__, {
2695
+ Z: () => (/* binding */ initializeApp),
2696
+ m: () => (/* binding */ resetApp)
2697
+ });
2698
+
2699
+ // EXTERNAL MODULE: ./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js + 2 modules
2700
+ var redux_toolkit_esm = __webpack_require__(9639);
2701
+ // EXTERNAL MODULE: ./src/javascripts/api/errors/seamly-session-expired-error.js
2702
+ var seamly_session_expired_error = __webpack_require__(6821);
2703
+ // EXTERNAL MODULE: ./src/javascripts/api/errors/seamly-unavailable-error.js
2704
+ var seamly_unavailable_error = __webpack_require__(7265);
2705
+ // EXTERNAL MODULE: ./src/javascripts/ui/utils/seamly-utils.ts
2706
+ var seamly_utils = __webpack_require__(1149);
2707
+ // EXTERNAL MODULE: ./src/javascripts/domains/config/actions.ts
2708
+ var actions = __webpack_require__(257);
2709
+ // EXTERNAL MODULE: ./src/javascripts/domains/i18n/actions.ts
2710
+ var i18n_actions = __webpack_require__(5409);
2711
+ ;// CONCATENATED MODULE: ./src/javascripts/domains/redux/create-debounced-async-thunk.ts
2712
+
2713
+ /**
2714
+ * A debounced analogue of the `createAsyncThunk` from `@reduxjs/toolkit`
2715
+ * @param typePrefix - a string action type value
2716
+ * @param payloadCreator - a callback function that should return a promise containing the result of some asynchronous logic
2717
+ * @param debounceOptions - the debounce options object
2718
+ */
2719
+ const createDebouncedAsyncThunk = (typePrefix, payloadCreator, debounceOptions) => {
2720
+ const {
2721
+ wait = 300,
2722
+ maxWait = 0,
2723
+ leading = false
2724
+ } = debounceOptions !== null && debounceOptions !== void 0 ? debounceOptions : {};
2725
+ let debounceTimer = null;
2726
+ let maxWaitTimer = null;
2727
+ let resolve;
2728
+ const cancel = () => {
2729
+ if (resolve) {
2730
+ resolve(false);
2731
+ resolve = undefined;
2732
+ }
2733
+ };
2734
+ const invoke = () => {
2735
+ clearTimeout(maxWaitTimer);
2736
+ maxWaitTimer = undefined;
2737
+ if (resolve) {
2738
+ resolve(true);
2739
+ resolve = undefined;
2740
+ }
2741
+ };
2742
+ const debounceExecutionCondition = () => {
2743
+ const immediate = leading && !debounceTimer;
2744
+ // Start debounced condition resolution
2745
+ clearTimeout(debounceTimer);
2746
+ debounceTimer = setTimeout(() => {
2747
+ invoke();
2748
+ debounceTimer = null;
2749
+ }, wait);
2750
+ if (immediate) {
2751
+ return true;
2752
+ }
2753
+ cancel();
2754
+ // Start max wait condition resolution
2755
+ if (maxWait && !maxWaitTimer) {
2756
+ maxWaitTimer = setTimeout(invoke, maxWait);
2757
+ }
2758
+ return new Promise(res => {
2759
+ resolve = res;
2760
+ });
2761
+ };
2762
+ return (0,redux_toolkit_esm/* createAsyncThunk */.hg)(typePrefix, payloadCreator, {
2763
+ condition: debounceExecutionCondition
2764
+ });
2765
+ };
2766
+ /* harmony default export */ const create_debounced_async_thunk = (createDebouncedAsyncThunk);
2767
+ // EXTERNAL MODULE: ./src/javascripts/domains/visibility/actions.ts
2768
+ var visibility_actions = __webpack_require__(9586);
2769
+ ;// CONCATENATED MODULE: ./src/javascripts/domains/app/actions.ts
2703
2770
  var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
2704
2771
  function adopt(value) {
2705
2772
  return value instanceof P ? value : new P(function (resolve) {
@@ -2734,7 +2801,8 @@ var __awaiter = undefined && undefined.__awaiter || function (thisArg, _argument
2734
2801
 
2735
2802
 
2736
2803
 
2737
- const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .createAsyncThunk */ .hg)('initializeApp', (_, {
2804
+
2805
+ const initializeApp = (0,redux_toolkit_esm/* createAsyncThunk */.hg)('initializeApp', (_, {
2738
2806
  extra: {
2739
2807
  api,
2740
2808
  config
@@ -2755,7 +2823,7 @@ const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .create
2755
2823
  } else {
2756
2824
  if ((_c = config === null || config === void 0 ? void 0 : config.context) === null || _c === void 0 ? void 0 : _c.topic) {
2757
2825
  api.send('action', {
2758
- type: ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_0__/* .actionTypes */ .Hp.setTopic,
2826
+ type: seamly_utils/* actionTypes */.Hp.setTopic,
2759
2827
  body: {
2760
2828
  name: config.context.topic,
2761
2829
  // Separate fallback message is not needed here. Only an attached service will use this, but none will
@@ -2767,7 +2835,7 @@ const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .create
2767
2835
  if ((_d = config === null || config === void 0 ? void 0 : config.context) === null || _d === void 0 ? void 0 : _d.translationLocale) {
2768
2836
  locale = config.context.translationLocale;
2769
2837
  api.send('action', {
2770
- type: ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_0__/* .actionTypes */ .Hp.setTranslation,
2838
+ type: seamly_utils/* actionTypes */.Hp.setTranslation,
2771
2839
  body: {
2772
2840
  enabled: true,
2773
2841
  locale
@@ -2781,8 +2849,8 @@ const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .create
2781
2849
  };
2782
2850
  }
2783
2851
  } catch (e) {
2784
- if (e instanceof api_errors_seamly_session_expired_error__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z) {
2785
- const err = new api_errors_seamly_session_expired_error__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z();
2852
+ if (e instanceof seamly_session_expired_error/* default */.Z) {
2853
+ const err = new seamly_session_expired_error/* default */.Z();
2786
2854
  return rejectWithValue({
2787
2855
  name: err.name,
2788
2856
  message: err.message,
@@ -2791,7 +2859,7 @@ const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .create
2791
2859
  action: err.action
2792
2860
  });
2793
2861
  }
2794
- const err = new api_errors_seamly_unavailable_error__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z();
2862
+ const err = new seamly_unavailable_error/* default */.Z();
2795
2863
  return rejectWithValue({
2796
2864
  name: err.name,
2797
2865
  message: err.message,
@@ -2799,26 +2867,29 @@ const initializeApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .create
2799
2867
  });
2800
2868
  }
2801
2869
  }));
2802
- const resetApp = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .createAsyncThunk */ .hg)('resetApp', (_, {
2870
+ const resetApp = create_debounced_async_thunk('resetApp', (_, {
2803
2871
  dispatch,
2804
2872
  extra: {
2805
2873
  api
2806
2874
  }
2807
2875
  }) => __awaiter(void 0, void 0, void 0, function* () {
2808
2876
  yield api.disconnect();
2809
- yield api.clearStore();
2810
- dispatch((0,domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .resetConfig */ .I)());
2811
- yield dispatch((0,domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .initializeConfig */ .t)());
2877
+ api.clearStore();
2878
+ dispatch((0,actions/* resetConfig */.I)());
2879
+ yield dispatch((0,actions/* initializeConfig */.t)());
2812
2880
  try {
2813
2881
  const {
2814
2882
  locale
2815
2883
  } = yield dispatch(initializeApp()).unwrap();
2816
- yield dispatch((0,domains_i18n_actions__WEBPACK_IMPORTED_MODULE_2__/* .setLocale */ .i)(locale));
2817
- } catch (rejectedValueOrSerializedError) {
2884
+ yield dispatch((0,i18n_actions/* setLocale */.i)(locale));
2885
+ } catch (e) {
2818
2886
  // nothing to do
2819
2887
  }
2820
- dispatch((0,domains_visibility_actions__WEBPACK_IMPORTED_MODULE_3__/* .initializeVisibility */ .Z)());
2821
- }));
2888
+ dispatch((0,visibility_actions/* initializeVisibility */.Z)());
2889
+ }), {
2890
+ wait: 2000,
2891
+ leading: true
2892
+ });
2822
2893
 
2823
2894
  /***/ }),
2824
2895
 
@@ -2846,7 +2917,7 @@ const selectUserHasResponded = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__/
2846
2917
  /* harmony export */ });
2847
2918
  /* unused harmony export appSlice */
2848
2919
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9639);
2849
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9201);
2920
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(526);
2850
2921
 
2851
2922
 
2852
2923
  const initialState = {
@@ -3218,7 +3289,7 @@ function createErrorsMiddleware({
3218
3289
 
3219
3290
  /* unused harmony exports formsSlice, registerForm, deregisterForm, registerControl, deregisterControl, updateControlValue, updateControlTouched */
3220
3291
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9639);
3221
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9201);
3292
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(526);
3222
3293
 
3223
3294
 
3224
3295
  const initialFormState = {
@@ -4228,11 +4299,13 @@ const selectHasError = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__/* .creat
4228
4299
  /* harmony export */ uc: () => (/* binding */ setInterrupt)
4229
4300
  /* harmony export */ });
4230
4301
  /* unused harmony exports interruptSlice, clearInterrupt */
4231
- /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9639);
4232
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9201);
4302
+ /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9639);
4303
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(526);
4233
4304
  /* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(257);
4234
4305
  /* harmony import */ var domains_i18n_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5409);
4235
- /* harmony import */ var domains_visibility_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9586);
4306
+ /* harmony import */ var domains_store_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2770);
4307
+ /* harmony import */ var domains_visibility_actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9586);
4308
+
4236
4309
 
4237
4310
 
4238
4311
 
@@ -4241,7 +4314,7 @@ const selectHasError = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__/* .creat
4241
4314
  const initialState = {
4242
4315
  error: undefined
4243
4316
  };
4244
- const interruptSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .createSlice */ .oM)({
4317
+ const interruptSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_5__/* .createSlice */ .oM)({
4245
4318
  name: 'interrupt',
4246
4319
  initialState,
4247
4320
  reducers: {
@@ -4251,7 +4324,7 @@ const interruptSlice = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .creat
4251
4324
  clearInterrupt: () => initialState
4252
4325
  },
4253
4326
  extraReducers: builder => {
4254
- builder.addCase(domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .initializeConfig */ .t.pending, () => initialState).addMatcher((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_4__/* .isAnyOf */ .Q)(domains_app_actions__WEBPACK_IMPORTED_MODULE_0__/* .initializeApp */ .Z.rejected, domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .initializeConfig */ .t.rejected, domains_i18n_actions__WEBPACK_IMPORTED_MODULE_2__/* .setLocale */ .i.rejected, domains_visibility_actions__WEBPACK_IMPORTED_MODULE_3__/* .setVisibility */ .i.rejected, domains_visibility_actions__WEBPACK_IMPORTED_MODULE_3__/* .initializeVisibility */ .Z.rejected), (state, {
4327
+ builder.addCase(domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .initializeConfig */ .t.pending, () => initialState).addMatcher((0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_5__/* .isAnyOf */ .Q)(domains_app_actions__WEBPACK_IMPORTED_MODULE_0__/* .initializeApp */ .Z.rejected, domains_config_actions__WEBPACK_IMPORTED_MODULE_1__/* .initializeConfig */ .t.rejected, domains_i18n_actions__WEBPACK_IMPORTED_MODULE_2__/* .setLocale */ .i.rejected, domains_visibility_actions__WEBPACK_IMPORTED_MODULE_4__/* .setVisibility */ .i.rejected, domains_visibility_actions__WEBPACK_IMPORTED_MODULE_4__/* .initializeVisibility */ .Z.rejected, domains_store_actions__WEBPACK_IMPORTED_MODULE_3__/* .getConversation */ .c.rejected), (state, {
4255
4328
  payload
4256
4329
  }) => {
4257
4330
  state.error = payload;
@@ -4266,6 +4339,77 @@ const {
4266
4339
 
4267
4340
  /***/ }),
4268
4341
 
4342
+ /***/ 2770:
4343
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4344
+
4345
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
4346
+ /* harmony export */ c: () => (/* binding */ getConversation)
4347
+ /* harmony export */ });
4348
+ /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9639);
4349
+ var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
4350
+ function adopt(value) {
4351
+ return value instanceof P ? value : new P(function (resolve) {
4352
+ resolve(value);
4353
+ });
4354
+ }
4355
+ return new (P || (P = Promise))(function (resolve, reject) {
4356
+ function fulfilled(value) {
4357
+ try {
4358
+ step(generator.next(value));
4359
+ } catch (e) {
4360
+ reject(e);
4361
+ }
4362
+ }
4363
+ function rejected(value) {
4364
+ try {
4365
+ step(generator["throw"](value));
4366
+ } catch (e) {
4367
+ reject(e);
4368
+ }
4369
+ }
4370
+ function step(result) {
4371
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
4372
+ }
4373
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
4374
+ });
4375
+ };
4376
+
4377
+ const getConversation = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__/* .createAsyncThunk */ .hg)('getConversation', (_, {
4378
+ extra: {
4379
+ api
4380
+ },
4381
+ rejectWithValue
4382
+ }) => __awaiter(void 0, void 0, void 0, function* () {
4383
+ try {
4384
+ return api.getConversation();
4385
+ } catch (error) {
4386
+ return rejectWithValue({
4387
+ name: error === null || error === void 0 ? void 0 : error.name,
4388
+ message: error === null || error === void 0 ? void 0 : error.message,
4389
+ langKey: error === null || error === void 0 ? void 0 : error.langKey,
4390
+ action: error === null || error === void 0 ? void 0 : error.action,
4391
+ originalEvent: error === null || error === void 0 ? void 0 : error.originalEvent,
4392
+ originalError: error === null || error === void 0 ? void 0 : error.originalError
4393
+ });
4394
+ }
4395
+ }), {
4396
+ condition(payload, {
4397
+ getState
4398
+ }) {
4399
+ var _a;
4400
+ const {
4401
+ state: {
4402
+ events
4403
+ }
4404
+ } = getState();
4405
+ const lastEvent = events[events.length - 1];
4406
+ const payloadLastEventId = (_a = payload === null || payload === void 0 ? void 0 : payload.lastEvent) === null || _a === void 0 ? void 0 : _a.id;
4407
+ return lastEvent && payloadLastEventId !== lastEvent.payload.id;
4408
+ }
4409
+ });
4410
+
4411
+ /***/ }),
4412
+
4269
4413
  /***/ 7271:
4270
4414
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4271
4415
 
@@ -4289,8 +4433,8 @@ var errors = __webpack_require__(9792);
4289
4433
  var forms_slice = __webpack_require__(3939);
4290
4434
  // EXTERNAL MODULE: ./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js + 2 modules
4291
4435
  var redux_toolkit_esm = __webpack_require__(9639);
4292
- // EXTERNAL MODULE: ./src/javascripts/domains/app/actions.ts
4293
- var actions = __webpack_require__(9201);
4436
+ // EXTERNAL MODULE: ./src/javascripts/domains/app/actions.ts + 1 modules
4437
+ var actions = __webpack_require__(526);
4294
4438
  // EXTERNAL MODULE: ./src/javascripts/domains/config/actions.ts
4295
4439
  var config_actions = __webpack_require__(257);
4296
4440
  // EXTERNAL MODULE: ./src/javascripts/domains/i18n/actions.ts
@@ -4543,7 +4687,7 @@ const useAppDispatch = es/* useDispatch */.I0;
4543
4687
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9639);
4544
4688
  /* harmony import */ var ui_utils_general_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(822);
4545
4689
  /* harmony import */ var ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1149);
4546
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9201);
4690
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(526);
4547
4691
  /* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(257);
4548
4692
  /* harmony import */ var lib_id__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8527);
4549
4693
 
@@ -5374,7 +5518,7 @@ const useTranslationProposal = () => {
5374
5518
  /* harmony export */ });
5375
5519
  /* unused harmony exports translationsInitialState, translationSlice, enableEventsTranslation, disableEventsTranslation, setTranslationProposalPrompt */
5376
5520
  /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9639);
5377
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9201);
5521
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(526);
5378
5522
  /* harmony import */ var domains_config_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(257);
5379
5523
  /* harmony import */ var domains_store_slice__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8801);
5380
5524
 
@@ -5591,8 +5735,9 @@ const setVisibility = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_6__/* .create
5591
5735
  if (previousVisibility === calculatedVisibility) {
5592
5736
  return undefined;
5593
5737
  }
5738
+ const visibility = api.store.get(_constants__WEBPACK_IMPORTED_MODULE_4__/* .StoreKey */ .K);
5594
5739
  // Store the user-requested visibility in order to reinitialize after refresh
5595
- api.store.set(_constants__WEBPACK_IMPORTED_MODULE_4__/* .StoreKey */ .K, Object.assign(Object.assign({}, api.store.get(_constants__WEBPACK_IMPORTED_MODULE_4__/* .StoreKey */ .K) || {}), {
5740
+ api.store.set(_constants__WEBPACK_IMPORTED_MODULE_4__/* .StoreKey */ .K, Object.assign(Object.assign({}, visibility || {}), {
5596
5741
  [layoutMode]: requestedVisibility
5597
5742
  }));
5598
5743
  if (requestedVisibility) {
@@ -6027,12 +6172,21 @@ var selectors = __webpack_require__(703);
6027
6172
  var live_region_hooks = __webpack_require__(5136);
6028
6173
  // EXTERNAL MODULE: ./src/javascripts/ui/hooks/seamly-state-hooks.ts
6029
6174
  var seamly_state_hooks = __webpack_require__(2140);
6175
+ // EXTERNAL MODULE: ./src/javascripts/api/errors/seamly-general-error.js
6176
+ var seamly_general_error = __webpack_require__(5332);
6030
6177
  // EXTERNAL MODULE: ./src/javascripts/domains/interrupt/hooks.ts
6031
6178
  var interrupt_hooks = __webpack_require__(5889);
6179
+ // EXTERNAL MODULE: ./src/javascripts/domains/interrupt/slice.ts
6180
+ var slice = __webpack_require__(6160);
6181
+ // EXTERNAL MODULE: ./src/javascripts/domains/store/index.ts + 4 modules
6182
+ var store = __webpack_require__(7271);
6032
6183
  ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/use-session-expired-command.ts
6033
6184
 
6034
6185
 
6035
6186
 
6187
+
6188
+
6189
+
6036
6190
  function useSessionExpiredCommand() {
6037
6191
  const {
6038
6192
  meta: {
@@ -6040,13 +6194,35 @@ function useSessionExpiredCommand() {
6040
6194
  action
6041
6195
  }
6042
6196
  } = (0,interrupt_hooks/* useInterrupt */.i)();
6197
+ const dispatch = (0,store/* useAppDispatch */.T)();
6043
6198
  const seamlyCommands = (0,use_seamly_commands/* default */.Z)();
6044
6199
  const isExpiredError = (originalError === null || originalError === void 0 ? void 0 : originalError.name) === 'SeamlySessionExpiredError';
6200
+ const limit = (0,hooks_.useRef)(0);
6201
+ const limitTimer = (0,hooks_.useRef)(null);
6045
6202
  (0,hooks_.useEffect)(() => {
6046
6203
  if (isExpiredError && seamlyCommands[action]) {
6204
+ if (limit.current >= 10) {
6205
+ limitTimer.current = setTimeout(() => {
6206
+ limit.current = 0;
6207
+ }, 10000);
6208
+ const error = new seamly_general_error/* default */.Z();
6209
+ dispatch((0,slice/* setInterrupt */.uc)({
6210
+ name: error.name,
6211
+ message: error.message,
6212
+ langKey: error.langKey,
6213
+ originalEvent: error.originalEvent,
6214
+ originalError: error.originalError,
6215
+ action: error.action
6216
+ }));
6217
+ return () => {};
6218
+ }
6219
+ limit.current += 1;
6047
6220
  seamlyCommands[action]();
6048
6221
  }
6049
- }, [action, seamlyCommands, isExpiredError]);
6222
+ return () => {
6223
+ if (limitTimer.current) clearTimeout(limitTimer.current);
6224
+ };
6225
+ }, [action, seamlyCommands, isExpiredError, dispatch]);
6050
6226
  }
6051
6227
  ;// CONCATENATED MODULE: ./src/javascripts/ui/hooks/use-seamly-chat.ts
6052
6228
  var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) {
@@ -6717,7 +6893,7 @@ const EventParticipant = ({
6717
6893
  })
6718
6894
  }));
6719
6895
  }
6720
- if (showName) {
6896
+ if (showName && participantName) {
6721
6897
  authorInfo.push(_jsx("span", {
6722
6898
  className: className('message__author-name'),
6723
6899
  children: participantName
@@ -7398,7 +7574,7 @@ const useSeamlyActivityEventHandler = () => useContext(SeamlyActivityEventContex
7398
7574
  /* harmony import */ var config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9787);
7399
7575
  /* harmony import */ var ui_components_core_seamly_api_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2871);
7400
7576
  /* harmony import */ var ui_utils_seamly_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1149);
7401
- /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9201);
7577
+ /* harmony import */ var domains_app_actions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(526);
7402
7578
  /* harmony import */ var domains_app_hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(3423);
7403
7579
  /* harmony import */ var domains_app_slice__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1322);
7404
7580
  /* harmony import */ var domains_config_hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6134);