@bigbinary/neeto-molecules 5.3.27 → 5.3.28
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 +3 -40
- package/dist/FloatingActionMenu.js.map +1 -1
- package/dist/Sidebar.js +43 -5
- package/dist/Sidebar.js.map +1 -1
- package/dist/cjs/FloatingActionMenu.js +18 -55
- package/dist/cjs/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/Sidebar.js +43 -5
- package/dist/cjs/Sidebar.js.map +1 -1
- package/dist/cjs/useWhatsNewChangesCount-Bx_vHoMO.js +125 -0
- package/dist/cjs/useWhatsNewChangesCount-Bx_vHoMO.js.map +1 -0
- package/dist/cjs/useWhatsNewChangesCount-C9DSz8TY.js +110 -0
- package/dist/cjs/useWhatsNewChangesCount-C9DSz8TY.js.map +1 -0
- package/dist/cjs/v2/FloatingActionMenu.js +34 -81
- package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
- package/dist/cjs/v2/Sidebar.js +66 -7
- package/dist/cjs/v2/Sidebar.js.map +1 -1
- package/dist/useWhatsNewChangesCount-5ChErwhP.js +111 -0
- package/dist/useWhatsNewChangesCount-5ChErwhP.js.map +1 -0
- package/dist/useWhatsNewChangesCount-Cy7rXdSf.js +101 -0
- package/dist/useWhatsNewChangesCount-Cy7rXdSf.js.map +1 -0
- package/dist/v2/FloatingActionMenu.js +3 -50
- package/dist/v2/FloatingActionMenu.js.map +1 -1
- package/dist/v2/Sidebar.js +66 -7
- package/dist/v2/Sidebar.js.map +1 -1
- package/package.json +3 -3
package/dist/cjs/Sidebar.js
CHANGED
|
@@ -15,11 +15,13 @@ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
|
|
|
15
15
|
var Neeto = require('@bigbinary/neeto-icons/typeface-logos/Neeto');
|
|
16
16
|
var AppIcons = require('@bigbinary/neeto-icons/typeface-logos');
|
|
17
17
|
var jsxRuntime = require('react/jsx-runtime');
|
|
18
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
19
18
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
19
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
20
20
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
21
21
|
var Right = require('@bigbinary/neeto-icons/Right');
|
|
22
|
+
var Changelog = require('@bigbinary/neeto-icons/Changelog');
|
|
22
23
|
var Tag = require('@bigbinary/neetoui/Tag');
|
|
24
|
+
var useWhatsNewChangesCount = require('./useWhatsNewChangesCount-C9DSz8TY.js');
|
|
23
25
|
var Plus = require('@bigbinary/neeto-icons/Plus');
|
|
24
26
|
var Dropdown = require('@bigbinary/neetoui/Dropdown');
|
|
25
27
|
var MenuHorizontal = require('@bigbinary/neeto-icons/MenuHorizontal');
|
|
@@ -30,6 +32,7 @@ require('@bigbinary/neeto-icons/Home');
|
|
|
30
32
|
require('@bigbinary/neeto-filters-frontend/Segments');
|
|
31
33
|
require('@bigbinary/neeto-commons-frontend/react-utils/useRegisterNavigationCheckpoint');
|
|
32
34
|
require('./inject-css-B6qYtOJe.js');
|
|
35
|
+
require('i18next');
|
|
33
36
|
require('zustand/shallow');
|
|
34
37
|
require('@bigbinary/neeto-commons-frontend/react-utils/withImmutableActions');
|
|
35
38
|
require('zustand');
|
|
@@ -285,8 +288,13 @@ var Links = function Links(_ref) {
|
|
|
285
288
|
var navLinks = _ref.navLinks,
|
|
286
289
|
moreNavLinks = _ref.moreNavLinks,
|
|
287
290
|
isCountsLoadingDeprecated = _ref.isCountsLoading,
|
|
288
|
-
setSelectedNavLinkRoute = _ref.setSelectedNavLinkRoute
|
|
291
|
+
setSelectedNavLinkRoute = _ref.setSelectedNavLinkRoute,
|
|
292
|
+
_ref$showWhatsNew = _ref.showWhatsNew,
|
|
293
|
+
showWhatsNew = _ref$showWhatsNew === void 0 ? false : _ref$showWhatsNew;
|
|
289
294
|
var location = reactRouterDom.useLocation();
|
|
295
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
296
|
+
t = _useTranslation.t;
|
|
297
|
+
var whatsNewCount = useWhatsNewChangesCount.useWhatsNewChangesCount();
|
|
290
298
|
var _useState = React.useState([]),
|
|
291
299
|
_useState2 = _slicedToArray(_useState, 2),
|
|
292
300
|
expandedNavLinkKeys = _useState2[0],
|
|
@@ -340,7 +348,34 @@ var Links = function Links(_ref) {
|
|
|
340
348
|
if (activeMoreNavLink && !isNavLinkPinned(activeMoreNavLink)) {
|
|
341
349
|
additionalItems.push(activeMoreNavLink);
|
|
342
350
|
}
|
|
343
|
-
|
|
351
|
+
|
|
352
|
+
// "What's new" opens the neetoEngage changelog widget, which binds to the
|
|
353
|
+
// element carrying ENGAGE_WIDGET_TRIGGER_ID. Rendering it as a persistent
|
|
354
|
+
// sidebar item gives the widget a stable trigger. The unread count is shown
|
|
355
|
+
// as an info-blue tag on the right of the item (via the `tag` slot).
|
|
356
|
+
var whatsNewNavLink = _objectSpread({
|
|
357
|
+
key: "sidebar-whats-new",
|
|
358
|
+
icon: Changelog,
|
|
359
|
+
label: t("neetoMolecules.sidebar.helpLinks.whatsNew"),
|
|
360
|
+
to: "#",
|
|
361
|
+
id: useWhatsNewChangesCount.ENGAGE_WIDGET_TRIGGER_ID,
|
|
362
|
+
isActive: function isActive() {
|
|
363
|
+
return false;
|
|
364
|
+
},
|
|
365
|
+
"data-testid": "sidebar-whats-new",
|
|
366
|
+
onClick: function onClick(event) {
|
|
367
|
+
return event.preventDefault();
|
|
368
|
+
}
|
|
369
|
+
}, neetoCist.isPresent(whatsNewCount) && {
|
|
370
|
+
tag: {
|
|
371
|
+
label: String(renderCount(whatsNewCount)),
|
|
372
|
+
style: "info",
|
|
373
|
+
type: "solid",
|
|
374
|
+
size: "small",
|
|
375
|
+
className: "ml-auto !bg-[rgb(var(--neeto-ui-accent-500))] !text-white"
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
var combinedNavLinks = [].concat(_toConsumableArray(showWhatsNew ? [whatsNewNavLink] : []), _toConsumableArray(navLinks), _toConsumableArray(additionalItems));
|
|
344
379
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
345
380
|
className: "neeto-molecules-sidebar__links neeto-molecules-sidebar__no-shrinkable",
|
|
346
381
|
children: [combinedNavLinks.filter(Chevron.filterByPermissions).map(function (navLink, index) {
|
|
@@ -441,7 +476,9 @@ var Sidebar = function Sidebar(_ref) {
|
|
|
441
476
|
_ref$showWorkspaceNam = _ref.showWorkspaceName,
|
|
442
477
|
showWorkspaceName = _ref$showWorkspaceNam === void 0 ? false : _ref$showWorkspaceNam,
|
|
443
478
|
_ref$isExpandable = _ref.isExpandable,
|
|
444
|
-
isExpandable = _ref$isExpandable === void 0 ? true : _ref$isExpandable
|
|
479
|
+
isExpandable = _ref$isExpandable === void 0 ? true : _ref$isExpandable,
|
|
480
|
+
_ref$showWhatsNew = _ref.showWhatsNew,
|
|
481
|
+
showWhatsNew = _ref$showWhatsNew === void 0 ? true : _ref$showWhatsNew;
|
|
445
482
|
var _useKeyboardShortcuts = useKeyboardShortcutsPaneState.useKeyboardShortcutsPaneState(),
|
|
446
483
|
_useKeyboardShortcuts2 = _slicedToArray(_useKeyboardShortcuts, 1),
|
|
447
484
|
isKeyboardShortcutsPaneOpen = _useKeyboardShortcuts2[0];
|
|
@@ -604,7 +641,8 @@ var Sidebar = function Sidebar(_ref) {
|
|
|
604
641
|
isCountsLoading: isCountsLoading,
|
|
605
642
|
moreNavLinks: moreNavLinks,
|
|
606
643
|
navLinks: navLinks,
|
|
607
|
-
setSelectedNavLinkRoute: setSelectedNavLinkRoute
|
|
644
|
+
setSelectedNavLinkRoute: setSelectedNavLinkRoute,
|
|
645
|
+
showWhatsNew: showWhatsNew
|
|
608
646
|
})]
|
|
609
647
|
}), /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
610
648
|
className: "neeto-molecules-sidebar__toggler",
|
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 } from \"neetoicons\";\nimport { Typography, Tag } from \"neetoui\";\nimport { append, is } from \"ramda\";\nimport { useLocation } from \"react-router-dom\";\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}) => {\n const location = useLocation();\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 const combinedNavLinks = [...navLinks, ...additionalItems];\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}) => {\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 }}\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\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","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","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 ...(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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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var i18next = require('i18next');
|
|
4
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
|
|
7
|
+
var MY_ORGANIZATION_URL = "/auth/organization/edit";
|
|
8
|
+
var BILLING_URL = "/auth/admin_billing";
|
|
9
|
+
var DELETE_WORKSPACE_URL = "/auth/organization/delete";
|
|
10
|
+
var ENGAGE_WIDGET_TRIGGER_ID = "neetoengage-trigger";
|
|
11
|
+
var DEFAULT_MENU_LINK_PROPS = {
|
|
12
|
+
engageProps: {
|
|
13
|
+
id: ENGAGE_WIDGET_TRIGGER_ID,
|
|
14
|
+
label: i18next.t("neetoMolecules.sidebar.helpLinks.whatsNew"),
|
|
15
|
+
"data-testid": "help-link-engage-button"
|
|
16
|
+
},
|
|
17
|
+
keyboardShortcutProps: {
|
|
18
|
+
label: i18next.t("neetoMolecules.sidebar.helpLinks.keyboardShortcuts"),
|
|
19
|
+
"data-testid": "help-link-keyboard-shortcut-button"
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// Theme switcher
|
|
24
|
+
var APP_THEME_LOCALSTORAGE_KEY = "appTheme";
|
|
25
|
+
var THEMES = {
|
|
26
|
+
LIGHT: "light",
|
|
27
|
+
DARK: "dark"
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// Legacy neetoUI theme classes — kept until full migration is complete.
|
|
31
|
+
var LEGACY_THEMES = {
|
|
32
|
+
LIGHT: "neeto-ui-theme--light",
|
|
33
|
+
DARK: "neeto-ui-theme--dark"
|
|
34
|
+
};
|
|
35
|
+
var NEETO_AUTH_BILLING_INFO_URL = "/neeto_sso/api/v1/subscription/billing";
|
|
36
|
+
var MENU_ITEM_CLASSES = "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]";
|
|
37
|
+
var THEME_BUTTON_BASE = "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";
|
|
38
|
+
var THEME_ICON_BASE = "transition-transform duration-300 ease-out";
|
|
39
|
+
|
|
40
|
+
// Shared source of truth for the neetoEngage changelog unread count.
|
|
41
|
+
//
|
|
42
|
+
// The widget reports the count by calling `window.Nv.onReceiveData({ unreadCount })`
|
|
43
|
+
// and clears it via `window.Nv.onShow()`. Both the FloatingActionMenu and the
|
|
44
|
+
// Sidebar surface this count, so this module installs a SINGLE set of
|
|
45
|
+
// `window.Nv` handlers (chaining onto any pre-existing ones) and fans the value
|
|
46
|
+
// out to every subscribed component. Installation happens on the first
|
|
47
|
+
// subscriber and is torn down only when the last one unsubscribes — so
|
|
48
|
+
// interleaved mount/unmount of the two surfaces can never leave a stale handler
|
|
49
|
+
// on the global object.
|
|
50
|
+
|
|
51
|
+
var currentCount = null;
|
|
52
|
+
var subscribers = new Set();
|
|
53
|
+
var isInstalled = false;
|
|
54
|
+
var previousOnReceiveData;
|
|
55
|
+
var previousOnShow;
|
|
56
|
+
var notify = function notify() {
|
|
57
|
+
return subscribers.forEach(function (setCount) {
|
|
58
|
+
return setCount(currentCount);
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
var install = function install() {
|
|
62
|
+
if (isInstalled) return;
|
|
63
|
+
isInstalled = true;
|
|
64
|
+
var existing = window.Nv || {};
|
|
65
|
+
previousOnReceiveData = existing.onReceiveData;
|
|
66
|
+
previousOnShow = existing.onShow;
|
|
67
|
+
window.Nv = Object.assign(existing, {
|
|
68
|
+
onReceiveData: function onReceiveData(data) {
|
|
69
|
+
var _previousOnReceiveDat;
|
|
70
|
+
(_previousOnReceiveDat = previousOnReceiveData) === null || _previousOnReceiveDat === void 0 || _previousOnReceiveDat(data);
|
|
71
|
+
// Only react to a numeric unreadCount; `0` clears the badge (a non-zero
|
|
72
|
+
// count would otherwise stay stale until the pane is opened).
|
|
73
|
+
if (typeof (data === null || data === void 0 ? void 0 : data.unreadCount) === "number") {
|
|
74
|
+
currentCount = data.unreadCount || null;
|
|
75
|
+
notify();
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
onShow: function onShow() {
|
|
79
|
+
var _previousOnShow;
|
|
80
|
+
(_previousOnShow = previousOnShow) === null || _previousOnShow === void 0 || _previousOnShow();
|
|
81
|
+
currentCount = null;
|
|
82
|
+
notify();
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
var uninstall = function uninstall() {
|
|
87
|
+
if (!isInstalled) return;
|
|
88
|
+
isInstalled = false;
|
|
89
|
+
if (window.Nv) {
|
|
90
|
+
window.Nv.onReceiveData = previousOnReceiveData;
|
|
91
|
+
window.Nv.onShow = previousOnShow;
|
|
92
|
+
}
|
|
93
|
+
currentCount = null;
|
|
94
|
+
};
|
|
95
|
+
var useWhatsNewChangesCount = function useWhatsNewChangesCount() {
|
|
96
|
+
var _useState = React.useState(currentCount),
|
|
97
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
98
|
+
changesCount = _useState2[0],
|
|
99
|
+
setChangesCount = _useState2[1];
|
|
100
|
+
React.useEffect(function () {
|
|
101
|
+
install();
|
|
102
|
+
subscribers.add(setChangesCount);
|
|
103
|
+
setChangesCount(currentCount);
|
|
104
|
+
return function () {
|
|
105
|
+
subscribers["delete"](setChangesCount);
|
|
106
|
+
if (subscribers.size === 0) uninstall();
|
|
107
|
+
};
|
|
108
|
+
}, []);
|
|
109
|
+
return changesCount;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
exports.APP_THEME_LOCALSTORAGE_KEY = APP_THEME_LOCALSTORAGE_KEY;
|
|
113
|
+
exports.BILLING_URL = BILLING_URL;
|
|
114
|
+
exports.DEFAULT_MENU_LINK_PROPS = DEFAULT_MENU_LINK_PROPS;
|
|
115
|
+
exports.DELETE_WORKSPACE_URL = DELETE_WORKSPACE_URL;
|
|
116
|
+
exports.ENGAGE_WIDGET_TRIGGER_ID = ENGAGE_WIDGET_TRIGGER_ID;
|
|
117
|
+
exports.LEGACY_THEMES = LEGACY_THEMES;
|
|
118
|
+
exports.MENU_ITEM_CLASSES = MENU_ITEM_CLASSES;
|
|
119
|
+
exports.MY_ORGANIZATION_URL = MY_ORGANIZATION_URL;
|
|
120
|
+
exports.NEETO_AUTH_BILLING_INFO_URL = NEETO_AUTH_BILLING_INFO_URL;
|
|
121
|
+
exports.THEMES = THEMES;
|
|
122
|
+
exports.THEME_BUTTON_BASE = THEME_BUTTON_BASE;
|
|
123
|
+
exports.THEME_ICON_BASE = THEME_ICON_BASE;
|
|
124
|
+
exports.useWhatsNewChangesCount = useWhatsNewChangesCount;
|
|
125
|
+
//# sourceMappingURL=useWhatsNewChangesCount-Bx_vHoMO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWhatsNewChangesCount-Bx_vHoMO.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// and clears it via `window.Nv.onShow()`. 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;\nlet previousOnShow;\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 previousOnShow = existing.onShow;\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 onShow: () => {\n previousOnShow?.();\n currentCount = null;\n notify();\n },\n });\n};\n\nconst uninstall = () => {\n if (!isInstalled) return;\n isInstalled = false;\n\n if (window.Nv) {\n window.Nv.onReceiveData = previousOnReceiveData;\n window.Nv.onShow = previousOnShow;\n }\n currentCount = null;\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","previousOnShow","notify","forEach","setCount","install","existing","window","Nv","onReceiveData","onShow","Object","assign","data","_previousOnReceiveDat","unreadCount","_previousOnShow","uninstall","useWhatsNewChangesCount","_useState","useState","_useState2","_slicedToArray","changesCount","setChangesCount","useEffect","add","size"],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var i18next = require('i18next');
|
|
4
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
+
var React = require('react');
|
|
6
|
+
|
|
7
|
+
var MY_ORGANIZATION_URL = "/auth/organization/edit";
|
|
8
|
+
var DELETE_WORKSPACE_URL = "/auth/organization/delete";
|
|
9
|
+
var ENGAGE_WIDGET_TRIGGER_ID = "neetoengage-trigger";
|
|
10
|
+
var DEFAULT_MENU_LINK_PROPS = {
|
|
11
|
+
engageProps: {
|
|
12
|
+
id: ENGAGE_WIDGET_TRIGGER_ID,
|
|
13
|
+
label: i18next.t("neetoMolecules.sidebar.helpLinks.whatsNew"),
|
|
14
|
+
"data-testid": "help-link-engage-button"
|
|
15
|
+
},
|
|
16
|
+
keyboardShortcutProps: {
|
|
17
|
+
label: i18next.t("neetoMolecules.sidebar.helpLinks.keyboardShortcuts"),
|
|
18
|
+
"data-testid": "help-link-keyboard-shortcut-button"
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// Theme switcher
|
|
23
|
+
var APP_THEME_LOCALSTORAGE_KEY = "appTheme";
|
|
24
|
+
var THEMES = {
|
|
25
|
+
LIGHT: "neeto-ui-theme--light",
|
|
26
|
+
DARK: "neeto-ui-theme--dark"
|
|
27
|
+
};
|
|
28
|
+
var NEETO_AUTH_BILLING_INFO_URL = "/neeto_sso/api/v1/subscription/billing";
|
|
29
|
+
|
|
30
|
+
// Shared source of truth for the neetoEngage changelog unread count.
|
|
31
|
+
//
|
|
32
|
+
// The widget reports the count by calling `window.Nv.onReceiveData({ unreadCount })`
|
|
33
|
+
// and clears it via `window.Nv.onShow()`. Both the FloatingActionMenu and the
|
|
34
|
+
// Sidebar surface this count, so this module installs a SINGLE set of
|
|
35
|
+
// `window.Nv` handlers (chaining onto any pre-existing ones) and fans the value
|
|
36
|
+
// out to every subscribed component. Installation happens on the first
|
|
37
|
+
// subscriber and is torn down only when the last one unsubscribes — so
|
|
38
|
+
// interleaved mount/unmount of the two surfaces can never leave a stale handler
|
|
39
|
+
// on the global object.
|
|
40
|
+
|
|
41
|
+
var currentCount = null;
|
|
42
|
+
var subscribers = new Set();
|
|
43
|
+
var isInstalled = false;
|
|
44
|
+
var previousOnReceiveData;
|
|
45
|
+
var previousOnShow;
|
|
46
|
+
var notify = function notify() {
|
|
47
|
+
return subscribers.forEach(function (setCount) {
|
|
48
|
+
return setCount(currentCount);
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
var install = function install() {
|
|
52
|
+
if (isInstalled) return;
|
|
53
|
+
isInstalled = true;
|
|
54
|
+
var existing = window.Nv || {};
|
|
55
|
+
previousOnReceiveData = existing.onReceiveData;
|
|
56
|
+
previousOnShow = existing.onShow;
|
|
57
|
+
window.Nv = Object.assign(existing, {
|
|
58
|
+
onReceiveData: function onReceiveData(data) {
|
|
59
|
+
var _previousOnReceiveDat;
|
|
60
|
+
(_previousOnReceiveDat = previousOnReceiveData) === null || _previousOnReceiveDat === void 0 || _previousOnReceiveDat(data);
|
|
61
|
+
// Only react to a numeric unreadCount; `0` clears the badge (a non-zero
|
|
62
|
+
// count would otherwise stay stale until the pane is opened).
|
|
63
|
+
if (typeof (data === null || data === void 0 ? void 0 : data.unreadCount) === "number") {
|
|
64
|
+
currentCount = data.unreadCount || null;
|
|
65
|
+
notify();
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
onShow: function onShow() {
|
|
69
|
+
var _previousOnShow;
|
|
70
|
+
(_previousOnShow = previousOnShow) === null || _previousOnShow === void 0 || _previousOnShow();
|
|
71
|
+
currentCount = null;
|
|
72
|
+
notify();
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
var uninstall = function uninstall() {
|
|
77
|
+
if (!isInstalled) return;
|
|
78
|
+
isInstalled = false;
|
|
79
|
+
if (window.Nv) {
|
|
80
|
+
window.Nv.onReceiveData = previousOnReceiveData;
|
|
81
|
+
window.Nv.onShow = previousOnShow;
|
|
82
|
+
}
|
|
83
|
+
currentCount = null;
|
|
84
|
+
};
|
|
85
|
+
var useWhatsNewChangesCount = function useWhatsNewChangesCount() {
|
|
86
|
+
var _useState = React.useState(currentCount),
|
|
87
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
88
|
+
changesCount = _useState2[0],
|
|
89
|
+
setChangesCount = _useState2[1];
|
|
90
|
+
React.useEffect(function () {
|
|
91
|
+
install();
|
|
92
|
+
subscribers.add(setChangesCount);
|
|
93
|
+
setChangesCount(currentCount);
|
|
94
|
+
return function () {
|
|
95
|
+
subscribers["delete"](setChangesCount);
|
|
96
|
+
if (subscribers.size === 0) uninstall();
|
|
97
|
+
};
|
|
98
|
+
}, []);
|
|
99
|
+
return changesCount;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
exports.APP_THEME_LOCALSTORAGE_KEY = APP_THEME_LOCALSTORAGE_KEY;
|
|
103
|
+
exports.DEFAULT_MENU_LINK_PROPS = DEFAULT_MENU_LINK_PROPS;
|
|
104
|
+
exports.DELETE_WORKSPACE_URL = DELETE_WORKSPACE_URL;
|
|
105
|
+
exports.ENGAGE_WIDGET_TRIGGER_ID = ENGAGE_WIDGET_TRIGGER_ID;
|
|
106
|
+
exports.MY_ORGANIZATION_URL = MY_ORGANIZATION_URL;
|
|
107
|
+
exports.NEETO_AUTH_BILLING_INFO_URL = NEETO_AUTH_BILLING_INFO_URL;
|
|
108
|
+
exports.THEMES = THEMES;
|
|
109
|
+
exports.useWhatsNewChangesCount = useWhatsNewChangesCount;
|
|
110
|
+
//# sourceMappingURL=useWhatsNewChangesCount-C9DSz8TY.js.map
|