@bigbinary/neeto-molecules 1.15.18 → 1.15.19

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.
@@ -40,6 +40,7 @@ import './Search.js';
40
40
  import '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
41
41
  import '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
42
42
  import '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
43
+ import '@bigbinary/neeto-commons-frontend/utils';
43
44
 
44
45
  var Header = withT(function (_ref) {
45
46
  var t = _ref.t,
@@ -1 +1 @@
1
- {"version":3,"file":"CustomDomainDashboard.js","sources":["../src/components/CustomDomainDashboard/Header.jsx","../src/components/CustomDomainDashboard/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { PLURAL } from \"neetocommons/constants\";\nimport withT from \"neetocommons/react-utils/withT\";\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Button } from \"neetoui\";\n\nimport NeetoHeader from \"components/Header\";\n\nconst Header = withT(\n ({ t, setIsPaneOpen, searchTerm, setSearchTerm, headerProps }) => (\n <NeetoHeader\n data-testid=\"custom-domain-header\"\n title={t(\"neetoMolecules.customDomain.customDomain\", PLURAL)}\n actionBlock={\n <Button\n data-cy=\"add-new-custom-domain-button\"\n label={t(\"neetoMolecules.customDomain.addNew\")}\n onClick={() => setIsPaneOpen(true)}\n />\n }\n searchProps={{\n value: searchTerm,\n onChange: withEventTargetValue(setSearchTerm),\n placeholder: t(\"neetoMolecules.customDomain.search\"),\n \"data-cy\": \"custom-domain-search-field\",\n className: \"w-56\",\n }}\n {...headerProps}\n />\n )\n);\n\nexport default React.memo(Header);\n","import React, { useState } from \"react\";\n\nimport { isNotEmpty } from \"neetocist\";\nimport useDebounce from \"neetocommons/react-utils/useDebounce\";\nimport { Table, Typography, NoData } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport PageLoader from \"components/PageLoader\";\nimport SubHeader from \"components/SubHeader\";\n\nimport DeleteAlert from \"./DeleteAlert\";\nimport Header from \"./Header\";\nimport ManageDomain from \"./Manage\";\nimport {\n useFetchCustomDomains,\n useDeleteCustomDomain,\n} from \"./useCustomDomainApi\";\nimport { renderColumnData } from \"./utils\";\n\nconst CustomDomainDashboard = ({ headerProps, url, onCreate }) => {\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [isPaneOpen, setIsPaneOpen] = useState(false);\n const [customDomain, setCustomDomain] = useState({});\n const [isAlertOpen, setIsAlertOpen] = useState(false);\n const { t } = useTranslation();\n const debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n const { data: data, isLoading } = useFetchCustomDomains({\n url,\n params: { searchTerm: debouncedSearchTerm },\n });\n\n const { mutate: deleteCustomDomain, isLoading: isDeleting } =\n useDeleteCustomDomain(url, {\n onSettled: () => {\n setIsAlertOpen(false);\n setCustomDomain({});\n },\n });\n\n const enableManagePane = customDomain => {\n setCustomDomain(customDomain);\n setIsPaneOpen(true);\n };\n\n const enableDeleteAlert = customDomain => {\n setCustomDomain(customDomain);\n setIsAlertOpen(true);\n };\n\n const disableManagePane = () => {\n setIsPaneOpen(false);\n setCustomDomain({});\n };\n\n const disableDeleteAlert = () => {\n setIsAlertOpen(false);\n setCustomDomain({});\n };\n\n return (\n <>\n <Container>\n <Header\n {...{ headerProps, searchTerm, setIsPaneOpen, setSearchTerm }}\n />\n {isLoading && (\n <div className=\"h-screen w-full\">\n <PageLoader />\n </div>\n )}\n {!isLoading &&\n (isNotEmpty(data?.customDomains) ? (\n <div className=\"w-full flex-grow\">\n <SubHeader\n leftActionBlock={\n <Typography\n className=\"neeto-ui-gray-800 font-semibold\"\n component=\"h4\"\n >\n {t(\"neetoMolecules.customDomain.customDomainWithCount\", {\n count: data?.customDomains?.length,\n })}\n </Typography>\n }\n />\n <div>\n <Table\n allowRowClick={false}\n rowData={data?.customDomains}\n rowSelection={false}\n columnData={renderColumnData(\n enableManagePane,\n enableDeleteAlert\n )}\n />\n </div>\n </div>\n ) : (\n <div className=\"flex h-full w-full flex-grow items-center justify-center\">\n <NoData\n title={t(\"neetoMolecules.customDomain.notFound\")}\n primaryButtonProps={{\n label: t(\"neetoMolecules.customDomain.addNew\"),\n onClick: () => setIsPaneOpen(true),\n }}\n />\n </div>\n ))}\n </Container>\n <ManageDomain\n {...{ customDomain, onCreate, setCustomDomain, url }}\n hasOne={false}\n isOpen={isPaneOpen}\n onClose={disableManagePane}\n />\n <DeleteAlert\n hostname={customDomain?.hostname}\n isOpen={isAlertOpen}\n isSubmitting={isDeleting}\n onClose={disableDeleteAlert}\n onSubmit={() => deleteCustomDomain(customDomain?.id)}\n />\n </>\n );\n};\n\nCustomDomainDashboard.propTypes = {\n /**\n * The props to be passed to the `CustomDomain` page header. Accepts all props that can be passed to the `Header` component.\n */\n headerProps: PropTypes.object,\n /**\n * API path to manage custom domain records.\n */\n url: PropTypes.string,\n /**\n * Callback function will be invoked with new domain values after successfully creating the domain.\n */\n onCreate: PropTypes.func,\n};\n\nexport default CustomDomainDashboard;\n"],"names":["Header","withT","_ref","t","setIsPaneOpen","searchTerm","setSearchTerm","headerProps","React","createElement","NeetoHeader","_extends","title","PLURAL","actionBlock","Button","label","onClick","searchProps","value","onChange","withEventTargetValue","placeholder","className","memo","CustomDomainDashboard","_data$customDomains","url","onCreate","_useState","useState","_useState2","_slicedToArray","_useState3","_useState4","isPaneOpen","_useState5","_useState6","customDomain","setCustomDomain","_useState7","_useState8","isAlertOpen","setIsAlertOpen","_useTranslation","useTranslation","debouncedSearchTerm","useDebounce","_useFetchCustomDomain","useFetchCustomDomains","params","data","isLoading","_useDeleteCustomDomai","useDeleteCustomDomain","onSettled","deleteCustomDomain","mutate","isDeleting","enableManagePane","enableDeleteAlert","disableManagePane","disableDeleteAlert","Fragment","Container","PageLoader","isNotEmpty","customDomains","SubHeader","leftActionBlock","Typography","component","count","length","Table","allowRowClick","rowData","rowSelection","columnData","renderColumnData","NoData","primaryButtonProps","ManageDomain","hasOne","isOpen","onClose","DeleteAlert","hostname","isSubmitting","onSubmit","id"],"mappings":"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"}
1
+ {"version":3,"file":"CustomDomainDashboard.js","sources":["../src/components/CustomDomainDashboard/Header.jsx","../src/components/CustomDomainDashboard/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport { PLURAL } from \"neetocommons/constants\";\nimport withT from \"neetocommons/react-utils/withT\";\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Button } from \"neetoui\";\n\nimport NeetoHeader from \"components/Header\";\n\nconst Header = withT(\n ({ t, setIsPaneOpen, searchTerm, setSearchTerm, headerProps }) => (\n <NeetoHeader\n data-testid=\"custom-domain-header\"\n title={t(\"neetoMolecules.customDomain.customDomain\", PLURAL)}\n actionBlock={\n <Button\n data-cy=\"add-new-custom-domain-button\"\n label={t(\"neetoMolecules.customDomain.addNew\")}\n onClick={() => setIsPaneOpen(true)}\n />\n }\n searchProps={{\n value: searchTerm,\n onChange: withEventTargetValue(setSearchTerm),\n placeholder: t(\"neetoMolecules.customDomain.search\"),\n \"data-cy\": \"custom-domain-search-field\",\n className: \"w-56\",\n }}\n {...headerProps}\n />\n )\n);\n\nexport default React.memo(Header);\n","import React, { useState } from \"react\";\n\nimport { isNotEmpty } from \"neetocist\";\nimport useDebounce from \"neetocommons/react-utils/useDebounce\";\nimport { Table, Typography, NoData } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Container from \"components/Container\";\nimport PageLoader from \"components/PageLoader\";\nimport SubHeader from \"components/SubHeader\";\n\nimport DeleteAlert from \"./DeleteAlert\";\nimport Header from \"./Header\";\nimport ManageDomain from \"./Manage\";\nimport {\n useFetchCustomDomains,\n useDeleteCustomDomain,\n} from \"./useCustomDomainApi\";\nimport { renderColumnData } from \"./utils\";\n\nconst CustomDomainDashboard = ({ headerProps, url, onCreate }) => {\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [isPaneOpen, setIsPaneOpen] = useState(false);\n const [customDomain, setCustomDomain] = useState({});\n const [isAlertOpen, setIsAlertOpen] = useState(false);\n const { t } = useTranslation();\n const debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n const { data: data, isLoading } = useFetchCustomDomains({\n url,\n params: { searchTerm: debouncedSearchTerm },\n });\n\n const { mutate: deleteCustomDomain, isLoading: isDeleting } =\n useDeleteCustomDomain(url, {\n onSettled: () => {\n setIsAlertOpen(false);\n setCustomDomain({});\n },\n });\n\n const enableManagePane = customDomain => {\n setCustomDomain(customDomain);\n setIsPaneOpen(true);\n };\n\n const enableDeleteAlert = customDomain => {\n setCustomDomain(customDomain);\n setIsAlertOpen(true);\n };\n\n const disableManagePane = () => {\n setIsPaneOpen(false);\n setCustomDomain({});\n };\n\n const disableDeleteAlert = () => {\n setIsAlertOpen(false);\n setCustomDomain({});\n };\n\n return (\n <>\n <Container>\n <Header\n {...{ headerProps, searchTerm, setIsPaneOpen, setSearchTerm }}\n />\n {isLoading && (\n <div className=\"h-screen w-full\">\n <PageLoader />\n </div>\n )}\n {!isLoading &&\n (isNotEmpty(data?.customDomains) ? (\n <div className=\"w-full flex-grow\">\n <SubHeader\n leftActionBlock={\n <Typography\n className=\"neeto-ui-gray-800 font-semibold\"\n component=\"h4\"\n >\n {t(\"neetoMolecules.customDomain.customDomainWithCount\", {\n count: data?.customDomains?.length,\n })}\n </Typography>\n }\n />\n <div>\n <Table\n allowRowClick={false}\n rowData={data?.customDomains}\n rowSelection={false}\n columnData={renderColumnData(\n enableManagePane,\n enableDeleteAlert\n )}\n />\n </div>\n </div>\n ) : (\n <div className=\"flex h-full w-full flex-grow items-center justify-center\">\n <NoData\n title={t(\"neetoMolecules.customDomain.notFound\")}\n primaryButtonProps={{\n label: t(\"neetoMolecules.customDomain.addNew\"),\n onClick: () => setIsPaneOpen(true),\n }}\n />\n </div>\n ))}\n </Container>\n <ManageDomain\n {...{ customDomain, onCreate, setCustomDomain, url }}\n hasOne={false}\n isOpen={isPaneOpen}\n onClose={disableManagePane}\n />\n <DeleteAlert\n hostname={customDomain?.hostname}\n isOpen={isAlertOpen}\n isSubmitting={isDeleting}\n onClose={disableDeleteAlert}\n onSubmit={() => deleteCustomDomain(customDomain?.id)}\n />\n </>\n );\n};\n\nCustomDomainDashboard.propTypes = {\n /**\n * The props to be passed to the `CustomDomain` page header. Accepts all props that can be passed to the `Header` component.\n */\n headerProps: PropTypes.object,\n /**\n * API path to manage custom domain records.\n */\n url: PropTypes.string,\n /**\n * Callback function will be invoked with new domain values after successfully creating the domain.\n */\n onCreate: PropTypes.func,\n};\n\nexport default CustomDomainDashboard;\n"],"names":["Header","withT","_ref","t","setIsPaneOpen","searchTerm","setSearchTerm","headerProps","React","createElement","NeetoHeader","_extends","title","PLURAL","actionBlock","Button","label","onClick","searchProps","value","onChange","withEventTargetValue","placeholder","className","memo","CustomDomainDashboard","_data$customDomains","url","onCreate","_useState","useState","_useState2","_slicedToArray","_useState3","_useState4","isPaneOpen","_useState5","_useState6","customDomain","setCustomDomain","_useState7","_useState8","isAlertOpen","setIsAlertOpen","_useTranslation","useTranslation","debouncedSearchTerm","useDebounce","_useFetchCustomDomain","useFetchCustomDomains","params","data","isLoading","_useDeleteCustomDomai","useDeleteCustomDomain","onSettled","deleteCustomDomain","mutate","isDeleting","enableManagePane","enableDeleteAlert","disableManagePane","disableDeleteAlert","Fragment","Container","PageLoader","isNotEmpty","customDomains","SubHeader","leftActionBlock","Typography","component","count","length","Table","allowRowClick","rowData","rowSelection","columnData","renderColumnData","NoData","primaryButtonProps","ManageDomain","hasOne","isOpen","onClose","DeleteAlert","hostname","isSubmitting","onSubmit","id"],"mappings":"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"}
package/dist/Header.js CHANGED
@@ -17,6 +17,7 @@ import '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
17
17
  import '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
18
18
  import 'ramda';
19
19
  import 'react-i18next';
20
+ import '@bigbinary/neeto-commons-frontend/utils';
20
21
 
21
22
  var SIZES = {
22
23
  nano: "nano",
@@ -88,6 +89,7 @@ var Header = function Header(_ref) {
88
89
  })))), /*#__PURE__*/React__default.createElement("div", {
89
90
  className: "neeto-molecules-header__right"
90
91
  }, searchProps && /*#__PURE__*/React__default.createElement(Search, _extends({
92
+ enableUrlSync: true,
91
93
  className: classnames(["neeto-molecules-header__search-input", searchProps.className])
92
94
  }, searchProps)), actionBlock && /*#__PURE__*/React__default.createElement("div", {
93
95
  className: "neeto-molecules-header__action-block"
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sources":["../src/components/Header/constants.js","../src/components/Header/Dropdown.jsx","../src/components/Header/index.jsx"],"sourcesContent":["const SIZES = { nano: \"nano\", small: \"small\", large: \"large\" };\n\nconst DROPDOWN_BUTTON_SIZES = {\n nano: \"small\",\n small: \"medium\",\n large: \"large\",\n};\n\nexport { SIZES, DROPDOWN_BUTTON_SIZES };\n","import React from \"react\";\n\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown as NeetoUIDropdown } from \"neetoui\";\n\nimport { DROPDOWN_BUTTON_SIZES } from \"./constants\";\n\nconst Dropdown = props => (\n <NeetoUIDropdown\n buttonSize={DROPDOWN_BUTTON_SIZES[props.size]}\n buttonStyle=\"secondary\"\n icon={MenuHorizontal}\n position=\"bottom-start\"\n strategy=\"fixed\"\n {...props}\n />\n);\n\nexport default Dropdown;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop, isNotEmpty } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport Breadcrumbs from \"components/Breadcrumbs\";\nimport Search from \"components/Search\";\n\nimport { SIZES } from \"./constants\";\nimport Dropdown from \"./Dropdown\";\nimport \"./header.scss\";\n\nconst Header = ({\n title,\n searchProps,\n className = \"\",\n actionBlock,\n breadcrumbs = [],\n renderDropdown = noop,\n size = \"large\",\n \"data-testid\": dataTestId = \"neeto-molecules-header\",\n}) => (\n <div\n data-cy=\"neeto-molecules-header\"\n data-testid={dataTestId}\n className={classnames([\n \"neeto-molecules-header\",\n {\n \"neeto-molecules-header--has-breadcrumbs\": isNotEmpty(breadcrumbs),\n \"neeto-molecules-header--large\": size === SIZES.large,\n \"neeto-molecules-header--small\": size === SIZES.small,\n \"neeto-molecules-header--nano\": size === SIZES.nano,\n },\n className,\n ])}\n >\n <div className=\"neeto-molecules-header__left\">\n <div className=\"neeto-molecules-header__left-data-wrap\">\n {isNotEmpty(breadcrumbs) && <Breadcrumbs {...{ breadcrumbs }} />}\n <div className=\"neeto-molecules-header__page-title\">\n <Typography\n data-cy=\"main-header\"\n data-test-id=\"main-header\"\n lineHeight=\"tight\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n {renderDropdown(props => (\n <Dropdown {...{ size, ...props }} />\n ))}\n </div>\n </div>\n </div>\n <div className=\"neeto-molecules-header__right\">\n {searchProps && (\n <Search\n className={classnames([\n \"neeto-molecules-header__search-input\",\n searchProps.className,\n ])}\n {...searchProps}\n />\n )}\n {actionBlock && (\n <div className=\"neeto-molecules-header__action-block\">\n {actionBlock}\n </div>\n )}\n </div>\n </div>\n);\n\nHeader.propTypes = {\n /**\n * To set a title in the Header section.\n */\n title: PropTypes.node,\n /**\n * To specify additional class names.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered in the right side of the Header section.\n */\n\n actionBlock: PropTypes.node,\n /**\n * To add **Search** molecule to the subheader section.\n */\n searchProps: PropTypes.object,\n /**\n * To show breadcrumbs in the Header section. `text` accepts a text string to be shown as the breadcrumb and `link` accepts relative URL path for the breadcrumb.\n */\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string,\n })\n ),\n /**\n * A function to render the Dropdown next to the title. It provides the Dropdown component as argument.\n */\n renderDropdown: PropTypes.func,\n /**\n * To specify size of the Header.\n *\n * `large` - Default size. To be used in index pages.\n *\n * `small` - To be used in inner pages.\n *\n * `nano` - To be used in inner pages with menubar.\n */\n size: PropTypes.oneOf([\"nano\", \"small\", \"large\"]),\n};\n\nexport default Header;\n"],"names":["SIZES","nano","small","large","DROPDOWN_BUTTON_SIZES","Dropdown","props","React","createElement","NeetoUIDropdown","_extends","buttonSize","size","buttonStyle","icon","MenuHorizontal","position","strategy","Header","_ref","title","searchProps","_ref$className","className","actionBlock","_ref$breadcrumbs","breadcrumbs","_ref$renderDropdown","renderDropdown","noop","_ref$size","_ref$dataTestid","dataTestId","classnames","isNotEmpty","Breadcrumbs","Typography","lineHeight","style","weight","_objectSpread","Search"],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sources":["../src/components/Header/constants.js","../src/components/Header/Dropdown.jsx","../src/components/Header/index.jsx"],"sourcesContent":["const SIZES = { nano: \"nano\", small: \"small\", large: \"large\" };\n\nconst DROPDOWN_BUTTON_SIZES = {\n nano: \"small\",\n small: \"medium\",\n large: \"large\",\n};\n\nexport { SIZES, DROPDOWN_BUTTON_SIZES };\n","import React from \"react\";\n\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown as NeetoUIDropdown } from \"neetoui\";\n\nimport { DROPDOWN_BUTTON_SIZES } from \"./constants\";\n\nconst Dropdown = props => (\n <NeetoUIDropdown\n buttonSize={DROPDOWN_BUTTON_SIZES[props.size]}\n buttonStyle=\"secondary\"\n icon={MenuHorizontal}\n position=\"bottom-start\"\n strategy=\"fixed\"\n {...props}\n />\n);\n\nexport default Dropdown;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop, isNotEmpty } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport Breadcrumbs from \"components/Breadcrumbs\";\nimport Search from \"components/Search\";\n\nimport { SIZES } from \"./constants\";\nimport Dropdown from \"./Dropdown\";\nimport \"./header.scss\";\n\nconst Header = ({\n title,\n searchProps,\n className = \"\",\n actionBlock,\n breadcrumbs = [],\n renderDropdown = noop,\n size = \"large\",\n \"data-testid\": dataTestId = \"neeto-molecules-header\",\n}) => (\n <div\n data-cy=\"neeto-molecules-header\"\n data-testid={dataTestId}\n className={classnames([\n \"neeto-molecules-header\",\n {\n \"neeto-molecules-header--has-breadcrumbs\": isNotEmpty(breadcrumbs),\n \"neeto-molecules-header--large\": size === SIZES.large,\n \"neeto-molecules-header--small\": size === SIZES.small,\n \"neeto-molecules-header--nano\": size === SIZES.nano,\n },\n className,\n ])}\n >\n <div className=\"neeto-molecules-header__left\">\n <div className=\"neeto-molecules-header__left-data-wrap\">\n {isNotEmpty(breadcrumbs) && <Breadcrumbs {...{ breadcrumbs }} />}\n <div className=\"neeto-molecules-header__page-title\">\n <Typography\n data-cy=\"main-header\"\n data-test-id=\"main-header\"\n lineHeight=\"tight\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n {renderDropdown(props => (\n <Dropdown {...{ size, ...props }} />\n ))}\n </div>\n </div>\n </div>\n <div className=\"neeto-molecules-header__right\">\n {searchProps && (\n <Search\n enableUrlSync\n className={classnames([\n \"neeto-molecules-header__search-input\",\n searchProps.className,\n ])}\n {...searchProps}\n />\n )}\n {actionBlock && (\n <div className=\"neeto-molecules-header__action-block\">\n {actionBlock}\n </div>\n )}\n </div>\n </div>\n);\n\nHeader.propTypes = {\n /**\n * To set a title in the Header section.\n */\n title: PropTypes.node,\n /**\n * To specify additional class names.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered in the right side of the Header section.\n */\n\n actionBlock: PropTypes.node,\n /**\n * To add **Search** molecule to the subheader section.\n */\n searchProps: PropTypes.object,\n /**\n * To show breadcrumbs in the Header section. `text` accepts a text string to be shown as the breadcrumb and `link` accepts relative URL path for the breadcrumb.\n */\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string,\n })\n ),\n /**\n * A function to render the Dropdown next to the title. It provides the Dropdown component as argument.\n */\n renderDropdown: PropTypes.func,\n /**\n * To specify size of the Header.\n *\n * `large` - Default size. To be used in index pages.\n *\n * `small` - To be used in inner pages.\n *\n * `nano` - To be used in inner pages with menubar.\n */\n size: PropTypes.oneOf([\"nano\", \"small\", \"large\"]),\n};\n\nexport default Header;\n"],"names":["SIZES","nano","small","large","DROPDOWN_BUTTON_SIZES","Dropdown","props","React","createElement","NeetoUIDropdown","_extends","buttonSize","size","buttonStyle","icon","MenuHorizontal","position","strategy","Header","_ref","title","searchProps","_ref$className","className","actionBlock","_ref$breadcrumbs","breadcrumbs","_ref$renderDropdown","renderDropdown","noop","_ref$size","_ref$dataTestid","dataTestId","classnames","isNotEmpty","Breadcrumbs","Typography","lineHeight","style","weight","_objectSpread","Search","enableUrlSync"],"mappings":"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"}
package/dist/Search.js CHANGED
@@ -3,7 +3,7 @@ import { _ as _defineProperty } from './defineProperty-549061a7.js';
3
3
  import { _ as _slicedToArray } from './slicedToArray-b4278ecd.js';
4
4
  import { _ as _objectWithoutProperties } from './objectWithoutProperties-a0edb288.js';
5
5
  import React__default, { useState, useEffect } from 'react';
6
- import { isNotPresent } from '@bigbinary/neeto-cist';
6
+ import { isPresent } from '@bigbinary/neeto-cist';
7
7
  import useFuncDebounce from '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
8
8
  import useQueryParams from '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
9
9
  import useUpdateEffect from '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
@@ -14,17 +14,35 @@ import { mergeLeft } from 'ramda';
14
14
  import { useTranslation } from 'react-i18next';
15
15
  import { useHistory } from 'react-router-dom';
16
16
  import { n } from './inject-css-c86de496.js';
17
+ import { getQueryParams } from '@bigbinary/neeto-commons-frontend/utils';
17
18
 
18
19
  var css = ".neeto-molecules-search__wrapper input[type=search]::-webkit-search-cancel-button:hover,.neeto-molecules-search__wrapper input[type=search]::-webkit-search-decoration:hover{cursor:pointer}";
19
20
  n(css,{});
20
21
 
21
- var _excluded = ["value", "debounceTime", "onSearch", "onChange", "searchParamName"];
22
+ var getInitialSearchValue = function getInitialSearchValue(_ref) {
23
+ var _ref$initialValue = _ref.initialValue,
24
+ initialValue = _ref$initialValue === void 0 ? "" : _ref$initialValue,
25
+ enableUrlSync = _ref.enableUrlSync,
26
+ searchParamName = _ref.searchParamName;
27
+ if (enableUrlSync) {
28
+ var _queryParams$searchPa;
29
+ var queryParams = getQueryParams({
30
+ toCamelCase: false
31
+ });
32
+ return (_queryParams$searchPa = queryParams[searchParamName]) !== null && _queryParams$searchPa !== void 0 ? _queryParams$searchPa : "";
33
+ }
34
+ return initialValue;
35
+ };
36
+
37
+ var _excluded = ["value", "debounceTime", "onSearch", "onChange", "enableUrlSync", "searchParamName"];
22
38
  var Search = function Search(_ref) {
23
39
  var value = _ref.value,
24
40
  _ref$debounceTime = _ref.debounceTime,
25
41
  debounceTime = _ref$debounceTime === void 0 ? 300 : _ref$debounceTime,
26
42
  onSearch = _ref.onSearch,
27
43
  onChange = _ref.onChange,
44
+ _ref$enableUrlSync = _ref.enableUrlSync,
45
+ enableUrlSync = _ref$enableUrlSync === void 0 ? false : _ref$enableUrlSync,
28
46
  _ref$searchParamName = _ref.searchParamName,
29
47
  searchParamName = _ref$searchParamName === void 0 ? "search_term" : _ref$searchParamName,
30
48
  inputProps = _objectWithoutProperties(_ref, _excluded);
@@ -34,27 +52,30 @@ var Search = function Search(_ref) {
34
52
  toCamelCase: false
35
53
  });
36
54
  var history = useHistory();
37
- var searchInputValue = (value !== null && value !== void 0 ? value : queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName]) || "";
38
- var _useState = useState(searchInputValue),
55
+ var _useState = useState(getInitialSearchValue({
56
+ initialValue: value,
57
+ enableUrlSync: enableUrlSync,
58
+ searchParamName: searchParamName
59
+ })),
39
60
  _useState2 = _slicedToArray(_useState, 2),
40
61
  internalValue = _useState2[0],
41
62
  setInternalValue = _useState2[1];
42
63
  var trimmedValue = value === null || value === void 0 ? void 0 : value.trim();
43
64
  useUpdateEffect(function () {
44
- if (isNotPresent(queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName])) setInternalValue("");
65
+ if (!enableUrlSync || isPresent(queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName])) return;
66
+ setInternalValue("");
45
67
  }, [queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName]]);
46
- var handleDebouncedSearchTermChange = useFuncDebounce(function (trimmedValue) {
47
- if (onSearch) onSearch(trimmedValue);else handleSearchQueryParams(trimmedValue);
48
- }, debounceTime);
49
68
  var handleSearchQueryParams = function handleSearchQueryParams(trimmedValue) {
50
- var searchParams = {};
51
69
  if (!trimmedValue && !(queryParams !== null && queryParams !== void 0 && queryParams[searchParamName])) return;
70
+ if (trimmedValue === (queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName])) return;
71
+ var searchParams = {};
72
+ var pathname = window.location.pathname;
52
73
  if (trimmedValue) searchParams = _defineProperty({}, searchParamName, trimmedValue);else queryParams === null || queryParams === void 0 ? true : delete queryParams[searchParamName];
53
- if (trimmedValue !== (queryParams === null || queryParams === void 0 ? void 0 : queryParams[searchParamName])) {
54
- var pathname = window.location.pathname;
55
- history.push(buildUrl(pathname, mergeLeft(searchParams, queryParams)));
56
- }
74
+ history.push(buildUrl(pathname, mergeLeft(searchParams, queryParams)));
57
75
  };
76
+ var handleDebouncedSearchTermChange = useFuncDebounce(function (trimmedValue) {
77
+ if (onSearch) onSearch(trimmedValue);else if (enableUrlSync) handleSearchQueryParams(trimmedValue);
78
+ }, debounceTime);
58
79
  useUpdateEffect(function () {
59
80
  handleDebouncedSearchTermChange(trimmedValue);
60
81
  }, [trimmedValue]);
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sources":["../src/components/Search/index.jsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nimport { isNotPresent } from \"neetocist\";\nimport useFuncDebounce from \"neetocommons/react-utils/useFuncDebounce\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport useUpdateEffect from \"neetocommons/react-utils/useUpdateEffect\";\nimport { buildUrl } from \"neetocommons/utils/general\";\nimport { Search as NeetoUISearchIcon } from \"neetoicons\";\nimport { Input } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport \"./search.scss\";\n\nconst Search = ({\n value,\n debounceTime = 300,\n onSearch,\n onChange,\n searchParamName = \"search_term\",\n ...inputProps\n}) => {\n const { t } = useTranslation();\n const queryParams = useQueryParams({ toCamelCase: false });\n const history = useHistory();\n\n const searchInputValue = (value ?? queryParams?.[searchParamName]) || \"\";\n const [internalValue, setInternalValue] = useState(searchInputValue);\n const trimmedValue = value?.trim();\n\n useUpdateEffect(() => {\n if (isNotPresent(queryParams?.[searchParamName])) setInternalValue(\"\");\n }, [queryParams?.[searchParamName]]);\n\n const handleDebouncedSearchTermChange = useFuncDebounce(trimmedValue => {\n if (onSearch) onSearch(trimmedValue);\n else handleSearchQueryParams(trimmedValue);\n }, debounceTime);\n\n const handleSearchQueryParams = trimmedValue => {\n let searchParams = {};\n\n if (!trimmedValue && !queryParams?.[searchParamName]) return;\n\n if (trimmedValue) searchParams = { [searchParamName]: trimmedValue };\n else delete queryParams?.[searchParamName];\n\n if (trimmedValue !== queryParams?.[searchParamName]) {\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, mergeLeft(searchParams, queryParams)));\n }\n };\n\n useUpdateEffect(() => {\n handleDebouncedSearchTermChange(trimmedValue);\n }, [trimmedValue]);\n\n if (value !== undefined && internalValue !== value) {\n setInternalValue(value);\n }\n\n const handleOnChange = e => {\n const trimmedValue = e.target.value?.trim();\n onChange?.(e);\n setInternalValue(e.target.value);\n\n if (internalValue?.trim() !== trimmedValue) {\n handleDebouncedSearchTermChange(trimmedValue);\n }\n };\n\n useEffect(() => handleDebouncedSearchTermChange.cancel, []);\n\n return (\n <Input\n className=\"neeto-molecules-search__wrapper\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n prefix={<NeetoUISearchIcon />}\n type=\"search\"\n value={internalValue}\n onChange={handleOnChange}\n {...inputProps}\n />\n );\n};\n\nSearch.propTypes = {\n /**\n * value for the search (optional).\n */\n value: PropTypes.string,\n /**\n * Time in milliseconds to debounce the search input before triggering a search.\n */\n debounceTime: PropTypes.number,\n /**\n * To specify the function to be triggered when the value is updated (optional).\n */\n onChange: PropTypes.func,\n /**\n * Callback to handle debounced search value without updating the search params.\n */\n onSearch: PropTypes.func,\n /**\n * value for the search param name.\n */\n searchParamName: PropTypes.string,\n /**\n * To override the properties of the Input component.\n */\n inputProps: PropTypes.object,\n};\n\nexport default Search;\n"],"names":["Search","_ref","value","_ref$debounceTime","debounceTime","onSearch","onChange","_ref$searchParamName","searchParamName","inputProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","queryParams","useQueryParams","toCamelCase","history","useHistory","searchInputValue","_useState","useState","_useState2","_slicedToArray","internalValue","setInternalValue","trimmedValue","trim","useUpdateEffect","isNotPresent","handleDebouncedSearchTermChange","useFuncDebounce","handleSearchQueryParams","searchParams","_defineProperty","pathname","window","location","push","buildUrl","mergeLeft","undefined","handleOnChange","e","_e$target$value","target","useEffect","cancel","React","createElement","Input","_extends","className","placeholder","prefix","NeetoUISearchIcon","type"],"mappings":"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"}
1
+ {"version":3,"file":"Search.js","sources":["../src/components/Search/utils.js","../src/components/Search/index.jsx"],"sourcesContent":["import { getQueryParams } from \"neetocommons/utils\";\n\nexport const getInitialSearchValue = ({\n initialValue = \"\",\n enableUrlSync,\n searchParamName,\n}) => {\n if (enableUrlSync) {\n const queryParams = getQueryParams({ toCamelCase: false });\n\n return queryParams[searchParamName] ?? \"\";\n }\n\n return initialValue;\n};\n","import React, { useEffect, useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport useFuncDebounce from \"neetocommons/react-utils/useFuncDebounce\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport useUpdateEffect from \"neetocommons/react-utils/useUpdateEffect\";\nimport { buildUrl } from \"neetocommons/utils/general\";\nimport { Search as NeetoUISearchIcon } from \"neetoicons\";\nimport { Input } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport \"./search.scss\";\nimport { getInitialSearchValue } from \"./utils\";\n\nconst Search = ({\n value,\n debounceTime = 300,\n onSearch,\n onChange,\n enableUrlSync = false,\n searchParamName = \"search_term\",\n ...inputProps\n}) => {\n const { t } = useTranslation();\n const queryParams = useQueryParams({ toCamelCase: false });\n const history = useHistory();\n\n const [internalValue, setInternalValue] = useState(\n getInitialSearchValue({\n initialValue: value,\n enableUrlSync,\n searchParamName,\n })\n );\n const trimmedValue = value?.trim();\n\n useUpdateEffect(() => {\n if (!enableUrlSync || isPresent(queryParams?.[searchParamName])) return;\n\n setInternalValue(\"\");\n }, [queryParams?.[searchParamName]]);\n\n const handleSearchQueryParams = trimmedValue => {\n if (!trimmedValue && !queryParams?.[searchParamName]) return;\n\n if (trimmedValue === queryParams?.[searchParamName]) return;\n\n let searchParams = {};\n const pathname = window.location.pathname;\n\n if (trimmedValue) searchParams = { [searchParamName]: trimmedValue };\n else delete queryParams?.[searchParamName];\n\n history.push(buildUrl(pathname, mergeLeft(searchParams, queryParams)));\n };\n\n const handleDebouncedSearchTermChange = useFuncDebounce(trimmedValue => {\n if (onSearch) onSearch(trimmedValue);\n else if (enableUrlSync) handleSearchQueryParams(trimmedValue);\n }, debounceTime);\n\n useUpdateEffect(() => {\n handleDebouncedSearchTermChange(trimmedValue);\n }, [trimmedValue]);\n\n if (value !== undefined && internalValue !== value) {\n setInternalValue(value);\n }\n\n const handleOnChange = e => {\n const trimmedValue = e.target.value?.trim();\n onChange?.(e);\n setInternalValue(e.target.value);\n\n if (internalValue?.trim() !== trimmedValue) {\n handleDebouncedSearchTermChange(trimmedValue);\n }\n };\n\n useEffect(() => handleDebouncedSearchTermChange.cancel, []);\n\n return (\n <Input\n className=\"neeto-molecules-search__wrapper\"\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n prefix={<NeetoUISearchIcon />}\n type=\"search\"\n value={internalValue}\n onChange={handleOnChange}\n {...inputProps}\n />\n );\n};\n\nSearch.propTypes = {\n /**\n * value for the search (optional).\n */\n value: PropTypes.string,\n /**\n * Time in milliseconds to debounce the search input before triggering a search.\n */\n debounceTime: PropTypes.number,\n /**\n * To specify the function to be triggered when the value is updated (optional).\n */\n onChange: PropTypes.func,\n /**\n * Callback to handle debounced search value without updating the search params.\n */\n onSearch: PropTypes.func,\n /**\n * To control whether the search term needs to be set in the URLSearch.\n */\n enableUrlSync: PropTypes.bool,\n /**\n * value for the search param name.\n */\n searchParamName: PropTypes.string,\n /**\n * To override the properties of the Input component.\n */\n inputProps: PropTypes.object,\n};\n\nexport default Search;\n"],"names":["getInitialSearchValue","_ref","_ref$initialValue","initialValue","enableUrlSync","searchParamName","_queryParams$searchPa","queryParams","getQueryParams","toCamelCase","Search","value","_ref$debounceTime","debounceTime","onSearch","onChange","_ref$enableUrlSync","_ref$searchParamName","inputProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","useQueryParams","history","useHistory","_useState","useState","_useState2","_slicedToArray","internalValue","setInternalValue","trimmedValue","trim","useUpdateEffect","isPresent","handleSearchQueryParams","searchParams","pathname","window","location","_defineProperty","push","buildUrl","mergeLeft","handleDebouncedSearchTermChange","useFuncDebounce","undefined","handleOnChange","e","_e$target$value","target","useEffect","cancel","React","createElement","Input","_extends","className","placeholder","prefix","NeetoUISearchIcon","type"],"mappings":"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"}
package/dist/Security.js CHANGED
@@ -31,6 +31,7 @@ import './objectWithoutProperties-a0edb288.js';
31
31
  import '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
32
32
  import '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
33
33
  import '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
34
+ import '@bigbinary/neeto-commons-frontend/utils';
34
35
 
35
36
  var Add = function Add() {
36
37
  var _useTranslation = useTranslation(),
@@ -1 +1 @@
1
- {"version":3,"file":"Security.js","sources":["../src/components/Security/AllowedKeywords/Add.jsx","../src/components/Security/utils.js","../src/components/Security/constants.js","../src/components/Security/AllowedKeywords/index.jsx","../src/components/Security/PasswordBlock.jsx","../src/components/Security/RadioBlock.jsx","../src/components/Security/api.js","../src/components/Security/useSecurityApi.js","../src/components/Security/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport { remove } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst Add = () => {\n const { t } = useTranslation();\n const {\n setFieldValue,\n values: { allowedKeywords },\n } = useFormikContext();\n\n const removeKeyword = index =>\n setFieldValue(\"allowedKeywords\", remove(index, 1, allowedKeywords));\n\n if (!allowedKeywords) return null;\n\n return allowedKeywords.map((_, index) => (\n <div\n className={classNames(\"flex w-full items-start justify-between gap-x-2\")}\n key={index}\n >\n <Input\n autoFocus\n data-cy={`keyword-input-field-${index}`}\n name={`allowedKeywords[${index}]`}\n placeholder={t(\"neetoMolecules.security.placeholders.enterKeyword\")}\n />\n <Button\n data-cy={`keyword-remove-button-${index}`}\n icon={Delete}\n style=\"text\"\n onClick={() => removeKeyword(index)}\n />\n </div>\n ));\n};\n\nexport default Add;\n","import { isEmpty } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const buildSecuritySettings = settings => ({\n ...settings.setting,\n addEmail: false,\n});\n\nexport const findKeywordDuplicates = (list, message, createError) => {\n const duplicates = {};\n\n list?.forEach((value, index) => {\n if (duplicates[value]) {\n duplicates[value].push(index);\n } else {\n duplicates[value] = [index];\n }\n });\n\n const errors = Object.values(duplicates).map(\n index =>\n index.length > 1 &&\n new yup.ValidationError(\n message,\n list[index.at(-1)],\n `setting.allowedKeywords[${index.at(-1)}]`\n )\n );\n\n if (isEmpty(errors)) {\n return true;\n }\n\n return createError({ message: () => errors });\n};\n","import { t } from \"i18next\";\nimport { identity } from \"ramda\";\nimport * as yup from \"yup\";\n\nimport { findKeywordDuplicates } from \"./utils\";\n\nconst NOT_SECURED = \"no_auth\";\nconst SESSION_AUTH = \"session_auth\";\n\nyup.addMethod(yup.array, \"unique\", function (message, mapper = identity) {\n return this.test(\n \"unique\",\n message,\n function (list, { parent: { authKind } }) {\n return authKind === OTP_ENABLED &&\n list?.length === new Set(list?.map(mapper)).size\n ? true\n : findKeywordDuplicates(list, message, this.createError);\n }\n );\n});\n\nexport const QUERY_KEYS = {\n SETTINGS_LIST: \"settings-list\",\n GETTING_STARTED: \"getting-started\",\n INTEGRATION_SETTINGS: \"integration_settings\",\n THEMES_SETTINGS: \"themes_setting\",\n};\nexport const SETTINGS_STALE_TIME = 900_000; // 15 mins\nexport const PASSWORD_ENABLED = \"basic_auth\";\nexport const OTP_ENABLED = \"otp_auth\";\n\nexport const APP_NAME = { neetoKB: \"KB\", neetoCourse: \"Course\" };\n\nexport const AUTH_KINDS = [\n {\n label: t(\"neetoMolecules.security.labels.notSecured\"),\n value: NOT_SECURED,\n },\n {\n label: t(\"neetoMolecules.security.labels.passwordEnabled\"),\n value: PASSWORD_ENABLED,\n },\n {\n label: t(\"neetoMolecules.security.labels.otpEnabled\"),\n value: OTP_ENABLED,\n },\n {\n label: t(\"neetoMolecules.security.labels.private\"),\n value: SESSION_AUTH,\n },\n];\n\nexport const SECURITY_SETTINGS_VALIDATION_SCHEMA = yup.object({\n password: yup.string().when(\"authKind\", {\n is: PASSWORD_ENABLED,\n then: yup\n .string()\n .required(\n t(\"neetoMolecules.security.validation.required\", {\n what: t(\"neetoMolecules.security.labels.password\"),\n })\n )\n .min(\n 4,\n t(\"neetoMolecules.security.validation.min\", {\n entity: t(\"neetoMolecules.security.labels.password\"),\n min: 4,\n })\n ),\n }),\n allowedKeywords: yup.array().when(\"authKind\", {\n is: OTP_ENABLED,\n then: yup\n .array()\n .of(\n yup\n .string()\n .trim()\n .required(\n t(\"neetoMolecules.security.validation.required\", {\n what: t(\"neetoMolecules.security.labels.keyword\"),\n })\n )\n )\n .unique(\n t(\"neetoMolecules.security.placeholders.exists\", {\n what: t(\"neetoMolecules.security.labels.keyword\"),\n })\n ),\n }),\n});\n","import React from \"react\";\n\nimport { ErrorMessage, useFormikContext } from \"formik\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Button, Label } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Add from \"./Add\";\n\nimport { OTP_ENABLED, APP_NAME } from \"../constants\";\n\nconst AllowedKeywords = () => {\n const { t } = useTranslation();\n const {\n setFieldValue,\n values: { allowedKeywords, authKind },\n } = useFormikContext();\n\n if (authKind !== OTP_ENABLED) return null;\n\n const appName = APP_NAME[globalProps.appName];\n\n return (\n <div className=\"flex-col space-y-2 py-2\">\n {appName && (\n <Label>\n {t(`neetoMolecules.security.labels.keywordForm.${appName}`)}\n </Label>\n )}\n <div className=\"neeto-ui-bg-pastel-blue neeto-ui-rounded-sm w-full space-y-4 p-6\">\n <Add />\n <Button\n data-cy=\"add-allowed-keyword-button\"\n data-testid=\"add-allowed-keyword-button\"\n label={t(\"neetoMolecules.security.labels.addKeyWord\")}\n style=\"link\"\n onClick={() =>\n setFieldValue(\"allowedKeywords\", [...allowedKeywords, \"\"])\n }\n />\n </div>\n {isEmpty(allowedKeywords) && (\n <ErrorMessage\n className=\"neeto-ui-text-error-600\"\n component=\"div\"\n name=\"allowedKeywords\"\n />\n )}\n </div>\n );\n};\n\nexport default AllowedKeywords;\n","import React from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PASSWORD_ENABLED } from \"./constants\";\n\nconst Password = () => {\n const { t } = useTranslation();\n const {\n values: { authKind },\n getFieldProps,\n } = useFormikContext();\n\n if (authKind !== PASSWORD_ENABLED) return null;\n\n const { onChange: onPasswordChange } = getFieldProps(\"password\");\n\n return (\n <div className=\"space-y-4 pb-2\">\n <Input\n autoFocus\n unlimitedChars\n className=\"w-7/12\"\n data-testid=\"password-block\"\n label={t(\"neetoMolecules.security.labels.password\")}\n name=\"password\"\n placeholder={t(\"neetoMolecules.security.placeholders.enterPassword\")}\n onChange={e => {\n e.target.value = e.target.value.trim();\n onPasswordChange(e);\n }}\n />\n </div>\n );\n};\n\nexport default Password;\n","import React from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Radio } from \"neetoui/formik\";\n\nimport { OTP_ENABLED } from \"./constants\";\n\nconst RadioBlock = ({ radioItems }) => {\n const {\n values: { allowedKeywords = [] },\n setFieldValue,\n } = useFormikContext();\n\n const handleRadioChange = ({\n event: {\n target: { value },\n },\n allowedKeywords,\n }) => {\n const allowedKeywordsValue =\n value === OTP_ENABLED ? [...allowedKeywords, \"\"] : [];\n setFieldValue(\"allowedKeywords\", allowedKeywordsValue);\n setFieldValue(\"authKind\", value);\n };\n\n return (\n <Radio\n stacked\n name=\"authKind\"\n onChange={event => handleRadioChange({ event, allowedKeywords })}\n >\n {radioItems.map(({ label, value }) => (\n <Radio.Item key={value} {...{ label, value }} />\n ))}\n </Radio>\n );\n};\n\nexport default RadioBlock;\n","import axios from \"axios\";\n\nconst fetch = url => axios.get(url);\n\nconst update = (url, payload) => axios.put(url, payload);\n\nconst settingsApi = { fetch, update };\n\nexport default settingsApi;\n","import useMutationWithInvalidation from \"neetocommons/react-utils/useMutationWithInvalidation\";\nimport { useQuery } from \"react-query\";\n\nimport settingsApi from \"./api\";\nimport { QUERY_KEYS, SETTINGS_STALE_TIME } from \"./constants\";\n\nconst { SETTINGS_LIST, GETTING_STARTED, THEMES_SETTINGS } = QUERY_KEYS;\n\nconst useFetchSettings = url =>\n useQuery(SETTINGS_LIST, () => settingsApi.fetch(url), {\n staleTime: SETTINGS_STALE_TIME,\n });\n\nconst useUpdateSetting = url =>\n useMutationWithInvalidation(payload => settingsApi.update(url, payload), {\n keysToInvalidate: [SETTINGS_LIST, GETTING_STARTED, THEMES_SETTINGS],\n });\n\nexport { useFetchSettings, useUpdateSetting };\n","import React, { useState, useEffect } from \"react\";\n\nimport { toLabelAndValue } from \"neetocist\";\nimport { Form, ActionBlock } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\nimport PageLoader from \"components/PageLoader\";\nimport Scrollable from \"components/Scrollable\";\n\nimport AllowedKeywords from \"./AllowedKeywords\";\nimport { SECURITY_SETTINGS_VALIDATION_SCHEMA } from \"./constants\";\nimport Password from \"./PasswordBlock\";\nimport RadioBlock from \"./RadioBlock\";\nimport { useFetchSettings, useUpdateSetting } from \"./useSecurityApi\";\nimport { buildSecuritySettings } from \"./utils\";\n\nconst Security = ({ url, breadcrumbs, title, radioItems }) => {\n const { data: settings = {}, isLoading } = useFetchSettings(url);\n const { mutate: updateSettings } = useUpdateSetting(url);\n\n const [isMobileScreen, setIsMobileScreen] = useState(false);\n\n const isLargerScreen = () => window.innerWidth > 1024;\n\n const handleSubmit = (values, { setSubmitting }) => {\n updateSettings(values, { onSettled: () => setSubmitting(false) });\n };\n\n useEffect(() => {\n const handleResize = () => {\n if (isLargerScreen()) setIsMobileScreen(false);\n else setIsMobileScreen(true);\n };\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n if (isLoading) return <PageLoader />;\n\n return (\n <Container isHeaderFixed>\n <Header\n {...{ breadcrumbs, title }}\n data-cy=\"general-settings-heading\"\n size={isMobileScreen ? \"small\" : \"large\"}\n />\n <Scrollable className=\"w-full pb-6\">\n <Form\n className=\"mx-auto w-full max-w-3xl space-y-6 md:px-0 lg:px-6\"\n formikProps={{\n initialValues: buildSecuritySettings(settings),\n validationSchema: SECURITY_SETTINGS_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n enableReinitialize: true,\n }}\n >\n {({ dirty, isSubmitting }) => (\n <>\n <RadioBlock {...{ radioItems }} />\n <Password />\n <AllowedKeywords />\n <ActionBlock\n cancelButtonProps={{ disabled: false, className: \"ml-3\" }}\n className=\"mt-6 w-full justify-start\"\n submitButtonProps={{\n loading: isSubmitting,\n disabled: !dirty || isSubmitting,\n }}\n />\n </>\n )}\n </Form>\n </Scrollable>\n </Container>\n );\n};\n\nSecurity.propTypes = {\n /**\n * To set a title in the Header section.\n */\n title: PropTypes.node,\n /**\n * API path to manage security record.\n */\n url: PropTypes.string,\n /**\n * To show breadcrumbs in the Header section. `text` accepts a text string to be shown as the breadcrumb and `link` accepts relative URL path for the breadcrumb.\n */\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string,\n })\n ),\n radioItems: PropTypes.arrayOf(\n PropTypes.shape(toLabelAndValue(PropTypes.string))\n ),\n};\n\nexport default Security;\n"],"names":["Add","_useTranslation","useTranslation","t","_useFormikContext","useFormikContext","setFieldValue","allowedKeywords","values","removeKeyword","index","remove","map","_","React","createElement","className","classNames","key","Input","autoFocus","concat","name","placeholder","Button","icon","Delete","style","onClick","buildSecuritySettings","settings","_objectSpread","setting","addEmail","findKeywordDuplicates","list","message","createError","duplicates","forEach","value","push","errors","Object","length","yup","ValidationError","at","isEmpty","NOT_SECURED","SESSION_AUTH","addMethod","array","mapper","arguments","undefined","identity","test","_ref","authKind","parent","OTP_ENABLED","Set","size","QUERY_KEYS","SETTINGS_LIST","GETTING_STARTED","INTEGRATION_SETTINGS","THEMES_SETTINGS","SETTINGS_STALE_TIME","PASSWORD_ENABLED","APP_NAME","neetoKB","neetoCourse","label","SECURITY_SETTINGS_VALIDATION_SCHEMA","object","password","string","when","is","then","required","what","min","entity","of","trim","unique","AllowedKeywords","_useFormikContext$val","appName","globalProps","Label","_toConsumableArray","ErrorMessage","component","Password","getFieldProps","_getFieldProps","onPasswordChange","onChange","unlimitedChars","e","target","RadioBlock","radioItems","handleRadioChange","_ref2","event","allowedKeywordsValue","Radio","stacked","_ref3","Item","fetch","url","axios","get","update","payload","put","settingsApi","useFetchSettings","useQuery","staleTime","useUpdateSetting","useMutationWithInvalidation","keysToInvalidate","Security","breadcrumbs","title","_useFetchSettings","_useFetchSettings$dat","data","isLoading","_useUpdateSetting","updateSettings","mutate","_useState","useState","_useState2","_slicedToArray","isMobileScreen","setIsMobileScreen","isLargerScreen","window","innerWidth","handleSubmit","setSubmitting","onSettled","useEffect","handleResize","addEventListener","removeEventListener","PageLoader","Container","isHeaderFixed","Header","Scrollable","Form","formikProps","initialValues","validationSchema","onSubmit","enableReinitialize","dirty","isSubmitting","Fragment","ActionBlock","cancelButtonProps","disabled","submitButtonProps","loading"],"mappings":"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"}
1
+ {"version":3,"file":"Security.js","sources":["../src/components/Security/AllowedKeywords/Add.jsx","../src/components/Security/utils.js","../src/components/Security/constants.js","../src/components/Security/AllowedKeywords/index.jsx","../src/components/Security/PasswordBlock.jsx","../src/components/Security/RadioBlock.jsx","../src/components/Security/api.js","../src/components/Security/useSecurityApi.js","../src/components/Security/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport { Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport { remove } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nconst Add = () => {\n const { t } = useTranslation();\n const {\n setFieldValue,\n values: { allowedKeywords },\n } = useFormikContext();\n\n const removeKeyword = index =>\n setFieldValue(\"allowedKeywords\", remove(index, 1, allowedKeywords));\n\n if (!allowedKeywords) return null;\n\n return allowedKeywords.map((_, index) => (\n <div\n className={classNames(\"flex w-full items-start justify-between gap-x-2\")}\n key={index}\n >\n <Input\n autoFocus\n data-cy={`keyword-input-field-${index}`}\n name={`allowedKeywords[${index}]`}\n placeholder={t(\"neetoMolecules.security.placeholders.enterKeyword\")}\n />\n <Button\n data-cy={`keyword-remove-button-${index}`}\n icon={Delete}\n style=\"text\"\n onClick={() => removeKeyword(index)}\n />\n </div>\n ));\n};\n\nexport default Add;\n","import { isEmpty } from \"ramda\";\nimport * as yup from \"yup\";\n\nexport const buildSecuritySettings = settings => ({\n ...settings.setting,\n addEmail: false,\n});\n\nexport const findKeywordDuplicates = (list, message, createError) => {\n const duplicates = {};\n\n list?.forEach((value, index) => {\n if (duplicates[value]) {\n duplicates[value].push(index);\n } else {\n duplicates[value] = [index];\n }\n });\n\n const errors = Object.values(duplicates).map(\n index =>\n index.length > 1 &&\n new yup.ValidationError(\n message,\n list[index.at(-1)],\n `setting.allowedKeywords[${index.at(-1)}]`\n )\n );\n\n if (isEmpty(errors)) {\n return true;\n }\n\n return createError({ message: () => errors });\n};\n","import { t } from \"i18next\";\nimport { identity } from \"ramda\";\nimport * as yup from \"yup\";\n\nimport { findKeywordDuplicates } from \"./utils\";\n\nconst NOT_SECURED = \"no_auth\";\nconst SESSION_AUTH = \"session_auth\";\n\nyup.addMethod(yup.array, \"unique\", function (message, mapper = identity) {\n return this.test(\n \"unique\",\n message,\n function (list, { parent: { authKind } }) {\n return authKind === OTP_ENABLED &&\n list?.length === new Set(list?.map(mapper)).size\n ? true\n : findKeywordDuplicates(list, message, this.createError);\n }\n );\n});\n\nexport const QUERY_KEYS = {\n SETTINGS_LIST: \"settings-list\",\n GETTING_STARTED: \"getting-started\",\n INTEGRATION_SETTINGS: \"integration_settings\",\n THEMES_SETTINGS: \"themes_setting\",\n};\nexport const SETTINGS_STALE_TIME = 900_000; // 15 mins\nexport const PASSWORD_ENABLED = \"basic_auth\";\nexport const OTP_ENABLED = \"otp_auth\";\n\nexport const APP_NAME = { neetoKB: \"KB\", neetoCourse: \"Course\" };\n\nexport const AUTH_KINDS = [\n {\n label: t(\"neetoMolecules.security.labels.notSecured\"),\n value: NOT_SECURED,\n },\n {\n label: t(\"neetoMolecules.security.labels.passwordEnabled\"),\n value: PASSWORD_ENABLED,\n },\n {\n label: t(\"neetoMolecules.security.labels.otpEnabled\"),\n value: OTP_ENABLED,\n },\n {\n label: t(\"neetoMolecules.security.labels.private\"),\n value: SESSION_AUTH,\n },\n];\n\nexport const SECURITY_SETTINGS_VALIDATION_SCHEMA = yup.object({\n password: yup.string().when(\"authKind\", {\n is: PASSWORD_ENABLED,\n then: yup\n .string()\n .required(\n t(\"neetoMolecules.security.validation.required\", {\n what: t(\"neetoMolecules.security.labels.password\"),\n })\n )\n .min(\n 4,\n t(\"neetoMolecules.security.validation.min\", {\n entity: t(\"neetoMolecules.security.labels.password\"),\n min: 4,\n })\n ),\n }),\n allowedKeywords: yup.array().when(\"authKind\", {\n is: OTP_ENABLED,\n then: yup\n .array()\n .of(\n yup\n .string()\n .trim()\n .required(\n t(\"neetoMolecules.security.validation.required\", {\n what: t(\"neetoMolecules.security.labels.keyword\"),\n })\n )\n )\n .unique(\n t(\"neetoMolecules.security.placeholders.exists\", {\n what: t(\"neetoMolecules.security.labels.keyword\"),\n })\n ),\n }),\n});\n","import React from \"react\";\n\nimport { ErrorMessage, useFormikContext } from \"formik\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Button, Label } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Add from \"./Add\";\n\nimport { OTP_ENABLED, APP_NAME } from \"../constants\";\n\nconst AllowedKeywords = () => {\n const { t } = useTranslation();\n const {\n setFieldValue,\n values: { allowedKeywords, authKind },\n } = useFormikContext();\n\n if (authKind !== OTP_ENABLED) return null;\n\n const appName = APP_NAME[globalProps.appName];\n\n return (\n <div className=\"flex-col space-y-2 py-2\">\n {appName && (\n <Label>\n {t(`neetoMolecules.security.labels.keywordForm.${appName}`)}\n </Label>\n )}\n <div className=\"neeto-ui-bg-pastel-blue neeto-ui-rounded-sm w-full space-y-4 p-6\">\n <Add />\n <Button\n data-cy=\"add-allowed-keyword-button\"\n data-testid=\"add-allowed-keyword-button\"\n label={t(\"neetoMolecules.security.labels.addKeyWord\")}\n style=\"link\"\n onClick={() =>\n setFieldValue(\"allowedKeywords\", [...allowedKeywords, \"\"])\n }\n />\n </div>\n {isEmpty(allowedKeywords) && (\n <ErrorMessage\n className=\"neeto-ui-text-error-600\"\n component=\"div\"\n name=\"allowedKeywords\"\n />\n )}\n </div>\n );\n};\n\nexport default AllowedKeywords;\n","import React from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PASSWORD_ENABLED } from \"./constants\";\n\nconst Password = () => {\n const { t } = useTranslation();\n const {\n values: { authKind },\n getFieldProps,\n } = useFormikContext();\n\n if (authKind !== PASSWORD_ENABLED) return null;\n\n const { onChange: onPasswordChange } = getFieldProps(\"password\");\n\n return (\n <div className=\"space-y-4 pb-2\">\n <Input\n autoFocus\n unlimitedChars\n className=\"w-7/12\"\n data-testid=\"password-block\"\n label={t(\"neetoMolecules.security.labels.password\")}\n name=\"password\"\n placeholder={t(\"neetoMolecules.security.placeholders.enterPassword\")}\n onChange={e => {\n e.target.value = e.target.value.trim();\n onPasswordChange(e);\n }}\n />\n </div>\n );\n};\n\nexport default Password;\n","import React from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Radio } from \"neetoui/formik\";\n\nimport { OTP_ENABLED } from \"./constants\";\n\nconst RadioBlock = ({ radioItems }) => {\n const {\n values: { allowedKeywords = [] },\n setFieldValue,\n } = useFormikContext();\n\n const handleRadioChange = ({\n event: {\n target: { value },\n },\n allowedKeywords,\n }) => {\n const allowedKeywordsValue =\n value === OTP_ENABLED ? [...allowedKeywords, \"\"] : [];\n setFieldValue(\"allowedKeywords\", allowedKeywordsValue);\n setFieldValue(\"authKind\", value);\n };\n\n return (\n <Radio\n stacked\n name=\"authKind\"\n onChange={event => handleRadioChange({ event, allowedKeywords })}\n >\n {radioItems.map(({ label, value }) => (\n <Radio.Item key={value} {...{ label, value }} />\n ))}\n </Radio>\n );\n};\n\nexport default RadioBlock;\n","import axios from \"axios\";\n\nconst fetch = url => axios.get(url);\n\nconst update = (url, payload) => axios.put(url, payload);\n\nconst settingsApi = { fetch, update };\n\nexport default settingsApi;\n","import useMutationWithInvalidation from \"neetocommons/react-utils/useMutationWithInvalidation\";\nimport { useQuery } from \"react-query\";\n\nimport settingsApi from \"./api\";\nimport { QUERY_KEYS, SETTINGS_STALE_TIME } from \"./constants\";\n\nconst { SETTINGS_LIST, GETTING_STARTED, THEMES_SETTINGS } = QUERY_KEYS;\n\nconst useFetchSettings = url =>\n useQuery(SETTINGS_LIST, () => settingsApi.fetch(url), {\n staleTime: SETTINGS_STALE_TIME,\n });\n\nconst useUpdateSetting = url =>\n useMutationWithInvalidation(payload => settingsApi.update(url, payload), {\n keysToInvalidate: [SETTINGS_LIST, GETTING_STARTED, THEMES_SETTINGS],\n });\n\nexport { useFetchSettings, useUpdateSetting };\n","import React, { useState, useEffect } from \"react\";\n\nimport { toLabelAndValue } from \"neetocist\";\nimport { Form, ActionBlock } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\n\nimport Container from \"components/Container\";\nimport Header from \"components/Header\";\nimport PageLoader from \"components/PageLoader\";\nimport Scrollable from \"components/Scrollable\";\n\nimport AllowedKeywords from \"./AllowedKeywords\";\nimport { SECURITY_SETTINGS_VALIDATION_SCHEMA } from \"./constants\";\nimport Password from \"./PasswordBlock\";\nimport RadioBlock from \"./RadioBlock\";\nimport { useFetchSettings, useUpdateSetting } from \"./useSecurityApi\";\nimport { buildSecuritySettings } from \"./utils\";\n\nconst Security = ({ url, breadcrumbs, title, radioItems }) => {\n const { data: settings = {}, isLoading } = useFetchSettings(url);\n const { mutate: updateSettings } = useUpdateSetting(url);\n\n const [isMobileScreen, setIsMobileScreen] = useState(false);\n\n const isLargerScreen = () => window.innerWidth > 1024;\n\n const handleSubmit = (values, { setSubmitting }) => {\n updateSettings(values, { onSettled: () => setSubmitting(false) });\n };\n\n useEffect(() => {\n const handleResize = () => {\n if (isLargerScreen()) setIsMobileScreen(false);\n else setIsMobileScreen(true);\n };\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n if (isLoading) return <PageLoader />;\n\n return (\n <Container isHeaderFixed>\n <Header\n {...{ breadcrumbs, title }}\n data-cy=\"general-settings-heading\"\n size={isMobileScreen ? \"small\" : \"large\"}\n />\n <Scrollable className=\"w-full pb-6\">\n <Form\n className=\"mx-auto w-full max-w-3xl space-y-6 md:px-0 lg:px-6\"\n formikProps={{\n initialValues: buildSecuritySettings(settings),\n validationSchema: SECURITY_SETTINGS_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n enableReinitialize: true,\n }}\n >\n {({ dirty, isSubmitting }) => (\n <>\n <RadioBlock {...{ radioItems }} />\n <Password />\n <AllowedKeywords />\n <ActionBlock\n cancelButtonProps={{ disabled: false, className: \"ml-3\" }}\n className=\"mt-6 w-full justify-start\"\n submitButtonProps={{\n loading: isSubmitting,\n disabled: !dirty || isSubmitting,\n }}\n />\n </>\n )}\n </Form>\n </Scrollable>\n </Container>\n );\n};\n\nSecurity.propTypes = {\n /**\n * To set a title in the Header section.\n */\n title: PropTypes.node,\n /**\n * API path to manage security record.\n */\n url: PropTypes.string,\n /**\n * To show breadcrumbs in the Header section. `text` accepts a text string to be shown as the breadcrumb and `link` accepts relative URL path for the breadcrumb.\n */\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n text: PropTypes.string,\n link: PropTypes.string,\n })\n ),\n radioItems: PropTypes.arrayOf(\n PropTypes.shape(toLabelAndValue(PropTypes.string))\n ),\n};\n\nexport default Security;\n"],"names":["Add","_useTranslation","useTranslation","t","_useFormikContext","useFormikContext","setFieldValue","allowedKeywords","values","removeKeyword","index","remove","map","_","React","createElement","className","classNames","key","Input","autoFocus","concat","name","placeholder","Button","icon","Delete","style","onClick","buildSecuritySettings","settings","_objectSpread","setting","addEmail","findKeywordDuplicates","list","message","createError","duplicates","forEach","value","push","errors","Object","length","yup","ValidationError","at","isEmpty","NOT_SECURED","SESSION_AUTH","addMethod","array","mapper","arguments","undefined","identity","test","_ref","authKind","parent","OTP_ENABLED","Set","size","QUERY_KEYS","SETTINGS_LIST","GETTING_STARTED","INTEGRATION_SETTINGS","THEMES_SETTINGS","SETTINGS_STALE_TIME","PASSWORD_ENABLED","APP_NAME","neetoKB","neetoCourse","label","SECURITY_SETTINGS_VALIDATION_SCHEMA","object","password","string","when","is","then","required","what","min","entity","of","trim","unique","AllowedKeywords","_useFormikContext$val","appName","globalProps","Label","_toConsumableArray","ErrorMessage","component","Password","getFieldProps","_getFieldProps","onPasswordChange","onChange","unlimitedChars","e","target","RadioBlock","radioItems","handleRadioChange","_ref2","event","allowedKeywordsValue","Radio","stacked","_ref3","Item","fetch","url","axios","get","update","payload","put","settingsApi","useFetchSettings","useQuery","staleTime","useUpdateSetting","useMutationWithInvalidation","keysToInvalidate","Security","breadcrumbs","title","_useFetchSettings","_useFetchSettings$dat","data","isLoading","_useUpdateSetting","updateSettings","mutate","_useState","useState","_useState2","_slicedToArray","isMobileScreen","setIsMobileScreen","isLargerScreen","window","innerWidth","handleSubmit","setSubmitting","onSettled","useEffect","handleResize","addEventListener","removeEventListener","PageLoader","Container","isHeaderFixed","Header","Scrollable","Form","formikProps","initialValues","validationSchema","onSubmit","enableReinitialize","dirty","isSubmitting","Fragment","ActionBlock","cancelButtonProps","disabled","submitButtonProps","loading"],"mappings":"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"}
@@ -16,7 +16,8 @@ import { prop } from 'ramda';
16
16
  import { string } from 'yup';
17
17
 
18
18
  var ALLOWED_FILE_TYPES = [".csv"];
19
- var ONE_MEGABYTE_IN_BYTES = 1024 * 1024;
19
+ var CSV_FILE_SIZE_IN_KB = 32;
20
+ var ONE_KILOBYTE_IN_BYTES = 1024;
20
21
  var DOWNLOAD_SAMPLE_EMAIL_CSV_FILE = "https://d2v7kzglnr2dnh.cloudfront.net/others/sample-bulk-email.csv";
21
22
 
22
23
  var Requirements = withT(function (_ref) {
@@ -56,7 +57,7 @@ var BulkUploadPane = function BulkUploadPane(_ref) {
56
57
  var _useDropzone = useDropzone({
57
58
  accept: fileType,
58
59
  maxFiles: 1,
59
- maxSize: fileSize * ONE_MEGABYTE_IN_BYTES,
60
+ maxSize: fileSize * ONE_KILOBYTE_IN_BYTES,
60
61
  onDrop: function onDrop(files) {
61
62
  return files[0] && handleFileSubmit(files[0]);
62
63
  }
@@ -78,9 +79,9 @@ var BulkUploadPane = function BulkUploadPane(_ref) {
78
79
  var _useTranslation = useTranslation(),
79
80
  t = _useTranslation.t;
80
81
  return /*#__PURE__*/React__default.createElement(Pane, {
81
- "data-testid": "bulk-upload-pane",
82
82
  isOpen: isOpen,
83
- onClose: onClose
83
+ onClose: onClose,
84
+ "data-testid": "bulk-upload-pane"
84
85
  }, /*#__PURE__*/React__default.createElement("div", {
85
86
  tabIndex: 0
86
87
  }, /*#__PURE__*/React__default.createElement(Pane.Header, null, /*#__PURE__*/React__default.createElement(Typography, {
@@ -248,7 +249,7 @@ var SendToFields = function SendToFields(_ref) {
248
249
  }, ccInputProps)), /*#__PURE__*/React__default.createElement(MultiEmailInput, _extends({
249
250
  name: "sendToCc"
250
251
  }, bccInputProps))), /*#__PURE__*/React__default.createElement(BulkUploadPane, {
251
- fileSize: globalProps.endUserUploadedFileSizeLimitInMb,
252
+ fileSize: CSV_FILE_SIZE_IN_KB,
252
253
  fileType: ALLOWED_FILE_TYPES,
253
254
  handleFileSubmit: handleCSVFile,
254
255
  isOpen: isBulkUploadPaneOpen,