@bigbinary/neeto-molecules 1.0.115 → 1.1.0

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.
@@ -2,11 +2,11 @@ import { values, last, identity, assoc, pluck, any, prop, fromPairs, isEmpty } f
2
2
  import * as React from 'react';
3
3
  import React__default, { useEffect, useState, useRef } from 'react';
4
4
  import { Info } from '@bigbinary/neeto-icons';
5
- import { Typography, Select, Button, Pane, Toastr, Switch, Label, Callout } from '@bigbinary/neetoui';
5
+ import { Typography, Select, Button, Pane, Toastr, Tooltip, Switch, Label, Callout } from '@bigbinary/neetoui';
6
6
  import { useTranslation, Trans } from 'react-i18next';
7
7
  import { useMutation, useQuery, useQueryClient, QueryClient, QueryClientProvider } from 'react-query';
8
8
  import { capitalize, noop, isNotEmpty } from '@bigbinary/neeto-commons-frontend/pure';
9
- import { usePrevious } from '@bigbinary/neeto-commons-frontend/react-utils';
9
+ import { withT, usePrevious } from '@bigbinary/neeto-commons-frontend/react-utils';
10
10
  import CopyToClipboardButton from '@bigbinary/neeto-molecules/CopyToClipboardButton';
11
11
  import { Formik, Form } from 'formik';
12
12
  import { MultiEmailInput, Input } from '@bigbinary/neetoui/formik';
@@ -3003,44 +3003,63 @@ var useUpdateConfigurations = function useUpdateConfigurations() {
3003
3003
  }));
3004
3004
  };
3005
3005
 
3006
- var SelectionTabs = function SelectionTabs(_ref) {
3006
+ var TooltipSwitch = withT(function (_ref) {
3007
+ var t = _ref.t,
3008
+ enabledClientApps = _ref.enabledClientApps,
3009
+ widget = _ref.widget,
3010
+ selectedWidgets = _ref.selectedWidgets,
3011
+ updateSelectedWidgets = _ref.updateSelectedWidgets;
3012
+ return /*#__PURE__*/React__default.createElement(Tooltip, {
3013
+ disabled: enabledClientApps.includes(widget),
3014
+ placement: "right",
3015
+ content: t("neetoMolecules.widget.tooltips.productIsDisabled", {
3016
+ productName: "neeto".concat(capitalize(widget))
3017
+ })
3018
+ }, /*#__PURE__*/React__default.createElement(Switch, {
3019
+ checked: selectedWidgets.includes(widget),
3020
+ disabled: !enabledClientApps.includes(widget),
3021
+ onChange: function onChange() {
3022
+ return updateSelectedWidgets(widget);
3023
+ }
3024
+ }));
3025
+ });
3026
+
3027
+ var SelectionSwitches = function SelectionSwitches(_ref) {
3007
3028
  var selectedWidgets = _ref.selectedWidgets,
3008
3029
  updateSelectedWidgets = _ref.updateSelectedWidgets,
3009
- primarySelectedWidget = _ref.primarySelectedWidget;
3010
- var formattedPrimaryWidget = capitalize(WIDGET_TYPES_VALUES.includes(primarySelectedWidget) ? primarySelectedWidget : "");
3011
- var renderSelectedTab = function renderSelectedTab() {
3012
- return WIDGET_TYPES_VALUES.map(function (widget, index) {
3013
- return primarySelectedWidget !== widget ? /*#__PURE__*/React__default.createElement("div", {
3014
- className: "flex items-center space-x-2",
3015
- key: index
3016
- }, /*#__PURE__*/React__default.createElement(Switch, {
3017
- checked: selectedWidgets.includes(widget),
3018
- onChange: function onChange() {
3019
- return updateSelectedWidgets(widget);
3020
- }
3021
- }), /*#__PURE__*/React__default.createElement(Label, null, "neeto", capitalize(widget))) : null;
3022
- });
3023
- };
3030
+ primaryApp = _ref.primaryApp,
3031
+ enabledClientApps = _ref.enabledClientApps;
3032
+ var primaryWidget = WIDGET_TYPES_VALUES.includes(primaryApp) ? primaryApp : "";
3024
3033
  return /*#__PURE__*/React__default.createElement("div", {
3025
3034
  className: "mb-4 flex w-full items-center justify-between gap-2"
3026
3035
  }, /*#__PURE__*/React__default.createElement("div", {
3027
3036
  className: "flex items-center space-x-2"
3028
- }, isNotEmpty(formattedPrimaryWidget) && /*#__PURE__*/React__default.createElement(Switch, {
3029
- checked: selectedWidgets.includes(primarySelectedWidget),
3030
- onChange: function onChange() {
3031
- return updateSelectedWidgets(primarySelectedWidget);
3032
- }
3037
+ }, isNotEmpty(primaryWidget) && /*#__PURE__*/React__default.createElement(TooltipSwitch, {
3038
+ enabledClientApps: enabledClientApps,
3039
+ selectedWidgets: selectedWidgets,
3040
+ updateSelectedWidgets: updateSelectedWidgets,
3041
+ widget: primaryWidget
3033
3042
  }), /*#__PURE__*/React__default.createElement("div", {
3034
3043
  className: "flex items-center space-x-1"
3035
- }, /*#__PURE__*/React__default.createElement(Label, null, "neeto", formattedPrimaryWidget), /*#__PURE__*/React__default.createElement("a", {
3036
- href: WIDGET_KB_HELP_URL[primarySelectedWidget],
3044
+ }, /*#__PURE__*/React__default.createElement(Label, null, "neeto", capitalize(primaryWidget)), /*#__PURE__*/React__default.createElement("a", {
3045
+ href: WIDGET_KB_HELP_URL[primaryApp],
3037
3046
  rel: "noreferrer",
3038
3047
  target: "_blank"
3039
3048
  }, /*#__PURE__*/React__default.createElement(Info, {
3040
3049
  size: 16
3041
3050
  })))), /*#__PURE__*/React__default.createElement("div", {
3042
3051
  className: "flex items-center justify-end gap-6"
3043
- }, renderSelectedTab()));
3052
+ }, WIDGET_TYPES_VALUES.map(function (widget, index) {
3053
+ return primaryApp !== widget && /*#__PURE__*/React__default.createElement("div", {
3054
+ className: "flex items-center space-x-2",
3055
+ key: index
3056
+ }, /*#__PURE__*/React__default.createElement(TooltipSwitch, {
3057
+ enabledClientApps: enabledClientApps,
3058
+ selectedWidgets: selectedWidgets,
3059
+ updateSelectedWidgets: updateSelectedWidgets,
3060
+ widget: widget
3061
+ }), /*#__PURE__*/React__default.createElement(Label, null, "neeto", capitalize(widget)));
3062
+ })));
3044
3063
  };
3045
3064
 
3046
3065
  var EmbedCode = function EmbedCode(_ref) {
@@ -3083,6 +3102,9 @@ var EmbedCode = function EmbedCode(_ref) {
3083
3102
  var selectedWidgets = neetoWidgetTokens.filter(prop("enabled")).map(function (item) {
3084
3103
  return item.clientApplicationName.toLowerCase();
3085
3104
  });
3105
+ var enabledClientApps = neetoWidgetTokens.filter(prop("clientApplicationEnabled")).map(function (item) {
3106
+ return item.clientApplicationName.toLowerCase();
3107
+ });
3086
3108
  var enabledWidgets = fromPairs(selectedWidgets.map(function (widget) {
3087
3109
  return [widget, true];
3088
3110
  }));
@@ -3100,18 +3122,16 @@ var EmbedCode = function EmbedCode(_ref) {
3100
3122
  }
3101
3123
  }, {
3102
3124
  onSuccess: function onSuccess() {
3125
+ var productName = "neeto".concat(capitalize(widget));
3103
3126
  var response = isEnabled ? "neetoMolecules.widget.installation.enabled" : "neetoMolecules.widget.installation.disabled";
3104
3127
  Toastr.success(t(response, {
3105
- productName: "neeto".concat(capitalize(widget))
3128
+ productName: productName
3106
3129
  }));
3107
3130
  }
3108
3131
  });
3109
3132
  };
3110
3133
  var getEmbedCodeString = function getEmbedCodeString() {
3111
- if (isNotEmpty(widgetApiKey)) {
3112
- return sampleConsolidatedCodeString(enabledWidgets, widgetApiKey);
3113
- }
3114
- return "";
3134
+ return isNotEmpty(widgetApiKey) ? sampleConsolidatedCodeString(enabledWidgets, widgetApiKey) : "";
3115
3135
  };
3116
3136
  var getSnippetProps = function getSnippetProps(selectedEmailType) {
3117
3137
  switch (selectedEmailType) {
@@ -3217,8 +3237,9 @@ var EmbedCode = function EmbedCode(_ref) {
3217
3237
  className: "mx-auto mb-10 w-full flex-col items-center justify-start"
3218
3238
  }, /*#__PURE__*/React__default.createElement("div", {
3219
3239
  className: classnames("mx-auto", maxWidth)
3220
- }, /*#__PURE__*/React__default.createElement(SelectionTabs, {
3221
- primarySelectedWidget: primaryApp,
3240
+ }, /*#__PURE__*/React__default.createElement(SelectionSwitches, {
3241
+ enabledClientApps: enabledClientApps,
3242
+ primaryApp: primaryApp,
3222
3243
  selectedWidgets: selectedWidgets,
3223
3244
  updateSelectedWidgets: updateSelectedWidgets
3224
3245
  }), /*#__PURE__*/React__default.createElement("div", {