@bigbinary/neeto-molecules 5.3.28 → 5.3.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/FloatingActionMenu.js +1 -1
- package/dist/Sidebar.js +2 -2
- package/dist/Sidebar.js.map +1 -1
- package/dist/cjs/FloatingActionMenu.js +1 -1
- package/dist/cjs/Sidebar.js +2 -2
- package/dist/cjs/Sidebar.js.map +1 -1
- package/dist/cjs/{useWhatsNewChangesCount-C9DSz8TY.js → useWhatsNewChangesCount-BzQTamII.js} +6 -12
- package/dist/cjs/useWhatsNewChangesCount-BzQTamII.js.map +1 -0
- package/dist/cjs/{useWhatsNewChangesCount-Bx_vHoMO.js → useWhatsNewChangesCount-CLo5AJny.js} +6 -12
- package/dist/cjs/useWhatsNewChangesCount-CLo5AJny.js.map +1 -0
- package/dist/cjs/v2/FloatingActionMenu.js +1 -1
- package/dist/cjs/v2/Sidebar.js +2 -2
- package/dist/cjs/v2/Sidebar.js.map +1 -1
- package/dist/{useWhatsNewChangesCount-Cy7rXdSf.js → useWhatsNewChangesCount-BaLLrXk5.js} +6 -12
- package/dist/useWhatsNewChangesCount-BaLLrXk5.js.map +1 -0
- package/dist/{useWhatsNewChangesCount-5ChErwhP.js → useWhatsNewChangesCount-DLIMw7dA.js} +6 -12
- package/dist/useWhatsNewChangesCount-DLIMw7dA.js.map +1 -0
- package/dist/v2/FloatingActionMenu.js +1 -1
- package/dist/v2/Sidebar.js +2 -2
- package/dist/v2/Sidebar.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/useWhatsNewChangesCount-Bx_vHoMO.js.map +0 -1
- package/dist/cjs/useWhatsNewChangesCount-C9DSz8TY.js.map +0 -1
- package/dist/useWhatsNewChangesCount-5ChErwhP.js.map +0 -1
- package/dist/useWhatsNewChangesCount-Cy7rXdSf.js.map +0 -1
package/dist/cjs/Sidebar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sources":["../../src/components/Sidebar/Components/Header.jsx","../../src/components/Sidebar/Components/Links/AddDropdown.jsx","../../src/components/Sidebar/Components/Links/PinIcon.jsx","../../src/components/Sidebar/Components/Links/UnpinIcon.jsx","../../src/components/Sidebar/Components/Links/MoreDropdown.jsx","../../src/components/Sidebar/Components/Links/index.jsx","../../src/components/Sidebar/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { capitalize } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Neeto } from \"neetoicons/typeface-logos\";\nimport * as ProductTypefaceLogos from \"neetoicons/typeface-logos\";\nimport { Link } from \"react-router-dom\";\n\nimport { DEFAULT_HOME_PATH, SPECIAL_APP_NAMES } from \"../constants\";\n\nconst Header = ({ customLogo, clearSettingsNav }) => {\n const productName = globalProps.appName.substr(5);\n const normalizedName = (productName || \"\").trim().toLowerCase();\n const specialCase = SPECIAL_APP_NAMES[normalizedName];\n const logoName = specialCase\n ? `Neeto${specialCase}`\n : `Neeto${capitalize(normalizedName)}`;\n const ProductTypefaceLogo = ProductTypefaceLogos[logoName] ?? Neeto;\n const LogoComponent = customLogo ?? ProductTypefaceLogo;\n const isOnboarded = globalProps.user.isOnboarded !== false;\n\n return (\n <div\n className=\"neeto-molecules-sidebar__header neeto-molecules-sidebar__no-shrinkable\"\n data-testid=\"sidebar-info\"\n >\n <Link\n to={DEFAULT_HOME_PATH}\n className={classnames(\n \"neeto-molecules-sidebar__logo neeto-ui-w-full\",\n { \"cursor-pointer\": isOnboarded },\n { \"pointer-events-none\": !isOnboarded }\n )}\n onClick={clearSettingsNav}\n >\n {globalProps.sidebarTitle ? (\n <span className=\"neeto-molecules-sidebar__title\">\n {globalProps.sidebarTitle}\n </span>\n ) : (\n <LogoComponent\n className={classnames({\n \"neeto-molecules-sidebar__logo\": !customLogo,\n })}\n />\n )}\n </Link>\n </div>\n );\n};\n\nexport default memo(Header);\n","import { Plus } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\n\nconst AddDropdown = ({ addActions }) => (\n <Dropdown\n closeOnSelect\n position=\"bottom-end\"\n customTarget={() => (\n <span\n className=\"neeto-molecules-sidebar__link-icon neeto-molecules-sidebar__link-icon--caret\"\n data-testid=\"add-dropdown-trigger\"\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <Plus size={16} />\n </span>\n )}\n >\n <Dropdown.Menu>\n {addActions.map(action => (\n <Dropdown.MenuItem.Button\n key={action.key}\n onClick={e => {\n e.preventDefault();\n action.onClick?.(e);\n }}\n >\n {action.label}\n </Dropdown.MenuItem.Button>\n ))}\n </Dropdown.Menu>\n </Dropdown>\n);\n\nexport default AddDropdown;\n","const PinIcon = ({ size, otherProps }) => (\n <svg\n fill=\"currentColor\"\n height={size}\n viewBox=\"0 -960 960 960\"\n width={size}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...otherProps}\n >\n <path d=\"m640-480 80 80v80H520v240l-40 40-40-40v-240H240v-80l80-80v-280h-40v-80h400v80h-40zm-286 80h252l-46-46v-314H400v314zm126 0\" />\n </svg>\n);\n\nexport default PinIcon;\n","const UnpinIcon = ({ size, otherProps }) => (\n <svg\n fill=\"currentColor\"\n height={size}\n viewBox=\"0 -960 960 960\"\n width={size}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...otherProps}\n >\n <path d=\"m640-480 80 80v80H520v240l-40 40-40-40v-240H240v-80l80-80v-280h-40v-80h400v80h-40z\" />\n </svg>\n);\n\nexport default UnpinIcon;\n","import { useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Typography, Dropdown, Button, Tag } from \"neetoui\";\nimport { is } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\n\nimport CheckPointNavLinks from \"./CheckPointNavLink.jsx\";\nimport PinIcon from \"./PinIcon.jsx\";\nimport UnpinIcon from \"./UnpinIcon.jsx\";\n\nimport { filterByPermissions } from \"../../utils\";\n\nconst MoreDropdown = ({ moreNavLinks, isNavLinkPinned, handleTogglePin }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <Dropdown\n {...{ isOpen }}\n closeOnSelect\n appendTo={() => document.body}\n position=\"right\"\n strategy=\"fixed\"\n zIndex={99999}\n customTarget={() => (\n <div\n data-testid=\"more-nav-links-dropdown-button\"\n className={classnames(\n \"neeto-ui-flex neeto-ui-items-center neeto-ui-no-underline neeto-ui-select-none neeto-molecules-sidebar__link neeto-ui-w-full neeto-ui-cursor-pointer\",\n { \"neeto-molecules-sidebar__link--hover-active\": isOpen }\n )}\n onClick={() => setIsOpen(!isOpen)}\n >\n <span className=\"neeto-molecules-sidebar__link-icon\">\n <MenuHorizontal />\n </span>\n <Typography\n className=\"neeto-molecules-sidebar__link-label\"\n component=\"span\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.sidebar.more\")}\n </Typography>\n </div>\n )}\n onClickOutside={() => setIsOpen(false)}\n onClose={() => setIsOpen(false)}\n >\n <Dropdown.Menu\n className=\"p-0\"\n data-testid=\"more-nav-links-dropdown-menu\"\n position=\"right\"\n strategy=\"fixed\"\n >\n {moreNavLinks.filter(filterByPermissions).map((navLink, index) => {\n const {\n label,\n icon,\n key: navLinkKey,\n to,\n onClick,\n tag,\n ...otherProps\n } = navLink;\n const IconSVG = icon;\n const isPinned = isNavLinkPinned(navLink);\n const url = new URL(to, window.location.href);\n const isActive = () =>\n is(Function, otherProps.isActive)\n ? otherProps.isActive()\n : location.pathname.startsWith(url.pathname);\n\n return (\n <Dropdown.MenuItem data-testid={label} key={navLinkKey || index}>\n <CheckPointNavLinks\n {...{ onClick, to }}\n className={classnames(\n \"flex cursor-pointer items-center justify-between gap-2 px-2 py-1\",\n { \"neeto-ui-bg-accent-100 font-semibold\": isActive() }\n )}\n >\n <span className=\"flex min-w-0 flex-grow items-center gap-2\">\n {icon && <IconSVG className=\"flex-shrink-0\" size={20} />}\n <Typography\n className=\"flex min-w-0 flex-grow items-center gap-2\"\n component=\"span\"\n style=\"body2\"\n >\n {label}\n {tag && <Tag {...tag} />}\n </Typography>\n </span>\n <Button\n className=\"flex-shrink-0\"\n data-testid=\"pin-button\"\n size=\"small\"\n style=\"text\"\n icon={\n isPinned\n ? () => <UnpinIcon otherProps={{}} size={16} />\n : () => <PinIcon otherProps={{}} size={16} />\n }\n tooltipProps={{\n content: isPinned\n ? t(\"neetoMolecules.sidebar.unpin\")\n : t(\"neetoMolecules.sidebar.pin\"),\n position: \"right\",\n }}\n onClick={event => handleTogglePin(navLink, event)}\n />\n </CheckPointNavLinks>\n </Dropdown.MenuItem>\n );\n })}\n </Dropdown.Menu>\n </Dropdown>\n );\n};\n\nexport default MoreDropdown;\n","import { Fragment, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNot, hyphenate, isNotEmpty, isPresent } from \"neetocist\";\nimport useLocalStorage from \"neetocommons/react-utils/useLocalStorage\";\nimport { Right, Changelog } from \"neetoicons\";\nimport { Typography, Tag } from \"neetoui\";\nimport { append, is } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { ENGAGE_WIDGET_TRIGGER_ID } from \"components/FloatingActionMenu/constants\";\nimport useWhatsNewChangesCount from \"components/FloatingActionMenu/hooks/useWhatsNewChangesCount\";\n\nimport AddDropdown from \"./AddDropdown\";\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\nimport Items from \"./Items\";\nimport MoreDropdown from \"./MoreDropdown\";\n\nimport { PINNED_MORE_NAV_LINKS_KEY } from \"../../constants\";\nimport { filterByPermissions } from \"../../utils\";\n\nconst renderCount = count => (count > 999 ? \"999+\" : count);\n\nconst Links = ({\n navLinks,\n moreNavLinks,\n isCountsLoading: isCountsLoadingDeprecated,\n setSelectedNavLinkRoute,\n showWhatsNew = false,\n}) => {\n const location = useLocation();\n const { t } = useTranslation();\n const whatsNewCount = useWhatsNewChangesCount();\n const [expandedNavLinkKeys, setExpandedNavLinkKeys] = useState([]);\n const [pinnedNavLinks, setPinnedNavLinks] = useLocalStorage(\n PINNED_MORE_NAV_LINKS_KEY,\n []\n );\n\n const handleNavLinkClick = ({ event, isActive, navLink }) => {\n const isExpandable =\n isPresent(navLink.items) || isPresent(navLink.component);\n if (!isExpandable) {\n setExpandedNavLinkKeys([]);\n\n return;\n }\n\n if (navLink.isConfigureNavLink && isNotEmpty(navLink.items)) {\n setSelectedNavLinkRoute(navLink.to);\n }\n\n const navLinkKey = navLink.key || navLink.to;\n if (isActive()) {\n const isExpanded = expandedNavLinkKeys.includes(navLinkKey);\n setExpandedNavLinkKeys(isExpanded ? [] : [navLinkKey]);\n navLink.resetPath !== true && event.preventDefault();\n\n return;\n }\n\n setExpandedNavLinkKeys([navLinkKey]);\n };\n\n const handleTogglePin = (navLink, event) => {\n event.preventDefault();\n event.stopPropagation();\n const navLinkKey = navLink.key || navLink.to;\n const isPinned = pinnedNavLinks.includes(navLinkKey);\n\n if (isPinned) {\n setPinnedNavLinks(pinnedNavLinks.filter(isNot(navLinkKey)));\n } else {\n setPinnedNavLinks([...pinnedNavLinks, navLinkKey]);\n }\n };\n\n const isNavLinkPinned = navLink => {\n if (!navLink) return false;\n const navLinkKey = navLink.key || navLink.to;\n\n return pinnedNavLinks.includes(navLinkKey);\n };\n\n const pinnedItems = moreNavLinks ? moreNavLinks.filter(isNavLinkPinned) : [];\n\n const activeMoreNavLink = moreNavLinks\n ? moreNavLinks.find(\n navLink =>\n navLink &&\n (location.pathname + location.search).startsWith(navLink.to)\n )\n : null;\n\n const additionalItems = [...pinnedItems];\n\n if (activeMoreNavLink && !isNavLinkPinned(activeMoreNavLink)) {\n additionalItems.push(activeMoreNavLink);\n }\n\n // \"What's new\" opens the neetoEngage changelog widget, which binds to the\n // element carrying ENGAGE_WIDGET_TRIGGER_ID. Rendering it as a persistent\n // sidebar item gives the widget a stable trigger. The unread count is shown\n // as an info-blue tag on the right of the item (via the `tag` slot).\n const whatsNewNavLink = {\n key: \"sidebar-whats-new\",\n icon: Changelog,\n label: t(\"neetoMolecules.sidebar.helpLinks.whatsNew\"),\n to: \"#\",\n id: ENGAGE_WIDGET_TRIGGER_ID,\n isActive: () => false,\n \"data-testid\": \"sidebar-whats-new\",\n onClick: event => event.preventDefault(),\n ...(isPresent(whatsNewCount) && {\n tag: {\n label: String(renderCount(whatsNewCount)),\n style: \"info\",\n type: \"solid\",\n size: \"small\",\n className: \"ml-auto !bg-[rgb(var(--neeto-ui-accent-500))] !text-white\",\n },\n }),\n };\n\n const combinedNavLinks = [\n ...(showWhatsNew ? [whatsNewNavLink] : []),\n ...navLinks,\n ...additionalItems,\n ];\n\n return (\n <div className=\"neeto-molecules-sidebar__links neeto-molecules-sidebar__no-shrinkable\">\n {combinedNavLinks.filter(filterByPermissions).map((navLink, index) => {\n const {\n label,\n to,\n icon,\n items,\n isConfigureNavLink,\n isCountsLoading = false,\n count = null,\n component: Component,\n onClick,\n addActions = [],\n tag,\n ...otherProps\n } = navLink;\n const IconSVG = icon;\n const url = new URL(to, window.location.href);\n const isActive = () =>\n is(Function, otherProps.isActive)\n ? otherProps.isActive()\n : location.pathname.startsWith(url.pathname);\n\n const isExpandable = items || Component;\n const navLinkKey = navLink.key || navLink.to;\n const isMenuExpanded =\n expandedNavLinkKeys.includes(navLinkKey) &&\n !isCountsLoadingDeprecated;\n\n const handleCaretClick = event => {\n event.preventDefault();\n event.stopPropagation();\n setExpandedNavLinkKeys(keys =>\n keys.includes(navLinkKey)\n ? keys.filter(isNot(navLinkKey))\n : append(navLinkKey, keys)\n );\n };\n\n return (\n <Fragment key={navLink.key || index}>\n <CheckPointNavLinks\n activeClassName=\"active\"\n className=\"neeto-ui-flex neeto-ui-items-center neeto-ui-no-underline neeto-ui-select-none neeto-molecules-sidebar__link\"\n data-testid={`navlink-${hyphenate(label)}`}\n onClick={event => {\n handleNavLinkClick({ event, isActive, navLink });\n onClick?.(event);\n }}\n {...{ isActive, to, ...otherProps }}\n >\n {icon && (\n <span\n className=\"neeto-molecules-sidebar__link-icon\"\n data-testid={label}\n >\n <IconSVG />\n {isPresent(count) && !isCountsLoading && (\n <span className=\"neeto-molecules-sidebar__link-unread-count\">\n {renderCount(count)}\n </span>\n )}\n </span>\n )}\n <Typography\n className=\"neeto-molecules-sidebar__link-label neeto-ui-flex-grow flex items-center gap-2\"\n component=\"span\"\n style=\"body2\"\n >\n {label}\n {tag && <Tag {...tag} />}\n </Typography>\n {isNotEmpty(addActions) && <AddDropdown {...{ addActions }} />}\n {isExpandable && !isConfigureNavLink && (\n <span\n className={classnames(\n \"neeto-molecules-sidebar__link-icon neeto-molecules-sidebar__link-icon--caret\",\n {\n \"neeto-molecules-sidebar__link-icon--rotate\":\n isMenuExpanded,\n }\n )}\n onClick={handleCaretClick}\n >\n <Right size={16} />\n </span>\n )}\n </CheckPointNavLinks>\n {isExpandable && !isConfigureNavLink && isMenuExpanded && (\n <>\n {items && (\n <Items {...{ isCountsLoading, items, ...otherProps }} />\n )}\n {Component && <Component {...{ navLink }} />}\n </>\n )}\n </Fragment>\n );\n })}\n {isNotEmpty(moreNavLinks) && (\n <MoreDropdown {...{ handleTogglePin, isNavLinkPinned, moreNavLinks }} />\n )}\n </div>\n );\n};\n\nexport default Links;\n","import { useEffect, useMemo, useState, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent, isNotEmpty } from \"neetocist\";\nimport useLocalStorage from \"neetocommons/react-utils/useLocalStorage\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { findLast, is, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useHistory } from \"react-router-dom\";\n\nimport Chevron from \"./Components/Chevron\";\nimport Header from \"./Components/Header\";\nimport Links from \"./Components/Links\";\nimport SelectedLink from \"./Components/Links/SelectedLink\";\nimport {\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n SIDEBAR_WIDTH_KEY,\n MIN_SIDEBAR_WIDTH,\n MAX_SIDEBAR_WIDTH,\n DEFAULT_SIDEBAR_WIDTH,\n} from \"./constants\";\nimport \"./sidebar.scss\";\nimport {\n getActiveConfigurePageLink,\n getSidebarStateLocalStorageKey,\n enableDraggingStyles,\n disableDraggingStyles,\n} from \"./utils\";\n\nimport useKeyboardShortcutsPaneState from \"../KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState\";\n\nconst Sidebar = ({\n navLinks,\n moreNavLinks = [],\n customLogo,\n isCountsLoading = false,\n showWorkspaceName = false,\n isExpandable = true,\n showWhatsNew = true,\n}) => {\n const [isKeyboardShortcutsPaneOpen] = useKeyboardShortcutsPaneState();\n\n const [isSidebarPaneOpen, setIsSidebarPaneOpen] = useState(false);\n const [selectedNavLinkRoute, setSelectedNavLinkRoute] = useLocalStorage(\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n null\n );\n\n const [isSidebarCollapsed, setIsSidebarCollapsed] = useLocalStorage(\n getSidebarStateLocalStorageKey(),\n false\n );\n\n const [sidebarWidth, setSidebarWidth] = useLocalStorage(\n SIDEBAR_WIDTH_KEY,\n `${DEFAULT_SIDEBAR_WIDTH}px`\n );\n\n const sidebarRef = useRef(null);\n const isMouseDownRef = useRef(false);\n const startXRef = useRef(null);\n const startWidthRef = useRef(null);\n\n const location = useLocation();\n const history = useHistory();\n const { t } = useTranslation();\n\n const isLargerScreen = () => window.innerWidth > 768;\n const isSidebarClosed = isLargerScreen()\n ? isSidebarCollapsed\n : not(isSidebarPaneOpen);\n\n useEffect(() => {\n if (isKeyboardShortcutsPaneOpen) {\n setIsSidebarPaneOpen(false);\n setIsSidebarCollapsed(true);\n } else if (!isKeyboardShortcutsPaneOpen && isLargerScreen()) {\n setIsSidebarPaneOpen(true);\n setIsSidebarCollapsed(false);\n }\n }, [isKeyboardShortcutsPaneOpen]);\n\n useEffect(() => {\n if (!isPresent(navLinks)) return;\n const currentLink = findLast(({ to, isActive }) => {\n const url = new URL(to, window.location.href);\n\n return is(Function, isActive)\n ? isActive()\n : location.pathname.includes(url.pathname);\n })(navLinks);\n\n if (isPresent(currentLink)) {\n setSelectedNavLinkRoute(\n currentLink.isConfigureNavLink ? currentLink.to : null\n );\n }\n }, []);\n\n useEffect(() => {\n const handleResize = () => {\n if (isLargerScreen()) return;\n setIsSidebarPaneOpen(false);\n setIsSidebarCollapsed(true);\n };\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n if (!isExpandable) return undefined;\n\n const handle = document.querySelector(\n \".neeto-molecules-sidebar__resize-handle\"\n );\n\n if (!handle) return undefined;\n\n const onMouseDown = e => {\n isMouseDownRef.current = true;\n startXRef.current = e.clientX;\n startWidthRef.current =\n sidebarRef.current?.getBoundingClientRect().width ||\n DEFAULT_SIDEBAR_WIDTH;\n\n enableDraggingStyles();\n };\n\n const onMouseMove = e => {\n if (!isMouseDownRef.current) return;\n\n const dx = e.clientX - startXRef.current;\n let newWidth = startWidthRef.current + dx;\n\n newWidth = Math.max(\n MIN_SIDEBAR_WIDTH,\n Math.min(newWidth, MAX_SIDEBAR_WIDTH)\n );\n\n setSidebarWidth(`${newWidth}px`);\n };\n\n const onMouseUp = () => {\n if (!isMouseDownRef.current) return;\n\n isMouseDownRef.current = false;\n disableDraggingStyles();\n };\n\n handle.addEventListener(\"mousedown\", onMouseDown);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n\n return () => {\n handle.removeEventListener(\"mousedown\", onMouseDown);\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n };\n }, [isExpandable]);\n\n useEffect(() => {\n document.documentElement.style.setProperty(\n \"--neeto-molecules-sidebar-width\",\n `${parseInt(sidebarWidth) / 16}rem`\n );\n }, [sidebarWidth]);\n\n const handleGoBack = event => {\n event.preventDefault();\n setSelectedNavLinkRoute(null);\n const configureNavLink = getActiveConfigurePageLink({ navLinks, location });\n if (configureNavLink?.to) {\n history.push(configureNavLink.to);\n }\n };\n\n const activeLink = useMemo(\n () =>\n navLinks.find(link => {\n if (is(Function, link.isActive)) return link.isActive();\n const url = new URL(link.to, window.location.href);\n\n return location.pathname.startsWith(url.pathname);\n }),\n [location.pathname, navLinks]\n );\n\n const isSelectedNavLinkVisible =\n selectedNavLinkRoute &&\n activeLink?.to === selectedNavLinkRoute &&\n isNotEmpty(navLinks);\n\n return (\n <>\n <div\n data-testid=\"sidebar-container\"\n ref={sidebarRef}\n style={{ width: isSidebarCollapsed ? \"0\" : sidebarWidth }}\n className={classnames(\"neeto-molecules-sidebar__wrapper\", {\n \"neeto-molecules-sidebar__wrapper--collapsed\": isLargerScreen()\n ? isSidebarCollapsed\n : not(isSidebarPaneOpen),\n })}\n >\n <div\n className=\"neeto-molecules-sidebar__backdrop\"\n onClick={() => {\n setIsSidebarPaneOpen(false);\n setSelectedNavLinkRoute(null);\n }}\n />\n <div\n data-testid=\"sidebar-wrapper\"\n className={classnames(\n \"neeto-molecules-sidebar neeto-ui-flex neeto-ui-flex-col neeto-ui-flex-shrink-0 neeto-ui-overflow-y-auto neeto-ui-overflow-x-hidden\",\n {\n \"neeto-molecules-sidebar--focus-mode\":\n isPresent(selectedNavLinkRoute),\n }\n )}\n >\n <Header\n {...{ customLogo }}\n clearSettingsNav={() => setSelectedNavLinkRoute(null)}\n />\n {showWorkspaceName && (\n <div className=\"neeto-ui-bg-gray-100 neeto-molecules-sidebar__workspace-info\">\n <Typography\n className=\"neeto-ui-mb-1\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.sidebar.myWorkspace\")}\n </Typography>\n <Typography className=\"neeto-ui-truncate\" style=\"body2\">\n {globalProps.organization.name}\n </Typography>\n </div>\n )}\n {isSelectedNavLinkVisible ? (\n <SelectedLink {...{ handleGoBack }} navLink={activeLink} />\n ) : (\n <Links\n {...{\n isCountsLoading,\n moreNavLinks,\n navLinks,\n setSelectedNavLinkRoute,\n showWhatsNew,\n }}\n />\n )}\n </div>\n <Button\n className=\"neeto-molecules-sidebar__toggler\"\n data-testid=\"neeto-molecules-sidebar-toggler\"\n icon={() => <Chevron />}\n style={isLargerScreen() ? \"text\" : \"secondary\"}\n tooltipProps={{\n content: isSidebarClosed\n ? t(\"neetoMolecules.sidebar.showMenu\")\n : t(\"neetoMolecules.sidebar.hideMenu\"),\n position: \"bottom\",\n touch: [\"hold\", 500],\n }}\n onClick={() => {\n setIsSidebarCollapsed(!isSidebarCollapsed);\n setIsSidebarPaneOpen(not);\n }}\n />\n </div>\n {isExpandable && (\n <div className=\"neeto-molecules-sidebar__resize-handle\" />\n )}\n </>\n );\n};\n\nSidebar.propTypes = {\n /**\n * To specify the navlinks to be shown in sidebar.\n */\n navLinks: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n count: PropTypes.number,\n isActive: PropTypes.func,\n checkpointKey: PropTypes.string,\n isCountsLoading: PropTypes.bool,\n tag: PropTypes.object,\n addActions: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n label: PropTypes.string,\n onClick: PropTypes.func,\n })\n ),\n items: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n href: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n type: PropTypes.string,\n filters: PropTypes.array,\n checkpointKey: PropTypes.string,\n tag: PropTypes.object,\n })\n ),\n })\n ),\n /**\n * To specify the navlinks to be shown in the dropdown which opens up on clicking More option in sidebar.\n */\n moreNavLinks: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n count: PropTypes.number,\n isActive: PropTypes.func,\n checkpointKey: PropTypes.string,\n isCountsLoading: PropTypes.bool,\n tag: PropTypes.object,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n href: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n type: PropTypes.string,\n filters: PropTypes.array,\n checkpointKey: PropTypes.string,\n tag: PropTypes.object,\n })\n ),\n })\n ),\n /**\n * To override the logo displayed on the sidebar.\n */\n customLogo: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n /**\n * Boolean to notate whether the counts are being fetched.\n */\n isCountsLoading: PropTypes.bool,\n /**\n * Boolean to determine whether the workspace name should be shown.\n */\n showWorkspaceName: PropTypes.bool,\n /**\n * Boolean to determine whether the sidebar should be expandable.\n */\n isExpandable: PropTypes.bool,\n /**\n * Boolean to determine whether the neetoEngage \"What's new\" entry should be\n * shown as the first sidebar item.\n */\n showWhatsNew: PropTypes.bool,\n};\n\nexport default Sidebar;\n"],"names":["Header","_ref","_ProductTypefaceLogos","customLogo","clearSettingsNav","productName","globalProps","appName","substr","normalizedName","trim","toLowerCase","specialCase","SPECIAL_APP_NAMES","logoName","concat","capitalize","ProductTypefaceLogo","ProductTypefaceLogos","Neeto","LogoComponent","isOnboarded","user","_jsx","className","children","Link","to","DEFAULT_HOME_PATH","classnames","onClick","sidebarTitle","memo","AddDropdown","addActions","Dropdown","closeOnSelect","position","customTarget","e","preventDefault","stopPropagation","Plus","size","Menu","map","action","MenuItem","Button","_action$onClick","call","label","key","PinIcon","otherProps","_objectSpread","fill","height","viewBox","width","xmlns","d","UnpinIcon","MoreDropdown","moreNavLinks","isNavLinkPinned","handleTogglePin","_useTranslation","useTranslation","t","location","useLocation","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","appendTo","document","body","strategy","zIndex","_jsxs","MenuHorizontal","Typography","component","style","onClickOutside","onClose","filter","filterByPermissions","navLink","index","icon","navLinkKey","tag","_objectWithoutProperties","_excluded","IconSVG","isPinned","url","URL","window","href","isActive","is","Function","pathname","startsWith","CheckPointNavLinks","Tag","tooltipProps","content","event","renderCount","count","Links","navLinks","isCountsLoadingDeprecated","isCountsLoading","setSelectedNavLinkRoute","_ref$showWhatsNew","showWhatsNew","whatsNewCount","useWhatsNewChangesCount","expandedNavLinkKeys","setExpandedNavLinkKeys","_useLocalStorage","useLocalStorage","PINNED_MORE_NAV_LINKS_KEY","_useLocalStorage2","pinnedNavLinks","setPinnedNavLinks","handleNavLinkClick","_ref2","isExpandable","isPresent","items","isConfigureNavLink","isNotEmpty","isExpanded","includes","resetPath","isNot","_toConsumableArray","pinnedItems","activeMoreNavLink","find","search","additionalItems","push","whatsNewNavLink","Changelog","id","ENGAGE_WIDGET_TRIGGER_ID","String","type","combinedNavLinks","_navLink$isCountsLoad","_navLink$count","Component","_navLink$addActions","isMenuExpanded","handleCaretClick","keys","append","Fragment","activeClassName","hyphenate","Right","_Fragment","Items","Sidebar","_ref$moreNavLinks","_ref$isCountsLoading","_ref$showWorkspaceNam","showWorkspaceName","_ref$isExpandable","_useKeyboardShortcuts","useKeyboardShortcutsPaneState","_useKeyboardShortcuts2","isKeyboardShortcutsPaneOpen","isSidebarPaneOpen","setIsSidebarPaneOpen","SELECTED_NAV_LINK_ROUTE_STORAGE_KEY","selectedNavLinkRoute","_useLocalStorage3","getSidebarStateLocalStorageKey","_useLocalStorage4","isSidebarCollapsed","setIsSidebarCollapsed","_useLocalStorage5","SIDEBAR_WIDTH_KEY","DEFAULT_SIDEBAR_WIDTH","_useLocalStorage6","sidebarWidth","setSidebarWidth","sidebarRef","useRef","isMouseDownRef","startXRef","startWidthRef","history","useHistory","isLargerScreen","innerWidth","isSidebarClosed","not","useEffect","currentLink","findLast","handleResize","addEventListener","removeEventListener","undefined","handle","querySelector","onMouseDown","_sidebarRef$current","current","clientX","getBoundingClientRect","enableDraggingStyles","onMouseMove","dx","newWidth","Math","max","MIN_SIDEBAR_WIDTH","min","MAX_SIDEBAR_WIDTH","onMouseUp","disableDraggingStyles","documentElement","setProperty","parseInt","handleGoBack","configureNavLink","getActiveConfigurePageLink","activeLink","useMemo","link","isSelectedNavLinkVisible","ref","weight","organization","name","SelectedLink","Chevron","touch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sources":["../../src/components/Sidebar/Components/Header.jsx","../../src/components/Sidebar/Components/Links/AddDropdown.jsx","../../src/components/Sidebar/Components/Links/PinIcon.jsx","../../src/components/Sidebar/Components/Links/UnpinIcon.jsx","../../src/components/Sidebar/Components/Links/MoreDropdown.jsx","../../src/components/Sidebar/Components/Links/index.jsx","../../src/components/Sidebar/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { capitalize } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Neeto } from \"neetoicons/typeface-logos\";\nimport * as ProductTypefaceLogos from \"neetoicons/typeface-logos\";\nimport { Link } from \"react-router-dom\";\n\nimport { DEFAULT_HOME_PATH, SPECIAL_APP_NAMES } from \"../constants\";\n\nconst Header = ({ customLogo, clearSettingsNav }) => {\n const productName = globalProps.appName.substr(5);\n const normalizedName = (productName || \"\").trim().toLowerCase();\n const specialCase = SPECIAL_APP_NAMES[normalizedName];\n const logoName = specialCase\n ? `Neeto${specialCase}`\n : `Neeto${capitalize(normalizedName)}`;\n const ProductTypefaceLogo = ProductTypefaceLogos[logoName] ?? Neeto;\n const LogoComponent = customLogo ?? ProductTypefaceLogo;\n const isOnboarded = globalProps.user.isOnboarded !== false;\n\n return (\n <div\n className=\"neeto-molecules-sidebar__header neeto-molecules-sidebar__no-shrinkable\"\n data-testid=\"sidebar-info\"\n >\n <Link\n to={DEFAULT_HOME_PATH}\n className={classnames(\n \"neeto-molecules-sidebar__logo neeto-ui-w-full\",\n { \"cursor-pointer\": isOnboarded },\n { \"pointer-events-none\": !isOnboarded }\n )}\n onClick={clearSettingsNav}\n >\n {globalProps.sidebarTitle ? (\n <span className=\"neeto-molecules-sidebar__title\">\n {globalProps.sidebarTitle}\n </span>\n ) : (\n <LogoComponent\n className={classnames({\n \"neeto-molecules-sidebar__logo\": !customLogo,\n })}\n />\n )}\n </Link>\n </div>\n );\n};\n\nexport default memo(Header);\n","import { Plus } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\n\nconst AddDropdown = ({ addActions }) => (\n <Dropdown\n closeOnSelect\n position=\"bottom-end\"\n customTarget={() => (\n <span\n className=\"neeto-molecules-sidebar__link-icon neeto-molecules-sidebar__link-icon--caret\"\n data-testid=\"add-dropdown-trigger\"\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <Plus size={16} />\n </span>\n )}\n >\n <Dropdown.Menu>\n {addActions.map(action => (\n <Dropdown.MenuItem.Button\n key={action.key}\n onClick={e => {\n e.preventDefault();\n action.onClick?.(e);\n }}\n >\n {action.label}\n </Dropdown.MenuItem.Button>\n ))}\n </Dropdown.Menu>\n </Dropdown>\n);\n\nexport default AddDropdown;\n","const PinIcon = ({ size, otherProps }) => (\n <svg\n fill=\"currentColor\"\n height={size}\n viewBox=\"0 -960 960 960\"\n width={size}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...otherProps}\n >\n <path d=\"m640-480 80 80v80H520v240l-40 40-40-40v-240H240v-80l80-80v-280h-40v-80h400v80h-40zm-286 80h252l-46-46v-314H400v314zm126 0\" />\n </svg>\n);\n\nexport default PinIcon;\n","const UnpinIcon = ({ size, otherProps }) => (\n <svg\n fill=\"currentColor\"\n height={size}\n viewBox=\"0 -960 960 960\"\n width={size}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...otherProps}\n >\n <path d=\"m640-480 80 80v80H520v240l-40 40-40-40v-240H240v-80l80-80v-280h-40v-80h400v80h-40z\" />\n </svg>\n);\n\nexport default UnpinIcon;\n","import { useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Typography, Dropdown, Button, Tag } from \"neetoui\";\nimport { is } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\n\nimport CheckPointNavLinks from \"./CheckPointNavLink.jsx\";\nimport PinIcon from \"./PinIcon.jsx\";\nimport UnpinIcon from \"./UnpinIcon.jsx\";\n\nimport { filterByPermissions } from \"../../utils\";\n\nconst MoreDropdown = ({ moreNavLinks, isNavLinkPinned, handleTogglePin }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <Dropdown\n {...{ isOpen }}\n closeOnSelect\n appendTo={() => document.body}\n position=\"right\"\n strategy=\"fixed\"\n zIndex={99999}\n customTarget={() => (\n <div\n data-testid=\"more-nav-links-dropdown-button\"\n className={classnames(\n \"neeto-ui-flex neeto-ui-items-center neeto-ui-no-underline neeto-ui-select-none neeto-molecules-sidebar__link neeto-ui-w-full neeto-ui-cursor-pointer\",\n { \"neeto-molecules-sidebar__link--hover-active\": isOpen }\n )}\n onClick={() => setIsOpen(!isOpen)}\n >\n <span className=\"neeto-molecules-sidebar__link-icon\">\n <MenuHorizontal />\n </span>\n <Typography\n className=\"neeto-molecules-sidebar__link-label\"\n component=\"span\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.sidebar.more\")}\n </Typography>\n </div>\n )}\n onClickOutside={() => setIsOpen(false)}\n onClose={() => setIsOpen(false)}\n >\n <Dropdown.Menu\n className=\"p-0\"\n data-testid=\"more-nav-links-dropdown-menu\"\n position=\"right\"\n strategy=\"fixed\"\n >\n {moreNavLinks.filter(filterByPermissions).map((navLink, index) => {\n const {\n label,\n icon,\n key: navLinkKey,\n to,\n onClick,\n tag,\n ...otherProps\n } = navLink;\n const IconSVG = icon;\n const isPinned = isNavLinkPinned(navLink);\n const url = new URL(to, window.location.href);\n const isActive = () =>\n is(Function, otherProps.isActive)\n ? otherProps.isActive()\n : location.pathname.startsWith(url.pathname);\n\n return (\n <Dropdown.MenuItem data-testid={label} key={navLinkKey || index}>\n <CheckPointNavLinks\n {...{ onClick, to }}\n className={classnames(\n \"flex cursor-pointer items-center justify-between gap-2 px-2 py-1\",\n { \"neeto-ui-bg-accent-100 font-semibold\": isActive() }\n )}\n >\n <span className=\"flex min-w-0 flex-grow items-center gap-2\">\n {icon && <IconSVG className=\"flex-shrink-0\" size={20} />}\n <Typography\n className=\"flex min-w-0 flex-grow items-center gap-2\"\n component=\"span\"\n style=\"body2\"\n >\n {label}\n {tag && <Tag {...tag} />}\n </Typography>\n </span>\n <Button\n className=\"flex-shrink-0\"\n data-testid=\"pin-button\"\n size=\"small\"\n style=\"text\"\n icon={\n isPinned\n ? () => <UnpinIcon otherProps={{}} size={16} />\n : () => <PinIcon otherProps={{}} size={16} />\n }\n tooltipProps={{\n content: isPinned\n ? t(\"neetoMolecules.sidebar.unpin\")\n : t(\"neetoMolecules.sidebar.pin\"),\n position: \"right\",\n }}\n onClick={event => handleTogglePin(navLink, event)}\n />\n </CheckPointNavLinks>\n </Dropdown.MenuItem>\n );\n })}\n </Dropdown.Menu>\n </Dropdown>\n );\n};\n\nexport default MoreDropdown;\n","import { Fragment, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNot, hyphenate, isNotEmpty, isPresent } from \"neetocist\";\nimport useLocalStorage from \"neetocommons/react-utils/useLocalStorage\";\nimport { Right, Changelog } from \"neetoicons\";\nimport { Typography, Tag } from \"neetoui\";\nimport { append, is } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\n\nimport { ENGAGE_WIDGET_TRIGGER_ID } from \"components/FloatingActionMenu/constants\";\nimport useWhatsNewChangesCount from \"components/FloatingActionMenu/hooks/useWhatsNewChangesCount\";\n\nimport AddDropdown from \"./AddDropdown\";\nimport CheckPointNavLinks from \"./CheckPointNavLink\";\nimport Items from \"./Items\";\nimport MoreDropdown from \"./MoreDropdown\";\n\nimport { PINNED_MORE_NAV_LINKS_KEY } from \"../../constants\";\nimport { filterByPermissions } from \"../../utils\";\n\nconst renderCount = count => (count > 999 ? \"999+\" : count);\n\nconst Links = ({\n navLinks,\n moreNavLinks,\n isCountsLoading: isCountsLoadingDeprecated,\n setSelectedNavLinkRoute,\n showWhatsNew = false,\n}) => {\n const location = useLocation();\n const { t } = useTranslation();\n const whatsNewCount = useWhatsNewChangesCount();\n const [expandedNavLinkKeys, setExpandedNavLinkKeys] = useState([]);\n const [pinnedNavLinks, setPinnedNavLinks] = useLocalStorage(\n PINNED_MORE_NAV_LINKS_KEY,\n []\n );\n\n const handleNavLinkClick = ({ event, isActive, navLink }) => {\n const isExpandable =\n isPresent(navLink.items) || isPresent(navLink.component);\n if (!isExpandable) {\n setExpandedNavLinkKeys([]);\n\n return;\n }\n\n if (navLink.isConfigureNavLink && isNotEmpty(navLink.items)) {\n setSelectedNavLinkRoute(navLink.to);\n }\n\n const navLinkKey = navLink.key || navLink.to;\n if (isActive()) {\n const isExpanded = expandedNavLinkKeys.includes(navLinkKey);\n setExpandedNavLinkKeys(isExpanded ? [] : [navLinkKey]);\n navLink.resetPath !== true && event.preventDefault();\n\n return;\n }\n\n setExpandedNavLinkKeys([navLinkKey]);\n };\n\n const handleTogglePin = (navLink, event) => {\n event.preventDefault();\n event.stopPropagation();\n const navLinkKey = navLink.key || navLink.to;\n const isPinned = pinnedNavLinks.includes(navLinkKey);\n\n if (isPinned) {\n setPinnedNavLinks(pinnedNavLinks.filter(isNot(navLinkKey)));\n } else {\n setPinnedNavLinks([...pinnedNavLinks, navLinkKey]);\n }\n };\n\n const isNavLinkPinned = navLink => {\n if (!navLink) return false;\n const navLinkKey = navLink.key || navLink.to;\n\n return pinnedNavLinks.includes(navLinkKey);\n };\n\n const pinnedItems = moreNavLinks ? moreNavLinks.filter(isNavLinkPinned) : [];\n\n const activeMoreNavLink = moreNavLinks\n ? moreNavLinks.find(\n navLink =>\n navLink &&\n (location.pathname + location.search).startsWith(navLink.to)\n )\n : null;\n\n const additionalItems = [...pinnedItems];\n\n if (activeMoreNavLink && !isNavLinkPinned(activeMoreNavLink)) {\n additionalItems.push(activeMoreNavLink);\n }\n\n // \"What's new\" opens the neetoEngage changelog widget, which binds to the\n // element carrying ENGAGE_WIDGET_TRIGGER_ID. Rendering it as a persistent\n // sidebar item gives the widget a stable trigger. The unread count is shown\n // as an info-blue tag on the right of the item (via the `tag` slot).\n const whatsNewNavLink = {\n key: \"sidebar-whats-new\",\n icon: Changelog,\n label: t(\"neetoMolecules.sidebar.helpLinks.whatsNew\"),\n to: \"#\",\n id: ENGAGE_WIDGET_TRIGGER_ID,\n isActive: () => false,\n \"data-testid\": \"sidebar-whats-new\",\n onClick: event => event.preventDefault(),\n ...(isPresent(whatsNewCount) && {\n tag: {\n label: String(renderCount(whatsNewCount)),\n style: \"info\",\n type: \"solid\",\n size: \"small\",\n className: \"ml-auto !bg-[rgb(var(--neeto-ui-accent-500))] !text-white\",\n },\n }),\n };\n\n const combinedNavLinks = [\n // Only shown while there are unread changelogs (the count is null at 0).\n ...(showWhatsNew && isPresent(whatsNewCount) ? [whatsNewNavLink] : []),\n ...navLinks,\n ...additionalItems,\n ];\n\n return (\n <div className=\"neeto-molecules-sidebar__links neeto-molecules-sidebar__no-shrinkable\">\n {combinedNavLinks.filter(filterByPermissions).map((navLink, index) => {\n const {\n label,\n to,\n icon,\n items,\n isConfigureNavLink,\n isCountsLoading = false,\n count = null,\n component: Component,\n onClick,\n addActions = [],\n tag,\n ...otherProps\n } = navLink;\n const IconSVG = icon;\n const url = new URL(to, window.location.href);\n const isActive = () =>\n is(Function, otherProps.isActive)\n ? otherProps.isActive()\n : location.pathname.startsWith(url.pathname);\n\n const isExpandable = items || Component;\n const navLinkKey = navLink.key || navLink.to;\n const isMenuExpanded =\n expandedNavLinkKeys.includes(navLinkKey) &&\n !isCountsLoadingDeprecated;\n\n const handleCaretClick = event => {\n event.preventDefault();\n event.stopPropagation();\n setExpandedNavLinkKeys(keys =>\n keys.includes(navLinkKey)\n ? keys.filter(isNot(navLinkKey))\n : append(navLinkKey, keys)\n );\n };\n\n return (\n <Fragment key={navLink.key || index}>\n <CheckPointNavLinks\n activeClassName=\"active\"\n className=\"neeto-ui-flex neeto-ui-items-center neeto-ui-no-underline neeto-ui-select-none neeto-molecules-sidebar__link\"\n data-testid={`navlink-${hyphenate(label)}`}\n onClick={event => {\n handleNavLinkClick({ event, isActive, navLink });\n onClick?.(event);\n }}\n {...{ isActive, to, ...otherProps }}\n >\n {icon && (\n <span\n className=\"neeto-molecules-sidebar__link-icon\"\n data-testid={label}\n >\n <IconSVG />\n {isPresent(count) && !isCountsLoading && (\n <span className=\"neeto-molecules-sidebar__link-unread-count\">\n {renderCount(count)}\n </span>\n )}\n </span>\n )}\n <Typography\n className=\"neeto-molecules-sidebar__link-label neeto-ui-flex-grow flex items-center gap-2\"\n component=\"span\"\n style=\"body2\"\n >\n {label}\n {tag && <Tag {...tag} />}\n </Typography>\n {isNotEmpty(addActions) && <AddDropdown {...{ addActions }} />}\n {isExpandable && !isConfigureNavLink && (\n <span\n className={classnames(\n \"neeto-molecules-sidebar__link-icon neeto-molecules-sidebar__link-icon--caret\",\n {\n \"neeto-molecules-sidebar__link-icon--rotate\":\n isMenuExpanded,\n }\n )}\n onClick={handleCaretClick}\n >\n <Right size={16} />\n </span>\n )}\n </CheckPointNavLinks>\n {isExpandable && !isConfigureNavLink && isMenuExpanded && (\n <>\n {items && (\n <Items {...{ isCountsLoading, items, ...otherProps }} />\n )}\n {Component && <Component {...{ navLink }} />}\n </>\n )}\n </Fragment>\n );\n })}\n {isNotEmpty(moreNavLinks) && (\n <MoreDropdown {...{ handleTogglePin, isNavLinkPinned, moreNavLinks }} />\n )}\n </div>\n );\n};\n\nexport default Links;\n","import { useEffect, useMemo, useState, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent, isNotEmpty } from \"neetocist\";\nimport useLocalStorage from \"neetocommons/react-utils/useLocalStorage\";\nimport { Button, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { findLast, is, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useHistory } from \"react-router-dom\";\n\nimport Chevron from \"./Components/Chevron\";\nimport Header from \"./Components/Header\";\nimport Links from \"./Components/Links\";\nimport SelectedLink from \"./Components/Links/SelectedLink\";\nimport {\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n SIDEBAR_WIDTH_KEY,\n MIN_SIDEBAR_WIDTH,\n MAX_SIDEBAR_WIDTH,\n DEFAULT_SIDEBAR_WIDTH,\n} from \"./constants\";\nimport \"./sidebar.scss\";\nimport {\n getActiveConfigurePageLink,\n getSidebarStateLocalStorageKey,\n enableDraggingStyles,\n disableDraggingStyles,\n} from \"./utils\";\n\nimport useKeyboardShortcutsPaneState from \"../KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState\";\n\nconst Sidebar = ({\n navLinks,\n moreNavLinks = [],\n customLogo,\n isCountsLoading = false,\n showWorkspaceName = false,\n isExpandable = true,\n showWhatsNew = true,\n}) => {\n const [isKeyboardShortcutsPaneOpen] = useKeyboardShortcutsPaneState();\n\n const [isSidebarPaneOpen, setIsSidebarPaneOpen] = useState(false);\n const [selectedNavLinkRoute, setSelectedNavLinkRoute] = useLocalStorage(\n SELECTED_NAV_LINK_ROUTE_STORAGE_KEY,\n null\n );\n\n const [isSidebarCollapsed, setIsSidebarCollapsed] = useLocalStorage(\n getSidebarStateLocalStorageKey(),\n false\n );\n\n const [sidebarWidth, setSidebarWidth] = useLocalStorage(\n SIDEBAR_WIDTH_KEY,\n `${DEFAULT_SIDEBAR_WIDTH}px`\n );\n\n const sidebarRef = useRef(null);\n const isMouseDownRef = useRef(false);\n const startXRef = useRef(null);\n const startWidthRef = useRef(null);\n\n const location = useLocation();\n const history = useHistory();\n const { t } = useTranslation();\n\n const isLargerScreen = () => window.innerWidth > 768;\n const isSidebarClosed = isLargerScreen()\n ? isSidebarCollapsed\n : not(isSidebarPaneOpen);\n\n useEffect(() => {\n if (isKeyboardShortcutsPaneOpen) {\n setIsSidebarPaneOpen(false);\n setIsSidebarCollapsed(true);\n } else if (!isKeyboardShortcutsPaneOpen && isLargerScreen()) {\n setIsSidebarPaneOpen(true);\n setIsSidebarCollapsed(false);\n }\n }, [isKeyboardShortcutsPaneOpen]);\n\n useEffect(() => {\n if (!isPresent(navLinks)) return;\n const currentLink = findLast(({ to, isActive }) => {\n const url = new URL(to, window.location.href);\n\n return is(Function, isActive)\n ? isActive()\n : location.pathname.includes(url.pathname);\n })(navLinks);\n\n if (isPresent(currentLink)) {\n setSelectedNavLinkRoute(\n currentLink.isConfigureNavLink ? currentLink.to : null\n );\n }\n }, []);\n\n useEffect(() => {\n const handleResize = () => {\n if (isLargerScreen()) return;\n setIsSidebarPaneOpen(false);\n setIsSidebarCollapsed(true);\n };\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n if (!isExpandable) return undefined;\n\n const handle = document.querySelector(\n \".neeto-molecules-sidebar__resize-handle\"\n );\n\n if (!handle) return undefined;\n\n const onMouseDown = e => {\n isMouseDownRef.current = true;\n startXRef.current = e.clientX;\n startWidthRef.current =\n sidebarRef.current?.getBoundingClientRect().width ||\n DEFAULT_SIDEBAR_WIDTH;\n\n enableDraggingStyles();\n };\n\n const onMouseMove = e => {\n if (!isMouseDownRef.current) return;\n\n const dx = e.clientX - startXRef.current;\n let newWidth = startWidthRef.current + dx;\n\n newWidth = Math.max(\n MIN_SIDEBAR_WIDTH,\n Math.min(newWidth, MAX_SIDEBAR_WIDTH)\n );\n\n setSidebarWidth(`${newWidth}px`);\n };\n\n const onMouseUp = () => {\n if (!isMouseDownRef.current) return;\n\n isMouseDownRef.current = false;\n disableDraggingStyles();\n };\n\n handle.addEventListener(\"mousedown\", onMouseDown);\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n\n return () => {\n handle.removeEventListener(\"mousedown\", onMouseDown);\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n };\n }, [isExpandable]);\n\n useEffect(() => {\n document.documentElement.style.setProperty(\n \"--neeto-molecules-sidebar-width\",\n `${parseInt(sidebarWidth) / 16}rem`\n );\n }, [sidebarWidth]);\n\n const handleGoBack = event => {\n event.preventDefault();\n setSelectedNavLinkRoute(null);\n const configureNavLink = getActiveConfigurePageLink({ navLinks, location });\n if (configureNavLink?.to) {\n history.push(configureNavLink.to);\n }\n };\n\n const activeLink = useMemo(\n () =>\n navLinks.find(link => {\n if (is(Function, link.isActive)) return link.isActive();\n const url = new URL(link.to, window.location.href);\n\n return location.pathname.startsWith(url.pathname);\n }),\n [location.pathname, navLinks]\n );\n\n const isSelectedNavLinkVisible =\n selectedNavLinkRoute &&\n activeLink?.to === selectedNavLinkRoute &&\n isNotEmpty(navLinks);\n\n return (\n <>\n <div\n data-testid=\"sidebar-container\"\n ref={sidebarRef}\n style={{ width: isSidebarCollapsed ? \"0\" : sidebarWidth }}\n className={classnames(\"neeto-molecules-sidebar__wrapper\", {\n \"neeto-molecules-sidebar__wrapper--collapsed\": isLargerScreen()\n ? isSidebarCollapsed\n : not(isSidebarPaneOpen),\n })}\n >\n <div\n className=\"neeto-molecules-sidebar__backdrop\"\n onClick={() => {\n setIsSidebarPaneOpen(false);\n setSelectedNavLinkRoute(null);\n }}\n />\n <div\n data-testid=\"sidebar-wrapper\"\n className={classnames(\n \"neeto-molecules-sidebar neeto-ui-flex neeto-ui-flex-col neeto-ui-flex-shrink-0 neeto-ui-overflow-y-auto neeto-ui-overflow-x-hidden\",\n {\n \"neeto-molecules-sidebar--focus-mode\":\n isPresent(selectedNavLinkRoute),\n }\n )}\n >\n <Header\n {...{ customLogo }}\n clearSettingsNav={() => setSelectedNavLinkRoute(null)}\n />\n {showWorkspaceName && (\n <div className=\"neeto-ui-bg-gray-100 neeto-molecules-sidebar__workspace-info\">\n <Typography\n className=\"neeto-ui-mb-1\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.sidebar.myWorkspace\")}\n </Typography>\n <Typography className=\"neeto-ui-truncate\" style=\"body2\">\n {globalProps.organization.name}\n </Typography>\n </div>\n )}\n {isSelectedNavLinkVisible ? (\n <SelectedLink {...{ handleGoBack }} navLink={activeLink} />\n ) : (\n <Links\n {...{\n isCountsLoading,\n moreNavLinks,\n navLinks,\n setSelectedNavLinkRoute,\n showWhatsNew,\n }}\n />\n )}\n </div>\n <Button\n className=\"neeto-molecules-sidebar__toggler\"\n data-testid=\"neeto-molecules-sidebar-toggler\"\n icon={() => <Chevron />}\n style={isLargerScreen() ? \"text\" : \"secondary\"}\n tooltipProps={{\n content: isSidebarClosed\n ? t(\"neetoMolecules.sidebar.showMenu\")\n : t(\"neetoMolecules.sidebar.hideMenu\"),\n position: \"bottom\",\n touch: [\"hold\", 500],\n }}\n onClick={() => {\n setIsSidebarCollapsed(!isSidebarCollapsed);\n setIsSidebarPaneOpen(not);\n }}\n />\n </div>\n {isExpandable && (\n <div className=\"neeto-molecules-sidebar__resize-handle\" />\n )}\n </>\n );\n};\n\nSidebar.propTypes = {\n /**\n * To specify the navlinks to be shown in sidebar.\n */\n navLinks: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n count: PropTypes.number,\n isActive: PropTypes.func,\n checkpointKey: PropTypes.string,\n isCountsLoading: PropTypes.bool,\n tag: PropTypes.object,\n addActions: PropTypes.arrayOf(\n PropTypes.shape({\n key: PropTypes.string,\n label: PropTypes.string,\n onClick: PropTypes.func,\n })\n ),\n items: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n href: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n type: PropTypes.string,\n filters: PropTypes.array,\n checkpointKey: PropTypes.string,\n tag: PropTypes.object,\n })\n ),\n })\n ),\n /**\n * To specify the navlinks to be shown in the dropdown which opens up on clicking More option in sidebar.\n */\n moreNavLinks: PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n count: PropTypes.number,\n isActive: PropTypes.func,\n checkpointKey: PropTypes.string,\n isCountsLoading: PropTypes.bool,\n tag: PropTypes.object,\n items: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n to: PropTypes.string,\n onClick: PropTypes.func,\n href: PropTypes.string,\n count: PropTypes.number,\n isActive: PropTypes.func,\n type: PropTypes.string,\n filters: PropTypes.array,\n checkpointKey: PropTypes.string,\n tag: PropTypes.object,\n })\n ),\n })\n ),\n /**\n * To override the logo displayed on the sidebar.\n */\n customLogo: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n /**\n * Boolean to notate whether the counts are being fetched.\n */\n isCountsLoading: PropTypes.bool,\n /**\n * Boolean to determine whether the workspace name should be shown.\n */\n showWorkspaceName: PropTypes.bool,\n /**\n * Boolean to determine whether the sidebar should be expandable.\n */\n isExpandable: PropTypes.bool,\n /**\n * Boolean to determine whether the neetoEngage \"What's new\" entry should be\n * shown as the first sidebar item. When enabled, the entry appears only while\n * there are unread changelogs.\n */\n showWhatsNew: PropTypes.bool,\n};\n\nexport default Sidebar;\n"],"names":["Header","_ref","_ProductTypefaceLogos","customLogo","clearSettingsNav","productName","globalProps","appName","substr","normalizedName","trim","toLowerCase","specialCase","SPECIAL_APP_NAMES","logoName","concat","capitalize","ProductTypefaceLogo","ProductTypefaceLogos","Neeto","LogoComponent","isOnboarded","user","_jsx","className","children","Link","to","DEFAULT_HOME_PATH","classnames","onClick","sidebarTitle","memo","AddDropdown","addActions","Dropdown","closeOnSelect","position","customTarget","e","preventDefault","stopPropagation","Plus","size","Menu","map","action","MenuItem","Button","_action$onClick","call","label","key","PinIcon","otherProps","_objectSpread","fill","height","viewBox","width","xmlns","d","UnpinIcon","MoreDropdown","moreNavLinks","isNavLinkPinned","handleTogglePin","_useTranslation","useTranslation","t","location","useLocation","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","appendTo","document","body","strategy","zIndex","_jsxs","MenuHorizontal","Typography","component","style","onClickOutside","onClose","filter","filterByPermissions","navLink","index","icon","navLinkKey","tag","_objectWithoutProperties","_excluded","IconSVG","isPinned","url","URL","window","href","isActive","is","Function","pathname","startsWith","CheckPointNavLinks","Tag","tooltipProps","content","event","renderCount","count","Links","navLinks","isCountsLoadingDeprecated","isCountsLoading","setSelectedNavLinkRoute","_ref$showWhatsNew","showWhatsNew","whatsNewCount","useWhatsNewChangesCount","expandedNavLinkKeys","setExpandedNavLinkKeys","_useLocalStorage","useLocalStorage","PINNED_MORE_NAV_LINKS_KEY","_useLocalStorage2","pinnedNavLinks","setPinnedNavLinks","handleNavLinkClick","_ref2","isExpandable","isPresent","items","isConfigureNavLink","isNotEmpty","isExpanded","includes","resetPath","isNot","_toConsumableArray","pinnedItems","activeMoreNavLink","find","search","additionalItems","push","whatsNewNavLink","Changelog","id","ENGAGE_WIDGET_TRIGGER_ID","String","type","combinedNavLinks","_navLink$isCountsLoad","_navLink$count","Component","_navLink$addActions","isMenuExpanded","handleCaretClick","keys","append","Fragment","activeClassName","hyphenate","Right","_Fragment","Items","Sidebar","_ref$moreNavLinks","_ref$isCountsLoading","_ref$showWorkspaceNam","showWorkspaceName","_ref$isExpandable","_useKeyboardShortcuts","useKeyboardShortcutsPaneState","_useKeyboardShortcuts2","isKeyboardShortcutsPaneOpen","isSidebarPaneOpen","setIsSidebarPaneOpen","SELECTED_NAV_LINK_ROUTE_STORAGE_KEY","selectedNavLinkRoute","_useLocalStorage3","getSidebarStateLocalStorageKey","_useLocalStorage4","isSidebarCollapsed","setIsSidebarCollapsed","_useLocalStorage5","SIDEBAR_WIDTH_KEY","DEFAULT_SIDEBAR_WIDTH","_useLocalStorage6","sidebarWidth","setSidebarWidth","sidebarRef","useRef","isMouseDownRef","startXRef","startWidthRef","history","useHistory","isLargerScreen","innerWidth","isSidebarClosed","not","useEffect","currentLink","findLast","handleResize","addEventListener","removeEventListener","undefined","handle","querySelector","onMouseDown","_sidebarRef$current","current","clientX","getBoundingClientRect","enableDraggingStyles","onMouseMove","dx","newWidth","Math","max","MIN_SIDEBAR_WIDTH","min","MAX_SIDEBAR_WIDTH","onMouseUp","disableDraggingStyles","documentElement","setProperty","parseInt","handleGoBack","configureNavLink","getActiveConfigurePageLink","activeLink","useMemo","link","isSelectedNavLinkVisible","ref","weight","organization","name","SelectedLink","Chevron","touch"],"mappings":"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"}
|
package/dist/cjs/{useWhatsNewChangesCount-C9DSz8TY.js → useWhatsNewChangesCount-BzQTamII.js}
RENAMED
|
@@ -30,7 +30,8 @@ var NEETO_AUTH_BILLING_INFO_URL = "/neeto_sso/api/v1/subscription/billing";
|
|
|
30
30
|
// Shared source of truth for the neetoEngage changelog unread count.
|
|
31
31
|
//
|
|
32
32
|
// The widget reports the count by calling `window.Nv.onReceiveData({ unreadCount })`
|
|
33
|
-
//
|
|
33
|
+
// whenever it changes (on load and each time entries are marked read). Opening
|
|
34
|
+
// the widget doesn't clear it: the count only drops as entries are read. Both the FloatingActionMenu and the
|
|
34
35
|
// Sidebar surface this count, so this module installs a SINGLE set of
|
|
35
36
|
// `window.Nv` handlers (chaining onto any pre-existing ones) and fans the value
|
|
36
37
|
// out to every subscribed component. Installation happens on the first
|
|
@@ -42,7 +43,6 @@ var currentCount = null;
|
|
|
42
43
|
var subscribers = new Set();
|
|
43
44
|
var isInstalled = false;
|
|
44
45
|
var previousOnReceiveData;
|
|
45
|
-
var previousOnShow;
|
|
46
46
|
var notify = function notify() {
|
|
47
47
|
return subscribers.forEach(function (setCount) {
|
|
48
48
|
return setCount(currentCount);
|
|
@@ -53,7 +53,6 @@ var install = function install() {
|
|
|
53
53
|
isInstalled = true;
|
|
54
54
|
var existing = window.Nv || {};
|
|
55
55
|
previousOnReceiveData = existing.onReceiveData;
|
|
56
|
-
previousOnShow = existing.onShow;
|
|
57
56
|
window.Nv = Object.assign(existing, {
|
|
58
57
|
onReceiveData: function onReceiveData(data) {
|
|
59
58
|
var _previousOnReceiveDat;
|
|
@@ -64,12 +63,6 @@ var install = function install() {
|
|
|
64
63
|
currentCount = data.unreadCount || null;
|
|
65
64
|
notify();
|
|
66
65
|
}
|
|
67
|
-
},
|
|
68
|
-
onShow: function onShow() {
|
|
69
|
-
var _previousOnShow;
|
|
70
|
-
(_previousOnShow = previousOnShow) === null || _previousOnShow === void 0 || _previousOnShow();
|
|
71
|
-
currentCount = null;
|
|
72
|
-
notify();
|
|
73
66
|
}
|
|
74
67
|
});
|
|
75
68
|
};
|
|
@@ -78,9 +71,10 @@ var uninstall = function uninstall() {
|
|
|
78
71
|
isInstalled = false;
|
|
79
72
|
if (window.Nv) {
|
|
80
73
|
window.Nv.onReceiveData = previousOnReceiveData;
|
|
81
|
-
window.Nv.onShow = previousOnShow;
|
|
82
74
|
}
|
|
83
|
-
currentCount
|
|
75
|
+
// currentCount is kept: the widget only reports it on page load and after a
|
|
76
|
+
// "Mark as read", so a surface that remounts (e.g. after navigating to a page
|
|
77
|
+
// without a sidebar and back) would otherwise lose it until a full reload.
|
|
84
78
|
};
|
|
85
79
|
var useWhatsNewChangesCount = function useWhatsNewChangesCount() {
|
|
86
80
|
var _useState = React.useState(currentCount),
|
|
@@ -107,4 +101,4 @@ exports.MY_ORGANIZATION_URL = MY_ORGANIZATION_URL;
|
|
|
107
101
|
exports.NEETO_AUTH_BILLING_INFO_URL = NEETO_AUTH_BILLING_INFO_URL;
|
|
108
102
|
exports.THEMES = THEMES;
|
|
109
103
|
exports.useWhatsNewChangesCount = useWhatsNewChangesCount;
|
|
110
|
-
//# sourceMappingURL=useWhatsNewChangesCount-
|
|
104
|
+
//# sourceMappingURL=useWhatsNewChangesCount-BzQTamII.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWhatsNewChangesCount-BzQTamII.js","sources":["../../src/components/FloatingActionMenu/constants.js","../../src/components/FloatingActionMenu/hooks/useWhatsNewChangesCount.js"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const MY_ORGANIZATION_URL = \"/auth/organization/edit\";\nexport const DELETE_WORKSPACE_URL = \"/auth/organization/delete\";\nexport const ENGAGE_WIDGET_TRIGGER_ID = \"neetoengage-trigger\";\n\nexport const DEFAULT_MENU_LINK_PROPS = {\n engageProps: {\n id: ENGAGE_WIDGET_TRIGGER_ID,\n label: t(\"neetoMolecules.sidebar.helpLinks.whatsNew\"),\n \"data-testid\": \"help-link-engage-button\",\n },\n keyboardShortcutProps: {\n label: t(\"neetoMolecules.sidebar.helpLinks.keyboardShortcuts\"),\n \"data-testid\": \"help-link-keyboard-shortcut-button\",\n },\n};\n\n// Theme switcher\nexport const APP_THEME_LOCALSTORAGE_KEY = \"appTheme\";\n\nexport const THEMES = {\n LIGHT: \"neeto-ui-theme--light\",\n DARK: \"neeto-ui-theme--dark\",\n};\n\nexport const NEETO_AUTH_BILLING_INFO_URL =\n \"/neeto_sso/api/v1/subscription/billing\";\n","import { useEffect, useState } from \"react\";\n\n// Shared source of truth for the neetoEngage changelog unread count.\n//\n// The widget reports the count by calling `window.Nv.onReceiveData({ unreadCount })`\n// whenever it changes (on load and each time entries are marked read). Opening\n// the widget doesn't clear it: the count only drops as entries are read. Both the FloatingActionMenu and the\n// Sidebar surface this count, so this module installs a SINGLE set of\n// `window.Nv` handlers (chaining onto any pre-existing ones) and fans the value\n// out to every subscribed component. Installation happens on the first\n// subscriber and is torn down only when the last one unsubscribes — so\n// interleaved mount/unmount of the two surfaces can never leave a stale handler\n// on the global object.\n\nlet currentCount = null;\nconst subscribers = new Set();\nlet isInstalled = false;\nlet previousOnReceiveData;\n\nconst notify = () => subscribers.forEach(setCount => setCount(currentCount));\n\nconst install = () => {\n if (isInstalled) return;\n isInstalled = true;\n\n const existing = window.Nv || {};\n previousOnReceiveData = existing.onReceiveData;\n\n window.Nv = Object.assign(existing, {\n onReceiveData: data => {\n previousOnReceiveData?.(data);\n // Only react to a numeric unreadCount; `0` clears the badge (a non-zero\n // count would otherwise stay stale until the pane is opened).\n if (typeof data?.unreadCount === \"number\") {\n currentCount = data.unreadCount || null;\n notify();\n }\n },\n });\n};\n\nconst uninstall = () => {\n if (!isInstalled) return;\n isInstalled = false;\n\n if (window.Nv) {\n window.Nv.onReceiveData = previousOnReceiveData;\n }\n // currentCount is kept: the widget only reports it on page load and after a\n // \"Mark as read\", so a surface that remounts (e.g. after navigating to a page\n // without a sidebar and back) would otherwise lose it until a full reload.\n};\n\nconst useWhatsNewChangesCount = () => {\n const [changesCount, setChangesCount] = useState(currentCount);\n\n useEffect(() => {\n install();\n subscribers.add(setChangesCount);\n setChangesCount(currentCount);\n\n return () => {\n subscribers.delete(setChangesCount);\n if (subscribers.size === 0) uninstall();\n };\n }, []);\n\n return changesCount;\n};\n\nexport default useWhatsNewChangesCount;\n"],"names":["MY_ORGANIZATION_URL","DELETE_WORKSPACE_URL","ENGAGE_WIDGET_TRIGGER_ID","DEFAULT_MENU_LINK_PROPS","engageProps","id","label","t","keyboardShortcutProps","APP_THEME_LOCALSTORAGE_KEY","THEMES","LIGHT","DARK","NEETO_AUTH_BILLING_INFO_URL","currentCount","subscribers","Set","isInstalled","previousOnReceiveData","notify","forEach","setCount","install","existing","window","Nv","onReceiveData","Object","assign","data","_previousOnReceiveDat","unreadCount","uninstall","useWhatsNewChangesCount","_useState","useState","_useState2","_slicedToArray","changesCount","setChangesCount","useEffect","add","size"],"mappings":"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"}
|
package/dist/cjs/{useWhatsNewChangesCount-Bx_vHoMO.js → useWhatsNewChangesCount-CLo5AJny.js}
RENAMED
|
@@ -40,7 +40,8 @@ var THEME_ICON_BASE = "transition-transform duration-300 ease-out";
|
|
|
40
40
|
// Shared source of truth for the neetoEngage changelog unread count.
|
|
41
41
|
//
|
|
42
42
|
// The widget reports the count by calling `window.Nv.onReceiveData({ unreadCount })`
|
|
43
|
-
//
|
|
43
|
+
// whenever it changes (on load and each time entries are marked read). Opening
|
|
44
|
+
// the widget doesn't clear it: the count only drops as entries are read. Both the FloatingActionMenu and the
|
|
44
45
|
// Sidebar surface this count, so this module installs a SINGLE set of
|
|
45
46
|
// `window.Nv` handlers (chaining onto any pre-existing ones) and fans the value
|
|
46
47
|
// out to every subscribed component. Installation happens on the first
|
|
@@ -52,7 +53,6 @@ var currentCount = null;
|
|
|
52
53
|
var subscribers = new Set();
|
|
53
54
|
var isInstalled = false;
|
|
54
55
|
var previousOnReceiveData;
|
|
55
|
-
var previousOnShow;
|
|
56
56
|
var notify = function notify() {
|
|
57
57
|
return subscribers.forEach(function (setCount) {
|
|
58
58
|
return setCount(currentCount);
|
|
@@ -63,7 +63,6 @@ var install = function install() {
|
|
|
63
63
|
isInstalled = true;
|
|
64
64
|
var existing = window.Nv || {};
|
|
65
65
|
previousOnReceiveData = existing.onReceiveData;
|
|
66
|
-
previousOnShow = existing.onShow;
|
|
67
66
|
window.Nv = Object.assign(existing, {
|
|
68
67
|
onReceiveData: function onReceiveData(data) {
|
|
69
68
|
var _previousOnReceiveDat;
|
|
@@ -74,12 +73,6 @@ var install = function install() {
|
|
|
74
73
|
currentCount = data.unreadCount || null;
|
|
75
74
|
notify();
|
|
76
75
|
}
|
|
77
|
-
},
|
|
78
|
-
onShow: function onShow() {
|
|
79
|
-
var _previousOnShow;
|
|
80
|
-
(_previousOnShow = previousOnShow) === null || _previousOnShow === void 0 || _previousOnShow();
|
|
81
|
-
currentCount = null;
|
|
82
|
-
notify();
|
|
83
76
|
}
|
|
84
77
|
});
|
|
85
78
|
};
|
|
@@ -88,9 +81,10 @@ var uninstall = function uninstall() {
|
|
|
88
81
|
isInstalled = false;
|
|
89
82
|
if (window.Nv) {
|
|
90
83
|
window.Nv.onReceiveData = previousOnReceiveData;
|
|
91
|
-
window.Nv.onShow = previousOnShow;
|
|
92
84
|
}
|
|
93
|
-
currentCount
|
|
85
|
+
// currentCount is kept: the widget only reports it on page load and after a
|
|
86
|
+
// "Mark as read", so a surface that remounts (e.g. after navigating to a page
|
|
87
|
+
// without a sidebar and back) would otherwise lose it until a full reload.
|
|
94
88
|
};
|
|
95
89
|
var useWhatsNewChangesCount = function useWhatsNewChangesCount() {
|
|
96
90
|
var _useState = React.useState(currentCount),
|
|
@@ -122,4 +116,4 @@ exports.THEMES = THEMES;
|
|
|
122
116
|
exports.THEME_BUTTON_BASE = THEME_BUTTON_BASE;
|
|
123
117
|
exports.THEME_ICON_BASE = THEME_ICON_BASE;
|
|
124
118
|
exports.useWhatsNewChangesCount = useWhatsNewChangesCount;
|
|
125
|
-
//# sourceMappingURL=useWhatsNewChangesCount-
|
|
119
|
+
//# sourceMappingURL=useWhatsNewChangesCount-CLo5AJny.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWhatsNewChangesCount-CLo5AJny.js","sources":["../../src/v2/components/FloatingActionMenu/constants.js","../../src/v2/components/FloatingActionMenu/hooks/useWhatsNewChangesCount.js"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const MY_ORGANIZATION_URL = \"/auth/organization/edit\";\nexport const BILLING_URL = \"/auth/admin_billing\";\nexport const DELETE_WORKSPACE_URL = \"/auth/organization/delete\";\nexport const ENGAGE_WIDGET_TRIGGER_ID = \"neetoengage-trigger\";\n\nexport const DEFAULT_MENU_LINK_PROPS = {\n engageProps: {\n id: ENGAGE_WIDGET_TRIGGER_ID,\n label: t(\"neetoMolecules.sidebar.helpLinks.whatsNew\"),\n \"data-testid\": \"help-link-engage-button\",\n },\n keyboardShortcutProps: {\n label: t(\"neetoMolecules.sidebar.helpLinks.keyboardShortcuts\"),\n \"data-testid\": \"help-link-keyboard-shortcut-button\",\n },\n};\n\n// Theme switcher\nexport const APP_THEME_LOCALSTORAGE_KEY = \"appTheme\";\n\nexport const THEMES = { LIGHT: \"light\", DARK: \"dark\" };\n\n// Legacy neetoUI theme classes — kept until full migration is complete.\nexport const LEGACY_THEMES = {\n LIGHT: \"neeto-ui-theme--light\",\n DARK: \"neeto-ui-theme--dark\",\n};\n\nexport const NEETO_AUTH_BILLING_INFO_URL =\n \"/neeto_sso/api/v1/subscription/billing\";\n\nexport const MENU_ITEM_CLASSES =\n \"gap-2.5 px-2.5 py-2 font-medium [&>[data-slot=menu-item-prefix]>svg]:!size-[18px] [&>[data-slot=menu-item-suffix]>svg]:!size-[18px]\";\n\nexport const THEME_BUTTON_BASE =\n \"relative z-10 flex items-center justify-center gap-1 rounded-md px-2.5 py-1.5 text-xs font-medium transition-colors focus-visible:outline-none\";\n\nexport const THEME_ICON_BASE = \"transition-transform duration-300 ease-out\";\n","import { useEffect, useState } from \"react\";\n\n// Shared source of truth for the neetoEngage changelog unread count.\n//\n// The widget reports the count by calling `window.Nv.onReceiveData({ unreadCount })`\n// whenever it changes (on load and each time entries are marked read). Opening\n// the widget doesn't clear it: the count only drops as entries are read. Both the FloatingActionMenu and the\n// Sidebar surface this count, so this module installs a SINGLE set of\n// `window.Nv` handlers (chaining onto any pre-existing ones) and fans the value\n// out to every subscribed component. Installation happens on the first\n// subscriber and is torn down only when the last one unsubscribes — so\n// interleaved mount/unmount of the two surfaces can never leave a stale handler\n// on the global object.\n\nlet currentCount = null;\nconst subscribers = new Set();\nlet isInstalled = false;\nlet previousOnReceiveData;\n\nconst notify = () => subscribers.forEach(setCount => setCount(currentCount));\n\nconst install = () => {\n if (isInstalled) return;\n isInstalled = true;\n\n const existing = window.Nv || {};\n previousOnReceiveData = existing.onReceiveData;\n\n window.Nv = Object.assign(existing, {\n onReceiveData: data => {\n previousOnReceiveData?.(data);\n // Only react to a numeric unreadCount; `0` clears the badge (a non-zero\n // count would otherwise stay stale until the pane is opened).\n if (typeof data?.unreadCount === \"number\") {\n currentCount = data.unreadCount || null;\n notify();\n }\n },\n });\n};\n\nconst uninstall = () => {\n if (!isInstalled) return;\n isInstalled = false;\n\n if (window.Nv) {\n window.Nv.onReceiveData = previousOnReceiveData;\n }\n // currentCount is kept: the widget only reports it on page load and after a\n // \"Mark as read\", so a surface that remounts (e.g. after navigating to a page\n // without a sidebar and back) would otherwise lose it until a full reload.\n};\n\nconst useWhatsNewChangesCount = () => {\n const [changesCount, setChangesCount] = useState(currentCount);\n\n useEffect(() => {\n install();\n subscribers.add(setChangesCount);\n setChangesCount(currentCount);\n\n return () => {\n subscribers.delete(setChangesCount);\n if (subscribers.size === 0) uninstall();\n };\n }, []);\n\n return changesCount;\n};\n\nexport default useWhatsNewChangesCount;\n"],"names":["MY_ORGANIZATION_URL","BILLING_URL","DELETE_WORKSPACE_URL","ENGAGE_WIDGET_TRIGGER_ID","DEFAULT_MENU_LINK_PROPS","engageProps","id","label","t","keyboardShortcutProps","APP_THEME_LOCALSTORAGE_KEY","THEMES","LIGHT","DARK","LEGACY_THEMES","NEETO_AUTH_BILLING_INFO_URL","MENU_ITEM_CLASSES","THEME_BUTTON_BASE","THEME_ICON_BASE","currentCount","subscribers","Set","isInstalled","previousOnReceiveData","notify","forEach","setCount","install","existing","window","Nv","onReceiveData","Object","assign","data","_previousOnReceiveDat","unreadCount","uninstall","useWhatsNewChangesCount","_useState","useState","_useState2","_slicedToArray","changesCount","setChangesCount","useEffect","add","size"],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ var axios = require('axios');
|
|
|
25
25
|
var search = require('../search-DoXqXFel.js');
|
|
26
26
|
var urls = require('../urls-DtjJggEY.js');
|
|
27
27
|
var useBreakpoints = require('@bigbinary/neeto-commons-frontend/v2/react-utils/useBreakpoints');
|
|
28
|
-
var useWhatsNewChangesCount = require('../useWhatsNewChangesCount-
|
|
28
|
+
var useWhatsNewChangesCount = require('../useWhatsNewChangesCount-CLo5AJny.js');
|
|
29
29
|
var createLucideIcon = require('../createLucideIcon-BbuuRL2u.js');
|
|
30
30
|
var circleQuestionMark = require('../circle-question-mark-BijjM_4y.js');
|
|
31
31
|
var chevronRight = require('../chevron-right-BVivH_B-.js');
|
package/dist/cjs/v2/Sidebar.js
CHANGED
|
@@ -19,7 +19,7 @@ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProp
|
|
|
19
19
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
20
20
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
21
21
|
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
22
|
-
var useWhatsNewChangesCount = require('../useWhatsNewChangesCount-
|
|
22
|
+
var useWhatsNewChangesCount = require('../useWhatsNewChangesCount-CLo5AJny.js');
|
|
23
23
|
var plus = require('../plus-B3N_9NiI.js');
|
|
24
24
|
var ellipsis = require('../ellipsis-DDma6joP.js');
|
|
25
25
|
var chevronRight = require('../chevron-right-BVivH_B-.js');
|
|
@@ -349,7 +349,7 @@ var NavLinks = function NavLinks(_ref) {
|
|
|
349
349
|
"data-testid": "sidebar-whats-new-count"
|
|
350
350
|
}
|
|
351
351
|
});
|
|
352
|
-
var combinedNavLinks = [].concat(_toConsumableArray(showWhatsNew ? [whatsNewNavLink] : []), _toConsumableArray(navLinks), _toConsumableArray(additionalItems));
|
|
352
|
+
var combinedNavLinks = [].concat(_toConsumableArray(showWhatsNew && neetoCist.isPresent(whatsNewCount) ? [whatsNewNavLink] : []), _toConsumableArray(navLinks), _toConsumableArray(additionalItems));
|
|
353
353
|
return /*#__PURE__*/jsxRuntime.jsx(primitives.SidebarGroup, {
|
|
354
354
|
children: /*#__PURE__*/jsxRuntime.jsx(primitives.SidebarGroupContent, {
|
|
355
355
|
children: /*#__PURE__*/jsxRuntime.jsxs(primitives.SidebarMenu, {
|