@bigbinary/neeto-molecules 1.16.3 → 1.16.4

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.
package/dist/Settings.js CHANGED
@@ -149,6 +149,8 @@ var filterCategories = function filterCategories(_ref) {
149
149
  var Settings = function Settings(_ref) {
150
150
  var _ref$isTitleHidden = _ref.isTitleHidden,
151
151
  isTitleHidden = _ref$isTitleHidden === void 0 ? false : _ref$isTitleHidden,
152
+ _ref$isSearchHidden = _ref.isSearchHidden,
153
+ isSearchHidden = _ref$isSearchHidden === void 0 ? false : _ref$isSearchHidden,
152
154
  _ref$categories = _ref.categories,
153
155
  categories = _ref$categories === void 0 ? [] : _ref$categories;
154
156
  var _useTranslation = useTranslation(),
@@ -161,6 +163,7 @@ var Settings = function Settings(_ref) {
161
163
  categories: categories,
162
164
  searchTerm: searchTerm
163
165
  });
166
+ var isHeaderVisible = !isSearchHidden || !isTitleHidden;
164
167
  useEffect(function () {
165
168
  scrollIntoSettingCategory(categoryParam);
166
169
  }, [categoryParam]);
@@ -168,12 +171,12 @@ var Settings = function Settings(_ref) {
168
171
  className: classnames("neeto-molecules-container", {
169
172
  "h-auto overflow-y-auto": isTitleHidden
170
173
  })
171
- }, /*#__PURE__*/React__default.createElement(Header, {
174
+ }, isHeaderVisible && /*#__PURE__*/React__default.createElement(Header, {
172
175
  className: classnames({
173
176
  "min-h-0 pb-4 pt-8": isTitleHidden
174
177
  }),
175
178
  title: !isTitleHidden && t("neetoMolecules.settingsPage.title"),
176
- searchProps: {
179
+ searchProps: isSearchHidden ? null : {
177
180
  className: "w-72",
178
181
  placeholder: t("neetoMolecules.settingsPage.placeholder.search")
179
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.js","sources":["../src/components/Settings/constants.js","../src/components/Settings/Item.jsx","../src/components/Settings/IntegrationItem.jsx","../src/components/Settings/Category.jsx","../src/components/Settings/utils.js","../src/components/Settings/index.jsx"],"sourcesContent":["export const UNSUPPORTED_LINK_PROPS = [\"staticContext\", \"tReady\"];\n","import React, { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { omit } from \"ramda\";\nimport { withRouter, Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n dataCy,\n className = \"\",\n children,\n ...otherProps\n}) => (\n <Link\n data-cy={dataCy}\n to={path}\n className={classnames(\n \"neeto-ui-rounded-lg delay-220 neeto-ui-shadow-sm translate flex cursor-pointer flex-col space-y-4 border p-6 no-underline outline-none transition-transform duration-300 ease-in-out hover:-translate-y-1\",\n className\n )}\n {...omit(UNSUPPORTED_LINK_PROPS, otherProps)}\n >\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n <div className=\"mb-2 flex items-center gap-4\">\n {Icon && <Icon className=\"neeto-ui-text-gray-600\" size={32} />}\n <Typography\n data-cy=\"settings-item-heading\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n </div>\n <Typography data-cy=\"settings-item-description\" style=\"body2\">\n {description}\n </Typography>\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 border-t pt-3\">{children}</div>\n )}\n </Link>\n);\n\nexport default memo(withRouter(Item));\n","import React from \"react\";\n\nimport { hyphenate } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Check } from \"neetoicons\";\nimport { Tag } from \"neetoui\";\n\nimport Item from \"./Item\";\n\nconst IntegrationItem = withT(\n ({ t, isConnected, icon, description, label, path, ...otherProps }) => (\n <Item\n {...{ description, icon, label, path, ...otherProps }}\n dataCy={`${hyphenate(label).replace(/\\./g, \"-\")}-integration-card`}\n >\n {isConnected && (\n <Tag\n className=\"flex-row-reverse\"\n data-cy=\"integration-status-tag\"\n icon={Check}\n label={t(\"neetoMolecules.integrationCard.connected\")}\n style=\"success\"\n />\n )}\n </Item>\n )\n);\n\nexport default React.memo(IntegrationItem);\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport IntegrationItem from \"./IntegrationItem\";\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const SettingsCard = isIntegration ? IntegrationItem : Item;\n\n const isLabelPresent = isPresent(label);\n\n return (\n <div\n {...{ id }}\n className={classNames(\"flex flex-col\", { \"mb-7\": isLabelPresent })}\n >\n {isLabelPresent && (\n <Typography\n className=\"mb-6 mt-2\"\n component=\"h2\"\n data-cy=\"settings-category-heading\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n )}\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4\">\n {items.map(item => (\n <SettingsCard key={item.label} {...item} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","import { filterBy, isNotEmpty } from \"neetocist\";\n\nconst isTextMatching = (label, searchTerm) =>\n label.toLowerCase().includes(searchTerm.trim().toLowerCase());\n\nexport const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView({\n behavior: \"smooth\",\n });\n};\n\nexport const filterCategories = ({ categories = [], searchTerm = \"\" }) => {\n const isSearchTermBlank = !searchTerm.trim();\n\n const filteredCategories = isSearchTermBlank\n ? categories\n : categories.map(category => ({\n ...category,\n items: filterBy(\n ({ label, description }) =>\n isTextMatching(label, searchTerm) ||\n isTextMatching(description, searchTerm),\n category.items\n ),\n }));\n\n return filterBy({ items: isNotEmpty }, filteredCategories);\n};\n","import React, { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport { NoData } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Header from \"components/Header\";\n\nimport Category from \"./Category\";\nimport { filterCategories, scrollIntoSettingCategory } from \"./utils\";\n\nconst Settings = ({ isTitleHidden = false, categories = [] }) => {\n const { t } = useTranslation();\n\n const { category: categoryParam, searchTerm = \"\" } = useQueryParams();\n\n const filteredCategories = filterCategories({ categories, searchTerm });\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam);\n }, [categoryParam]);\n\n return (\n <div\n className={classNames(\"neeto-molecules-container\", {\n \"h-auto overflow-y-auto\": isTitleHidden,\n })}\n >\n <Header\n className={classNames({ \"min-h-0 pb-4 pt-8\": isTitleHidden })}\n title={!isTitleHidden && t(\"neetoMolecules.settingsPage.title\")}\n searchProps={{\n className: \"w-72\",\n placeholder: t(\"neetoMolecules.settingsPage.placeholder.search\"),\n }}\n />\n {isEmpty(filteredCategories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <NoData title={t(\"neetoMolecules.settingsPage.noData\")} />\n </div>\n ) : (\n <div className=\"w-full\">\n {filteredCategories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n /**\n * Whether to hide the title or not.\n */\n isTitleHidden: propTypes.bool,\n /**\n * An array of setting categories to be displayed.\n */\n categories: propTypes.array,\n};\n\nexport default Settings;\n"],"names":["UNSUPPORTED_LINK_PROPS","Item","_ref","label","description","_ref$icon","icon","Icon","path","dataCy","_ref$className","className","children","otherProps","_objectWithoutProperties","_excluded","React","createElement","Link","_extends","to","classnames","omit","concat","joinHyphenCase","size","Typography","style","weight","memo","withRouter","IntegrationItem","withT","t","isConnected","_objectSpread","hyphenate","replace","Tag","Check","Category","items","id","isIntegration","SettingsCard","isLabelPresent","isPresent","classNames","component","map","item","key","isTextMatching","searchTerm","toLowerCase","includes","trim","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","behavior","filterCategories","_ref$categories","categories","_ref$searchTerm","isSearchTermBlank","filteredCategories","category","filterBy","_ref2","isNotEmpty","Settings","_ref$isTitleHidden","isTitleHidden","_useTranslation","useTranslation","_useQueryParams","useQueryParams","categoryParam","_useQueryParams$searc","useEffect","Header","title","searchProps","placeholder","isEmpty","NoData"],"mappings":"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"}
1
+ {"version":3,"file":"Settings.js","sources":["../src/components/Settings/constants.js","../src/components/Settings/Item.jsx","../src/components/Settings/IntegrationItem.jsx","../src/components/Settings/Category.jsx","../src/components/Settings/utils.js","../src/components/Settings/index.jsx"],"sourcesContent":["export const UNSUPPORTED_LINK_PROPS = [\"staticContext\", \"tReady\"];\n","import React, { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { omit } from \"ramda\";\nimport { withRouter, Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n dataCy,\n className = \"\",\n children,\n ...otherProps\n}) => (\n <Link\n data-cy={dataCy}\n to={path}\n className={classnames(\n \"neeto-ui-rounded-lg delay-220 neeto-ui-shadow-sm translate flex cursor-pointer flex-col space-y-4 border p-6 no-underline outline-none transition-transform duration-300 ease-in-out hover:-translate-y-1\",\n className\n )}\n {...omit(UNSUPPORTED_LINK_PROPS, otherProps)}\n >\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n <div className=\"mb-2 flex items-center gap-4\">\n {Icon && <Icon className=\"neeto-ui-text-gray-600\" size={32} />}\n <Typography\n data-cy=\"settings-item-heading\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n </div>\n <Typography data-cy=\"settings-item-description\" style=\"body2\">\n {description}\n </Typography>\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 border-t pt-3\">{children}</div>\n )}\n </Link>\n);\n\nexport default memo(withRouter(Item));\n","import React from \"react\";\n\nimport { hyphenate } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Check } from \"neetoicons\";\nimport { Tag } from \"neetoui\";\n\nimport Item from \"./Item\";\n\nconst IntegrationItem = withT(\n ({ t, isConnected, icon, description, label, path, ...otherProps }) => (\n <Item\n {...{ description, icon, label, path, ...otherProps }}\n dataCy={`${hyphenate(label).replace(/\\./g, \"-\")}-integration-card`}\n >\n {isConnected && (\n <Tag\n className=\"flex-row-reverse\"\n data-cy=\"integration-status-tag\"\n icon={Check}\n label={t(\"neetoMolecules.integrationCard.connected\")}\n style=\"success\"\n />\n )}\n </Item>\n )\n);\n\nexport default React.memo(IntegrationItem);\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport IntegrationItem from \"./IntegrationItem\";\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const SettingsCard = isIntegration ? IntegrationItem : Item;\n\n const isLabelPresent = isPresent(label);\n\n return (\n <div\n {...{ id }}\n className={classNames(\"flex flex-col\", { \"mb-7\": isLabelPresent })}\n >\n {isLabelPresent && (\n <Typography\n className=\"mb-6 mt-2\"\n component=\"h2\"\n data-cy=\"settings-category-heading\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n )}\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4\">\n {items.map(item => (\n <SettingsCard key={item.label} {...item} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","import { filterBy, isNotEmpty } from \"neetocist\";\n\nconst isTextMatching = (label, searchTerm) =>\n label.toLowerCase().includes(searchTerm.trim().toLowerCase());\n\nexport const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView({\n behavior: \"smooth\",\n });\n};\n\nexport const filterCategories = ({ categories = [], searchTerm = \"\" }) => {\n const isSearchTermBlank = !searchTerm.trim();\n\n const filteredCategories = isSearchTermBlank\n ? categories\n : categories.map(category => ({\n ...category,\n items: filterBy(\n ({ label, description }) =>\n isTextMatching(label, searchTerm) ||\n isTextMatching(description, searchTerm),\n category.items\n ),\n }));\n\n return filterBy({ items: isNotEmpty }, filteredCategories);\n};\n","import React, { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport { NoData } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Header from \"components/Header\";\n\nimport Category from \"./Category\";\nimport { filterCategories, scrollIntoSettingCategory } from \"./utils\";\n\nconst Settings = ({\n isTitleHidden = false,\n isSearchHidden = false,\n categories = [],\n}) => {\n const { t } = useTranslation();\n\n const { category: categoryParam, searchTerm = \"\" } = useQueryParams();\n\n const filteredCategories = filterCategories({ categories, searchTerm });\n\n const isHeaderVisible = !isSearchHidden || !isTitleHidden;\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam);\n }, [categoryParam]);\n\n return (\n <div\n className={classNames(\"neeto-molecules-container\", {\n \"h-auto overflow-y-auto\": isTitleHidden,\n })}\n >\n {isHeaderVisible && (\n <Header\n className={classNames({ \"min-h-0 pb-4 pt-8\": isTitleHidden })}\n title={!isTitleHidden && t(\"neetoMolecules.settingsPage.title\")}\n searchProps={\n isSearchHidden\n ? null\n : {\n className: \"w-72\",\n placeholder: t(\n \"neetoMolecules.settingsPage.placeholder.search\"\n ),\n }\n }\n />\n )}\n {isEmpty(filteredCategories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <NoData title={t(\"neetoMolecules.settingsPage.noData\")} />\n </div>\n ) : (\n <div className=\"w-full\">\n {filteredCategories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n /**\n * Whether to hide the title or not.\n */\n isTitleHidden: propTypes.bool,\n /**\n * Whether to hide the search bar or not.\n */\n isSearchHidden: propTypes.bool,\n /**\n * An array of setting categories to be displayed.\n */\n categories: propTypes.array,\n};\n\nexport default Settings;\n"],"names":["UNSUPPORTED_LINK_PROPS","Item","_ref","label","description","_ref$icon","icon","Icon","path","dataCy","_ref$className","className","children","otherProps","_objectWithoutProperties","_excluded","React","createElement","Link","_extends","to","classnames","omit","concat","joinHyphenCase","size","Typography","style","weight","memo","withRouter","IntegrationItem","withT","t","isConnected","_objectSpread","hyphenate","replace","Tag","Check","Category","items","id","isIntegration","SettingsCard","isLabelPresent","isPresent","classNames","component","map","item","key","isTextMatching","searchTerm","toLowerCase","includes","trim","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","behavior","filterCategories","_ref$categories","categories","_ref$searchTerm","isSearchTermBlank","filteredCategories","category","filterBy","_ref2","isNotEmpty","Settings","_ref$isTitleHidden","isTitleHidden","_ref$isSearchHidden","isSearchHidden","_useTranslation","useTranslation","_useQueryParams","useQueryParams","categoryParam","_useQueryParams$searc","isHeaderVisible","useEffect","Header","title","searchProps","placeholder","isEmpty","NoData"],"mappings":"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"}
@@ -157,6 +157,8 @@ var filterCategories = function filterCategories(_ref) {
157
157
  var Settings = function Settings(_ref) {
158
158
  var _ref$isTitleHidden = _ref.isTitleHidden,
159
159
  isTitleHidden = _ref$isTitleHidden === void 0 ? false : _ref$isTitleHidden,
160
+ _ref$isSearchHidden = _ref.isSearchHidden,
161
+ isSearchHidden = _ref$isSearchHidden === void 0 ? false : _ref$isSearchHidden,
160
162
  _ref$categories = _ref.categories,
161
163
  categories = _ref$categories === void 0 ? [] : _ref$categories;
162
164
  var _useTranslation = reactI18next.useTranslation(),
@@ -169,6 +171,7 @@ var Settings = function Settings(_ref) {
169
171
  categories: categories,
170
172
  searchTerm: searchTerm
171
173
  });
174
+ var isHeaderVisible = !isSearchHidden || !isTitleHidden;
172
175
  React.useEffect(function () {
173
176
  scrollIntoSettingCategory(categoryParam);
174
177
  }, [categoryParam]);
@@ -176,12 +179,12 @@ var Settings = function Settings(_ref) {
176
179
  className: classnames__default["default"]("neeto-molecules-container", {
177
180
  "h-auto overflow-y-auto": isTitleHidden
178
181
  })
179
- }, /*#__PURE__*/React__default["default"].createElement(Header, {
182
+ }, isHeaderVisible && /*#__PURE__*/React__default["default"].createElement(Header, {
180
183
  className: classnames__default["default"]({
181
184
  "min-h-0 pb-4 pt-8": isTitleHidden
182
185
  }),
183
186
  title: !isTitleHidden && t("neetoMolecules.settingsPage.title"),
184
- searchProps: {
187
+ searchProps: isSearchHidden ? null : {
185
188
  className: "w-72",
186
189
  placeholder: t("neetoMolecules.settingsPage.placeholder.search")
187
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Settings.js","sources":["../../src/components/Settings/constants.js","../../src/components/Settings/Item.jsx","../../src/components/Settings/IntegrationItem.jsx","../../src/components/Settings/Category.jsx","../../src/components/Settings/utils.js","../../src/components/Settings/index.jsx"],"sourcesContent":["export const UNSUPPORTED_LINK_PROPS = [\"staticContext\", \"tReady\"];\n","import React, { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { omit } from \"ramda\";\nimport { withRouter, Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n dataCy,\n className = \"\",\n children,\n ...otherProps\n}) => (\n <Link\n data-cy={dataCy}\n to={path}\n className={classnames(\n \"neeto-ui-rounded-lg delay-220 neeto-ui-shadow-sm translate flex cursor-pointer flex-col space-y-4 border p-6 no-underline outline-none transition-transform duration-300 ease-in-out hover:-translate-y-1\",\n className\n )}\n {...omit(UNSUPPORTED_LINK_PROPS, otherProps)}\n >\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n <div className=\"mb-2 flex items-center gap-4\">\n {Icon && <Icon className=\"neeto-ui-text-gray-600\" size={32} />}\n <Typography\n data-cy=\"settings-item-heading\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n </div>\n <Typography data-cy=\"settings-item-description\" style=\"body2\">\n {description}\n </Typography>\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 border-t pt-3\">{children}</div>\n )}\n </Link>\n);\n\nexport default memo(withRouter(Item));\n","import React from \"react\";\n\nimport { hyphenate } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Check } from \"neetoicons\";\nimport { Tag } from \"neetoui\";\n\nimport Item from \"./Item\";\n\nconst IntegrationItem = withT(\n ({ t, isConnected, icon, description, label, path, ...otherProps }) => (\n <Item\n {...{ description, icon, label, path, ...otherProps }}\n dataCy={`${hyphenate(label).replace(/\\./g, \"-\")}-integration-card`}\n >\n {isConnected && (\n <Tag\n className=\"flex-row-reverse\"\n data-cy=\"integration-status-tag\"\n icon={Check}\n label={t(\"neetoMolecules.integrationCard.connected\")}\n style=\"success\"\n />\n )}\n </Item>\n )\n);\n\nexport default React.memo(IntegrationItem);\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport IntegrationItem from \"./IntegrationItem\";\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const SettingsCard = isIntegration ? IntegrationItem : Item;\n\n const isLabelPresent = isPresent(label);\n\n return (\n <div\n {...{ id }}\n className={classNames(\"flex flex-col\", { \"mb-7\": isLabelPresent })}\n >\n {isLabelPresent && (\n <Typography\n className=\"mb-6 mt-2\"\n component=\"h2\"\n data-cy=\"settings-category-heading\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n )}\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4\">\n {items.map(item => (\n <SettingsCard key={item.label} {...item} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","import { filterBy, isNotEmpty } from \"neetocist\";\n\nconst isTextMatching = (label, searchTerm) =>\n label.toLowerCase().includes(searchTerm.trim().toLowerCase());\n\nexport const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView({\n behavior: \"smooth\",\n });\n};\n\nexport const filterCategories = ({ categories = [], searchTerm = \"\" }) => {\n const isSearchTermBlank = !searchTerm.trim();\n\n const filteredCategories = isSearchTermBlank\n ? categories\n : categories.map(category => ({\n ...category,\n items: filterBy(\n ({ label, description }) =>\n isTextMatching(label, searchTerm) ||\n isTextMatching(description, searchTerm),\n category.items\n ),\n }));\n\n return filterBy({ items: isNotEmpty }, filteredCategories);\n};\n","import React, { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport { NoData } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Header from \"components/Header\";\n\nimport Category from \"./Category\";\nimport { filterCategories, scrollIntoSettingCategory } from \"./utils\";\n\nconst Settings = ({ isTitleHidden = false, categories = [] }) => {\n const { t } = useTranslation();\n\n const { category: categoryParam, searchTerm = \"\" } = useQueryParams();\n\n const filteredCategories = filterCategories({ categories, searchTerm });\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam);\n }, [categoryParam]);\n\n return (\n <div\n className={classNames(\"neeto-molecules-container\", {\n \"h-auto overflow-y-auto\": isTitleHidden,\n })}\n >\n <Header\n className={classNames({ \"min-h-0 pb-4 pt-8\": isTitleHidden })}\n title={!isTitleHidden && t(\"neetoMolecules.settingsPage.title\")}\n searchProps={{\n className: \"w-72\",\n placeholder: t(\"neetoMolecules.settingsPage.placeholder.search\"),\n }}\n />\n {isEmpty(filteredCategories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <NoData title={t(\"neetoMolecules.settingsPage.noData\")} />\n </div>\n ) : (\n <div className=\"w-full\">\n {filteredCategories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n /**\n * Whether to hide the title or not.\n */\n isTitleHidden: propTypes.bool,\n /**\n * An array of setting categories to be displayed.\n */\n categories: propTypes.array,\n};\n\nexport default Settings;\n"],"names":["UNSUPPORTED_LINK_PROPS","Item","_ref","label","description","_ref$icon","icon","Icon","path","dataCy","_ref$className","className","children","otherProps","_objectWithoutProperties","_excluded","React","createElement","Link","_extends","to","classnames","omit","concat","joinHyphenCase","size","Typography","style","weight","memo","withRouter","IntegrationItem","withT","t","isConnected","_objectSpread","hyphenate","replace","Tag","Check","Category","items","id","isIntegration","SettingsCard","isLabelPresent","isPresent","classNames","component","map","item","key","isTextMatching","searchTerm","toLowerCase","includes","trim","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","behavior","filterCategories","_ref$categories","categories","_ref$searchTerm","isSearchTermBlank","filteredCategories","category","filterBy","_ref2","isNotEmpty","Settings","_ref$isTitleHidden","isTitleHidden","_useTranslation","useTranslation","_useQueryParams","useQueryParams","categoryParam","_useQueryParams$searc","useEffect","Header","title","searchProps","placeholder","isEmpty","NoData"],"mappings":"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"}
1
+ {"version":3,"file":"Settings.js","sources":["../../src/components/Settings/constants.js","../../src/components/Settings/Item.jsx","../../src/components/Settings/IntegrationItem.jsx","../../src/components/Settings/Category.jsx","../../src/components/Settings/utils.js","../../src/components/Settings/index.jsx"],"sourcesContent":["export const UNSUPPORTED_LINK_PROPS = [\"staticContext\", \"tReady\"];\n","import React, { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\nimport { omit } from \"ramda\";\nimport { withRouter, Link } from \"react-router-dom\";\n\nimport { UNSUPPORTED_LINK_PROPS } from \"./constants\";\n\nconst Item = ({\n label,\n description,\n icon: Icon = null,\n path,\n dataCy,\n className = \"\",\n children,\n ...otherProps\n}) => (\n <Link\n data-cy={dataCy}\n to={path}\n className={classnames(\n \"neeto-ui-rounded-lg delay-220 neeto-ui-shadow-sm translate flex cursor-pointer flex-col space-y-4 border p-6 no-underline outline-none transition-transform duration-300 ease-in-out hover:-translate-y-1\",\n className\n )}\n {...omit(UNSUPPORTED_LINK_PROPS, otherProps)}\n >\n <div data-testid={`settings-item-${joinHyphenCase(label)}`}>\n <div className=\"mb-2 flex items-center gap-4\">\n {Icon && <Icon className=\"neeto-ui-text-gray-600\" size={32} />}\n <Typography\n data-cy=\"settings-item-heading\"\n style=\"h4\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n </div>\n <Typography data-cy=\"settings-item-description\" style=\"body2\">\n {description}\n </Typography>\n </div>\n {children && (\n <div className=\"neeto-ui-border-gray-300 border-t pt-3\">{children}</div>\n )}\n </Link>\n);\n\nexport default memo(withRouter(Item));\n","import React from \"react\";\n\nimport { hyphenate } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Check } from \"neetoicons\";\nimport { Tag } from \"neetoui\";\n\nimport Item from \"./Item\";\n\nconst IntegrationItem = withT(\n ({ t, isConnected, icon, description, label, path, ...otherProps }) => (\n <Item\n {...{ description, icon, label, path, ...otherProps }}\n dataCy={`${hyphenate(label).replace(/\\./g, \"-\")}-integration-card`}\n >\n {isConnected && (\n <Tag\n className=\"flex-row-reverse\"\n data-cy=\"integration-status-tag\"\n icon={Check}\n label={t(\"neetoMolecules.integrationCard.connected\")}\n style=\"success\"\n />\n )}\n </Item>\n )\n);\n\nexport default React.memo(IntegrationItem);\n","import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport IntegrationItem from \"./IntegrationItem\";\nimport Item from \"./Item\";\n\nconst Category = ({ items, label, id, isIntegration }) => {\n const SettingsCard = isIntegration ? IntegrationItem : Item;\n\n const isLabelPresent = isPresent(label);\n\n return (\n <div\n {...{ id }}\n className={classNames(\"flex flex-col\", { \"mb-7\": isLabelPresent })}\n >\n {isLabelPresent && (\n <Typography\n className=\"mb-6 mt-2\"\n component=\"h2\"\n data-cy=\"settings-category-heading\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {label}\n </Typography>\n )}\n <div className=\"grid grid-cols-1 gap-3 md:grid-cols-2 lg:grid-cols-2 lg:gap-6 xl:grid-cols-3 2xl:grid-cols-4\">\n {items.map(item => (\n <SettingsCard key={item.label} {...item} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default Category;\n","import { filterBy, isNotEmpty } from \"neetocist\";\n\nconst isTextMatching = (label, searchTerm) =>\n label.toLowerCase().includes(searchTerm.trim().toLowerCase());\n\nexport const scrollIntoSettingCategory = activeCategory => {\n document.getElementById(activeCategory)?.scrollIntoView({\n behavior: \"smooth\",\n });\n};\n\nexport const filterCategories = ({ categories = [], searchTerm = \"\" }) => {\n const isSearchTermBlank = !searchTerm.trim();\n\n const filteredCategories = isSearchTermBlank\n ? categories\n : categories.map(category => ({\n ...category,\n items: filterBy(\n ({ label, description }) =>\n isTextMatching(label, searchTerm) ||\n isTextMatching(description, searchTerm),\n category.items\n ),\n }));\n\n return filterBy({ items: isNotEmpty }, filteredCategories);\n};\n","import React, { useEffect } from \"react\";\n\nimport classNames from \"classnames\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport { NoData } from \"neetoui\";\nimport propTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Header from \"components/Header\";\n\nimport Category from \"./Category\";\nimport { filterCategories, scrollIntoSettingCategory } from \"./utils\";\n\nconst Settings = ({\n isTitleHidden = false,\n isSearchHidden = false,\n categories = [],\n}) => {\n const { t } = useTranslation();\n\n const { category: categoryParam, searchTerm = \"\" } = useQueryParams();\n\n const filteredCategories = filterCategories({ categories, searchTerm });\n\n const isHeaderVisible = !isSearchHidden || !isTitleHidden;\n\n useEffect(() => {\n scrollIntoSettingCategory(categoryParam);\n }, [categoryParam]);\n\n return (\n <div\n className={classNames(\"neeto-molecules-container\", {\n \"h-auto overflow-y-auto\": isTitleHidden,\n })}\n >\n {isHeaderVisible && (\n <Header\n className={classNames({ \"min-h-0 pb-4 pt-8\": isTitleHidden })}\n title={!isTitleHidden && t(\"neetoMolecules.settingsPage.title\")}\n searchProps={\n isSearchHidden\n ? null\n : {\n className: \"w-72\",\n placeholder: t(\n \"neetoMolecules.settingsPage.placeholder.search\"\n ),\n }\n }\n />\n )}\n {isEmpty(filteredCategories) ? (\n <div\n className=\"flex h-full w-full flex-grow items-center justify-center\"\n data-testid=\"settings-no-data\"\n >\n <NoData title={t(\"neetoMolecules.settingsPage.noData\")} />\n </div>\n ) : (\n <div className=\"w-full\">\n {filteredCategories.map(({ id, label, items, isIntegration }) => (\n <Category {...{ id, isIntegration, items, label }} key={id} />\n ))}\n </div>\n )}\n </div>\n );\n};\n\nSettings.propTypes = {\n /**\n * Whether to hide the title or not.\n */\n isTitleHidden: propTypes.bool,\n /**\n * Whether to hide the search bar or not.\n */\n isSearchHidden: propTypes.bool,\n /**\n * An array of setting categories to be displayed.\n */\n categories: propTypes.array,\n};\n\nexport default Settings;\n"],"names":["UNSUPPORTED_LINK_PROPS","Item","_ref","label","description","_ref$icon","icon","Icon","path","dataCy","_ref$className","className","children","otherProps","_objectWithoutProperties","_excluded","React","createElement","Link","_extends","to","classnames","omit","concat","joinHyphenCase","size","Typography","style","weight","memo","withRouter","IntegrationItem","withT","t","isConnected","_objectSpread","hyphenate","replace","Tag","Check","Category","items","id","isIntegration","SettingsCard","isLabelPresent","isPresent","classNames","component","map","item","key","isTextMatching","searchTerm","toLowerCase","includes","trim","scrollIntoSettingCategory","activeCategory","_document$getElementB","document","getElementById","scrollIntoView","behavior","filterCategories","_ref$categories","categories","_ref$searchTerm","isSearchTermBlank","filteredCategories","category","filterBy","_ref2","isNotEmpty","Settings","_ref$isTitleHidden","isTitleHidden","_ref$isSearchHidden","isSearchHidden","_useTranslation","useTranslation","_useQueryParams","useQueryParams","categoryParam","_useQueryParams$searc","isHeaderVisible","useEffect","Header","title","searchProps","placeholder","isEmpty","NoData"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "1.16.3",
3
+ "version": "1.16.4",
4
4
  "description": "A package of reusable molecular components for neeto products.",
5
5
  "repository": "git@github.com:bigbinary/neeto-molecules.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -92,6 +92,7 @@ type SettingCategory = {
92
92
  */
93
93
  const Settings: React.FC<{
94
94
  isTitleHidden?: boolean;
95
+ isSearchHidden?: boolean;
95
96
  categories: SettingCategory[];
96
97
  }>;
97
98
  export default Settings;
@@ -1,218 +0,0 @@
1
- import { _ as _extends } from './extends-093996c9.js';
2
- import { _ as _defineProperty } from './defineProperty-549061a7.js';
3
- import { _ as _slicedToArray } from './slicedToArray-b4278ecd.js';
4
- import { _ as _objectWithoutProperties } from './objectWithoutProperties-a0edb288.js';
5
- import React__default, { useState, useEffect } from 'react';
6
- import { Tooltip, Typography, Checkbox, Input, Modal, Spinner, Button } from '@bigbinary/neetoui';
7
- import { useTranslation } from 'react-i18next';
8
- import { n } from './inject-css-c86de496.js';
9
- import { buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
10
- import { not } from 'ramda';
11
- import CopyToClipboardButton from './CopyToClipboardButton.js';
12
- import 'classnames';
13
- import '@bigbinary/neeto-commons-frontend/utils/general';
14
- import '@bigbinary/neeto-icons';
15
-
16
- var css = ".neeto-molecules-share-timestamp-input .neeto-ui-input__wrapper{position:relative}.neeto-molecules-share-timestamp-input .neeto-ui-input__wrapper:not(:last-child):after{content:\":\";font-weight:bolder;position:absolute;right:-8px;top:4px}";
17
- n(css,{});
18
-
19
- var ONE_SECOND = 1;
20
- var ONE_MINUTE = 60 * ONE_SECOND;
21
- var ONE_HOUR = 60 * ONE_MINUTE;
22
-
23
- var getTimeValues = function getTimeValues(playbackTimeInSec) {
24
- var hour = Math.floor(playbackTimeInSec / ONE_HOUR);
25
- playbackTimeInSec = playbackTimeInSec % ONE_HOUR;
26
- var minute = Math.floor(playbackTimeInSec / ONE_MINUTE);
27
- playbackTimeInSec = playbackTimeInSec % ONE_MINUTE;
28
- var second = Math.floor(playbackTimeInSec / ONE_SECOND);
29
- return {
30
- hour: hour,
31
- minute: minute,
32
- second: second
33
- };
34
- };
35
- var padZero = function padZero(number) {
36
- var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
37
- var string = String(number);
38
- var threshold = Math.pow(10, length - 1);
39
- if (number < threshold) {
40
- while (String(threshold).length > string.length) {
41
- string = "0".concat(number);
42
- }
43
- }
44
- return string;
45
- };
46
- var shouldRenderHoursInput = function shouldRenderHoursInput(duration) {
47
- var hours = Math.floor(duration / ONE_HOUR);
48
- return hours > 0;
49
- };
50
-
51
- function ownKeys$1(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; }
52
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
53
- var ShareModalBody = function ShareModalBody(_ref) {
54
- var recordingUrl = _ref.recordingUrl,
55
- totalDuration = _ref.totalDuration,
56
- getCurrentTimestamp = _ref.getCurrentTimestamp,
57
- isOpen = _ref.isOpen;
58
- var _useTranslation = useTranslation(),
59
- t = _useTranslation.t;
60
- var currentTimestamp = getCurrentTimestamp();
61
- var _useState = useState(""),
62
- _useState2 = _slicedToArray(_useState, 2),
63
- shareLink = _useState2[0],
64
- setShareLink = _useState2[1];
65
- var _useState3 = useState(currentTimestamp),
66
- _useState4 = _slicedToArray(_useState3, 2),
67
- currentPlaybackTime = _useState4[0],
68
- setCurrentPlaybackTime = _useState4[1];
69
- var _useState5 = useState(currentTimestamp > 0),
70
- _useState6 = _slicedToArray(_useState5, 2),
71
- isPlaybackTimeCheckboxChecked = _useState6[0],
72
- setIsPlaybackTimeCheckboxChecked = _useState6[1];
73
- var _getTimeValues = getTimeValues(currentPlaybackTime),
74
- hour = _getTimeValues.hour,
75
- minute = _getTimeValues.minute,
76
- second = _getTimeValues.second;
77
- var handlePlaybackTimestampChange = function handlePlaybackTimestampChange(_ref2) {
78
- var valueInSec = _ref2.valueInSec,
79
- offset = _ref2.offset;
80
- var intendedTimeInSec = currentPlaybackTime + valueInSec - offset;
81
- setCurrentPlaybackTime(Math.min(intendedTimeInSec, totalDuration));
82
- };
83
- var renderTimeInput = function renderTimeInput(_ref3) {
84
- var value = _ref3.value,
85
- onChange = _ref3.onChange,
86
- max = _ref3.max;
87
- return /*#__PURE__*/React__default.createElement(Input, {
88
- max: max,
89
- onChange: onChange,
90
- value: value,
91
- className: "w-14",
92
- disabled: not(isPlaybackTimeCheckboxChecked),
93
- min: 0,
94
- type: "number",
95
- unlimitedChars: false
96
- });
97
- };
98
- useEffect(function () {
99
- if (not(isOpen)) return;
100
- setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);
101
- setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);
102
- }, [isOpen]);
103
- useEffect(function () {
104
- var playbackUrl = buildUrl(recordingUrl, _objectSpread$1({}, isPlaybackTimeCheckboxChecked && currentPlaybackTime > 0 && {
105
- time: currentPlaybackTime
106
- }));
107
- setShareLink(playbackUrl);
108
- }, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);
109
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
110
- className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex items-center justify-between p-2"
111
- }, /*#__PURE__*/React__default.createElement(Tooltip, {
112
- content: shareLink
113
- }, /*#__PURE__*/React__default.createElement(Typography, {
114
- className: "truncate",
115
- style: "body2"
116
- }, shareLink)), /*#__PURE__*/React__default.createElement(CopyToClipboardButton, {
117
- className: "flex-shrink-0",
118
- style: "secondary",
119
- tooltipContent: t("neetoMolecules.shareRecording.tooltipContent"),
120
- value: shareLink,
121
- successTooltipContent: t("neetoMolecules.shareRecording.successTooltipContent")
122
- })), /*#__PURE__*/React__default.createElement("div", {
123
- className: "flex items-center gap-x-2"
124
- }, /*#__PURE__*/React__default.createElement(Checkbox, {
125
- checked: isPlaybackTimeCheckboxChecked,
126
- className: "grow-0",
127
- "data-cy": "time-checkbox",
128
- label: t("neetoMolecules.shareRecording.checkboxLabel"),
129
- onChange: function onChange(_ref4) {
130
- var checked = _ref4.target.checked;
131
- return setIsPlaybackTimeCheckboxChecked(checked);
132
- }
133
- }), /*#__PURE__*/React__default.createElement("div", {
134
- className: "neeto-molecules-share-timestamp-input flex items-center gap-x-3",
135
- "data-cy": "time-inputs"
136
- }, shouldRenderHoursInput(totalDuration) && renderTimeInput({
137
- max: 99,
138
- value: padZero(hour),
139
- onChange: function onChange(e) {
140
- return handlePlaybackTimestampChange({
141
- valueInSec: e.target.value * ONE_HOUR,
142
- offset: hour * ONE_HOUR
143
- });
144
- }
145
- }), renderTimeInput({
146
- max: 59,
147
- value: padZero(minute),
148
- onChange: function onChange(e) {
149
- return handlePlaybackTimestampChange({
150
- valueInSec: e.target.value * ONE_MINUTE,
151
- offset: minute * ONE_MINUTE
152
- });
153
- }
154
- }), renderTimeInput({
155
- max: 59,
156
- value: padZero(second),
157
- onChange: function onChange(e) {
158
- return handlePlaybackTimestampChange({
159
- valueInSec: e.target.value * ONE_SECOND,
160
- offset: second * ONE_SECOND
161
- });
162
- }
163
- }))));
164
- };
165
-
166
- var _excluded = ["recordingUrl", "totalDuration", "getCurrentTimestamp", "buttonProps", "isLoading"];
167
- 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; }
168
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
169
- var ShareRecording = function ShareRecording(_ref) {
170
- var recordingUrl = _ref.recordingUrl,
171
- totalDuration = _ref.totalDuration,
172
- getCurrentTimestamp = _ref.getCurrentTimestamp,
173
- _ref$buttonProps = _ref.buttonProps,
174
- buttonProps = _ref$buttonProps === void 0 ? {} : _ref$buttonProps,
175
- _ref$isLoading = _ref.isLoading,
176
- isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
177
- otherProps = _objectWithoutProperties(_ref, _excluded);
178
- var _useTranslation = useTranslation(),
179
- t = _useTranslation.t;
180
- var _useState = useState(false),
181
- _useState2 = _slicedToArray(_useState, 2),
182
- isOpen = _useState2[0],
183
- setIsOpen = _useState2[1];
184
- var handleClick = function handleClick() {
185
- var _buttonProps$onClick;
186
- setIsOpen(true);
187
- buttonProps === null || buttonProps === void 0 ? void 0 : (_buttonProps$onClick = buttonProps.onClick) === null || _buttonProps$onClick === void 0 ? void 0 : _buttonProps$onClick.call(buttonProps);
188
- };
189
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Modal, _extends({}, _objectSpread({
190
- isOpen: isOpen
191
- }, otherProps), {
192
- "data-cy": "share-modal",
193
- size: "large",
194
- onClose: function onClose() {
195
- return setIsOpen(false);
196
- }
197
- }), /*#__PURE__*/React__default.createElement(Modal.Header, null, /*#__PURE__*/React__default.createElement(Typography, {
198
- style: "h2"
199
- }, t("neetoMolecules.shareRecording.title"))), /*#__PURE__*/React__default.createElement(Modal.Body, {
200
- className: "flex flex-col space-y-2"
201
- }, isLoading ? /*#__PURE__*/React__default.createElement(Spinner, {
202
- className: "mx-auto"
203
- }) : /*#__PURE__*/React__default.createElement(ShareModalBody, {
204
- getCurrentTimestamp: getCurrentTimestamp,
205
- isOpen: isOpen,
206
- recordingUrl: recordingUrl,
207
- totalDuration: totalDuration
208
- }))), /*#__PURE__*/React__default.createElement(Button, _extends({
209
- "data-cy": "share-button",
210
- label: t("neetoMolecules.common.actions.share"),
211
- style: "secondary"
212
- }, buttonProps, {
213
- onClick: handleClick
214
- })));
215
- };
216
-
217
- export { ShareRecording as default };
218
- //# sourceMappingURL=ShareRecording.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShareRecording.js","sources":["../src/components/ShareRecording/constants.js","../src/components/ShareRecording/utils.js","../src/components/ShareRecording/ShareModalBody.jsx","../src/components/ShareRecording/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE, ONE_SECOND } from \"./constants\";\n\nexport const getTimeValues = playbackTimeInSec => {\n const hour = Math.floor(playbackTimeInSec / ONE_HOUR);\n playbackTimeInSec = playbackTimeInSec % ONE_HOUR;\n const minute = Math.floor(playbackTimeInSec / ONE_MINUTE);\n playbackTimeInSec = playbackTimeInSec % ONE_MINUTE;\n const second = Math.floor(playbackTimeInSec / ONE_SECOND);\n\n return { hour, minute, second };\n};\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n","import React, { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography, Input, Checkbox, Tooltip } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport { ONE_HOUR, ONE_MINUTE, ONE_SECOND } from \"./constants\";\nimport \"./share-modal.scss\";\nimport { getTimeValues, padZero, shouldRenderHoursInput } from \"./utils\";\n\nconst ShareModalBody = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n}) => {\n const { t } = useTranslation();\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLink, setShareLink] = useState(\"\");\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n\n const [isPlaybackTimeCheckboxChecked, setIsPlaybackTimeCheckboxChecked] =\n useState(currentTimestamp > 0);\n\n const { hour, minute, second } = getTimeValues(currentPlaybackTime);\n\n const handlePlaybackTimestampChange = ({ valueInSec, offset }) => {\n const intendedTimeInSec = currentPlaybackTime + valueInSec - offset;\n\n setCurrentPlaybackTime(Math.min(intendedTimeInSec, totalDuration));\n };\n\n const renderTimeInput = ({ value, onChange, max }) => (\n <Input\n {...{ max, onChange, value }}\n className=\"w-14\"\n disabled={not(isPlaybackTimeCheckboxChecked)}\n min={0}\n type=\"number\"\n unlimitedChars={false}\n />\n );\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n }, [isOpen]);\n\n useEffect(() => {\n const playbackUrl = buildUrl(recordingUrl, {\n ...(isPlaybackTimeCheckboxChecked &&\n currentPlaybackTime > 0 && { time: currentPlaybackTime }),\n });\n\n setShareLink(playbackUrl);\n }, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);\n\n return (\n <>\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex items-center justify-between p-2\">\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n tooltipContent={t(\"neetoMolecules.shareRecording.tooltipContent\")}\n value={shareLink}\n successTooltipContent={t(\n \"neetoMolecules.shareRecording.successTooltipContent\"\n )}\n />\n </div>\n <div className=\"flex items-center gap-x-2\">\n <Checkbox\n checked={isPlaybackTimeCheckboxChecked}\n className=\"grow-0\"\n data-cy=\"time-checkbox\"\n label={t(\"neetoMolecules.shareRecording.checkboxLabel\")}\n onChange={({ target: { checked } }) =>\n setIsPlaybackTimeCheckboxChecked(checked)\n }\n />\n <div\n className=\"neeto-molecules-share-timestamp-input flex items-center gap-x-3\"\n data-cy=\"time-inputs\"\n >\n {shouldRenderHoursInput(totalDuration) &&\n renderTimeInput({\n max: 99,\n value: padZero(hour),\n onChange: e =>\n handlePlaybackTimestampChange({\n valueInSec: e.target.value * ONE_HOUR,\n offset: hour * ONE_HOUR,\n }),\n })}\n {renderTimeInput({\n max: 59,\n value: padZero(minute),\n onChange: e =>\n handlePlaybackTimestampChange({\n valueInSec: e.target.value * ONE_MINUTE,\n offset: minute * ONE_MINUTE,\n }),\n })}\n {renderTimeInput({\n max: 59,\n value: padZero(second),\n onChange: e =>\n handlePlaybackTimestampChange({\n valueInSec: e.target.value * ONE_SECOND,\n offset: second * ONE_SECOND,\n }),\n })}\n </div>\n </div>\n </>\n );\n};\n\nexport default ShareModalBody;\n","import React, { useState } from \"react\";\n\nimport { Modal, Typography, Spinner, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport \"./share-modal.scss\";\nimport ShareModalBody from \"./ShareModalBody\";\n\nconst ShareRecording = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n buttonProps = {},\n isLoading = false,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const [isOpen, setIsOpen] = useState(false);\n\n const handleClick = () => {\n setIsOpen(true);\n buttonProps?.onClick?.();\n };\n\n return (\n <>\n <Modal\n {...{ isOpen, ...otherProps }}\n data-cy=\"share-modal\"\n size=\"large\"\n onClose={() => setIsOpen(false)}\n >\n <Modal.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Modal.Header>\n <Modal.Body className=\"flex flex-col space-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <ShareModalBody\n {...{ getCurrentTimestamp, isOpen, recordingUrl, totalDuration }}\n />\n )}\n </Modal.Body>\n </Modal>\n <Button\n data-cy=\"share-button\"\n label={t(\"neetoMolecules.common.actions.share\")}\n style=\"secondary\"\n {...buttonProps}\n onClick={handleClick}\n />\n </>\n );\n};\n\nShareRecording.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string.isRequired,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Additional props for the button component.\n */\n buttonProps: PropTypes.object,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n};\n\nexport default ShareRecording;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","getTimeValues","playbackTimeInSec","hour","Math","floor","minute","second","padZero","number","length","arguments","undefined","string","String","threshold","pow","concat","shouldRenderHoursInput","duration","hours","ShareModalBody","_ref","recordingUrl","totalDuration","getCurrentTimestamp","isOpen","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLink","setShareLink","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","_useState6","isPlaybackTimeCheckboxChecked","setIsPlaybackTimeCheckboxChecked","_getTimeValues","handlePlaybackTimestampChange","_ref2","valueInSec","offset","intendedTimeInSec","min","renderTimeInput","_ref3","value","onChange","max","React","createElement","Input","className","disabled","not","type","unlimitedChars","useEffect","playbackUrl","buildUrl","_objectSpread","time","Fragment","Tooltip","content","Typography","style","CopyToClipboardButton","tooltipContent","successTooltipContent","Checkbox","checked","label","_ref4","target","e","ShareRecording","_ref$buttonProps","buttonProps","_ref$isLoading","isLoading","otherProps","_objectWithoutProperties","_excluded","setIsOpen","handleClick","_buttonProps$onClick","onClick","call","Modal","_extends","size","onClose","Header","Body","Spinner","Button"],"mappings":"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"}
@@ -1,224 +0,0 @@
1
- 'use strict';
2
-
3
- var _extends = require('./extends-1b35a664.js');
4
- var defineProperty = require('./defineProperty-886ed289.js');
5
- var slicedToArray = require('./slicedToArray-f320d9e7.js');
6
- var objectWithoutProperties = require('./objectWithoutProperties-2fed2d7d.js');
7
- var React = require('react');
8
- var neetoui = require('@bigbinary/neetoui');
9
- var reactI18next = require('react-i18next');
10
- var injectCss = require('./inject-css-80a5faa3.js');
11
- var utils = require('@bigbinary/neeto-commons-frontend/utils');
12
- var ramda = require('ramda');
13
- var CopyToClipboardButton = require('./CopyToClipboardButton.js');
14
- require('classnames');
15
- require('@bigbinary/neeto-commons-frontend/utils/general');
16
- require('@bigbinary/neeto-icons');
17
-
18
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
-
20
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
21
-
22
- var css = ".neeto-molecules-share-timestamp-input .neeto-ui-input__wrapper{position:relative}.neeto-molecules-share-timestamp-input .neeto-ui-input__wrapper:not(:last-child):after{content:\":\";font-weight:bolder;position:absolute;right:-8px;top:4px}";
23
- injectCss.n(css,{});
24
-
25
- var ONE_SECOND = 1;
26
- var ONE_MINUTE = 60 * ONE_SECOND;
27
- var ONE_HOUR = 60 * ONE_MINUTE;
28
-
29
- var getTimeValues = function getTimeValues(playbackTimeInSec) {
30
- var hour = Math.floor(playbackTimeInSec / ONE_HOUR);
31
- playbackTimeInSec = playbackTimeInSec % ONE_HOUR;
32
- var minute = Math.floor(playbackTimeInSec / ONE_MINUTE);
33
- playbackTimeInSec = playbackTimeInSec % ONE_MINUTE;
34
- var second = Math.floor(playbackTimeInSec / ONE_SECOND);
35
- return {
36
- hour: hour,
37
- minute: minute,
38
- second: second
39
- };
40
- };
41
- var padZero = function padZero(number) {
42
- var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
43
- var string = String(number);
44
- var threshold = Math.pow(10, length - 1);
45
- if (number < threshold) {
46
- while (String(threshold).length > string.length) {
47
- string = "0".concat(number);
48
- }
49
- }
50
- return string;
51
- };
52
- var shouldRenderHoursInput = function shouldRenderHoursInput(duration) {
53
- var hours = Math.floor(duration / ONE_HOUR);
54
- return hours > 0;
55
- };
56
-
57
- function ownKeys$1(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; }
58
- function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
59
- var ShareModalBody = function ShareModalBody(_ref) {
60
- var recordingUrl = _ref.recordingUrl,
61
- totalDuration = _ref.totalDuration,
62
- getCurrentTimestamp = _ref.getCurrentTimestamp,
63
- isOpen = _ref.isOpen;
64
- var _useTranslation = reactI18next.useTranslation(),
65
- t = _useTranslation.t;
66
- var currentTimestamp = getCurrentTimestamp();
67
- var _useState = React.useState(""),
68
- _useState2 = slicedToArray._slicedToArray(_useState, 2),
69
- shareLink = _useState2[0],
70
- setShareLink = _useState2[1];
71
- var _useState3 = React.useState(currentTimestamp),
72
- _useState4 = slicedToArray._slicedToArray(_useState3, 2),
73
- currentPlaybackTime = _useState4[0],
74
- setCurrentPlaybackTime = _useState4[1];
75
- var _useState5 = React.useState(currentTimestamp > 0),
76
- _useState6 = slicedToArray._slicedToArray(_useState5, 2),
77
- isPlaybackTimeCheckboxChecked = _useState6[0],
78
- setIsPlaybackTimeCheckboxChecked = _useState6[1];
79
- var _getTimeValues = getTimeValues(currentPlaybackTime),
80
- hour = _getTimeValues.hour,
81
- minute = _getTimeValues.minute,
82
- second = _getTimeValues.second;
83
- var handlePlaybackTimestampChange = function handlePlaybackTimestampChange(_ref2) {
84
- var valueInSec = _ref2.valueInSec,
85
- offset = _ref2.offset;
86
- var intendedTimeInSec = currentPlaybackTime + valueInSec - offset;
87
- setCurrentPlaybackTime(Math.min(intendedTimeInSec, totalDuration));
88
- };
89
- var renderTimeInput = function renderTimeInput(_ref3) {
90
- var value = _ref3.value,
91
- onChange = _ref3.onChange,
92
- max = _ref3.max;
93
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
94
- max: max,
95
- onChange: onChange,
96
- value: value,
97
- className: "w-14",
98
- disabled: ramda.not(isPlaybackTimeCheckboxChecked),
99
- min: 0,
100
- type: "number",
101
- unlimitedChars: false
102
- });
103
- };
104
- React.useEffect(function () {
105
- if (ramda.not(isOpen)) return;
106
- setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);
107
- setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);
108
- }, [isOpen]);
109
- React.useEffect(function () {
110
- var playbackUrl = utils.buildUrl(recordingUrl, _objectSpread$1({}, isPlaybackTimeCheckboxChecked && currentPlaybackTime > 0 && {
111
- time: currentPlaybackTime
112
- }));
113
- setShareLink(playbackUrl);
114
- }, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);
115
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
116
- className: "neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex items-center justify-between p-2"
117
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
118
- content: shareLink
119
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
120
- className: "truncate",
121
- style: "body2"
122
- }, shareLink)), /*#__PURE__*/React__default["default"].createElement(CopyToClipboardButton, {
123
- className: "flex-shrink-0",
124
- style: "secondary",
125
- tooltipContent: t("neetoMolecules.shareRecording.tooltipContent"),
126
- value: shareLink,
127
- successTooltipContent: t("neetoMolecules.shareRecording.successTooltipContent")
128
- })), /*#__PURE__*/React__default["default"].createElement("div", {
129
- className: "flex items-center gap-x-2"
130
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Checkbox, {
131
- checked: isPlaybackTimeCheckboxChecked,
132
- className: "grow-0",
133
- "data-cy": "time-checkbox",
134
- label: t("neetoMolecules.shareRecording.checkboxLabel"),
135
- onChange: function onChange(_ref4) {
136
- var checked = _ref4.target.checked;
137
- return setIsPlaybackTimeCheckboxChecked(checked);
138
- }
139
- }), /*#__PURE__*/React__default["default"].createElement("div", {
140
- className: "neeto-molecules-share-timestamp-input flex items-center gap-x-3",
141
- "data-cy": "time-inputs"
142
- }, shouldRenderHoursInput(totalDuration) && renderTimeInput({
143
- max: 99,
144
- value: padZero(hour),
145
- onChange: function onChange(e) {
146
- return handlePlaybackTimestampChange({
147
- valueInSec: e.target.value * ONE_HOUR,
148
- offset: hour * ONE_HOUR
149
- });
150
- }
151
- }), renderTimeInput({
152
- max: 59,
153
- value: padZero(minute),
154
- onChange: function onChange(e) {
155
- return handlePlaybackTimestampChange({
156
- valueInSec: e.target.value * ONE_MINUTE,
157
- offset: minute * ONE_MINUTE
158
- });
159
- }
160
- }), renderTimeInput({
161
- max: 59,
162
- value: padZero(second),
163
- onChange: function onChange(e) {
164
- return handlePlaybackTimestampChange({
165
- valueInSec: e.target.value * ONE_SECOND,
166
- offset: second * ONE_SECOND
167
- });
168
- }
169
- }))));
170
- };
171
-
172
- var _excluded = ["recordingUrl", "totalDuration", "getCurrentTimestamp", "buttonProps", "isLoading"];
173
- 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; }
174
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
175
- var ShareRecording = function ShareRecording(_ref) {
176
- var recordingUrl = _ref.recordingUrl,
177
- totalDuration = _ref.totalDuration,
178
- getCurrentTimestamp = _ref.getCurrentTimestamp,
179
- _ref$buttonProps = _ref.buttonProps,
180
- buttonProps = _ref$buttonProps === void 0 ? {} : _ref$buttonProps,
181
- _ref$isLoading = _ref.isLoading,
182
- isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
183
- otherProps = objectWithoutProperties._objectWithoutProperties(_ref, _excluded);
184
- var _useTranslation = reactI18next.useTranslation(),
185
- t = _useTranslation.t;
186
- var _useState = React.useState(false),
187
- _useState2 = slicedToArray._slicedToArray(_useState, 2),
188
- isOpen = _useState2[0],
189
- setIsOpen = _useState2[1];
190
- var handleClick = function handleClick() {
191
- var _buttonProps$onClick;
192
- setIsOpen(true);
193
- buttonProps === null || buttonProps === void 0 ? void 0 : (_buttonProps$onClick = buttonProps.onClick) === null || _buttonProps$onClick === void 0 ? void 0 : _buttonProps$onClick.call(buttonProps);
194
- };
195
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Modal, _extends._extends({}, _objectSpread({
196
- isOpen: isOpen
197
- }, otherProps), {
198
- "data-cy": "share-modal",
199
- size: "large",
200
- onClose: function onClose() {
201
- return setIsOpen(false);
202
- }
203
- }), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
204
- style: "h2"
205
- }, t("neetoMolecules.shareRecording.title"))), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Body, {
206
- className: "flex flex-col space-y-2"
207
- }, isLoading ? /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, {
208
- className: "mx-auto"
209
- }) : /*#__PURE__*/React__default["default"].createElement(ShareModalBody, {
210
- getCurrentTimestamp: getCurrentTimestamp,
211
- isOpen: isOpen,
212
- recordingUrl: recordingUrl,
213
- totalDuration: totalDuration
214
- }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends._extends({
215
- "data-cy": "share-button",
216
- label: t("neetoMolecules.common.actions.share"),
217
- style: "secondary"
218
- }, buttonProps, {
219
- onClick: handleClick
220
- })));
221
- };
222
-
223
- module.exports = ShareRecording;
224
- //# sourceMappingURL=ShareRecording.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShareRecording.js","sources":["../../src/components/ShareRecording/constants.js","../../src/components/ShareRecording/utils.js","../../src/components/ShareRecording/ShareModalBody.jsx","../../src/components/ShareRecording/index.jsx"],"sourcesContent":["export const ONE_SECOND = 1;\nexport const ONE_MINUTE = 60 * ONE_SECOND;\nexport const ONE_HOUR = 60 * ONE_MINUTE;\n","import { ONE_HOUR, ONE_MINUTE, ONE_SECOND } from \"./constants\";\n\nexport const getTimeValues = playbackTimeInSec => {\n const hour = Math.floor(playbackTimeInSec / ONE_HOUR);\n playbackTimeInSec = playbackTimeInSec % ONE_HOUR;\n const minute = Math.floor(playbackTimeInSec / ONE_MINUTE);\n playbackTimeInSec = playbackTimeInSec % ONE_MINUTE;\n const second = Math.floor(playbackTimeInSec / ONE_SECOND);\n\n return { hour, minute, second };\n};\n\nexport const padZero = (number, length = 2) => {\n let string = String(number);\n const threshold = Math.pow(10, length - 1);\n\n if (number < threshold) {\n while (String(threshold).length > string.length) {\n string = `0${number}`;\n }\n }\n\n return string;\n};\n\nexport const shouldRenderHoursInput = duration => {\n const hours = Math.floor(duration / ONE_HOUR);\n\n return hours > 0;\n};\n","import React, { useState, useEffect } from \"react\";\n\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography, Input, Checkbox, Tooltip } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\n\nimport { ONE_HOUR, ONE_MINUTE, ONE_SECOND } from \"./constants\";\nimport \"./share-modal.scss\";\nimport { getTimeValues, padZero, shouldRenderHoursInput } from \"./utils\";\n\nconst ShareModalBody = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n isOpen,\n}) => {\n const { t } = useTranslation();\n const currentTimestamp = getCurrentTimestamp();\n\n const [shareLink, setShareLink] = useState(\"\");\n const [currentPlaybackTime, setCurrentPlaybackTime] =\n useState(currentTimestamp);\n\n const [isPlaybackTimeCheckboxChecked, setIsPlaybackTimeCheckboxChecked] =\n useState(currentTimestamp > 0);\n\n const { hour, minute, second } = getTimeValues(currentPlaybackTime);\n\n const handlePlaybackTimestampChange = ({ valueInSec, offset }) => {\n const intendedTimeInSec = currentPlaybackTime + valueInSec - offset;\n\n setCurrentPlaybackTime(Math.min(intendedTimeInSec, totalDuration));\n };\n\n const renderTimeInput = ({ value, onChange, max }) => (\n <Input\n {...{ max, onChange, value }}\n className=\"w-14\"\n disabled={not(isPlaybackTimeCheckboxChecked)}\n min={0}\n type=\"number\"\n unlimitedChars={false}\n />\n );\n\n useEffect(() => {\n if (not(isOpen)) return;\n\n setIsPlaybackTimeCheckboxChecked(currentTimestamp > 0);\n setCurrentPlaybackTime(currentTimestamp > 0 ? currentTimestamp : 0);\n }, [isOpen]);\n\n useEffect(() => {\n const playbackUrl = buildUrl(recordingUrl, {\n ...(isPlaybackTimeCheckboxChecked &&\n currentPlaybackTime > 0 && { time: currentPlaybackTime }),\n });\n\n setShareLink(playbackUrl);\n }, [recordingUrl, isPlaybackTimeCheckboxChecked, currentPlaybackTime]);\n\n return (\n <>\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg mb-3 flex items-center justify-between p-2\">\n <Tooltip content={shareLink}>\n <Typography className=\"truncate\" style=\"body2\">\n {shareLink}\n </Typography>\n </Tooltip>\n <CopyToClipboardButton\n className=\"flex-shrink-0\"\n style=\"secondary\"\n tooltipContent={t(\"neetoMolecules.shareRecording.tooltipContent\")}\n value={shareLink}\n successTooltipContent={t(\n \"neetoMolecules.shareRecording.successTooltipContent\"\n )}\n />\n </div>\n <div className=\"flex items-center gap-x-2\">\n <Checkbox\n checked={isPlaybackTimeCheckboxChecked}\n className=\"grow-0\"\n data-cy=\"time-checkbox\"\n label={t(\"neetoMolecules.shareRecording.checkboxLabel\")}\n onChange={({ target: { checked } }) =>\n setIsPlaybackTimeCheckboxChecked(checked)\n }\n />\n <div\n className=\"neeto-molecules-share-timestamp-input flex items-center gap-x-3\"\n data-cy=\"time-inputs\"\n >\n {shouldRenderHoursInput(totalDuration) &&\n renderTimeInput({\n max: 99,\n value: padZero(hour),\n onChange: e =>\n handlePlaybackTimestampChange({\n valueInSec: e.target.value * ONE_HOUR,\n offset: hour * ONE_HOUR,\n }),\n })}\n {renderTimeInput({\n max: 59,\n value: padZero(minute),\n onChange: e =>\n handlePlaybackTimestampChange({\n valueInSec: e.target.value * ONE_MINUTE,\n offset: minute * ONE_MINUTE,\n }),\n })}\n {renderTimeInput({\n max: 59,\n value: padZero(second),\n onChange: e =>\n handlePlaybackTimestampChange({\n valueInSec: e.target.value * ONE_SECOND,\n offset: second * ONE_SECOND,\n }),\n })}\n </div>\n </div>\n </>\n );\n};\n\nexport default ShareModalBody;\n","import React, { useState } from \"react\";\n\nimport { Modal, Typography, Spinner, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport \"./share-modal.scss\";\nimport ShareModalBody from \"./ShareModalBody\";\n\nconst ShareRecording = ({\n recordingUrl,\n totalDuration,\n getCurrentTimestamp,\n buttonProps = {},\n isLoading = false,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const [isOpen, setIsOpen] = useState(false);\n\n const handleClick = () => {\n setIsOpen(true);\n buttonProps?.onClick?.();\n };\n\n return (\n <>\n <Modal\n {...{ isOpen, ...otherProps }}\n data-cy=\"share-modal\"\n size=\"large\"\n onClose={() => setIsOpen(false)}\n >\n <Modal.Header>\n <Typography style=\"h2\">\n {t(\"neetoMolecules.shareRecording.title\")}\n </Typography>\n </Modal.Header>\n <Modal.Body className=\"flex flex-col space-y-2\">\n {isLoading ? (\n <Spinner className=\"mx-auto\" />\n ) : (\n <ShareModalBody\n {...{ getCurrentTimestamp, isOpen, recordingUrl, totalDuration }}\n />\n )}\n </Modal.Body>\n </Modal>\n <Button\n data-cy=\"share-button\"\n label={t(\"neetoMolecules.common.actions.share\")}\n style=\"secondary\"\n {...buttonProps}\n onClick={handleClick}\n />\n </>\n );\n};\n\nShareRecording.propTypes = {\n /**\n * Recording URL used for building the share link.\n */\n recordingUrl: PropTypes.string.isRequired,\n /**\n * Total duration of the content being shared.\n */\n totalDuration: PropTypes.number.isRequired,\n /**\n * A function that returns current playback time of the recorded content in seconds.\n */\n getCurrentTimestamp: PropTypes.func.isRequired,\n /**\n * Additional props for the button component.\n */\n buttonProps: PropTypes.object,\n /**\n * Boolean indicating whether content is loading or not.\n */\n isLoading: PropTypes.bool,\n};\n\nexport default ShareRecording;\n"],"names":["ONE_SECOND","ONE_MINUTE","ONE_HOUR","getTimeValues","playbackTimeInSec","hour","Math","floor","minute","second","padZero","number","length","arguments","undefined","string","String","threshold","pow","concat","shouldRenderHoursInput","duration","hours","ShareModalBody","_ref","recordingUrl","totalDuration","getCurrentTimestamp","isOpen","_useTranslation","useTranslation","t","currentTimestamp","_useState","useState","_useState2","_slicedToArray","shareLink","setShareLink","_useState3","_useState4","currentPlaybackTime","setCurrentPlaybackTime","_useState5","_useState6","isPlaybackTimeCheckboxChecked","setIsPlaybackTimeCheckboxChecked","_getTimeValues","handlePlaybackTimestampChange","_ref2","valueInSec","offset","intendedTimeInSec","min","renderTimeInput","_ref3","value","onChange","max","React","createElement","Input","className","disabled","not","type","unlimitedChars","useEffect","playbackUrl","buildUrl","_objectSpread","time","Fragment","Tooltip","content","Typography","style","CopyToClipboardButton","tooltipContent","successTooltipContent","Checkbox","checked","label","_ref4","target","e","ShareRecording","_ref$buttonProps","buttonProps","_ref$isLoading","isLoading","otherProps","_objectWithoutProperties","_excluded","setIsOpen","handleClick","_buttonProps$onClick","onClick","call","Modal","_extends","size","onClose","Header","Body","Spinner","Button"],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import { ButtonProps } from "@bigbinary/neetoui";
2
- import React from "react";
3
- /**
4
- *
5
- * The ShareRecording component provides a modal interface for sharing recordings.
6
- *
7
- * It includes options for specifying playback timestamps and generates shareable
8
- *
9
- * links accordingly. The modal interface allows users to copy the shareable link
10
- *
11
- * and adjust playback timestamps.
12
- *
13
- * @example
14
- *
15
- * <ShareRecording
16
- * recordingUrl="https://example.com/recording"
17
- * totalDuration={3600} // Total duration in seconds (e.g., 1 hour)
18
- * getCurrentTimestamp={() => 300} // Current playback time in seconds
19
- * buttonProps={{
20
- * onClick: () => {
21
- * console.log("Share button has been clicked");
22
- * },
23
- * }}
24
- * isLoading={false}
25
- * />
26
- * @endexample
27
- */
28
- declare const ShareRecording: React.FC<{
29
- recordingUrl: string;
30
- totalDuration: number;
31
- getCurrentTimestamp: () => number;
32
- buttonProps?: ButtonProps;
33
- isLoading?: boolean;
34
- }>;
35
- export default ShareRecording;