@bigbinary/neeto-molecules 1.19.6 → 1.19.8
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/README.md +1 -0
- package/dist/ShareViaLink.js +1 -1
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/StickyRibbonsContainer.js +78 -0
- package/dist/StickyRibbonsContainer.js.map +1 -0
- package/dist/cjs/ShareViaLink.js +1 -1
- package/dist/cjs/ShareViaLink.js.map +1 -1
- package/dist/cjs/StickyRibbonsContainer.js +87 -0
- package/dist/cjs/StickyRibbonsContainer.js.map +1 -0
- package/package.json +1 -1
- package/types/StickyRibbonsContainer.d.ts +26 -0
package/README.md
CHANGED
|
@@ -69,6 +69,7 @@ https://neeto-molecules.neeto.com/
|
|
|
69
69
|
- [ShareViaEmail](./docs/components/ShareViaEmail.md)
|
|
70
70
|
- [ShareViaLink](./docs/components/ShareViaLink.md)
|
|
71
71
|
- [Sidebar](./docs/components/Sidebar.md)
|
|
72
|
+
- [StickyRibbonsContainer](./docs/components/StickyRibbonsContainer.md)
|
|
72
73
|
- [SubHeader](./docs/components/SubHeader.md)
|
|
73
74
|
- [SuffixedInput](./docs/components/SuffixedInput.md)
|
|
74
75
|
- [TableWrapper](./docs/components/TableWrapper.md)
|
package/dist/ShareViaLink.js
CHANGED
|
@@ -242,7 +242,7 @@ var Link = function Link(_ref) {
|
|
|
242
242
|
className: "neeto-ui-rounded-md relative min-w-0 flex-grow truncate border p-2 leading-none",
|
|
243
243
|
"data-cy": "nui-input-field"
|
|
244
244
|
}, url), /*#__PURE__*/React__default.createElement("div", {
|
|
245
|
-
className: "flex w-full items-center gap-1 sm:w-auto"
|
|
245
|
+
className: "flex w-full flex-shrink-0 items-center gap-1 sm:w-auto"
|
|
246
246
|
}, /*#__PURE__*/React__default.createElement(CopyToClipboardButton, {
|
|
247
247
|
"data-cy": "link-copy-button",
|
|
248
248
|
"data-testid": "link-copy-button",
|
package/dist/ShareViaLink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareViaLink.js","sources":["../src/components/ShareViaLink/utils.js","../src/components/ShareViaLink/constants.js","../src/components/ShareViaLink/EditURL.jsx","../src/components/ShareViaLink/RegenerateURL.jsx","../src/components/ShareViaLink/Link.jsx","../src/components/ShareViaLink/QRCode.jsx","../src/components/ShareViaLink/ShareBlock.jsx","../src/components/ShareViaLink/index.jsx"],"sourcesContent":["import { buildUrl } from \"neetocommons/utils/general\";\n\nimport { MAX_PREFIX_SIZE } from \"./constants\";\n\nexport const facebookShareLink = ({ id }) =>\n buildUrl(\"https://www.facebook.com/sharer/sharer.php\", {\n u: `https://${window.location.host}/${id}`,\n });\n\nexport const linkedInShareLink = ({ id, title }) =>\n buildUrl(\"https://www.linkedin.com/shareArticle\", {\n mini: true,\n url: `https://${window.location.host}/${id}`,\n title,\n });\n\nexport const twitterShareLink = ({ id, title }) =>\n buildUrl(\"http://twitter.com/share\", {\n text: title,\n url: `https://${window.location.host}/${id}`,\n });\n\nexport const downloadCanvas = (canvas, options = {}) => {\n const { name = \"image\", extension = \"png\" } = options;\n\n const canvasUrl = canvas.toDataURL(`image/${extension}`);\n const element = document.createElement(\"a\");\n element.href = canvasUrl;\n element.download = `${name}.${extension}`;\n element.click();\n element.remove();\n};\n\nexport const getPathname = url => new URL(url).pathname.slice(1);\n\nexport const getPrefixFromUrl = url => `${new URL(url).origin}/`;\n\nexport const truncatePrefix = url =>\n url.length > MAX_PREFIX_SIZE ? `...${url.slice(-MAX_PREFIX_SIZE)}` : url;\n","import { t } from \"i18next\";\nimport { Facebook, Linkedin, Twitter } from \"neetoicons\";\nimport * as yup from \"yup\";\n\nimport {\n facebookShareLink,\n twitterShareLink,\n linkedInShareLink,\n} from \"./utils\";\n\nexport const SOCIAL_MEDIA_OPTIONS = {\n FACEBOOK: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.facebook\"),\n icon: Facebook,\n generateShareUrl: facebookShareLink,\n },\n LINKEDIN: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.linkedIn\"),\n icon: Linkedin,\n generateShareUrl: linkedInShareLink,\n },\n TWITTER: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.twitter\"),\n icon: Twitter,\n generateShareUrl: twitterShareLink,\n },\n};\n\nexport const PATH_VALIDATION_SCHEMA = yup.object().shape({\n path: yup\n .string()\n .required(t(\"neetoMolecules.shareViaLink.editUrl.validationError\"))\n .matches(\n /^[A-Za-z0-9]([\\w/-])*$/,\n t(\"neetoMolecules.shareViaLink.editUrl.validationError\")\n ),\n});\n\nexport const MAX_PREFIX_SIZE = 30;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Form, Formik } from \"formik\";\nimport { Typography, Pane } from \"neetoui\";\nimport { Input, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PATH_VALIDATION_SCHEMA } from \"./constants\";\nimport \"./edit-url.scss\";\nimport { getPathname, getPrefixFromUrl, truncatePrefix } from \"./utils\";\n\nconst { Header, Body, Footer } = Pane;\n\nconst EditURL = ({\n editUrlProps,\n isOpen,\n onClose,\n url,\n isLoading,\n handleEdit,\n}) => {\n const { t } = useTranslation();\n\n const focusRef = useRef(null);\n const prevIsLoadingRef = useRef(isLoading);\n\n useEffect(() => {\n if (prevIsLoadingRef.current && !isLoading) onClose();\n\n prevIsLoadingRef.current = isLoading;\n }, [isLoading]);\n\n return (\n <Pane\n {...{ isOpen, onClose }}\n data-testid=\"edit-url-modal\"\n initialFocusRef={focusRef}\n size=\"large\"\n >\n <Header>\n <Typography lineHeight=\"normal\" style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.shareViaLink.editUrl.title\")}\n </Typography>\n </Header>\n <Formik\n enableReinitialize\n initialValues={{ path: editUrlProps?.editablePath || getPathname(url) }}\n validationSchema={PATH_VALIDATION_SCHEMA}\n onSubmit={({ path }) => handleEdit(path)}\n >\n {({ isSubmitting, dirty }) => (\n <Form>\n <Body className=\"space-y-6\">\n <Input\n className=\"no-padding w-full flex-grow-0\"\n data-testid=\"edit-url-input\"\n label={t(\"neetoMolecules.shareViaLink.editUrl.inputLabel\")}\n maxLength={editUrlProps?.maxLength}\n name=\"path\"\n ref={focusRef}\n prefix={truncatePrefix(\n editUrlProps?.prefix || getPrefixFromUrl(url)\n )}\n />\n <Typography\n className=\"neeto-ui-text-gray-700\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.shareViaLink.editUrl.description\")}\n </Typography>\n </Body>\n <Footer className=\"space-x-2\">\n <ActionBlock\n className=\"flex items-center space-x-2\"\n cancelButtonProps={{\n onClick: onClose,\n disabled: isSubmitting,\n \"data-testid\": \"edit-url-cancel-button\",\n }}\n submitButtonProps={{\n disabled: isSubmitting || !dirty,\n loading: isLoading,\n \"data-testid\": \"edit-url-confirm-button\",\n }}\n />\n </Footer>\n </Form>\n )}\n </Formik>\n </Pane>\n );\n};\n\nexport default EditURL;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Typography, Modal, Button, Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst RegenerateURL = ({\n isOpen,\n onClose,\n url,\n isLoading,\n handleRegenerate,\n}) => {\n const { t } = useTranslation();\n\n const prevIsLoadingRef = useRef(isLoading);\n\n useEffect(() => {\n if (prevIsLoadingRef.current && !isLoading) onClose();\n\n prevIsLoadingRef.current = isLoading;\n }, [isLoading]);\n\n return (\n <Modal {...{ isOpen, onClose }} data-testid=\"regenerate-url-modal\">\n <Modal.Header>\n <Typography lineHeight=\"normal\" style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.shareViaLink.regenerateUrl.title\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <div className=\"w-full space-y-6\">\n <Input\n disabled\n label={t(\"neetoMolecules.shareViaLink.regenerateUrl.inputLabel\")}\n value={url}\n />\n <Typography\n className=\"neeto-ui-text-gray-700\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.shareViaLink.regenerateUrl.description\")}\n </Typography>\n </div>\n </Modal.Body>\n <Modal.Footer className=\"space-x-2\">\n <Button\n data-cy=\"regenerate-url-confirm-button\"\n data-testid=\"regenerate-url-confirm-button\"\n loading={isLoading}\n label={t(\n \"neetoMolecules.shareViaLink.regenerateUrl.submitButtonLabel\"\n )}\n onClick={handleRegenerate}\n />\n <Button\n data-cy=\"regenerate-url-cancel-button\"\n data-testid=\"regenerate-url-cancel-button\"\n style=\"text\"\n label={t(\n \"neetoMolecules.shareViaLink.regenerateUrl.cancelButtonLabel\"\n )}\n onClick={onClose}\n />\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default RegenerateURL;\n","import React, { useState } from \"react\";\n\nimport { ExternalLink } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport EditURL from \"./EditURL\";\nimport RegenerateURL from \"./RegenerateURL\";\n\nconst Link = ({\n editUrlProps,\n enabledOptions,\n entityName,\n handleEdit,\n handleRegenerate,\n isLoading,\n previewUrl,\n url,\n}) => {\n const [isRegenerateURLModalOpen, setIsRegenerateURLModalOpen] =\n useState(false);\n const [isEditURLModalOpen, setIsEditURLModalOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const isDropdownEnabled = enabledOptions.regenerate || enabledOptions.edit;\n\n return (\n <div className=\"space-y-4\" data-cy=\"link-block\" data-testid=\"link-block\">\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-1\">\n <div\n className=\"neeto-ui-rounded-md relative min-w-0 flex-grow truncate border p-2 leading-none\"\n data-cy=\"nui-input-field\"\n >\n {url}\n </div>\n <div className=\"flex w-full items-center gap-1 sm:w-auto\">\n <CopyToClipboardButton\n data-cy=\"link-copy-button\"\n data-testid=\"link-copy-button\"\n label={t(\"neetoMolecules.shareViaLink.copyLink\")}\n value={url}\n />\n <Button\n data-cy=\"preview-button\"\n data-testid=\"preview-button\"\n href={previewUrl || url}\n icon={ExternalLink}\n style=\"secondary\"\n target=\"_blank\"\n tooltipProps={{\n content: t(\"neetoMolecules.shareViaLink.view\", {\n entity: entityName,\n }),\n position: \"top\",\n }}\n />\n {isDropdownEnabled && (\n <>\n <MoreDropdown\n menuItems={[\n {\n isVisible: enabledOptions.regenerate,\n \"data-testid\": \"regenerate-url-button\",\n \"data-cy\": \"regenerate-url-button\",\n onClick: () => setIsRegenerateURLModalOpen(true),\n label: t(\"neetoMolecules.shareViaLink.regenerateUrl.title\"),\n key: \"regenerate-url-option\",\n },\n {\n isVisible: enabledOptions.edit,\n \"data-testid\": \"edit-url-button\",\n \"data-cy\": \"edit-url-button\",\n onClick: () => setIsEditURLModalOpen(true),\n label: t(\"neetoMolecules.shareViaLink.editUrl.title\"),\n key: \"edit-url-option\",\n },\n ]}\n />\n <RegenerateURL\n {...{ handleRegenerate, isLoading, url }}\n isOpen={isRegenerateURLModalOpen}\n onClose={() => setIsRegenerateURLModalOpen(false)}\n />\n <EditURL\n {...{ editUrlProps, handleEdit, isLoading, url }}\n isOpen={isEditURLModalOpen}\n onClose={() => setIsEditURLModalOpen(false)}\n />\n </>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nimport { slugify } from \"neetocist\";\nimport { Button, Typography } from \"neetoui\";\nimport QRCodeImage from \"qrcode.react\";\nimport { Trans } from \"react-i18next\";\n\nimport { downloadCanvas } from \"./utils\";\n\nconst QRCode = ({ entity, url }) => {\n if (!entity) return null;\n\n const { id, name } = entity;\n const canvasId = `qrcode-share-${id}`;\n\n const handleDownload = () => {\n const canvas = document.getElementById(canvasId);\n if (canvas) downloadCanvas(canvas, { name: slugify(name) });\n };\n\n return (\n <div\n className=\"flex flex-col justify-center space-y-2 py-3 pl-8 sm:space-y-4 sm:py-2 sm:pl-6\"\n data-cy=\"qr-download-block\"\n data-testid=\"qr-download-block\"\n >\n <Typography lineHeight=\"normal\" style=\"body2\" weight=\"medium\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.socialMediaShare.qrCodeInfo\"\n components={{\n button: (\n <Button\n data-cy=\"qr-code-download-button\"\n data-testid=\"qr-code-download-button\"\n style=\"link\"\n onClick={handleDownload}\n />\n ),\n }}\n />\n </Typography>\n <QRCodeImage\n className=\"cursor-pointer\"\n data-cy=\"qr-code-image\"\n data-testid={canvasId}\n id={canvasId}\n size={256}\n style={{ width: 80, height: 80 }}\n value={url}\n onClick={handleDownload}\n />\n </div>\n );\n};\n\nexport default QRCode;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { SOCIAL_MEDIA_OPTIONS } from \"./constants\";\nimport QRCode from \"./QRCode\";\n\nconst ShareBlock = ({\n entity,\n postTitle,\n url,\n moreOptions,\n disableShareSocialMedia,\n disableQRDownload,\n}) => {\n const { t } = useTranslation();\n\n const socialMediaButtonClasses =\n \"neeto-ui-bg-gray-200 hover:neeto-ui-bg-gray-300 flex h-10 w-10 cursor-pointer items-center justify-center neeto-ui-rounded-md transition-colors duration-300 ease-in-out\";\n\n const hasMoreOptions = isPresent(moreOptions);\n\n return (\n <div className=\"flex flex-col divide-y sm:flex-row sm:gap-6 sm:divide-x sm:divide-y-0\">\n {hasMoreOptions && (\n <div className=\"divide-y\">\n {moreOptions.map(({ title, link, icon: Icon, onClick, dataCy }) => {\n const Component = isPresent(link) ? Link : \"div\";\n\n return (\n <Component\n {...{ onClick }}\n className=\"flex cursor-pointer items-center gap-x-2 py-3\"\n data-cy={dataCy}\n key={link}\n to={link}\n >\n <Icon className=\"neeto-ui-text-gray-500\" size={24} />\n <Typography\n className=\"group-hover:underline\"\n style=\"body2\"\n weight=\"medium\"\n >\n {title}\n </Typography>\n </Component>\n );\n })}\n </div>\n )}\n {!disableShareSocialMedia && (\n <div\n data-cy=\"social-media-block\"\n data-testid=\"social-media-block\"\n className={classnames(\"space-y-2 py-3 sm:space-y-4 sm:py-2\", {\n \"pl-8 sm:pl-6\": hasMoreOptions,\n })}\n >\n <Typography\n className=\"neeto-ui-text-gray-800\"\n lineHeight=\"normal\"\n style=\"body2\"\n weight=\"medium\"\n >\n {t(\"neetoMolecules.shareViaLink.socialMediaShare.title\")}\n </Typography>\n <div className=\"flex gap-4\">\n {Object.entries(SOCIAL_MEDIA_OPTIONS).map(\n ([key, { label, icon: Icon, generateShareUrl }]) => (\n <a\n className={socialMediaButtonClasses}\n data-cy={`social-media-button-${key}`}\n data-testid={`social-media-button-${key}`}\n href={generateShareUrl({ id: entity.id, title: postTitle })}\n key={key}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n title={label}\n >\n <Icon size={24} />\n </a>\n )\n )}\n </div>\n </div>\n )}\n {!disableQRDownload && <QRCode {...{ entity, url }} />}\n </div>\n );\n};\n\nexport default ShareBlock;\n","import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport LinkBlock from \"./Link\";\nimport ShareBlock from \"./ShareBlock\";\n\nconst ShareViaLink = ({\n isLoading = false,\n enabledOptions = { regenerate: false, edit: false },\n editUrlProps = { prefix: \"\", editablePath: \"\" },\n entity,\n entityName,\n handleEdit = noop,\n handleRegenerate = noop,\n previewUrl = \"\",\n socialMediaPostTitle,\n url,\n moreOptions,\n isOtherShareOptionsEnabled = true,\n disableShareSocialMedia = false,\n disableQRDownload = false,\n}) => (\n <div\n className=\"neeto-ui-border-gray-400 neeto-ui-shadow-xs neeto-ui-rounded-lg neeto-ui-bg-white col-span-2 space-y-4 border p-6 sm:p-8\"\n data-testid=\"share-via-link\"\n >\n <LinkBlock\n {...{\n editUrlProps,\n enabledOptions,\n entityName,\n handleEdit,\n handleRegenerate,\n isLoading,\n previewUrl,\n url,\n }}\n />\n {isOtherShareOptionsEnabled && (\n <ShareBlock\n {...{\n disableQRDownload,\n disableShareSocialMedia,\n entity,\n moreOptions,\n url,\n }}\n postTitle={socialMediaPostTitle}\n />\n )}\n </div>\n);\n\nShareViaLink.propTypes = {\n /**\n * The boolean value to check if the link is being regenerated or updated.\n */\n isLoading: PropTypes.bool,\n /**\n * The props that are passed to the edit URL field. `Prefix` and `editablePath` decide which part of the URL is to be added in the prefix and which part is editable. Default values are taken from `url`.\n * `maxLength` decides if the entered URL should be limited to specified number of characters.\n */\n editUrlProps: PropTypes.shape({\n prefix: PropTypes.string,\n editablePath: PropTypes.string,\n maxLength: PropTypes.number,\n }),\n /**\n * An object which accepts two boolean values that decide if the dropdown options are hidden or not. If both are false, then the dropdown is hidden as well.\n */\n enabledOptions: PropTypes.shape({\n regenerate: PropTypes.bool,\n edit: PropTypes.bool,\n }),\n /**\n * The entity object for which the link is being shared.\n */\n entity: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n }),\n /**\n * The type of the entity for which the link is being shared.\n */\n entityName: PropTypes.string,\n /**\n * The function that is called when the Edit URL form is submitted. It returns the updated URL value.\n */\n handleEdit: PropTypes.func,\n /**\n * The function which makes the API call to regenerate the url.\n */\n handleRegenerate: PropTypes.func,\n /**\n * The url to be used for previewing the entity (optional).\n */\n previewUrl: PropTypes.string,\n /**\n * The title of the social media post.\n */\n socialMediaPostTitle: PropTypes.string,\n /**\n * The url to be shared.\n */\n url: PropTypes.string,\n /**\n * To share using alternative options\n */\n moreOptions: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n link: PropTypes.string,\n icon: PropTypes.elementType,\n onClick: PropTypes.func,\n dataCy: PropTypes.string,\n })\n ),\n /**\n * To show the extra share options\n */\n isOtherShareOptionsEnabled: PropTypes.bool,\n /**\n * To disable share social media section.\n */\n disableShareSocialMedia: PropTypes.bool,\n /**\n * To disable QR code download section.\n */\n disableQRDownload: PropTypes.bool,\n};\n\nexport default ShareViaLink;\n"],"names":["facebookShareLink","_ref","id","buildUrl","u","concat","window","location","host","linkedInShareLink","_ref2","title","mini","url","twitterShareLink","_ref3","text","downloadCanvas","canvas","options","arguments","length","undefined","_options$name","name","_options$extension","extension","canvasUrl","toDataURL","element","document","createElement","href","download","click","remove","getPathname","URL","pathname","slice","getPrefixFromUrl","origin","truncatePrefix","MAX_PREFIX_SIZE","SOCIAL_MEDIA_OPTIONS","FACEBOOK","label","t","icon","Facebook","generateShareUrl","LINKEDIN","Linkedin","TWITTER","Twitter","PATH_VALIDATION_SCHEMA","yup","object","shape","path","string","required","matches","Header","Pane","Body","Footer","EditURL","editUrlProps","isOpen","onClose","isLoading","handleEdit","_useTranslation","useTranslation","focusRef","useRef","prevIsLoadingRef","useEffect","current","React","initialFocusRef","size","Typography","lineHeight","style","weight","Formik","enableReinitialize","initialValues","editablePath","validationSchema","onSubmit","isSubmitting","dirty","Form","className","Input","maxLength","ref","prefix","ActionBlock","cancelButtonProps","onClick","disabled","submitButtonProps","loading","RegenerateURL","handleRegenerate","Modal","value","Button","Link","enabledOptions","entityName","previewUrl","_useState","useState","_useState2","_slicedToArray","isRegenerateURLModalOpen","setIsRegenerateURLModalOpen","_useState3","_useState4","isEditURLModalOpen","setIsEditURLModalOpen","isDropdownEnabled","regenerate","edit","CopyToClipboardButton","ExternalLink","target","tooltipProps","content","entity","position","Fragment","MoreDropdown","menuItems","isVisible","key","QRCode","canvasId","handleDownload","getElementById","slugify","Trans","i18nKey","components","button","QRCodeImage","width","height","ShareBlock","postTitle","moreOptions","disableShareSocialMedia","disableQRDownload","socialMediaButtonClasses","hasMoreOptions","isPresent","map","link","Icon","dataCy","Component","to","classnames","Object","entries","_ref4","_ref4$","rel","ShareViaLink","_ref$isLoading","_ref$enabledOptions","_ref$editUrlProps","_ref$handleEdit","noop","_ref$handleRegenerate","_ref$previewUrl","socialMediaPostTitle","_ref$isOtherShareOpti","isOtherShareOptionsEnabled","_ref$disableShareSoci","_ref$disableQRDownloa","LinkBlock"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ShareViaLink.js","sources":["../src/components/ShareViaLink/utils.js","../src/components/ShareViaLink/constants.js","../src/components/ShareViaLink/EditURL.jsx","../src/components/ShareViaLink/RegenerateURL.jsx","../src/components/ShareViaLink/Link.jsx","../src/components/ShareViaLink/QRCode.jsx","../src/components/ShareViaLink/ShareBlock.jsx","../src/components/ShareViaLink/index.jsx"],"sourcesContent":["import { buildUrl } from \"neetocommons/utils/general\";\n\nimport { MAX_PREFIX_SIZE } from \"./constants\";\n\nexport const facebookShareLink = ({ id }) =>\n buildUrl(\"https://www.facebook.com/sharer/sharer.php\", {\n u: `https://${window.location.host}/${id}`,\n });\n\nexport const linkedInShareLink = ({ id, title }) =>\n buildUrl(\"https://www.linkedin.com/shareArticle\", {\n mini: true,\n url: `https://${window.location.host}/${id}`,\n title,\n });\n\nexport const twitterShareLink = ({ id, title }) =>\n buildUrl(\"http://twitter.com/share\", {\n text: title,\n url: `https://${window.location.host}/${id}`,\n });\n\nexport const downloadCanvas = (canvas, options = {}) => {\n const { name = \"image\", extension = \"png\" } = options;\n\n const canvasUrl = canvas.toDataURL(`image/${extension}`);\n const element = document.createElement(\"a\");\n element.href = canvasUrl;\n element.download = `${name}.${extension}`;\n element.click();\n element.remove();\n};\n\nexport const getPathname = url => new URL(url).pathname.slice(1);\n\nexport const getPrefixFromUrl = url => `${new URL(url).origin}/`;\n\nexport const truncatePrefix = url =>\n url.length > MAX_PREFIX_SIZE ? `...${url.slice(-MAX_PREFIX_SIZE)}` : url;\n","import { t } from \"i18next\";\nimport { Facebook, Linkedin, Twitter } from \"neetoicons\";\nimport * as yup from \"yup\";\n\nimport {\n facebookShareLink,\n twitterShareLink,\n linkedInShareLink,\n} from \"./utils\";\n\nexport const SOCIAL_MEDIA_OPTIONS = {\n FACEBOOK: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.facebook\"),\n icon: Facebook,\n generateShareUrl: facebookShareLink,\n },\n LINKEDIN: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.linkedIn\"),\n icon: Linkedin,\n generateShareUrl: linkedInShareLink,\n },\n TWITTER: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.twitter\"),\n icon: Twitter,\n generateShareUrl: twitterShareLink,\n },\n};\n\nexport const PATH_VALIDATION_SCHEMA = yup.object().shape({\n path: yup\n .string()\n .required(t(\"neetoMolecules.shareViaLink.editUrl.validationError\"))\n .matches(\n /^[A-Za-z0-9]([\\w/-])*$/,\n t(\"neetoMolecules.shareViaLink.editUrl.validationError\")\n ),\n});\n\nexport const MAX_PREFIX_SIZE = 30;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Form, Formik } from \"formik\";\nimport { Typography, Pane } from \"neetoui\";\nimport { Input, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PATH_VALIDATION_SCHEMA } from \"./constants\";\nimport \"./edit-url.scss\";\nimport { getPathname, getPrefixFromUrl, truncatePrefix } from \"./utils\";\n\nconst { Header, Body, Footer } = Pane;\n\nconst EditURL = ({\n editUrlProps,\n isOpen,\n onClose,\n url,\n isLoading,\n handleEdit,\n}) => {\n const { t } = useTranslation();\n\n const focusRef = useRef(null);\n const prevIsLoadingRef = useRef(isLoading);\n\n useEffect(() => {\n if (prevIsLoadingRef.current && !isLoading) onClose();\n\n prevIsLoadingRef.current = isLoading;\n }, [isLoading]);\n\n return (\n <Pane\n {...{ isOpen, onClose }}\n data-testid=\"edit-url-modal\"\n initialFocusRef={focusRef}\n size=\"large\"\n >\n <Header>\n <Typography lineHeight=\"normal\" style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.shareViaLink.editUrl.title\")}\n </Typography>\n </Header>\n <Formik\n enableReinitialize\n initialValues={{ path: editUrlProps?.editablePath || getPathname(url) }}\n validationSchema={PATH_VALIDATION_SCHEMA}\n onSubmit={({ path }) => handleEdit(path)}\n >\n {({ isSubmitting, dirty }) => (\n <Form>\n <Body className=\"space-y-6\">\n <Input\n className=\"no-padding w-full flex-grow-0\"\n data-testid=\"edit-url-input\"\n label={t(\"neetoMolecules.shareViaLink.editUrl.inputLabel\")}\n maxLength={editUrlProps?.maxLength}\n name=\"path\"\n ref={focusRef}\n prefix={truncatePrefix(\n editUrlProps?.prefix || getPrefixFromUrl(url)\n )}\n />\n <Typography\n className=\"neeto-ui-text-gray-700\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.shareViaLink.editUrl.description\")}\n </Typography>\n </Body>\n <Footer className=\"space-x-2\">\n <ActionBlock\n className=\"flex items-center space-x-2\"\n cancelButtonProps={{\n onClick: onClose,\n disabled: isSubmitting,\n \"data-testid\": \"edit-url-cancel-button\",\n }}\n submitButtonProps={{\n disabled: isSubmitting || !dirty,\n loading: isLoading,\n \"data-testid\": \"edit-url-confirm-button\",\n }}\n />\n </Footer>\n </Form>\n )}\n </Formik>\n </Pane>\n );\n};\n\nexport default EditURL;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Typography, Modal, Button, Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst RegenerateURL = ({\n isOpen,\n onClose,\n url,\n isLoading,\n handleRegenerate,\n}) => {\n const { t } = useTranslation();\n\n const prevIsLoadingRef = useRef(isLoading);\n\n useEffect(() => {\n if (prevIsLoadingRef.current && !isLoading) onClose();\n\n prevIsLoadingRef.current = isLoading;\n }, [isLoading]);\n\n return (\n <Modal {...{ isOpen, onClose }} data-testid=\"regenerate-url-modal\">\n <Modal.Header>\n <Typography lineHeight=\"normal\" style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.shareViaLink.regenerateUrl.title\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <div className=\"w-full space-y-6\">\n <Input\n disabled\n label={t(\"neetoMolecules.shareViaLink.regenerateUrl.inputLabel\")}\n value={url}\n />\n <Typography\n className=\"neeto-ui-text-gray-700\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.shareViaLink.regenerateUrl.description\")}\n </Typography>\n </div>\n </Modal.Body>\n <Modal.Footer className=\"space-x-2\">\n <Button\n data-cy=\"regenerate-url-confirm-button\"\n data-testid=\"regenerate-url-confirm-button\"\n loading={isLoading}\n label={t(\n \"neetoMolecules.shareViaLink.regenerateUrl.submitButtonLabel\"\n )}\n onClick={handleRegenerate}\n />\n <Button\n data-cy=\"regenerate-url-cancel-button\"\n data-testid=\"regenerate-url-cancel-button\"\n style=\"text\"\n label={t(\n \"neetoMolecules.shareViaLink.regenerateUrl.cancelButtonLabel\"\n )}\n onClick={onClose}\n />\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default RegenerateURL;\n","import React, { useState } from \"react\";\n\nimport { ExternalLink } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport EditURL from \"./EditURL\";\nimport RegenerateURL from \"./RegenerateURL\";\n\nconst Link = ({\n editUrlProps,\n enabledOptions,\n entityName,\n handleEdit,\n handleRegenerate,\n isLoading,\n previewUrl,\n url,\n}) => {\n const [isRegenerateURLModalOpen, setIsRegenerateURLModalOpen] =\n useState(false);\n const [isEditURLModalOpen, setIsEditURLModalOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const isDropdownEnabled = enabledOptions.regenerate || enabledOptions.edit;\n\n return (\n <div className=\"space-y-4\" data-cy=\"link-block\" data-testid=\"link-block\">\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-1\">\n <div\n className=\"neeto-ui-rounded-md relative min-w-0 flex-grow truncate border p-2 leading-none\"\n data-cy=\"nui-input-field\"\n >\n {url}\n </div>\n <div className=\"flex w-full flex-shrink-0 items-center gap-1 sm:w-auto\">\n <CopyToClipboardButton\n data-cy=\"link-copy-button\"\n data-testid=\"link-copy-button\"\n label={t(\"neetoMolecules.shareViaLink.copyLink\")}\n value={url}\n />\n <Button\n data-cy=\"preview-button\"\n data-testid=\"preview-button\"\n href={previewUrl || url}\n icon={ExternalLink}\n style=\"secondary\"\n target=\"_blank\"\n tooltipProps={{\n content: t(\"neetoMolecules.shareViaLink.view\", {\n entity: entityName,\n }),\n position: \"top\",\n }}\n />\n {isDropdownEnabled && (\n <>\n <MoreDropdown\n menuItems={[\n {\n isVisible: enabledOptions.regenerate,\n \"data-testid\": \"regenerate-url-button\",\n \"data-cy\": \"regenerate-url-button\",\n onClick: () => setIsRegenerateURLModalOpen(true),\n label: t(\"neetoMolecules.shareViaLink.regenerateUrl.title\"),\n key: \"regenerate-url-option\",\n },\n {\n isVisible: enabledOptions.edit,\n \"data-testid\": \"edit-url-button\",\n \"data-cy\": \"edit-url-button\",\n onClick: () => setIsEditURLModalOpen(true),\n label: t(\"neetoMolecules.shareViaLink.editUrl.title\"),\n key: \"edit-url-option\",\n },\n ]}\n />\n <RegenerateURL\n {...{ handleRegenerate, isLoading, url }}\n isOpen={isRegenerateURLModalOpen}\n onClose={() => setIsRegenerateURLModalOpen(false)}\n />\n <EditURL\n {...{ editUrlProps, handleEdit, isLoading, url }}\n isOpen={isEditURLModalOpen}\n onClose={() => setIsEditURLModalOpen(false)}\n />\n </>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nimport { slugify } from \"neetocist\";\nimport { Button, Typography } from \"neetoui\";\nimport QRCodeImage from \"qrcode.react\";\nimport { Trans } from \"react-i18next\";\n\nimport { downloadCanvas } from \"./utils\";\n\nconst QRCode = ({ entity, url }) => {\n if (!entity) return null;\n\n const { id, name } = entity;\n const canvasId = `qrcode-share-${id}`;\n\n const handleDownload = () => {\n const canvas = document.getElementById(canvasId);\n if (canvas) downloadCanvas(canvas, { name: slugify(name) });\n };\n\n return (\n <div\n className=\"flex flex-col justify-center space-y-2 py-3 pl-8 sm:space-y-4 sm:py-2 sm:pl-6\"\n data-cy=\"qr-download-block\"\n data-testid=\"qr-download-block\"\n >\n <Typography lineHeight=\"normal\" style=\"body2\" weight=\"medium\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.socialMediaShare.qrCodeInfo\"\n components={{\n button: (\n <Button\n data-cy=\"qr-code-download-button\"\n data-testid=\"qr-code-download-button\"\n style=\"link\"\n onClick={handleDownload}\n />\n ),\n }}\n />\n </Typography>\n <QRCodeImage\n className=\"cursor-pointer\"\n data-cy=\"qr-code-image\"\n data-testid={canvasId}\n id={canvasId}\n size={256}\n style={{ width: 80, height: 80 }}\n value={url}\n onClick={handleDownload}\n />\n </div>\n );\n};\n\nexport default QRCode;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { SOCIAL_MEDIA_OPTIONS } from \"./constants\";\nimport QRCode from \"./QRCode\";\n\nconst ShareBlock = ({\n entity,\n postTitle,\n url,\n moreOptions,\n disableShareSocialMedia,\n disableQRDownload,\n}) => {\n const { t } = useTranslation();\n\n const socialMediaButtonClasses =\n \"neeto-ui-bg-gray-200 hover:neeto-ui-bg-gray-300 flex h-10 w-10 cursor-pointer items-center justify-center neeto-ui-rounded-md transition-colors duration-300 ease-in-out\";\n\n const hasMoreOptions = isPresent(moreOptions);\n\n return (\n <div className=\"flex flex-col divide-y sm:flex-row sm:gap-6 sm:divide-x sm:divide-y-0\">\n {hasMoreOptions && (\n <div className=\"divide-y\">\n {moreOptions.map(({ title, link, icon: Icon, onClick, dataCy }) => {\n const Component = isPresent(link) ? Link : \"div\";\n\n return (\n <Component\n {...{ onClick }}\n className=\"flex cursor-pointer items-center gap-x-2 py-3\"\n data-cy={dataCy}\n key={link}\n to={link}\n >\n <Icon className=\"neeto-ui-text-gray-500\" size={24} />\n <Typography\n className=\"group-hover:underline\"\n style=\"body2\"\n weight=\"medium\"\n >\n {title}\n </Typography>\n </Component>\n );\n })}\n </div>\n )}\n {!disableShareSocialMedia && (\n <div\n data-cy=\"social-media-block\"\n data-testid=\"social-media-block\"\n className={classnames(\"space-y-2 py-3 sm:space-y-4 sm:py-2\", {\n \"pl-8 sm:pl-6\": hasMoreOptions,\n })}\n >\n <Typography\n className=\"neeto-ui-text-gray-800\"\n lineHeight=\"normal\"\n style=\"body2\"\n weight=\"medium\"\n >\n {t(\"neetoMolecules.shareViaLink.socialMediaShare.title\")}\n </Typography>\n <div className=\"flex gap-4\">\n {Object.entries(SOCIAL_MEDIA_OPTIONS).map(\n ([key, { label, icon: Icon, generateShareUrl }]) => (\n <a\n className={socialMediaButtonClasses}\n data-cy={`social-media-button-${key}`}\n data-testid={`social-media-button-${key}`}\n href={generateShareUrl({ id: entity.id, title: postTitle })}\n key={key}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n title={label}\n >\n <Icon size={24} />\n </a>\n )\n )}\n </div>\n </div>\n )}\n {!disableQRDownload && <QRCode {...{ entity, url }} />}\n </div>\n );\n};\n\nexport default ShareBlock;\n","import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport LinkBlock from \"./Link\";\nimport ShareBlock from \"./ShareBlock\";\n\nconst ShareViaLink = ({\n isLoading = false,\n enabledOptions = { regenerate: false, edit: false },\n editUrlProps = { prefix: \"\", editablePath: \"\" },\n entity,\n entityName,\n handleEdit = noop,\n handleRegenerate = noop,\n previewUrl = \"\",\n socialMediaPostTitle,\n url,\n moreOptions,\n isOtherShareOptionsEnabled = true,\n disableShareSocialMedia = false,\n disableQRDownload = false,\n}) => (\n <div\n className=\"neeto-ui-border-gray-400 neeto-ui-shadow-xs neeto-ui-rounded-lg neeto-ui-bg-white col-span-2 space-y-4 border p-6 sm:p-8\"\n data-testid=\"share-via-link\"\n >\n <LinkBlock\n {...{\n editUrlProps,\n enabledOptions,\n entityName,\n handleEdit,\n handleRegenerate,\n isLoading,\n previewUrl,\n url,\n }}\n />\n {isOtherShareOptionsEnabled && (\n <ShareBlock\n {...{\n disableQRDownload,\n disableShareSocialMedia,\n entity,\n moreOptions,\n url,\n }}\n postTitle={socialMediaPostTitle}\n />\n )}\n </div>\n);\n\nShareViaLink.propTypes = {\n /**\n * The boolean value to check if the link is being regenerated or updated.\n */\n isLoading: PropTypes.bool,\n /**\n * The props that are passed to the edit URL field. `Prefix` and `editablePath` decide which part of the URL is to be added in the prefix and which part is editable. Default values are taken from `url`.\n * `maxLength` decides if the entered URL should be limited to specified number of characters.\n */\n editUrlProps: PropTypes.shape({\n prefix: PropTypes.string,\n editablePath: PropTypes.string,\n maxLength: PropTypes.number,\n }),\n /**\n * An object which accepts two boolean values that decide if the dropdown options are hidden or not. If both are false, then the dropdown is hidden as well.\n */\n enabledOptions: PropTypes.shape({\n regenerate: PropTypes.bool,\n edit: PropTypes.bool,\n }),\n /**\n * The entity object for which the link is being shared.\n */\n entity: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n }),\n /**\n * The type of the entity for which the link is being shared.\n */\n entityName: PropTypes.string,\n /**\n * The function that is called when the Edit URL form is submitted. It returns the updated URL value.\n */\n handleEdit: PropTypes.func,\n /**\n * The function which makes the API call to regenerate the url.\n */\n handleRegenerate: PropTypes.func,\n /**\n * The url to be used for previewing the entity (optional).\n */\n previewUrl: PropTypes.string,\n /**\n * The title of the social media post.\n */\n socialMediaPostTitle: PropTypes.string,\n /**\n * The url to be shared.\n */\n url: PropTypes.string,\n /**\n * To share using alternative options\n */\n moreOptions: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n link: PropTypes.string,\n icon: PropTypes.elementType,\n onClick: PropTypes.func,\n dataCy: PropTypes.string,\n })\n ),\n /**\n * To show the extra share options\n */\n isOtherShareOptionsEnabled: PropTypes.bool,\n /**\n * To disable share social media section.\n */\n disableShareSocialMedia: PropTypes.bool,\n /**\n * To disable QR code download section.\n */\n disableQRDownload: PropTypes.bool,\n};\n\nexport default ShareViaLink;\n"],"names":["facebookShareLink","_ref","id","buildUrl","u","concat","window","location","host","linkedInShareLink","_ref2","title","mini","url","twitterShareLink","_ref3","text","downloadCanvas","canvas","options","arguments","length","undefined","_options$name","name","_options$extension","extension","canvasUrl","toDataURL","element","document","createElement","href","download","click","remove","getPathname","URL","pathname","slice","getPrefixFromUrl","origin","truncatePrefix","MAX_PREFIX_SIZE","SOCIAL_MEDIA_OPTIONS","FACEBOOK","label","t","icon","Facebook","generateShareUrl","LINKEDIN","Linkedin","TWITTER","Twitter","PATH_VALIDATION_SCHEMA","yup","object","shape","path","string","required","matches","Header","Pane","Body","Footer","EditURL","editUrlProps","isOpen","onClose","isLoading","handleEdit","_useTranslation","useTranslation","focusRef","useRef","prevIsLoadingRef","useEffect","current","React","initialFocusRef","size","Typography","lineHeight","style","weight","Formik","enableReinitialize","initialValues","editablePath","validationSchema","onSubmit","isSubmitting","dirty","Form","className","Input","maxLength","ref","prefix","ActionBlock","cancelButtonProps","onClick","disabled","submitButtonProps","loading","RegenerateURL","handleRegenerate","Modal","value","Button","Link","enabledOptions","entityName","previewUrl","_useState","useState","_useState2","_slicedToArray","isRegenerateURLModalOpen","setIsRegenerateURLModalOpen","_useState3","_useState4","isEditURLModalOpen","setIsEditURLModalOpen","isDropdownEnabled","regenerate","edit","CopyToClipboardButton","ExternalLink","target","tooltipProps","content","entity","position","Fragment","MoreDropdown","menuItems","isVisible","key","QRCode","canvasId","handleDownload","getElementById","slugify","Trans","i18nKey","components","button","QRCodeImage","width","height","ShareBlock","postTitle","moreOptions","disableShareSocialMedia","disableQRDownload","socialMediaButtonClasses","hasMoreOptions","isPresent","map","link","Icon","dataCy","Component","to","classnames","Object","entries","_ref4","_ref4$","rel","ShareViaLink","_ref$isLoading","_ref$enabledOptions","_ref$editUrlProps","_ref$handleEdit","noop","_ref$handleRegenerate","_ref$previewUrl","socialMediaPostTitle","_ref$isOtherShareOpti","isOtherShareOptionsEnabled","_ref$disableShareSoci","_ref$disableQRDownloa","LinkBlock"],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
2
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
+
import React__default from 'react';
|
|
4
|
+
import { useLocalStorage } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
5
|
+
import { EditorContent } from '@bigbinary/neeto-editor';
|
|
6
|
+
import { Tag } from '@bigbinary/neetoui';
|
|
7
|
+
import { pluck } from 'ramda';
|
|
8
|
+
import { n } from './inject-css-c86de496.js';
|
|
9
|
+
import { useQuery } from 'react-query';
|
|
10
|
+
import axios from 'axios';
|
|
11
|
+
import { BASE_API_V1_URL } from '@bigbinary/neeto-commons-frontend/constants';
|
|
12
|
+
|
|
13
|
+
var QUERY_KEYS = {
|
|
14
|
+
APP_STICKY_RIBBONS_LIST: "APP_STICKY_RIBBONS_LIST"
|
|
15
|
+
};
|
|
16
|
+
var STICKY_RIBBON_KIND_TO_STYLE = {
|
|
17
|
+
info: "info",
|
|
18
|
+
warning: "warning",
|
|
19
|
+
error: "danger"
|
|
20
|
+
};
|
|
21
|
+
var STICKY_RIBBONS_LOCAL_STORAGE_KEY = "dismissedStickyRibbons";
|
|
22
|
+
|
|
23
|
+
var css = ".neeto-molecules-sticky-ribbon{border-radius:0}";
|
|
24
|
+
n(css,{});
|
|
25
|
+
|
|
26
|
+
var fetchStickyRibbons = function fetchStickyRibbons() {
|
|
27
|
+
return axios.get("".concat(BASE_API_V1_URL, "/sticky_ribbons"));
|
|
28
|
+
};
|
|
29
|
+
var stickyRibbonsApi = {
|
|
30
|
+
fetchStickyRibbons: fetchStickyRibbons
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
var APP_STICKY_RIBBONS_LIST = QUERY_KEYS.APP_STICKY_RIBBONS_LIST;
|
|
34
|
+
var useFetchStickyRibbons = function useFetchStickyRibbons() {
|
|
35
|
+
return useQuery([APP_STICKY_RIBBONS_LIST], stickyRibbonsApi.fetchStickyRibbons);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var StickyRibbonsContainer = function StickyRibbonsContainer() {
|
|
39
|
+
var _useLocalStorage = useLocalStorage(STICKY_RIBBONS_LOCAL_STORAGE_KEY, []),
|
|
40
|
+
_useLocalStorage2 = _slicedToArray(_useLocalStorage, 2),
|
|
41
|
+
dismissedRibbons = _useLocalStorage2[0],
|
|
42
|
+
setDismissedRibbons = _useLocalStorage2[1];
|
|
43
|
+
var _useFetchStickyRibbon = useFetchStickyRibbons(),
|
|
44
|
+
_useFetchStickyRibbon2 = _useFetchStickyRibbon.data,
|
|
45
|
+
_useFetchStickyRibbon3 = _useFetchStickyRibbon2 === void 0 ? {} : _useFetchStickyRibbon2,
|
|
46
|
+
_useFetchStickyRibbon4 = _useFetchStickyRibbon3.stickyRibbons,
|
|
47
|
+
stickyRibbons = _useFetchStickyRibbon4 === void 0 ? [] : _useFetchStickyRibbon4;
|
|
48
|
+
var handleDismiss = function handleDismiss(ribbonId) {
|
|
49
|
+
var validRibbonIds = pluck("id", stickyRibbons);
|
|
50
|
+
var updatedDismissedRibbons = dismissedRibbons.filter(function (id) {
|
|
51
|
+
return validRibbonIds.includes(id);
|
|
52
|
+
});
|
|
53
|
+
setDismissedRibbons([].concat(_toConsumableArray(updatedDismissedRibbons), [ribbonId]));
|
|
54
|
+
};
|
|
55
|
+
var visibleRibbons = stickyRibbons.filter(function (ribbon) {
|
|
56
|
+
return !dismissedRibbons.includes(ribbon.id);
|
|
57
|
+
});
|
|
58
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, visibleRibbons.map(function (_ref) {
|
|
59
|
+
var id = _ref.id,
|
|
60
|
+
kind = _ref.kind,
|
|
61
|
+
message = _ref.message;
|
|
62
|
+
return /*#__PURE__*/React__default.createElement(Tag, {
|
|
63
|
+
className: "neeto-molecules-sticky-ribbon w-full p-2.5 text-center",
|
|
64
|
+
key: id,
|
|
65
|
+
size: "large",
|
|
66
|
+
style: STICKY_RIBBON_KIND_TO_STYLE[kind],
|
|
67
|
+
onClose: function onClose() {
|
|
68
|
+
return handleDismiss(id);
|
|
69
|
+
}
|
|
70
|
+
}, /*#__PURE__*/React__default.createElement(EditorContent, {
|
|
71
|
+
className: "w-full",
|
|
72
|
+
content: message
|
|
73
|
+
}));
|
|
74
|
+
}));
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export { StickyRibbonsContainer as default };
|
|
78
|
+
//# sourceMappingURL=StickyRibbonsContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StickyRibbonsContainer.js","sources":["../src/components/StickyRibbonsContainer/constants.js","../src/components/StickyRibbonsContainer/api.js","../src/components/StickyRibbonsContainer/useStickyRibbonsApi.js","../src/components/StickyRibbonsContainer/index.jsx"],"sourcesContent":["export const QUERY_KEYS = {\n APP_STICKY_RIBBONS_LIST: \"APP_STICKY_RIBBONS_LIST\",\n};\n\nexport const STICKY_RIBBON_KIND_TO_STYLE = {\n info: \"info\",\n warning: \"warning\",\n error: \"danger\",\n};\n\nexport const STICKY_RIBBONS_LOCAL_STORAGE_KEY = \"dismissedStickyRibbons\";\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/constants\";\n\nconst fetchStickyRibbons = () => axios.get(`${BASE_API_V1_URL}/sticky_ribbons`);\n\nconst stickyRibbonsApi = { fetchStickyRibbons };\n\nexport default stickyRibbonsApi;\n","import { useQuery } from \"react-query\";\n\nimport stickyRibbonsApi from \"./api\";\nimport { QUERY_KEYS } from \"./constants\";\n\nconst { APP_STICKY_RIBBONS_LIST } = QUERY_KEYS;\n\nconst useFetchStickyRibbons = () =>\n useQuery([APP_STICKY_RIBBONS_LIST], stickyRibbonsApi.fetchStickyRibbons);\n\nexport { useFetchStickyRibbons };\n","import React from \"react\";\n\nimport { useLocalStorage } from \"neetocommons/react-utils\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Tag } from \"neetoui\";\nimport { pluck } from \"ramda\";\n\nimport {\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n STICKY_RIBBON_KIND_TO_STYLE,\n} from \"./constants\";\nimport \"./sticky-ribbons.scss\";\nimport { useFetchStickyRibbons } from \"./useStickyRibbonsApi\";\n\nconst StickyRibbonsContainer = () => {\n const [dismissedRibbons, setDismissedRibbons] = useLocalStorage(\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n []\n );\n\n const { data: { stickyRibbons = [] } = {} } = useFetchStickyRibbons();\n\n const handleDismiss = ribbonId => {\n const validRibbonIds = pluck(\"id\", stickyRibbons);\n const updatedDismissedRibbons = dismissedRibbons.filter(id =>\n validRibbonIds.includes(id)\n );\n\n setDismissedRibbons([...updatedDismissedRibbons, ribbonId]);\n };\n\n const visibleRibbons = stickyRibbons.filter(\n ribbon => !dismissedRibbons.includes(ribbon.id)\n );\n\n return (\n <>\n {visibleRibbons.map(({ id, kind, message }) => (\n <Tag\n className=\"neeto-molecules-sticky-ribbon w-full p-2.5 text-center\"\n key={id}\n size=\"large\"\n style={STICKY_RIBBON_KIND_TO_STYLE[kind]}\n onClose={() => handleDismiss(id)}\n >\n <EditorContent className=\"w-full\" content={message} />\n </Tag>\n ))}\n </>\n );\n};\n\nexport default StickyRibbonsContainer;\n"],"names":["QUERY_KEYS","APP_STICKY_RIBBONS_LIST","STICKY_RIBBON_KIND_TO_STYLE","info","warning","error","STICKY_RIBBONS_LOCAL_STORAGE_KEY","fetchStickyRibbons","axios","get","concat","BASE_API_V1_URL","stickyRibbonsApi","useFetchStickyRibbons","useQuery","StickyRibbonsContainer","_useLocalStorage","useLocalStorage","_useLocalStorage2","_slicedToArray","dismissedRibbons","setDismissedRibbons","_useFetchStickyRibbon","_useFetchStickyRibbon2","data","_useFetchStickyRibbon3","_useFetchStickyRibbon4","stickyRibbons","handleDismiss","ribbonId","validRibbonIds","pluck","updatedDismissedRibbons","filter","id","includes","_toConsumableArray","visibleRibbons","ribbon","React","createElement","Fragment","map","_ref","kind","message","Tag","className","key","size","style","onClose","EditorContent","content"],"mappings":"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"}
|
package/dist/cjs/ShareViaLink.js
CHANGED
|
@@ -270,7 +270,7 @@ var Link = function Link(_ref) {
|
|
|
270
270
|
className: "neeto-ui-rounded-md relative min-w-0 flex-grow truncate border p-2 leading-none",
|
|
271
271
|
"data-cy": "nui-input-field"
|
|
272
272
|
}, url), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
273
|
-
className: "flex w-full items-center gap-1 sm:w-auto"
|
|
273
|
+
className: "flex w-full flex-shrink-0 items-center gap-1 sm:w-auto"
|
|
274
274
|
}, /*#__PURE__*/React__default["default"].createElement(CopyToClipboardButton, {
|
|
275
275
|
"data-cy": "link-copy-button",
|
|
276
276
|
"data-testid": "link-copy-button",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareViaLink.js","sources":["../../src/components/ShareViaLink/utils.js","../../src/components/ShareViaLink/constants.js","../../src/components/ShareViaLink/EditURL.jsx","../../src/components/ShareViaLink/RegenerateURL.jsx","../../src/components/ShareViaLink/Link.jsx","../../src/components/ShareViaLink/QRCode.jsx","../../src/components/ShareViaLink/ShareBlock.jsx","../../src/components/ShareViaLink/index.jsx"],"sourcesContent":["import { buildUrl } from \"neetocommons/utils/general\";\n\nimport { MAX_PREFIX_SIZE } from \"./constants\";\n\nexport const facebookShareLink = ({ id }) =>\n buildUrl(\"https://www.facebook.com/sharer/sharer.php\", {\n u: `https://${window.location.host}/${id}`,\n });\n\nexport const linkedInShareLink = ({ id, title }) =>\n buildUrl(\"https://www.linkedin.com/shareArticle\", {\n mini: true,\n url: `https://${window.location.host}/${id}`,\n title,\n });\n\nexport const twitterShareLink = ({ id, title }) =>\n buildUrl(\"http://twitter.com/share\", {\n text: title,\n url: `https://${window.location.host}/${id}`,\n });\n\nexport const downloadCanvas = (canvas, options = {}) => {\n const { name = \"image\", extension = \"png\" } = options;\n\n const canvasUrl = canvas.toDataURL(`image/${extension}`);\n const element = document.createElement(\"a\");\n element.href = canvasUrl;\n element.download = `${name}.${extension}`;\n element.click();\n element.remove();\n};\n\nexport const getPathname = url => new URL(url).pathname.slice(1);\n\nexport const getPrefixFromUrl = url => `${new URL(url).origin}/`;\n\nexport const truncatePrefix = url =>\n url.length > MAX_PREFIX_SIZE ? `...${url.slice(-MAX_PREFIX_SIZE)}` : url;\n","import { t } from \"i18next\";\nimport { Facebook, Linkedin, Twitter } from \"neetoicons\";\nimport * as yup from \"yup\";\n\nimport {\n facebookShareLink,\n twitterShareLink,\n linkedInShareLink,\n} from \"./utils\";\n\nexport const SOCIAL_MEDIA_OPTIONS = {\n FACEBOOK: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.facebook\"),\n icon: Facebook,\n generateShareUrl: facebookShareLink,\n },\n LINKEDIN: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.linkedIn\"),\n icon: Linkedin,\n generateShareUrl: linkedInShareLink,\n },\n TWITTER: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.twitter\"),\n icon: Twitter,\n generateShareUrl: twitterShareLink,\n },\n};\n\nexport const PATH_VALIDATION_SCHEMA = yup.object().shape({\n path: yup\n .string()\n .required(t(\"neetoMolecules.shareViaLink.editUrl.validationError\"))\n .matches(\n /^[A-Za-z0-9]([\\w/-])*$/,\n t(\"neetoMolecules.shareViaLink.editUrl.validationError\")\n ),\n});\n\nexport const MAX_PREFIX_SIZE = 30;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Form, Formik } from \"formik\";\nimport { Typography, Pane } from \"neetoui\";\nimport { Input, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PATH_VALIDATION_SCHEMA } from \"./constants\";\nimport \"./edit-url.scss\";\nimport { getPathname, getPrefixFromUrl, truncatePrefix } from \"./utils\";\n\nconst { Header, Body, Footer } = Pane;\n\nconst EditURL = ({\n editUrlProps,\n isOpen,\n onClose,\n url,\n isLoading,\n handleEdit,\n}) => {\n const { t } = useTranslation();\n\n const focusRef = useRef(null);\n const prevIsLoadingRef = useRef(isLoading);\n\n useEffect(() => {\n if (prevIsLoadingRef.current && !isLoading) onClose();\n\n prevIsLoadingRef.current = isLoading;\n }, [isLoading]);\n\n return (\n <Pane\n {...{ isOpen, onClose }}\n data-testid=\"edit-url-modal\"\n initialFocusRef={focusRef}\n size=\"large\"\n >\n <Header>\n <Typography lineHeight=\"normal\" style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.shareViaLink.editUrl.title\")}\n </Typography>\n </Header>\n <Formik\n enableReinitialize\n initialValues={{ path: editUrlProps?.editablePath || getPathname(url) }}\n validationSchema={PATH_VALIDATION_SCHEMA}\n onSubmit={({ path }) => handleEdit(path)}\n >\n {({ isSubmitting, dirty }) => (\n <Form>\n <Body className=\"space-y-6\">\n <Input\n className=\"no-padding w-full flex-grow-0\"\n data-testid=\"edit-url-input\"\n label={t(\"neetoMolecules.shareViaLink.editUrl.inputLabel\")}\n maxLength={editUrlProps?.maxLength}\n name=\"path\"\n ref={focusRef}\n prefix={truncatePrefix(\n editUrlProps?.prefix || getPrefixFromUrl(url)\n )}\n />\n <Typography\n className=\"neeto-ui-text-gray-700\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.shareViaLink.editUrl.description\")}\n </Typography>\n </Body>\n <Footer className=\"space-x-2\">\n <ActionBlock\n className=\"flex items-center space-x-2\"\n cancelButtonProps={{\n onClick: onClose,\n disabled: isSubmitting,\n \"data-testid\": \"edit-url-cancel-button\",\n }}\n submitButtonProps={{\n disabled: isSubmitting || !dirty,\n loading: isLoading,\n \"data-testid\": \"edit-url-confirm-button\",\n }}\n />\n </Footer>\n </Form>\n )}\n </Formik>\n </Pane>\n );\n};\n\nexport default EditURL;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Typography, Modal, Button, Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst RegenerateURL = ({\n isOpen,\n onClose,\n url,\n isLoading,\n handleRegenerate,\n}) => {\n const { t } = useTranslation();\n\n const prevIsLoadingRef = useRef(isLoading);\n\n useEffect(() => {\n if (prevIsLoadingRef.current && !isLoading) onClose();\n\n prevIsLoadingRef.current = isLoading;\n }, [isLoading]);\n\n return (\n <Modal {...{ isOpen, onClose }} data-testid=\"regenerate-url-modal\">\n <Modal.Header>\n <Typography lineHeight=\"normal\" style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.shareViaLink.regenerateUrl.title\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <div className=\"w-full space-y-6\">\n <Input\n disabled\n label={t(\"neetoMolecules.shareViaLink.regenerateUrl.inputLabel\")}\n value={url}\n />\n <Typography\n className=\"neeto-ui-text-gray-700\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.shareViaLink.regenerateUrl.description\")}\n </Typography>\n </div>\n </Modal.Body>\n <Modal.Footer className=\"space-x-2\">\n <Button\n data-cy=\"regenerate-url-confirm-button\"\n data-testid=\"regenerate-url-confirm-button\"\n loading={isLoading}\n label={t(\n \"neetoMolecules.shareViaLink.regenerateUrl.submitButtonLabel\"\n )}\n onClick={handleRegenerate}\n />\n <Button\n data-cy=\"regenerate-url-cancel-button\"\n data-testid=\"regenerate-url-cancel-button\"\n style=\"text\"\n label={t(\n \"neetoMolecules.shareViaLink.regenerateUrl.cancelButtonLabel\"\n )}\n onClick={onClose}\n />\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default RegenerateURL;\n","import React, { useState } from \"react\";\n\nimport { ExternalLink } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport EditURL from \"./EditURL\";\nimport RegenerateURL from \"./RegenerateURL\";\n\nconst Link = ({\n editUrlProps,\n enabledOptions,\n entityName,\n handleEdit,\n handleRegenerate,\n isLoading,\n previewUrl,\n url,\n}) => {\n const [isRegenerateURLModalOpen, setIsRegenerateURLModalOpen] =\n useState(false);\n const [isEditURLModalOpen, setIsEditURLModalOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const isDropdownEnabled = enabledOptions.regenerate || enabledOptions.edit;\n\n return (\n <div className=\"space-y-4\" data-cy=\"link-block\" data-testid=\"link-block\">\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-1\">\n <div\n className=\"neeto-ui-rounded-md relative min-w-0 flex-grow truncate border p-2 leading-none\"\n data-cy=\"nui-input-field\"\n >\n {url}\n </div>\n <div className=\"flex w-full items-center gap-1 sm:w-auto\">\n <CopyToClipboardButton\n data-cy=\"link-copy-button\"\n data-testid=\"link-copy-button\"\n label={t(\"neetoMolecules.shareViaLink.copyLink\")}\n value={url}\n />\n <Button\n data-cy=\"preview-button\"\n data-testid=\"preview-button\"\n href={previewUrl || url}\n icon={ExternalLink}\n style=\"secondary\"\n target=\"_blank\"\n tooltipProps={{\n content: t(\"neetoMolecules.shareViaLink.view\", {\n entity: entityName,\n }),\n position: \"top\",\n }}\n />\n {isDropdownEnabled && (\n <>\n <MoreDropdown\n menuItems={[\n {\n isVisible: enabledOptions.regenerate,\n \"data-testid\": \"regenerate-url-button\",\n \"data-cy\": \"regenerate-url-button\",\n onClick: () => setIsRegenerateURLModalOpen(true),\n label: t(\"neetoMolecules.shareViaLink.regenerateUrl.title\"),\n key: \"regenerate-url-option\",\n },\n {\n isVisible: enabledOptions.edit,\n \"data-testid\": \"edit-url-button\",\n \"data-cy\": \"edit-url-button\",\n onClick: () => setIsEditURLModalOpen(true),\n label: t(\"neetoMolecules.shareViaLink.editUrl.title\"),\n key: \"edit-url-option\",\n },\n ]}\n />\n <RegenerateURL\n {...{ handleRegenerate, isLoading, url }}\n isOpen={isRegenerateURLModalOpen}\n onClose={() => setIsRegenerateURLModalOpen(false)}\n />\n <EditURL\n {...{ editUrlProps, handleEdit, isLoading, url }}\n isOpen={isEditURLModalOpen}\n onClose={() => setIsEditURLModalOpen(false)}\n />\n </>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nimport { slugify } from \"neetocist\";\nimport { Button, Typography } from \"neetoui\";\nimport QRCodeImage from \"qrcode.react\";\nimport { Trans } from \"react-i18next\";\n\nimport { downloadCanvas } from \"./utils\";\n\nconst QRCode = ({ entity, url }) => {\n if (!entity) return null;\n\n const { id, name } = entity;\n const canvasId = `qrcode-share-${id}`;\n\n const handleDownload = () => {\n const canvas = document.getElementById(canvasId);\n if (canvas) downloadCanvas(canvas, { name: slugify(name) });\n };\n\n return (\n <div\n className=\"flex flex-col justify-center space-y-2 py-3 pl-8 sm:space-y-4 sm:py-2 sm:pl-6\"\n data-cy=\"qr-download-block\"\n data-testid=\"qr-download-block\"\n >\n <Typography lineHeight=\"normal\" style=\"body2\" weight=\"medium\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.socialMediaShare.qrCodeInfo\"\n components={{\n button: (\n <Button\n data-cy=\"qr-code-download-button\"\n data-testid=\"qr-code-download-button\"\n style=\"link\"\n onClick={handleDownload}\n />\n ),\n }}\n />\n </Typography>\n <QRCodeImage\n className=\"cursor-pointer\"\n data-cy=\"qr-code-image\"\n data-testid={canvasId}\n id={canvasId}\n size={256}\n style={{ width: 80, height: 80 }}\n value={url}\n onClick={handleDownload}\n />\n </div>\n );\n};\n\nexport default QRCode;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { SOCIAL_MEDIA_OPTIONS } from \"./constants\";\nimport QRCode from \"./QRCode\";\n\nconst ShareBlock = ({\n entity,\n postTitle,\n url,\n moreOptions,\n disableShareSocialMedia,\n disableQRDownload,\n}) => {\n const { t } = useTranslation();\n\n const socialMediaButtonClasses =\n \"neeto-ui-bg-gray-200 hover:neeto-ui-bg-gray-300 flex h-10 w-10 cursor-pointer items-center justify-center neeto-ui-rounded-md transition-colors duration-300 ease-in-out\";\n\n const hasMoreOptions = isPresent(moreOptions);\n\n return (\n <div className=\"flex flex-col divide-y sm:flex-row sm:gap-6 sm:divide-x sm:divide-y-0\">\n {hasMoreOptions && (\n <div className=\"divide-y\">\n {moreOptions.map(({ title, link, icon: Icon, onClick, dataCy }) => {\n const Component = isPresent(link) ? Link : \"div\";\n\n return (\n <Component\n {...{ onClick }}\n className=\"flex cursor-pointer items-center gap-x-2 py-3\"\n data-cy={dataCy}\n key={link}\n to={link}\n >\n <Icon className=\"neeto-ui-text-gray-500\" size={24} />\n <Typography\n className=\"group-hover:underline\"\n style=\"body2\"\n weight=\"medium\"\n >\n {title}\n </Typography>\n </Component>\n );\n })}\n </div>\n )}\n {!disableShareSocialMedia && (\n <div\n data-cy=\"social-media-block\"\n data-testid=\"social-media-block\"\n className={classnames(\"space-y-2 py-3 sm:space-y-4 sm:py-2\", {\n \"pl-8 sm:pl-6\": hasMoreOptions,\n })}\n >\n <Typography\n className=\"neeto-ui-text-gray-800\"\n lineHeight=\"normal\"\n style=\"body2\"\n weight=\"medium\"\n >\n {t(\"neetoMolecules.shareViaLink.socialMediaShare.title\")}\n </Typography>\n <div className=\"flex gap-4\">\n {Object.entries(SOCIAL_MEDIA_OPTIONS).map(\n ([key, { label, icon: Icon, generateShareUrl }]) => (\n <a\n className={socialMediaButtonClasses}\n data-cy={`social-media-button-${key}`}\n data-testid={`social-media-button-${key}`}\n href={generateShareUrl({ id: entity.id, title: postTitle })}\n key={key}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n title={label}\n >\n <Icon size={24} />\n </a>\n )\n )}\n </div>\n </div>\n )}\n {!disableQRDownload && <QRCode {...{ entity, url }} />}\n </div>\n );\n};\n\nexport default ShareBlock;\n","import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport LinkBlock from \"./Link\";\nimport ShareBlock from \"./ShareBlock\";\n\nconst ShareViaLink = ({\n isLoading = false,\n enabledOptions = { regenerate: false, edit: false },\n editUrlProps = { prefix: \"\", editablePath: \"\" },\n entity,\n entityName,\n handleEdit = noop,\n handleRegenerate = noop,\n previewUrl = \"\",\n socialMediaPostTitle,\n url,\n moreOptions,\n isOtherShareOptionsEnabled = true,\n disableShareSocialMedia = false,\n disableQRDownload = false,\n}) => (\n <div\n className=\"neeto-ui-border-gray-400 neeto-ui-shadow-xs neeto-ui-rounded-lg neeto-ui-bg-white col-span-2 space-y-4 border p-6 sm:p-8\"\n data-testid=\"share-via-link\"\n >\n <LinkBlock\n {...{\n editUrlProps,\n enabledOptions,\n entityName,\n handleEdit,\n handleRegenerate,\n isLoading,\n previewUrl,\n url,\n }}\n />\n {isOtherShareOptionsEnabled && (\n <ShareBlock\n {...{\n disableQRDownload,\n disableShareSocialMedia,\n entity,\n moreOptions,\n url,\n }}\n postTitle={socialMediaPostTitle}\n />\n )}\n </div>\n);\n\nShareViaLink.propTypes = {\n /**\n * The boolean value to check if the link is being regenerated or updated.\n */\n isLoading: PropTypes.bool,\n /**\n * The props that are passed to the edit URL field. `Prefix` and `editablePath` decide which part of the URL is to be added in the prefix and which part is editable. Default values are taken from `url`.\n * `maxLength` decides if the entered URL should be limited to specified number of characters.\n */\n editUrlProps: PropTypes.shape({\n prefix: PropTypes.string,\n editablePath: PropTypes.string,\n maxLength: PropTypes.number,\n }),\n /**\n * An object which accepts two boolean values that decide if the dropdown options are hidden or not. If both are false, then the dropdown is hidden as well.\n */\n enabledOptions: PropTypes.shape({\n regenerate: PropTypes.bool,\n edit: PropTypes.bool,\n }),\n /**\n * The entity object for which the link is being shared.\n */\n entity: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n }),\n /**\n * The type of the entity for which the link is being shared.\n */\n entityName: PropTypes.string,\n /**\n * The function that is called when the Edit URL form is submitted. It returns the updated URL value.\n */\n handleEdit: PropTypes.func,\n /**\n * The function which makes the API call to regenerate the url.\n */\n handleRegenerate: PropTypes.func,\n /**\n * The url to be used for previewing the entity (optional).\n */\n previewUrl: PropTypes.string,\n /**\n * The title of the social media post.\n */\n socialMediaPostTitle: PropTypes.string,\n /**\n * The url to be shared.\n */\n url: PropTypes.string,\n /**\n * To share using alternative options\n */\n moreOptions: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n link: PropTypes.string,\n icon: PropTypes.elementType,\n onClick: PropTypes.func,\n dataCy: PropTypes.string,\n })\n ),\n /**\n * To show the extra share options\n */\n isOtherShareOptionsEnabled: PropTypes.bool,\n /**\n * To disable share social media section.\n */\n disableShareSocialMedia: PropTypes.bool,\n /**\n * To disable QR code download section.\n */\n disableQRDownload: PropTypes.bool,\n};\n\nexport default ShareViaLink;\n"],"names":["facebookShareLink","_ref","id","buildUrl","u","concat","window","location","host","linkedInShareLink","_ref2","title","mini","url","twitterShareLink","_ref3","text","downloadCanvas","canvas","options","arguments","length","undefined","_options$name","name","_options$extension","extension","canvasUrl","toDataURL","element","document","createElement","href","download","click","remove","getPathname","URL","pathname","slice","getPrefixFromUrl","origin","truncatePrefix","MAX_PREFIX_SIZE","SOCIAL_MEDIA_OPTIONS","FACEBOOK","label","t","icon","Facebook","generateShareUrl","LINKEDIN","Linkedin","TWITTER","Twitter","PATH_VALIDATION_SCHEMA","yup","object","shape","path","string","required","matches","Header","Pane","Body","Footer","EditURL","editUrlProps","isOpen","onClose","isLoading","handleEdit","_useTranslation","useTranslation","focusRef","useRef","prevIsLoadingRef","useEffect","current","React","initialFocusRef","size","Typography","lineHeight","style","weight","Formik","enableReinitialize","initialValues","editablePath","validationSchema","onSubmit","isSubmitting","dirty","Form","className","Input","maxLength","ref","prefix","ActionBlock","cancelButtonProps","onClick","disabled","submitButtonProps","loading","RegenerateURL","handleRegenerate","Modal","value","Button","Link","enabledOptions","entityName","previewUrl","_useState","useState","_useState2","_slicedToArray","isRegenerateURLModalOpen","setIsRegenerateURLModalOpen","_useState3","_useState4","isEditURLModalOpen","setIsEditURLModalOpen","isDropdownEnabled","regenerate","edit","CopyToClipboardButton","ExternalLink","target","tooltipProps","content","entity","position","Fragment","MoreDropdown","menuItems","isVisible","key","QRCode","canvasId","handleDownload","getElementById","slugify","Trans","i18nKey","components","button","QRCodeImage","width","height","ShareBlock","postTitle","moreOptions","disableShareSocialMedia","disableQRDownload","socialMediaButtonClasses","hasMoreOptions","isPresent","map","link","Icon","dataCy","Component","to","classnames","Object","entries","_ref4","_ref4$","rel","ShareViaLink","_ref$isLoading","_ref$enabledOptions","_ref$editUrlProps","_ref$handleEdit","noop","_ref$handleRegenerate","_ref$previewUrl","socialMediaPostTitle","_ref$isOtherShareOpti","isOtherShareOptionsEnabled","_ref$disableShareSoci","_ref$disableQRDownloa","LinkBlock"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ShareViaLink.js","sources":["../../src/components/ShareViaLink/utils.js","../../src/components/ShareViaLink/constants.js","../../src/components/ShareViaLink/EditURL.jsx","../../src/components/ShareViaLink/RegenerateURL.jsx","../../src/components/ShareViaLink/Link.jsx","../../src/components/ShareViaLink/QRCode.jsx","../../src/components/ShareViaLink/ShareBlock.jsx","../../src/components/ShareViaLink/index.jsx"],"sourcesContent":["import { buildUrl } from \"neetocommons/utils/general\";\n\nimport { MAX_PREFIX_SIZE } from \"./constants\";\n\nexport const facebookShareLink = ({ id }) =>\n buildUrl(\"https://www.facebook.com/sharer/sharer.php\", {\n u: `https://${window.location.host}/${id}`,\n });\n\nexport const linkedInShareLink = ({ id, title }) =>\n buildUrl(\"https://www.linkedin.com/shareArticle\", {\n mini: true,\n url: `https://${window.location.host}/${id}`,\n title,\n });\n\nexport const twitterShareLink = ({ id, title }) =>\n buildUrl(\"http://twitter.com/share\", {\n text: title,\n url: `https://${window.location.host}/${id}`,\n });\n\nexport const downloadCanvas = (canvas, options = {}) => {\n const { name = \"image\", extension = \"png\" } = options;\n\n const canvasUrl = canvas.toDataURL(`image/${extension}`);\n const element = document.createElement(\"a\");\n element.href = canvasUrl;\n element.download = `${name}.${extension}`;\n element.click();\n element.remove();\n};\n\nexport const getPathname = url => new URL(url).pathname.slice(1);\n\nexport const getPrefixFromUrl = url => `${new URL(url).origin}/`;\n\nexport const truncatePrefix = url =>\n url.length > MAX_PREFIX_SIZE ? `...${url.slice(-MAX_PREFIX_SIZE)}` : url;\n","import { t } from \"i18next\";\nimport { Facebook, Linkedin, Twitter } from \"neetoicons\";\nimport * as yup from \"yup\";\n\nimport {\n facebookShareLink,\n twitterShareLink,\n linkedInShareLink,\n} from \"./utils\";\n\nexport const SOCIAL_MEDIA_OPTIONS = {\n FACEBOOK: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.facebook\"),\n icon: Facebook,\n generateShareUrl: facebookShareLink,\n },\n LINKEDIN: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.linkedIn\"),\n icon: Linkedin,\n generateShareUrl: linkedInShareLink,\n },\n TWITTER: {\n label: t(\"neetoMolecules.shareViaLink.socialMediaShare.twitter\"),\n icon: Twitter,\n generateShareUrl: twitterShareLink,\n },\n};\n\nexport const PATH_VALIDATION_SCHEMA = yup.object().shape({\n path: yup\n .string()\n .required(t(\"neetoMolecules.shareViaLink.editUrl.validationError\"))\n .matches(\n /^[A-Za-z0-9]([\\w/-])*$/,\n t(\"neetoMolecules.shareViaLink.editUrl.validationError\")\n ),\n});\n\nexport const MAX_PREFIX_SIZE = 30;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Form, Formik } from \"formik\";\nimport { Typography, Pane } from \"neetoui\";\nimport { Input, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PATH_VALIDATION_SCHEMA } from \"./constants\";\nimport \"./edit-url.scss\";\nimport { getPathname, getPrefixFromUrl, truncatePrefix } from \"./utils\";\n\nconst { Header, Body, Footer } = Pane;\n\nconst EditURL = ({\n editUrlProps,\n isOpen,\n onClose,\n url,\n isLoading,\n handleEdit,\n}) => {\n const { t } = useTranslation();\n\n const focusRef = useRef(null);\n const prevIsLoadingRef = useRef(isLoading);\n\n useEffect(() => {\n if (prevIsLoadingRef.current && !isLoading) onClose();\n\n prevIsLoadingRef.current = isLoading;\n }, [isLoading]);\n\n return (\n <Pane\n {...{ isOpen, onClose }}\n data-testid=\"edit-url-modal\"\n initialFocusRef={focusRef}\n size=\"large\"\n >\n <Header>\n <Typography lineHeight=\"normal\" style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.shareViaLink.editUrl.title\")}\n </Typography>\n </Header>\n <Formik\n enableReinitialize\n initialValues={{ path: editUrlProps?.editablePath || getPathname(url) }}\n validationSchema={PATH_VALIDATION_SCHEMA}\n onSubmit={({ path }) => handleEdit(path)}\n >\n {({ isSubmitting, dirty }) => (\n <Form>\n <Body className=\"space-y-6\">\n <Input\n className=\"no-padding w-full flex-grow-0\"\n data-testid=\"edit-url-input\"\n label={t(\"neetoMolecules.shareViaLink.editUrl.inputLabel\")}\n maxLength={editUrlProps?.maxLength}\n name=\"path\"\n ref={focusRef}\n prefix={truncatePrefix(\n editUrlProps?.prefix || getPrefixFromUrl(url)\n )}\n />\n <Typography\n className=\"neeto-ui-text-gray-700\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.shareViaLink.editUrl.description\")}\n </Typography>\n </Body>\n <Footer className=\"space-x-2\">\n <ActionBlock\n className=\"flex items-center space-x-2\"\n cancelButtonProps={{\n onClick: onClose,\n disabled: isSubmitting,\n \"data-testid\": \"edit-url-cancel-button\",\n }}\n submitButtonProps={{\n disabled: isSubmitting || !dirty,\n loading: isLoading,\n \"data-testid\": \"edit-url-confirm-button\",\n }}\n />\n </Footer>\n </Form>\n )}\n </Formik>\n </Pane>\n );\n};\n\nexport default EditURL;\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Typography, Modal, Button, Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst RegenerateURL = ({\n isOpen,\n onClose,\n url,\n isLoading,\n handleRegenerate,\n}) => {\n const { t } = useTranslation();\n\n const prevIsLoadingRef = useRef(isLoading);\n\n useEffect(() => {\n if (prevIsLoadingRef.current && !isLoading) onClose();\n\n prevIsLoadingRef.current = isLoading;\n }, [isLoading]);\n\n return (\n <Modal {...{ isOpen, onClose }} data-testid=\"regenerate-url-modal\">\n <Modal.Header>\n <Typography lineHeight=\"normal\" style=\"h2\" weight=\"semibold\">\n {t(\"neetoMolecules.shareViaLink.regenerateUrl.title\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <div className=\"w-full space-y-6\">\n <Input\n disabled\n label={t(\"neetoMolecules.shareViaLink.regenerateUrl.inputLabel\")}\n value={url}\n />\n <Typography\n className=\"neeto-ui-text-gray-700\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.shareViaLink.regenerateUrl.description\")}\n </Typography>\n </div>\n </Modal.Body>\n <Modal.Footer className=\"space-x-2\">\n <Button\n data-cy=\"regenerate-url-confirm-button\"\n data-testid=\"regenerate-url-confirm-button\"\n loading={isLoading}\n label={t(\n \"neetoMolecules.shareViaLink.regenerateUrl.submitButtonLabel\"\n )}\n onClick={handleRegenerate}\n />\n <Button\n data-cy=\"regenerate-url-cancel-button\"\n data-testid=\"regenerate-url-cancel-button\"\n style=\"text\"\n label={t(\n \"neetoMolecules.shareViaLink.regenerateUrl.cancelButtonLabel\"\n )}\n onClick={onClose}\n />\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default RegenerateURL;\n","import React, { useState } from \"react\";\n\nimport { ExternalLink } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport CopyToClipboardButton from \"components/CopyToClipboardButton\";\nimport MoreDropdown from \"components/MoreDropdown\";\n\nimport EditURL from \"./EditURL\";\nimport RegenerateURL from \"./RegenerateURL\";\n\nconst Link = ({\n editUrlProps,\n enabledOptions,\n entityName,\n handleEdit,\n handleRegenerate,\n isLoading,\n previewUrl,\n url,\n}) => {\n const [isRegenerateURLModalOpen, setIsRegenerateURLModalOpen] =\n useState(false);\n const [isEditURLModalOpen, setIsEditURLModalOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const isDropdownEnabled = enabledOptions.regenerate || enabledOptions.edit;\n\n return (\n <div className=\"space-y-4\" data-cy=\"link-block\" data-testid=\"link-block\">\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:gap-1\">\n <div\n className=\"neeto-ui-rounded-md relative min-w-0 flex-grow truncate border p-2 leading-none\"\n data-cy=\"nui-input-field\"\n >\n {url}\n </div>\n <div className=\"flex w-full flex-shrink-0 items-center gap-1 sm:w-auto\">\n <CopyToClipboardButton\n data-cy=\"link-copy-button\"\n data-testid=\"link-copy-button\"\n label={t(\"neetoMolecules.shareViaLink.copyLink\")}\n value={url}\n />\n <Button\n data-cy=\"preview-button\"\n data-testid=\"preview-button\"\n href={previewUrl || url}\n icon={ExternalLink}\n style=\"secondary\"\n target=\"_blank\"\n tooltipProps={{\n content: t(\"neetoMolecules.shareViaLink.view\", {\n entity: entityName,\n }),\n position: \"top\",\n }}\n />\n {isDropdownEnabled && (\n <>\n <MoreDropdown\n menuItems={[\n {\n isVisible: enabledOptions.regenerate,\n \"data-testid\": \"regenerate-url-button\",\n \"data-cy\": \"regenerate-url-button\",\n onClick: () => setIsRegenerateURLModalOpen(true),\n label: t(\"neetoMolecules.shareViaLink.regenerateUrl.title\"),\n key: \"regenerate-url-option\",\n },\n {\n isVisible: enabledOptions.edit,\n \"data-testid\": \"edit-url-button\",\n \"data-cy\": \"edit-url-button\",\n onClick: () => setIsEditURLModalOpen(true),\n label: t(\"neetoMolecules.shareViaLink.editUrl.title\"),\n key: \"edit-url-option\",\n },\n ]}\n />\n <RegenerateURL\n {...{ handleRegenerate, isLoading, url }}\n isOpen={isRegenerateURLModalOpen}\n onClose={() => setIsRegenerateURLModalOpen(false)}\n />\n <EditURL\n {...{ editUrlProps, handleEdit, isLoading, url }}\n isOpen={isEditURLModalOpen}\n onClose={() => setIsEditURLModalOpen(false)}\n />\n </>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Link;\n","import React from \"react\";\n\nimport { slugify } from \"neetocist\";\nimport { Button, Typography } from \"neetoui\";\nimport QRCodeImage from \"qrcode.react\";\nimport { Trans } from \"react-i18next\";\n\nimport { downloadCanvas } from \"./utils\";\n\nconst QRCode = ({ entity, url }) => {\n if (!entity) return null;\n\n const { id, name } = entity;\n const canvasId = `qrcode-share-${id}`;\n\n const handleDownload = () => {\n const canvas = document.getElementById(canvasId);\n if (canvas) downloadCanvas(canvas, { name: slugify(name) });\n };\n\n return (\n <div\n className=\"flex flex-col justify-center space-y-2 py-3 pl-8 sm:space-y-4 sm:py-2 sm:pl-6\"\n data-cy=\"qr-download-block\"\n data-testid=\"qr-download-block\"\n >\n <Typography lineHeight=\"normal\" style=\"body2\" weight=\"medium\">\n <Trans\n i18nKey=\"neetoMolecules.shareViaLink.socialMediaShare.qrCodeInfo\"\n components={{\n button: (\n <Button\n data-cy=\"qr-code-download-button\"\n data-testid=\"qr-code-download-button\"\n style=\"link\"\n onClick={handleDownload}\n />\n ),\n }}\n />\n </Typography>\n <QRCodeImage\n className=\"cursor-pointer\"\n data-cy=\"qr-code-image\"\n data-testid={canvasId}\n id={canvasId}\n size={256}\n style={{ width: 80, height: 80 }}\n value={url}\n onClick={handleDownload}\n />\n </div>\n );\n};\n\nexport default QRCode;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nimport { SOCIAL_MEDIA_OPTIONS } from \"./constants\";\nimport QRCode from \"./QRCode\";\n\nconst ShareBlock = ({\n entity,\n postTitle,\n url,\n moreOptions,\n disableShareSocialMedia,\n disableQRDownload,\n}) => {\n const { t } = useTranslation();\n\n const socialMediaButtonClasses =\n \"neeto-ui-bg-gray-200 hover:neeto-ui-bg-gray-300 flex h-10 w-10 cursor-pointer items-center justify-center neeto-ui-rounded-md transition-colors duration-300 ease-in-out\";\n\n const hasMoreOptions = isPresent(moreOptions);\n\n return (\n <div className=\"flex flex-col divide-y sm:flex-row sm:gap-6 sm:divide-x sm:divide-y-0\">\n {hasMoreOptions && (\n <div className=\"divide-y\">\n {moreOptions.map(({ title, link, icon: Icon, onClick, dataCy }) => {\n const Component = isPresent(link) ? Link : \"div\";\n\n return (\n <Component\n {...{ onClick }}\n className=\"flex cursor-pointer items-center gap-x-2 py-3\"\n data-cy={dataCy}\n key={link}\n to={link}\n >\n <Icon className=\"neeto-ui-text-gray-500\" size={24} />\n <Typography\n className=\"group-hover:underline\"\n style=\"body2\"\n weight=\"medium\"\n >\n {title}\n </Typography>\n </Component>\n );\n })}\n </div>\n )}\n {!disableShareSocialMedia && (\n <div\n data-cy=\"social-media-block\"\n data-testid=\"social-media-block\"\n className={classnames(\"space-y-2 py-3 sm:space-y-4 sm:py-2\", {\n \"pl-8 sm:pl-6\": hasMoreOptions,\n })}\n >\n <Typography\n className=\"neeto-ui-text-gray-800\"\n lineHeight=\"normal\"\n style=\"body2\"\n weight=\"medium\"\n >\n {t(\"neetoMolecules.shareViaLink.socialMediaShare.title\")}\n </Typography>\n <div className=\"flex gap-4\">\n {Object.entries(SOCIAL_MEDIA_OPTIONS).map(\n ([key, { label, icon: Icon, generateShareUrl }]) => (\n <a\n className={socialMediaButtonClasses}\n data-cy={`social-media-button-${key}`}\n data-testid={`social-media-button-${key}`}\n href={generateShareUrl({ id: entity.id, title: postTitle })}\n key={key}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n title={label}\n >\n <Icon size={24} />\n </a>\n )\n )}\n </div>\n </div>\n )}\n {!disableQRDownload && <QRCode {...{ entity, url }} />}\n </div>\n );\n};\n\nexport default ShareBlock;\n","import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\n\nimport LinkBlock from \"./Link\";\nimport ShareBlock from \"./ShareBlock\";\n\nconst ShareViaLink = ({\n isLoading = false,\n enabledOptions = { regenerate: false, edit: false },\n editUrlProps = { prefix: \"\", editablePath: \"\" },\n entity,\n entityName,\n handleEdit = noop,\n handleRegenerate = noop,\n previewUrl = \"\",\n socialMediaPostTitle,\n url,\n moreOptions,\n isOtherShareOptionsEnabled = true,\n disableShareSocialMedia = false,\n disableQRDownload = false,\n}) => (\n <div\n className=\"neeto-ui-border-gray-400 neeto-ui-shadow-xs neeto-ui-rounded-lg neeto-ui-bg-white col-span-2 space-y-4 border p-6 sm:p-8\"\n data-testid=\"share-via-link\"\n >\n <LinkBlock\n {...{\n editUrlProps,\n enabledOptions,\n entityName,\n handleEdit,\n handleRegenerate,\n isLoading,\n previewUrl,\n url,\n }}\n />\n {isOtherShareOptionsEnabled && (\n <ShareBlock\n {...{\n disableQRDownload,\n disableShareSocialMedia,\n entity,\n moreOptions,\n url,\n }}\n postTitle={socialMediaPostTitle}\n />\n )}\n </div>\n);\n\nShareViaLink.propTypes = {\n /**\n * The boolean value to check if the link is being regenerated or updated.\n */\n isLoading: PropTypes.bool,\n /**\n * The props that are passed to the edit URL field. `Prefix` and `editablePath` decide which part of the URL is to be added in the prefix and which part is editable. Default values are taken from `url`.\n * `maxLength` decides if the entered URL should be limited to specified number of characters.\n */\n editUrlProps: PropTypes.shape({\n prefix: PropTypes.string,\n editablePath: PropTypes.string,\n maxLength: PropTypes.number,\n }),\n /**\n * An object which accepts two boolean values that decide if the dropdown options are hidden or not. If both are false, then the dropdown is hidden as well.\n */\n enabledOptions: PropTypes.shape({\n regenerate: PropTypes.bool,\n edit: PropTypes.bool,\n }),\n /**\n * The entity object for which the link is being shared.\n */\n entity: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n }),\n /**\n * The type of the entity for which the link is being shared.\n */\n entityName: PropTypes.string,\n /**\n * The function that is called when the Edit URL form is submitted. It returns the updated URL value.\n */\n handleEdit: PropTypes.func,\n /**\n * The function which makes the API call to regenerate the url.\n */\n handleRegenerate: PropTypes.func,\n /**\n * The url to be used for previewing the entity (optional).\n */\n previewUrl: PropTypes.string,\n /**\n * The title of the social media post.\n */\n socialMediaPostTitle: PropTypes.string,\n /**\n * The url to be shared.\n */\n url: PropTypes.string,\n /**\n * To share using alternative options\n */\n moreOptions: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n link: PropTypes.string,\n icon: PropTypes.elementType,\n onClick: PropTypes.func,\n dataCy: PropTypes.string,\n })\n ),\n /**\n * To show the extra share options\n */\n isOtherShareOptionsEnabled: PropTypes.bool,\n /**\n * To disable share social media section.\n */\n disableShareSocialMedia: PropTypes.bool,\n /**\n * To disable QR code download section.\n */\n disableQRDownload: PropTypes.bool,\n};\n\nexport default ShareViaLink;\n"],"names":["facebookShareLink","_ref","id","buildUrl","u","concat","window","location","host","linkedInShareLink","_ref2","title","mini","url","twitterShareLink","_ref3","text","downloadCanvas","canvas","options","arguments","length","undefined","_options$name","name","_options$extension","extension","canvasUrl","toDataURL","element","document","createElement","href","download","click","remove","getPathname","URL","pathname","slice","getPrefixFromUrl","origin","truncatePrefix","MAX_PREFIX_SIZE","SOCIAL_MEDIA_OPTIONS","FACEBOOK","label","t","icon","Facebook","generateShareUrl","LINKEDIN","Linkedin","TWITTER","Twitter","PATH_VALIDATION_SCHEMA","yup","object","shape","path","string","required","matches","Header","Pane","Body","Footer","EditURL","editUrlProps","isOpen","onClose","isLoading","handleEdit","_useTranslation","useTranslation","focusRef","useRef","prevIsLoadingRef","useEffect","current","React","initialFocusRef","size","Typography","lineHeight","style","weight","Formik","enableReinitialize","initialValues","editablePath","validationSchema","onSubmit","isSubmitting","dirty","Form","className","Input","maxLength","ref","prefix","ActionBlock","cancelButtonProps","onClick","disabled","submitButtonProps","loading","RegenerateURL","handleRegenerate","Modal","value","Button","Link","enabledOptions","entityName","previewUrl","_useState","useState","_useState2","_slicedToArray","isRegenerateURLModalOpen","setIsRegenerateURLModalOpen","_useState3","_useState4","isEditURLModalOpen","setIsEditURLModalOpen","isDropdownEnabled","regenerate","edit","CopyToClipboardButton","ExternalLink","target","tooltipProps","content","entity","position","Fragment","MoreDropdown","menuItems","isVisible","key","QRCode","canvasId","handleDownload","getElementById","slugify","Trans","i18nKey","components","button","QRCodeImage","width","height","ShareBlock","postTitle","moreOptions","disableShareSocialMedia","disableQRDownload","socialMediaButtonClasses","hasMoreOptions","isPresent","map","link","Icon","dataCy","Component","to","classnames","Object","entries","_ref4","_ref4$","rel","ShareViaLink","_ref$isLoading","_ref$enabledOptions","_ref$editUrlProps","_ref$handleEdit","noop","_ref$handleRegenerate","_ref$previewUrl","socialMediaPostTitle","_ref$isOtherShareOpti","isOtherShareOptionsEnabled","_ref$disableShareSoci","_ref$disableQRDownloa","LinkBlock"],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
4
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
7
|
+
var neetoEditor = require('@bigbinary/neeto-editor');
|
|
8
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
9
|
+
var ramda = require('ramda');
|
|
10
|
+
var injectCss = require('./inject-css-80a5faa3.js');
|
|
11
|
+
var reactQuery = require('react-query');
|
|
12
|
+
var axios = require('axios');
|
|
13
|
+
var constants = require('@bigbinary/neeto-commons-frontend/constants');
|
|
14
|
+
|
|
15
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
16
|
+
|
|
17
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
18
|
+
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
19
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
20
|
+
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
21
|
+
|
|
22
|
+
var QUERY_KEYS = {
|
|
23
|
+
APP_STICKY_RIBBONS_LIST: "APP_STICKY_RIBBONS_LIST"
|
|
24
|
+
};
|
|
25
|
+
var STICKY_RIBBON_KIND_TO_STYLE = {
|
|
26
|
+
info: "info",
|
|
27
|
+
warning: "warning",
|
|
28
|
+
error: "danger"
|
|
29
|
+
};
|
|
30
|
+
var STICKY_RIBBONS_LOCAL_STORAGE_KEY = "dismissedStickyRibbons";
|
|
31
|
+
|
|
32
|
+
var css = ".neeto-molecules-sticky-ribbon{border-radius:0}";
|
|
33
|
+
injectCss.n(css,{});
|
|
34
|
+
|
|
35
|
+
var fetchStickyRibbons = function fetchStickyRibbons() {
|
|
36
|
+
return axios__default["default"].get("".concat(constants.BASE_API_V1_URL, "/sticky_ribbons"));
|
|
37
|
+
};
|
|
38
|
+
var stickyRibbonsApi = {
|
|
39
|
+
fetchStickyRibbons: fetchStickyRibbons
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var APP_STICKY_RIBBONS_LIST = QUERY_KEYS.APP_STICKY_RIBBONS_LIST;
|
|
43
|
+
var useFetchStickyRibbons = function useFetchStickyRibbons() {
|
|
44
|
+
return reactQuery.useQuery([APP_STICKY_RIBBONS_LIST], stickyRibbonsApi.fetchStickyRibbons);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
var StickyRibbonsContainer = function StickyRibbonsContainer() {
|
|
48
|
+
var _useLocalStorage = reactUtils.useLocalStorage(STICKY_RIBBONS_LOCAL_STORAGE_KEY, []),
|
|
49
|
+
_useLocalStorage2 = _slicedToArray__default["default"](_useLocalStorage, 2),
|
|
50
|
+
dismissedRibbons = _useLocalStorage2[0],
|
|
51
|
+
setDismissedRibbons = _useLocalStorage2[1];
|
|
52
|
+
var _useFetchStickyRibbon = useFetchStickyRibbons(),
|
|
53
|
+
_useFetchStickyRibbon2 = _useFetchStickyRibbon.data,
|
|
54
|
+
_useFetchStickyRibbon3 = _useFetchStickyRibbon2 === void 0 ? {} : _useFetchStickyRibbon2,
|
|
55
|
+
_useFetchStickyRibbon4 = _useFetchStickyRibbon3.stickyRibbons,
|
|
56
|
+
stickyRibbons = _useFetchStickyRibbon4 === void 0 ? [] : _useFetchStickyRibbon4;
|
|
57
|
+
var handleDismiss = function handleDismiss(ribbonId) {
|
|
58
|
+
var validRibbonIds = ramda.pluck("id", stickyRibbons);
|
|
59
|
+
var updatedDismissedRibbons = dismissedRibbons.filter(function (id) {
|
|
60
|
+
return validRibbonIds.includes(id);
|
|
61
|
+
});
|
|
62
|
+
setDismissedRibbons([].concat(_toConsumableArray__default["default"](updatedDismissedRibbons), [ribbonId]));
|
|
63
|
+
};
|
|
64
|
+
var visibleRibbons = stickyRibbons.filter(function (ribbon) {
|
|
65
|
+
return !dismissedRibbons.includes(ribbon.id);
|
|
66
|
+
});
|
|
67
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, visibleRibbons.map(function (_ref) {
|
|
68
|
+
var id = _ref.id,
|
|
69
|
+
kind = _ref.kind,
|
|
70
|
+
message = _ref.message;
|
|
71
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, {
|
|
72
|
+
className: "neeto-molecules-sticky-ribbon w-full p-2.5 text-center",
|
|
73
|
+
key: id,
|
|
74
|
+
size: "large",
|
|
75
|
+
style: STICKY_RIBBON_KIND_TO_STYLE[kind],
|
|
76
|
+
onClose: function onClose() {
|
|
77
|
+
return handleDismiss(id);
|
|
78
|
+
}
|
|
79
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoEditor.EditorContent, {
|
|
80
|
+
className: "w-full",
|
|
81
|
+
content: message
|
|
82
|
+
}));
|
|
83
|
+
}));
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
module.exports = StickyRibbonsContainer;
|
|
87
|
+
//# sourceMappingURL=StickyRibbonsContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StickyRibbonsContainer.js","sources":["../../src/components/StickyRibbonsContainer/constants.js","../../src/components/StickyRibbonsContainer/api.js","../../src/components/StickyRibbonsContainer/useStickyRibbonsApi.js","../../src/components/StickyRibbonsContainer/index.jsx"],"sourcesContent":["export const QUERY_KEYS = {\n APP_STICKY_RIBBONS_LIST: \"APP_STICKY_RIBBONS_LIST\",\n};\n\nexport const STICKY_RIBBON_KIND_TO_STYLE = {\n info: \"info\",\n warning: \"warning\",\n error: \"danger\",\n};\n\nexport const STICKY_RIBBONS_LOCAL_STORAGE_KEY = \"dismissedStickyRibbons\";\n","import axios from \"axios\";\nimport { BASE_API_V1_URL } from \"neetocommons/constants\";\n\nconst fetchStickyRibbons = () => axios.get(`${BASE_API_V1_URL}/sticky_ribbons`);\n\nconst stickyRibbonsApi = { fetchStickyRibbons };\n\nexport default stickyRibbonsApi;\n","import { useQuery } from \"react-query\";\n\nimport stickyRibbonsApi from \"./api\";\nimport { QUERY_KEYS } from \"./constants\";\n\nconst { APP_STICKY_RIBBONS_LIST } = QUERY_KEYS;\n\nconst useFetchStickyRibbons = () =>\n useQuery([APP_STICKY_RIBBONS_LIST], stickyRibbonsApi.fetchStickyRibbons);\n\nexport { useFetchStickyRibbons };\n","import React from \"react\";\n\nimport { useLocalStorage } from \"neetocommons/react-utils\";\nimport { EditorContent } from \"neetoeditor\";\nimport { Tag } from \"neetoui\";\nimport { pluck } from \"ramda\";\n\nimport {\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n STICKY_RIBBON_KIND_TO_STYLE,\n} from \"./constants\";\nimport \"./sticky-ribbons.scss\";\nimport { useFetchStickyRibbons } from \"./useStickyRibbonsApi\";\n\nconst StickyRibbonsContainer = () => {\n const [dismissedRibbons, setDismissedRibbons] = useLocalStorage(\n STICKY_RIBBONS_LOCAL_STORAGE_KEY,\n []\n );\n\n const { data: { stickyRibbons = [] } = {} } = useFetchStickyRibbons();\n\n const handleDismiss = ribbonId => {\n const validRibbonIds = pluck(\"id\", stickyRibbons);\n const updatedDismissedRibbons = dismissedRibbons.filter(id =>\n validRibbonIds.includes(id)\n );\n\n setDismissedRibbons([...updatedDismissedRibbons, ribbonId]);\n };\n\n const visibleRibbons = stickyRibbons.filter(\n ribbon => !dismissedRibbons.includes(ribbon.id)\n );\n\n return (\n <>\n {visibleRibbons.map(({ id, kind, message }) => (\n <Tag\n className=\"neeto-molecules-sticky-ribbon w-full p-2.5 text-center\"\n key={id}\n size=\"large\"\n style={STICKY_RIBBON_KIND_TO_STYLE[kind]}\n onClose={() => handleDismiss(id)}\n >\n <EditorContent className=\"w-full\" content={message} />\n </Tag>\n ))}\n </>\n );\n};\n\nexport default StickyRibbonsContainer;\n"],"names":["QUERY_KEYS","APP_STICKY_RIBBONS_LIST","STICKY_RIBBON_KIND_TO_STYLE","info","warning","error","STICKY_RIBBONS_LOCAL_STORAGE_KEY","fetchStickyRibbons","axios","get","concat","BASE_API_V1_URL","stickyRibbonsApi","useFetchStickyRibbons","useQuery","StickyRibbonsContainer","_useLocalStorage","useLocalStorage","_useLocalStorage2","_slicedToArray","dismissedRibbons","setDismissedRibbons","_useFetchStickyRibbon","_useFetchStickyRibbon2","data","_useFetchStickyRibbon3","_useFetchStickyRibbon4","stickyRibbons","handleDismiss","ribbonId","validRibbonIds","pluck","updatedDismissedRibbons","filter","id","includes","_toConsumableArray","visibleRibbons","ribbon","React","createElement","Fragment","map","_ref","kind","message","Tag","className","key","size","style","onClose","EditorContent","content"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.8",
|
|
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>",
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* A container that displays the sticky ribbons configured for the current neeto
|
|
5
|
+
*
|
|
6
|
+
* application in neetoTower, if any. The sticky ribbons will be automatically
|
|
7
|
+
*
|
|
8
|
+
* fetched from neetoTower and displayed within the container.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
*
|
|
12
|
+
* import StickyRibbonsContainer from "@bigbinary/neeto-molecules/StickyRibbonsContainer";
|
|
13
|
+
*
|
|
14
|
+
* const Main = () => (
|
|
15
|
+
* <>
|
|
16
|
+
* <ToastContainer />
|
|
17
|
+
* <StickyRibbonsContainer />
|
|
18
|
+
* <Switch>
|
|
19
|
+
* <Route />
|
|
20
|
+
* </Switch>
|
|
21
|
+
* </>
|
|
22
|
+
* );
|
|
23
|
+
* @endexample
|
|
24
|
+
*/
|
|
25
|
+
const StickyRibbonsContainer: React.FC<{}>;
|
|
26
|
+
export default StickyRibbonsContainer;
|