@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWhatsNewChangesCount-C9DSz8TY.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// 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","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","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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"}
|
|
@@ -25,12 +25,13 @@ 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
|
|
28
|
+
var useWhatsNewChangesCount = require('../useWhatsNewChangesCount-Bx_vHoMO.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');
|
|
32
32
|
var user = require('../user-bZmvS8wE.js');
|
|
33
33
|
var useLocalStorage = require('@bigbinary/neeto-commons-frontend/v2/react-utils/useLocalStorage');
|
|
34
|
+
var i18next = require('i18next');
|
|
34
35
|
var utils = require('@bigbinary/neeto-commons-frontend/v2/utils');
|
|
35
36
|
var axios$1 = require('@bigbinary/neeto-commons-frontend/v2/utils/axios');
|
|
36
37
|
var general = require('@bigbinary/neeto-commons-frontend/v2/utils/general');
|
|
@@ -573,39 +574,6 @@ var Modal = reactUtils.withT(function (_ref) {
|
|
|
573
574
|
});
|
|
574
575
|
});
|
|
575
576
|
|
|
576
|
-
var MY_ORGANIZATION_URL = "/auth/organization/edit";
|
|
577
|
-
var BILLING_URL = "/auth/admin_billing";
|
|
578
|
-
var DELETE_WORKSPACE_URL = "/auth/organization/delete";
|
|
579
|
-
var ENGAGE_WIDGET_TRIGGER_ID = "neetoengage-trigger";
|
|
580
|
-
var DEFAULT_MENU_LINK_PROPS = {
|
|
581
|
-
engageProps: {
|
|
582
|
-
id: ENGAGE_WIDGET_TRIGGER_ID,
|
|
583
|
-
label: i18next.t("neetoMolecules.sidebar.helpLinks.whatsNew"),
|
|
584
|
-
"data-testid": "help-link-engage-button"
|
|
585
|
-
},
|
|
586
|
-
keyboardShortcutProps: {
|
|
587
|
-
label: i18next.t("neetoMolecules.sidebar.helpLinks.keyboardShortcuts"),
|
|
588
|
-
"data-testid": "help-link-keyboard-shortcut-button"
|
|
589
|
-
}
|
|
590
|
-
};
|
|
591
|
-
|
|
592
|
-
// Theme switcher
|
|
593
|
-
var APP_THEME_LOCALSTORAGE_KEY = "appTheme";
|
|
594
|
-
var THEMES = {
|
|
595
|
-
LIGHT: "light",
|
|
596
|
-
DARK: "dark"
|
|
597
|
-
};
|
|
598
|
-
|
|
599
|
-
// Legacy neetoUI theme classes — kept until full migration is complete.
|
|
600
|
-
var LEGACY_THEMES = {
|
|
601
|
-
LIGHT: "neeto-ui-theme--light",
|
|
602
|
-
DARK: "neeto-ui-theme--dark"
|
|
603
|
-
};
|
|
604
|
-
var NEETO_AUTH_BILLING_INFO_URL = "/neeto_sso/api/v1/subscription/billing";
|
|
605
|
-
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]";
|
|
606
|
-
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";
|
|
607
|
-
var THEME_ICON_BASE = "transition-transform duration-300 ease-out";
|
|
608
|
-
|
|
609
577
|
var _excluded$2 = ["className"];
|
|
610
578
|
function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
611
579
|
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -613,7 +581,7 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function (_ref, forwardedRef) {
|
|
|
613
581
|
var className = _ref.className,
|
|
614
582
|
props = _objectWithoutProperties(_ref, _excluded$2);
|
|
615
583
|
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem, _objectSpread$4({
|
|
616
|
-
className: classnames(MENU_ITEM_CLASSES, className),
|
|
584
|
+
className: classnames(useWhatsNewChangesCount.MENU_ITEM_CLASSES, className),
|
|
617
585
|
ref: forwardedRef
|
|
618
586
|
}, props));
|
|
619
587
|
});
|
|
@@ -695,7 +663,7 @@ var MobileHelpMenu = function MobileHelpMenu() {
|
|
|
695
663
|
children: [/*#__PURE__*/jsxRuntime.jsx(primitives.CollapsibleTrigger, {
|
|
696
664
|
asChild: true,
|
|
697
665
|
children: /*#__PURE__*/jsxRuntime.jsxs(primitives.DropdownMenuItem, {
|
|
698
|
-
className: classnames("group", MENU_ITEM_CLASSES),
|
|
666
|
+
className: classnames("group", useWhatsNewChangesCount.MENU_ITEM_CLASSES),
|
|
699
667
|
"data-testid": "help-menu-button",
|
|
700
668
|
onSelect: function onSelect(e) {
|
|
701
669
|
return e.preventDefault();
|
|
@@ -726,7 +694,7 @@ var HelpMenu = function HelpMenu() {
|
|
|
726
694
|
if (isMobile) return /*#__PURE__*/jsxRuntime.jsx(MobileHelpMenu, {});
|
|
727
695
|
return /*#__PURE__*/jsxRuntime.jsxs(primitives.DropdownMenuSub, {
|
|
728
696
|
children: [/*#__PURE__*/jsxRuntime.jsxs(primitives.DropdownMenuSubTrigger, {
|
|
729
|
-
className: MENU_ITEM_CLASSES,
|
|
697
|
+
className: useWhatsNewChangesCount.MENU_ITEM_CLASSES,
|
|
730
698
|
"data-testid": "help-menu-button",
|
|
731
699
|
children: [/*#__PURE__*/jsxRuntime.jsx(circleQuestionMark.CircleQuestionMark, {
|
|
732
700
|
className: "size-[18px]"
|
|
@@ -856,7 +824,7 @@ var MobileOrganizationSwitcher = function MobileOrganizationSwitcher(_ref) {
|
|
|
856
824
|
children: [/*#__PURE__*/jsxRuntime.jsx(primitives.CollapsibleTrigger, {
|
|
857
825
|
asChild: true,
|
|
858
826
|
children: /*#__PURE__*/jsxRuntime.jsxs(primitives.DropdownMenuItem, {
|
|
859
|
-
className: classnames("group", MENU_ITEM_CLASSES),
|
|
827
|
+
className: classnames("group", useWhatsNewChangesCount.MENU_ITEM_CLASSES),
|
|
860
828
|
"data-testid": "organization-switcher-button",
|
|
861
829
|
onSelect: function onSelect(e) {
|
|
862
830
|
return e.preventDefault();
|
|
@@ -899,7 +867,7 @@ var OrganizationSwitcher = function OrganizationSwitcher() {
|
|
|
899
867
|
}
|
|
900
868
|
return /*#__PURE__*/jsxRuntime.jsxs(primitives.DropdownMenuSub, {
|
|
901
869
|
children: [/*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuSubTrigger, {
|
|
902
|
-
className: MENU_ITEM_CLASSES,
|
|
870
|
+
className: useWhatsNewChangesCount.MENU_ITEM_CLASSES,
|
|
903
871
|
"data-testid": "organization-switcher-button",
|
|
904
872
|
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
905
873
|
className: "flex-1",
|
|
@@ -921,7 +889,7 @@ var Dropdown = reactUtils.withT(function (_ref) {
|
|
|
921
889
|
var t = _ref.t;
|
|
922
890
|
return /*#__PURE__*/jsxRuntime.jsxs(primitives.DropdownMenuSub, {
|
|
923
891
|
children: [/*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuSubTrigger, {
|
|
924
|
-
className: MENU_ITEM_CLASSES,
|
|
892
|
+
className: useWhatsNewChangesCount.MENU_ITEM_CLASSES,
|
|
925
893
|
"data-testid": "product-switcher-button",
|
|
926
894
|
children: t("neetoMolecules.sidebar.productSwitcher")
|
|
927
895
|
}), /*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuSubContent, {
|
|
@@ -970,7 +938,7 @@ var ProfileItems = reactUtils.withT(function (_ref) {
|
|
|
970
938
|
children: t("neetoMolecules.sidebar.myProfile")
|
|
971
939
|
}), ((_window$globalProps = window.globalProps) === null || _window$globalProps === void 0 || (_window$globalProps = _window$globalProps.user) === null || _window$globalProps === void 0 ? void 0 : _window$globalProps.isOwner) && /*#__PURE__*/jsxRuntime.jsx(MenuItem, {
|
|
972
940
|
"data-testid": "profile-cancel-account-button",
|
|
973
|
-
href: DELETE_WORKSPACE_URL,
|
|
941
|
+
href: useWhatsNewChangesCount.DELETE_WORKSPACE_URL,
|
|
974
942
|
prefix: /*#__PURE__*/jsxRuntime.jsx(CircleX, {
|
|
975
943
|
size: 18
|
|
976
944
|
}),
|
|
@@ -1030,7 +998,7 @@ var MobileProfileExpandMenu = function MobileProfileExpandMenu(_ref) {
|
|
|
1030
998
|
children: [/*#__PURE__*/jsxRuntime.jsx(primitives.CollapsibleTrigger, {
|
|
1031
999
|
asChild: true,
|
|
1032
1000
|
children: /*#__PURE__*/jsxRuntime.jsxs(primitives.DropdownMenuItem, {
|
|
1033
|
-
className: classnames("group", MENU_ITEM_CLASSES),
|
|
1001
|
+
className: classnames("group", useWhatsNewChangesCount.MENU_ITEM_CLASSES),
|
|
1034
1002
|
"data-testid": "profile-expand-menu-button",
|
|
1035
1003
|
onSelect: function onSelect(e) {
|
|
1036
1004
|
return e.preventDefault();
|
|
@@ -1070,7 +1038,7 @@ var ProfileExpandMenu = function ProfileExpandMenu(_ref) {
|
|
|
1070
1038
|
}
|
|
1071
1039
|
return /*#__PURE__*/jsxRuntime.jsxs(primitives.DropdownMenuSub, {
|
|
1072
1040
|
children: [/*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuSubTrigger, {
|
|
1073
|
-
className: classnames("group items-center", MENU_ITEM_CLASSES),
|
|
1041
|
+
className: classnames("group items-center", useWhatsNewChangesCount.MENU_ITEM_CLASSES),
|
|
1074
1042
|
"data-testid": "profile-expand-menu-button",
|
|
1075
1043
|
children: /*#__PURE__*/jsxRuntime.jsx(ProfileHeader, {
|
|
1076
1044
|
profileInfo: profileInfo
|
|
@@ -1134,30 +1102,30 @@ var getProfileInfo = function getProfileInfo(profileInfoOverrides, isConsumer) {
|
|
|
1134
1102
|
// Theme switcher utils.
|
|
1135
1103
|
var setDarkTheme = function setDarkTheme() {
|
|
1136
1104
|
if (!document.body) return;
|
|
1137
|
-
document.body.classList.remove(THEMES.LIGHT, LEGACY_THEMES.LIGHT);
|
|
1138
|
-
document.body.classList.add(THEMES.DARK, LEGACY_THEMES.DARK);
|
|
1105
|
+
document.body.classList.remove(useWhatsNewChangesCount.THEMES.LIGHT, useWhatsNewChangesCount.LEGACY_THEMES.LIGHT);
|
|
1106
|
+
document.body.classList.add(useWhatsNewChangesCount.THEMES.DARK, useWhatsNewChangesCount.LEGACY_THEMES.DARK);
|
|
1139
1107
|
};
|
|
1140
1108
|
var setLightTheme = function setLightTheme() {
|
|
1141
1109
|
if (!document.body) return;
|
|
1142
|
-
document.body.classList.remove(THEMES.DARK, LEGACY_THEMES.DARK);
|
|
1143
|
-
document.body.classList.add(THEMES.LIGHT, LEGACY_THEMES.LIGHT);
|
|
1110
|
+
document.body.classList.remove(useWhatsNewChangesCount.THEMES.DARK, useWhatsNewChangesCount.LEGACY_THEMES.DARK);
|
|
1111
|
+
document.body.classList.add(useWhatsNewChangesCount.THEMES.LIGHT, useWhatsNewChangesCount.LEGACY_THEMES.LIGHT);
|
|
1144
1112
|
};
|
|
1145
1113
|
var setAppTheme = function setAppTheme() {
|
|
1146
|
-
var storedTheme = utils.getFromLocalStorage(APP_THEME_LOCALSTORAGE_KEY);
|
|
1147
|
-
var isDarkTheme = storedTheme === THEMES.DARK || storedTheme === LEGACY_THEMES.DARK;
|
|
1114
|
+
var storedTheme = utils.getFromLocalStorage(useWhatsNewChangesCount.APP_THEME_LOCALSTORAGE_KEY);
|
|
1115
|
+
var isDarkTheme = storedTheme === useWhatsNewChangesCount.THEMES.DARK || storedTheme === useWhatsNewChangesCount.LEGACY_THEMES.DARK;
|
|
1148
1116
|
isDarkTheme ? setDarkTheme() : setLightTheme();
|
|
1149
1117
|
};
|
|
1150
1118
|
|
|
1151
1119
|
var ThemeSwitcher = function ThemeSwitcher() {
|
|
1152
1120
|
var _useTranslation = reactI18next.useTranslation(),
|
|
1153
1121
|
t = _useTranslation.t;
|
|
1154
|
-
var _useLocalStorage = useLocalStorage(APP_THEME_LOCALSTORAGE_KEY, THEMES.LIGHT),
|
|
1122
|
+
var _useLocalStorage = useLocalStorage(useWhatsNewChangesCount.APP_THEME_LOCALSTORAGE_KEY, useWhatsNewChangesCount.THEMES.LIGHT),
|
|
1155
1123
|
_useLocalStorage2 = _slicedToArray(_useLocalStorage, 2),
|
|
1156
1124
|
appTheme = _useLocalStorage2[0],
|
|
1157
1125
|
setAppTheme = _useLocalStorage2[1];
|
|
1158
|
-
var isDarkThemeSelected = appTheme === THEMES.DARK || appTheme === LEGACY_THEMES.DARK;
|
|
1126
|
+
var isDarkThemeSelected = appTheme === useWhatsNewChangesCount.THEMES.DARK || appTheme === useWhatsNewChangesCount.LEGACY_THEMES.DARK;
|
|
1159
1127
|
var switchTheme = function switchTheme(theme) {
|
|
1160
|
-
theme === THEMES.LIGHT ? setLightTheme() : setDarkTheme();
|
|
1128
|
+
theme === useWhatsNewChangesCount.THEMES.LIGHT ? setLightTheme() : setDarkTheme();
|
|
1161
1129
|
setAppTheme(theme);
|
|
1162
1130
|
};
|
|
1163
1131
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
@@ -1182,34 +1150,34 @@ var ThemeSwitcher = function ThemeSwitcher() {
|
|
|
1182
1150
|
asChild: true,
|
|
1183
1151
|
onSelect: function onSelect(e) {
|
|
1184
1152
|
e.preventDefault();
|
|
1185
|
-
switchTheme(THEMES.LIGHT);
|
|
1153
|
+
switchTheme(useWhatsNewChangesCount.THEMES.LIGHT);
|
|
1186
1154
|
},
|
|
1187
1155
|
children: /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
1188
1156
|
"aria-checked": !isDarkThemeSelected,
|
|
1189
1157
|
"data-testid": "theme-switcher-light-button",
|
|
1190
1158
|
role: "menuitemradio",
|
|
1191
1159
|
type: "button",
|
|
1192
|
-
className: classnames(THEME_BUTTON_BASE, isDarkThemeSelected ? "text-muted-foreground hover:text-foreground" : "text-foreground"),
|
|
1160
|
+
className: classnames(useWhatsNewChangesCount.THEME_BUTTON_BASE, isDarkThemeSelected ? "text-muted-foreground hover:text-foreground" : "text-foreground"),
|
|
1193
1161
|
children: [/*#__PURE__*/jsxRuntime.jsx(Sun, {
|
|
1194
1162
|
size: 13,
|
|
1195
|
-
className: classnames(THEME_ICON_BASE, isDarkThemeSelected ? "scale-90 -rotate-45" : "rotate-0")
|
|
1163
|
+
className: classnames(useWhatsNewChangesCount.THEME_ICON_BASE, isDarkThemeSelected ? "scale-90 -rotate-45" : "rotate-0")
|
|
1196
1164
|
}), t("neetoMolecules.sidebar.themeSwitcher.light")]
|
|
1197
1165
|
})
|
|
1198
1166
|
}), /*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuItem, {
|
|
1199
1167
|
asChild: true,
|
|
1200
1168
|
onSelect: function onSelect(e) {
|
|
1201
1169
|
e.preventDefault();
|
|
1202
|
-
switchTheme(THEMES.DARK);
|
|
1170
|
+
switchTheme(useWhatsNewChangesCount.THEMES.DARK);
|
|
1203
1171
|
},
|
|
1204
1172
|
children: /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
1205
1173
|
"aria-checked": isDarkThemeSelected,
|
|
1206
1174
|
"data-testid": "theme-switcher-dark-button",
|
|
1207
1175
|
role: "menuitemradio",
|
|
1208
1176
|
type: "button",
|
|
1209
|
-
className: classnames(THEME_BUTTON_BASE, isDarkThemeSelected ? "text-foreground" : "text-muted-foreground hover:text-foreground"),
|
|
1177
|
+
className: classnames(useWhatsNewChangesCount.THEME_BUTTON_BASE, isDarkThemeSelected ? "text-foreground" : "text-muted-foreground hover:text-foreground"),
|
|
1210
1178
|
children: [/*#__PURE__*/jsxRuntime.jsx(Moon, {
|
|
1211
1179
|
size: 13,
|
|
1212
|
-
className: classnames(THEME_ICON_BASE, isDarkThemeSelected ? "rotate-0" : "scale-90 rotate-45")
|
|
1180
|
+
className: classnames(useWhatsNewChangesCount.THEME_ICON_BASE, isDarkThemeSelected ? "rotate-0" : "scale-90 rotate-45")
|
|
1213
1181
|
}), t("neetoMolecules.sidebar.themeSwitcher.dark")]
|
|
1214
1182
|
})
|
|
1215
1183
|
})]
|
|
@@ -1246,13 +1214,13 @@ var WorkspaceItems = reactUtils.withT(function (_ref) {
|
|
|
1246
1214
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
1247
1215
|
children: [/*#__PURE__*/jsxRuntime.jsx(MenuItem, {
|
|
1248
1216
|
"data-testid": "profile-organization-settings-button",
|
|
1249
|
-
href: MY_ORGANIZATION_URL,
|
|
1217
|
+
href: useWhatsNewChangesCount.MY_ORGANIZATION_URL,
|
|
1250
1218
|
rel: "noreferrer",
|
|
1251
1219
|
target: "_blank",
|
|
1252
1220
|
children: t("neetoMolecules.sidebar.workspaceMenu.settings")
|
|
1253
1221
|
}), /*#__PURE__*/jsxRuntime.jsx(MenuItem, {
|
|
1254
1222
|
"data-testid": "profile-organization-billing-button",
|
|
1255
|
-
href: BILLING_URL,
|
|
1223
|
+
href: useWhatsNewChangesCount.BILLING_URL,
|
|
1256
1224
|
children: t("neetoMolecules.sidebar.workspaceMenu.billing")
|
|
1257
1225
|
}), ((_globalProps$organiza = initializers.globalProps.organization) === null || _globalProps$organiza === void 0 ? void 0 : _globalProps$organiza.subdomain) && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1258
1226
|
className: "border-border my-1 border-t"
|
|
@@ -1299,7 +1267,7 @@ var MobileWorkspaceMenu = function MobileWorkspaceMenu() {
|
|
|
1299
1267
|
children: [/*#__PURE__*/jsxRuntime.jsx(primitives.CollapsibleTrigger, {
|
|
1300
1268
|
asChild: true,
|
|
1301
1269
|
children: /*#__PURE__*/jsxRuntime.jsxs(primitives.DropdownMenuItem, {
|
|
1302
|
-
className: classnames("group items-center", MENU_ITEM_CLASSES),
|
|
1270
|
+
className: classnames("group items-center", useWhatsNewChangesCount.MENU_ITEM_CLASSES),
|
|
1303
1271
|
"data-testid": "workspace-display",
|
|
1304
1272
|
onSelect: function onSelect(e) {
|
|
1305
1273
|
return e.preventDefault();
|
|
@@ -1323,7 +1291,7 @@ var WorkspaceMenu = function WorkspaceMenu() {
|
|
|
1323
1291
|
if (isMobile) return /*#__PURE__*/jsxRuntime.jsx(MobileWorkspaceMenu, {});
|
|
1324
1292
|
return /*#__PURE__*/jsxRuntime.jsxs(primitives.DropdownMenuSub, {
|
|
1325
1293
|
children: [/*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuSubTrigger, {
|
|
1326
|
-
className: classnames("group items-center", MENU_ITEM_CLASSES),
|
|
1294
|
+
className: classnames("group items-center", useWhatsNewChangesCount.MENU_ITEM_CLASSES),
|
|
1327
1295
|
"data-testid": "workspace-display",
|
|
1328
1296
|
children: /*#__PURE__*/jsxRuntime.jsx(TriggerContent, {})
|
|
1329
1297
|
}), /*#__PURE__*/jsxRuntime.jsx(primitives.DropdownMenuSubContent, {
|
|
@@ -1371,7 +1339,7 @@ var ProfileMenu = function ProfileMenu(_ref) {
|
|
|
1371
1339
|
};
|
|
1372
1340
|
}
|
|
1373
1341
|
return {
|
|
1374
|
-
href: NEETO_AUTH_BILLING_INFO_URL
|
|
1342
|
+
href: useWhatsNewChangesCount.NEETO_AUTH_BILLING_INFO_URL
|
|
1375
1343
|
};
|
|
1376
1344
|
};
|
|
1377
1345
|
var subscriptionPlanLink = _objectSpread$2({
|
|
@@ -1462,10 +1430,7 @@ var ProfileButton = function ProfileButton(_ref) {
|
|
|
1462
1430
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
1463
1431
|
isMenuOpen = _useState6[0],
|
|
1464
1432
|
setIsMenuOpen = _useState6[1];
|
|
1465
|
-
var
|
|
1466
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
1467
|
-
changesCount = _useState8[0],
|
|
1468
|
-
setChangesCount = _useState8[1];
|
|
1433
|
+
var changesCount = useWhatsNewChangesCount.useWhatsNewChangesCount();
|
|
1469
1434
|
var _KeyboardShortcuts$us = v2_KeyboardShortcuts.usePaneState(),
|
|
1470
1435
|
_KeyboardShortcuts$us2 = _slicedToArray(_KeyboardShortcuts$us, 2),
|
|
1471
1436
|
setIsOpen = _KeyboardShortcuts$us2[1];
|
|
@@ -1475,21 +1440,9 @@ var ProfileButton = function ProfileButton(_ref) {
|
|
|
1475
1440
|
mode: "global"
|
|
1476
1441
|
});
|
|
1477
1442
|
var profileInfo = getProfileInfo(profileInfoOverrides, isConsumer);
|
|
1478
|
-
React.useEffect(function () {
|
|
1479
|
-
var Nv = {
|
|
1480
|
-
onReceiveData: function onReceiveData(data) {
|
|
1481
|
-
if (!data.unreadCount) return;
|
|
1482
|
-
setChangesCount(data.unreadCount);
|
|
1483
|
-
},
|
|
1484
|
-
onShow: function onShow() {
|
|
1485
|
-
setChangesCount(null);
|
|
1486
|
-
}
|
|
1487
|
-
};
|
|
1488
|
-
window.Nv = window.Nv ? Object.assign(window.Nv, Nv) : Nv;
|
|
1489
|
-
}, []);
|
|
1490
1443
|
var newBottomLinks = [].concat(_toConsumableArray(getDefaultBottomLinks(profileInfo.isAuthenticated, isConsumer)), _toConsumableArray(bottomLinks));
|
|
1491
|
-
var defaultLinks = Object.keys(DEFAULT_MENU_LINK_PROPS).map(function (key) {
|
|
1492
|
-
return _objectSpread$1(_objectSpread$1(_objectSpread$1({}, DEFAULT_MENU_LINK_PROPS[key]), key === "keyboardShortcutProps" && {
|
|
1444
|
+
var defaultLinks = Object.keys(useWhatsNewChangesCount.DEFAULT_MENU_LINK_PROPS).map(function (key) {
|
|
1445
|
+
return _objectSpread$1(_objectSpread$1(_objectSpread$1({}, useWhatsNewChangesCount.DEFAULT_MENU_LINK_PROPS[key]), key === "keyboardShortcutProps" && {
|
|
1493
1446
|
onClick: function onClick() {
|
|
1494
1447
|
return setIsOpen(function (prev) {
|
|
1495
1448
|
return !prev;
|