@planningcenter/topbar 12.2.3 → 12.2.4-qa-881.0
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/topbar.css +33 -0
- package/dist/topbar.css.map +1 -1
- package/dist/topbar.js +178 -96
- package/dist/topbar.js.map +1 -1
- package/dist/topbar.modern.js +179 -97
- package/dist/topbar.modern.js.map +1 -1
- package/dist/topbar.module.js +179 -97
- package/dist/topbar.module.js.map +1 -1
- package/dist/topbar.umd.js +178 -96
- package/dist/topbar.umd.js.map +1 -1
- package/package.json +3 -2
package/dist/topbar.module.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Link } from '@planningcenter/tapestry';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { useState, useEffect, useMemo, useLayoutEffect, useContext, createContext, useCallback, useRef } from 'react';
|
|
4
|
-
import pcoUrl$1 from '@planningcenter/url';
|
|
4
|
+
import pcoUrl$1, { pcoApiUrl } from '@planningcenter/url';
|
|
5
5
|
import * as general from '@planningcenter/icons/paths/general';
|
|
6
6
|
import Jolt from '@planningcenter/jolt-client';
|
|
7
7
|
import { useSyncExternalStore } from 'use-sync-external-store/shim';
|
|
@@ -17,7 +17,7 @@ import { useSearchBox, useHits, InstantSearch, Configure } from 'react-instantse
|
|
|
17
17
|
import { TransitionGroup, Transition } from 'react-transition-group';
|
|
18
18
|
import datetimeFmt from '@planningcenter/datetime-fmt';
|
|
19
19
|
|
|
20
|
-
var styles$
|
|
20
|
+
var styles$e = {"accessibility-toolbar":"accessibility-toolbar-jgjUG"};
|
|
21
21
|
|
|
22
22
|
const AccessibilityToolbar = ({
|
|
23
23
|
children
|
|
@@ -29,7 +29,7 @@ const AccessibilityToolbar = ({
|
|
|
29
29
|
(_a = document.getElementById("main-content")) === null || _a === void 0 ? void 0 : _a.focus();
|
|
30
30
|
};
|
|
31
31
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
32
|
-
className: styles$
|
|
32
|
+
className: styles$e["accessibility-toolbar"]
|
|
33
33
|
}, /*#__PURE__*/React__default.createElement(Link, {
|
|
34
34
|
href: "#main-content",
|
|
35
35
|
kind: "primary",
|
|
@@ -346,11 +346,11 @@ const X = ({
|
|
|
346
346
|
fill: fill
|
|
347
347
|
})));
|
|
348
348
|
|
|
349
|
-
var styles$
|
|
349
|
+
var styles$d = {"announcement":"announcement-pI5tM","announcement--platform":"announcement--platform-EcUn2","announcement--promo":"announcement--promo-FarUk","announcement-icon":"announcement-icon-Ov39-","announcement-content":"announcement-content-q2ad6","dismiss":"dismiss-wUAoU","dismiss--promo":"dismiss--promo-7zvO4"};
|
|
350
350
|
|
|
351
351
|
function AnnouncementIcon() {
|
|
352
352
|
return /*#__PURE__*/React__default.createElement("svg", {
|
|
353
|
-
className: styles$
|
|
353
|
+
className: styles$d["announcement-icon"],
|
|
354
354
|
width: "16",
|
|
355
355
|
height: "16",
|
|
356
356
|
viewBox: "0 0 16 16",
|
|
@@ -475,7 +475,7 @@ let StyledAnnouncement$1 = class StyledAnnouncement extends React__default.Compo
|
|
|
475
475
|
} = this.props;
|
|
476
476
|
const isPromo = variant === "promo";
|
|
477
477
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
478
|
-
className: classnames(styles$
|
|
478
|
+
className: classnames(styles$d["announcement"], styles$d[`announcement--${variant !== null && variant !== void 0 ? variant : "platform"}`]),
|
|
479
479
|
"data-announcement-variant": variant !== null && variant !== void 0 ? variant : "platform",
|
|
480
480
|
style: isPromo ? {
|
|
481
481
|
backgroundImage: promoBackgroundUrl,
|
|
@@ -484,7 +484,7 @@ let StyledAnnouncement$1 = class StyledAnnouncement extends React__default.Compo
|
|
|
484
484
|
backgroundSize: "cover"
|
|
485
485
|
} : undefined
|
|
486
486
|
}, !isPromo && /*#__PURE__*/React__default.createElement(AnnouncementIcon, null), /*#__PURE__*/React__default.createElement("div", {
|
|
487
|
-
className: styles$
|
|
487
|
+
className: styles$d["announcement-content"],
|
|
488
488
|
style: style,
|
|
489
489
|
...platformProps
|
|
490
490
|
}));
|
|
@@ -533,7 +533,7 @@ function StyledDismissButton$1({
|
|
|
533
533
|
const isPromo = variant === "promo";
|
|
534
534
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
535
535
|
type: "button",
|
|
536
|
-
className: classnames(styles$
|
|
536
|
+
className: classnames(styles$d.dismiss, isPromo && styles$d["dismiss--promo"]),
|
|
537
537
|
...props
|
|
538
538
|
}, /*#__PURE__*/React__default.createElement(X, {
|
|
539
539
|
fill: isPromo ? "currentColor" : "white",
|
|
@@ -613,9 +613,9 @@ class StyledAnnouncement extends React__default.Component {
|
|
|
613
613
|
...platformProps
|
|
614
614
|
} = this.props;
|
|
615
615
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
616
|
-
className: styles$
|
|
616
|
+
className: styles$d["announcement"]
|
|
617
617
|
}, /*#__PURE__*/React__default.createElement(AnnouncementIcon, null), /*#__PURE__*/React__default.createElement("div", {
|
|
618
|
-
className: styles$
|
|
618
|
+
className: styles$d["announcement-content"],
|
|
619
619
|
style: style,
|
|
620
620
|
...platformProps
|
|
621
621
|
}));
|
|
@@ -626,7 +626,7 @@ function StyledDismissButton({
|
|
|
626
626
|
}) {
|
|
627
627
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
628
628
|
type: "button",
|
|
629
|
-
className: styles$
|
|
629
|
+
className: styles$d.dismiss,
|
|
630
630
|
...props
|
|
631
631
|
}, /*#__PURE__*/React__default.createElement(X, {
|
|
632
632
|
fill: "white",
|
|
@@ -1873,7 +1873,7 @@ function MonoAppName({
|
|
|
1873
1873
|
})) : (/*#__PURE__*/React__default.createElement("div", null, "appName not supported"));
|
|
1874
1874
|
}
|
|
1875
1875
|
|
|
1876
|
-
var styles$
|
|
1876
|
+
var styles$c = {"unbutton":"unbutton-lEbTR"};
|
|
1877
1877
|
|
|
1878
1878
|
function Unbutton({
|
|
1879
1879
|
className,
|
|
@@ -1882,7 +1882,7 @@ function Unbutton({
|
|
|
1882
1882
|
...nativeProps
|
|
1883
1883
|
}) {
|
|
1884
1884
|
return /*#__PURE__*/React__default.createElement("button", {
|
|
1885
|
-
className: classnames(styles$
|
|
1885
|
+
className: classnames(styles$c.unbutton, className),
|
|
1886
1886
|
style: {
|
|
1887
1887
|
...style
|
|
1888
1888
|
},
|
|
@@ -1891,7 +1891,7 @@ function Unbutton({
|
|
|
1891
1891
|
});
|
|
1892
1892
|
}
|
|
1893
1893
|
|
|
1894
|
-
var styles$
|
|
1894
|
+
var styles$b = {"button":"button-XMbeQ","button-accounts":"button-accounts-nNh-z","chevron":"chevron-RRg9k","is-expanded":"is-expanded-zD0A0"};
|
|
1895
1895
|
|
|
1896
1896
|
const AppsButton = ({
|
|
1897
1897
|
appName,
|
|
@@ -1906,8 +1906,8 @@ const AppsButton = ({
|
|
|
1906
1906
|
"aria-haspopup": "true",
|
|
1907
1907
|
"aria-label": `App switcher: ${appName}`,
|
|
1908
1908
|
onClick: onClick,
|
|
1909
|
-
className: classnames(styles$
|
|
1910
|
-
[styles$
|
|
1909
|
+
className: classnames(styles$b.button, {
|
|
1910
|
+
[styles$b["is-expanded"]]: expanded
|
|
1911
1911
|
}),
|
|
1912
1912
|
type: "button",
|
|
1913
1913
|
style: style,
|
|
@@ -1916,7 +1916,7 @@ const AppsButton = ({
|
|
|
1916
1916
|
appName: "Accounts",
|
|
1917
1917
|
colors: colors
|
|
1918
1918
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
1919
|
-
className: styles$
|
|
1919
|
+
className: styles$b["button-accounts"]
|
|
1920
1920
|
}, "Account settings"))) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(ColorAppIcon, {
|
|
1921
1921
|
appName: appName.replace(/[\s-]/, "")
|
|
1922
1922
|
}), /*#__PURE__*/React__default.createElement(MonoAppName, {
|
|
@@ -1924,7 +1924,7 @@ const AppsButton = ({
|
|
|
1924
1924
|
key: "mono-app-name",
|
|
1925
1925
|
size: 24
|
|
1926
1926
|
}))), /*#__PURE__*/React__default.createElement(DisclosureChevronIcon, {
|
|
1927
|
-
className: styles$
|
|
1927
|
+
className: styles$b.chevron,
|
|
1928
1928
|
key: "disclosure-chevron-icon"
|
|
1929
1929
|
}));
|
|
1930
1930
|
};
|
|
@@ -2012,7 +2012,7 @@ const IEFlex1 = {
|
|
|
2012
2012
|
flex: "1 1 auto"
|
|
2013
2013
|
};
|
|
2014
2014
|
|
|
2015
|
-
var styles$
|
|
2015
|
+
var styles$a = {"popup":"popup-sJ-Nv"};
|
|
2016
2016
|
|
|
2017
2017
|
const HoverableListItem = ({
|
|
2018
2018
|
active = false,
|
|
@@ -2069,7 +2069,7 @@ class Outsider extends React__default.Component {
|
|
|
2069
2069
|
}
|
|
2070
2070
|
}
|
|
2071
2071
|
|
|
2072
|
-
var styles$
|
|
2072
|
+
var styles$9 = {"popup-root":"popup-root-SeL5u","popup":"popup-nQXYW","is-visible":"is-visible-3DAUP"};
|
|
2073
2073
|
|
|
2074
2074
|
const Popup = ({
|
|
2075
2075
|
className,
|
|
@@ -2077,8 +2077,8 @@ const Popup = ({
|
|
|
2077
2077
|
isVisible,
|
|
2078
2078
|
...nativeProps
|
|
2079
2079
|
}) => (/*#__PURE__*/React__default.createElement(C, {
|
|
2080
|
-
className: classnames(styles$
|
|
2081
|
-
[styles$
|
|
2080
|
+
className: classnames(styles$9.popup, {
|
|
2081
|
+
[styles$9["is-visible"]]: isVisible
|
|
2082
2082
|
}, className),
|
|
2083
2083
|
...nativeProps
|
|
2084
2084
|
}));
|
|
@@ -2086,7 +2086,7 @@ const Popup = ({
|
|
|
2086
2086
|
const PopupRoot = ({
|
|
2087
2087
|
...nativeProps
|
|
2088
2088
|
}) => (/*#__PURE__*/React__default.createElement("div", {
|
|
2089
|
-
className: styles$
|
|
2089
|
+
className: styles$9["popup-root"],
|
|
2090
2090
|
...nativeProps
|
|
2091
2091
|
}));
|
|
2092
2092
|
|
|
@@ -2126,7 +2126,7 @@ const AppsMenu = ({
|
|
|
2126
2126
|
cleanup: !visible,
|
|
2127
2127
|
component: Outsider,
|
|
2128
2128
|
onOutsideClick: toggle,
|
|
2129
|
-
className: styles$
|
|
2129
|
+
className: styles$a.popup,
|
|
2130
2130
|
isVisible: visible
|
|
2131
2131
|
}, /*#__PURE__*/React__default.createElement("menu", {
|
|
2132
2132
|
ref: menuRef,
|
|
@@ -3022,9 +3022,9 @@ function StyledRoot({
|
|
|
3022
3022
|
`), children);
|
|
3023
3023
|
}
|
|
3024
3024
|
|
|
3025
|
-
var styles$
|
|
3025
|
+
var styles$8 = {"route":"route--8BWe","is-active":"is-active-FsU9Y","apps-routes-separator":"apps-routes-separator-Nlm-N"};
|
|
3026
3026
|
|
|
3027
|
-
var styles$
|
|
3027
|
+
var styles$7 = {"popup":"popup-mDNKn","trigger-wrap":"trigger-wrap-Jd-KR","trigger":"trigger-WgRT5","is-visible":"is-visible-GZC0-","trigger-orgname":"trigger-orgname-TDHCc"};
|
|
3028
3028
|
|
|
3029
3029
|
const UserMenu = ({
|
|
3030
3030
|
appName,
|
|
@@ -3043,7 +3043,7 @@ const UserMenu = ({
|
|
|
3043
3043
|
component: Outsider,
|
|
3044
3044
|
onOutsideClick: () => setUserMenuVisible(false),
|
|
3045
3045
|
cleanup: !userMenuVisible,
|
|
3046
|
-
className: styles$
|
|
3046
|
+
className: styles$7.popup,
|
|
3047
3047
|
isVisible: userMenuVisible
|
|
3048
3048
|
}, /*#__PURE__*/React__default.createElement("div", null, hasConnectedPeople ? (/*#__PURE__*/React__default.createElement("div", {
|
|
3049
3049
|
style: {
|
|
@@ -3187,11 +3187,11 @@ const UserMenuTrigger = ({
|
|
|
3187
3187
|
userMenuVisible
|
|
3188
3188
|
}) => {
|
|
3189
3189
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
3190
|
-
className: styles$
|
|
3190
|
+
className: styles$7["trigger-wrap"],
|
|
3191
3191
|
"data-pendo": "topbar-org-switcher"
|
|
3192
3192
|
}, /*#__PURE__*/React__default.createElement(Hoverable, {
|
|
3193
|
-
className: classnames(styles$
|
|
3194
|
-
[styles$
|
|
3193
|
+
className: classnames(styles$7["trigger"], {
|
|
3194
|
+
[styles$7["is-visible"]]: userMenuVisible
|
|
3195
3195
|
}),
|
|
3196
3196
|
component: "button",
|
|
3197
3197
|
type: "button",
|
|
@@ -3203,7 +3203,7 @@ const UserMenuTrigger = ({
|
|
|
3203
3203
|
requestConnectedPeopleFetch();
|
|
3204
3204
|
}
|
|
3205
3205
|
}, showOrgName && (/*#__PURE__*/React__default.createElement("span", {
|
|
3206
|
-
className: styles$
|
|
3206
|
+
className: styles$7["trigger-orgname"]
|
|
3207
3207
|
}, orgName)), /*#__PURE__*/React__default.createElement(DisclosureChevronIcon, null)));
|
|
3208
3208
|
};
|
|
3209
3209
|
|
|
@@ -3260,7 +3260,7 @@ const NotSmallTopbar = ({
|
|
|
3260
3260
|
},
|
|
3261
3261
|
appName: props.appName
|
|
3262
3262
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
3263
|
-
className: styles$
|
|
3263
|
+
className: styles$8["apps-routes-separator"]
|
|
3264
3264
|
}), routesVisible && props.routes, /*#__PURE__*/React__default.createElement("div", {
|
|
3265
3265
|
style: {
|
|
3266
3266
|
margin: "auto"
|
|
@@ -3298,12 +3298,12 @@ const NotSmallRoute = ({
|
|
|
3298
3298
|
...nativeProps
|
|
3299
3299
|
}) => {
|
|
3300
3300
|
return /*#__PURE__*/React__default.createElement("a", {
|
|
3301
|
-
className: classnames(styles$
|
|
3301
|
+
className: classnames(styles$8["route"], className, active && styles$8["is-active"]),
|
|
3302
3302
|
...nativeProps
|
|
3303
3303
|
});
|
|
3304
3304
|
};
|
|
3305
3305
|
|
|
3306
|
-
var styles$
|
|
3306
|
+
var styles$6 = {"avatar":"avatar-tW-wn"};
|
|
3307
3307
|
|
|
3308
3308
|
function Avatar({
|
|
3309
3309
|
env,
|
|
@@ -3313,7 +3313,7 @@ function Avatar({
|
|
|
3313
3313
|
}) {
|
|
3314
3314
|
const url = incomingUrl || `${pcoUrl$1(env)("people")}/static/no_photo_thumbnail_gray.svg`;
|
|
3315
3315
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
3316
|
-
className: styles$
|
|
3316
|
+
className: styles$6.avatar,
|
|
3317
3317
|
style: {
|
|
3318
3318
|
backgroundImage: `url(${url})`,
|
|
3319
3319
|
...style
|
|
@@ -3335,14 +3335,14 @@ ClientStorage.defaultProps = {
|
|
|
3335
3335
|
method: "localStorage"
|
|
3336
3336
|
};
|
|
3337
3337
|
|
|
3338
|
-
var styles$
|
|
3338
|
+
var styles$5 = {"appmenu-button":"appmenu-button-b0UvT","appmenu-layer":"appmenu-layer-0IQpN","appmenu-container":"appmenu-container-gackd","appmenu-scroll":"appmenu-scroll-mPSx0","appmenu-list":"appmenu-list-h7clX","appmenu-list-a":"appmenu-list-a-rGIQN","appmenu-list-a--top":"appmenu-list-a--top-RT-2F","appmenu-list-a--bottom":"appmenu-list-a--bottom-YDeBC","appmenu-close-button":"appmenu-close-button-vv9bV","current-route":"current-route-wpJgz","is-active":"is-active-wy8Bg","routes":"routes-Nmt1S","route":"route-kkknQ","profile-button":"profile-button-a2WO2"};
|
|
3339
3339
|
|
|
3340
3340
|
function AccountSettingsLink({
|
|
3341
3341
|
env
|
|
3342
3342
|
}) {
|
|
3343
3343
|
const accountsName = "accounts";
|
|
3344
3344
|
return /*#__PURE__*/React__default.createElement("a", {
|
|
3345
|
-
className: classnames(styles$
|
|
3345
|
+
className: classnames(styles$5["appmenu-list-a"], styles$5["appmenu-list-a--bottom"]),
|
|
3346
3346
|
"data-pendo": `app-switcher--change-app--${accountsName}`,
|
|
3347
3347
|
"data-turbolinks": false,
|
|
3348
3348
|
href: pcoUrl$1(env)(accountsName) + getAppsSwitchProductPath(accountsName)
|
|
@@ -3365,7 +3365,7 @@ const CloseMenuButton = ({
|
|
|
3365
3365
|
}) => (/*#__PURE__*/React__default.createElement("button", {
|
|
3366
3366
|
"aria-label": "Close menu",
|
|
3367
3367
|
type: "button",
|
|
3368
|
-
className: styles$
|
|
3368
|
+
className: styles$5["appmenu-close-button"],
|
|
3369
3369
|
style: style
|
|
3370
3370
|
}, /*#__PURE__*/React__default.createElement(X, {
|
|
3371
3371
|
fill: color,
|
|
@@ -3446,7 +3446,7 @@ const SmallTopbar = ({
|
|
|
3446
3446
|
"aria-haspopup": "true",
|
|
3447
3447
|
"aria-label": `App switcher: ${props.appName}`,
|
|
3448
3448
|
type: "button",
|
|
3449
|
-
className: styles$
|
|
3449
|
+
className: styles$5["appmenu-button"],
|
|
3450
3450
|
onClick: () => {
|
|
3451
3451
|
props.requestAppsFetch();
|
|
3452
3452
|
props.requestConnectedPeopleFetch();
|
|
@@ -3456,12 +3456,12 @@ const SmallTopbar = ({
|
|
|
3456
3456
|
}, /*#__PURE__*/React__default.createElement(ColorAppIcon, {
|
|
3457
3457
|
appName: props.appName.replace(/[\s-]/, "")
|
|
3458
3458
|
})), routesMenuVisible && (/*#__PURE__*/React__default.createElement("div", {
|
|
3459
|
-
className: styles$
|
|
3459
|
+
className: styles$5["routes"]
|
|
3460
3460
|
}, props.routes)), /*#__PURE__*/React__default.createElement(ClientStorage, {
|
|
3461
3461
|
item: "Topbar:Small:Menus:Products:visibility",
|
|
3462
3462
|
render: () => (/*#__PURE__*/React__default.createElement("div", {
|
|
3463
3463
|
ref: appMenuRef,
|
|
3464
|
-
className: styles$
|
|
3464
|
+
className: styles$5["appmenu-layer"],
|
|
3465
3465
|
style: {
|
|
3466
3466
|
...(productSwitcherVisible && {
|
|
3467
3467
|
display: "block"
|
|
@@ -3480,44 +3480,44 @@ const SmallTopbar = ({
|
|
|
3480
3480
|
e.stopPropagation();
|
|
3481
3481
|
}
|
|
3482
3482
|
},
|
|
3483
|
-
className: styles$
|
|
3483
|
+
className: styles$5["appmenu-container"]
|
|
3484
3484
|
}, /*#__PURE__*/React__default.createElement("a", {
|
|
3485
3485
|
"aria-current": props.appName === (homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name) ? "page" : undefined,
|
|
3486
3486
|
"aria-label": homeProduct ? homeProduct.name : props.appName,
|
|
3487
3487
|
"data-pendo": `app-switcher--change-app--${homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name}`,
|
|
3488
3488
|
"data-turbolinks": false,
|
|
3489
|
-
className: classnames(styles$
|
|
3489
|
+
className: classnames(styles$5["appmenu-list-a"], styles$5["appmenu-list-a--top"]),
|
|
3490
3490
|
href: homeProduct ? pcoUrl$1(props.env)("accounts") + getAppsSwitchProductPath(homeProduct === null || homeProduct === void 0 ? void 0 : homeProduct.name) : undefined
|
|
3491
3491
|
}, /*#__PURE__*/React__default.createElement(UserMenuAppLockup, {
|
|
3492
3492
|
appName: homeProduct ? homeProduct.name : props.appName
|
|
3493
3493
|
})), /*#__PURE__*/React__default.createElement("div", {
|
|
3494
|
-
className: styles$
|
|
3494
|
+
className: styles$5["appmenu-scroll"]
|
|
3495
3495
|
}, /*#__PURE__*/React__default.createElement("ul", {
|
|
3496
3496
|
"data-pendo": "app-switcher",
|
|
3497
|
-
className: styles$
|
|
3497
|
+
className: styles$5["appmenu-list"]
|
|
3498
3498
|
}, appsMenuFormatter(restProducts).map(({
|
|
3499
3499
|
name
|
|
3500
3500
|
}) => (/*#__PURE__*/React__default.createElement("li", {
|
|
3501
3501
|
key: name,
|
|
3502
|
-
className: styles$
|
|
3502
|
+
className: styles$5["appmenu-list-li"]
|
|
3503
3503
|
}, /*#__PURE__*/React__default.createElement("a", {
|
|
3504
3504
|
"aria-current": name === props.appName ? "page" : undefined,
|
|
3505
3505
|
"aria-label": name,
|
|
3506
3506
|
"data-pendo": `app-switcher--change-app--${name}`,
|
|
3507
3507
|
"data-turbolinks": false,
|
|
3508
|
-
className: styles$
|
|
3508
|
+
className: styles$5["appmenu-list-a"],
|
|
3509
3509
|
href: pcoUrl$1(props.env)("accounts") + getAppsSwitchProductPath(name)
|
|
3510
3510
|
}, /*#__PURE__*/React__default.createElement(UserMenuAppLockup, {
|
|
3511
3511
|
appName: name
|
|
3512
3512
|
}))))), accountsProduct && (/*#__PURE__*/React__default.createElement("li", {
|
|
3513
|
-
className: styles$
|
|
3513
|
+
className: styles$5["appmenu-list-li"]
|
|
3514
3514
|
}, /*#__PURE__*/React__default.createElement(AccountSettingsLink, {
|
|
3515
3515
|
env: props.env
|
|
3516
3516
|
}))))))))
|
|
3517
3517
|
}), /*#__PURE__*/React__default.createElement("button", {
|
|
3518
3518
|
type: "button",
|
|
3519
|
-
className: classnames(styles$
|
|
3520
|
-
[styles$
|
|
3519
|
+
className: classnames(styles$5["current-route"], {
|
|
3520
|
+
[styles$5["is-active"]]: routesMenuVisible
|
|
3521
3521
|
}),
|
|
3522
3522
|
onClick: props.routes.length > 0 ? () => {
|
|
3523
3523
|
setProductSwitcherVisible(false);
|
|
@@ -3525,7 +3525,7 @@ const SmallTopbar = ({
|
|
|
3525
3525
|
} : null
|
|
3526
3526
|
}, /*#__PURE__*/React__default.createElement(CurrentRouteComponent, null, capitalize(currentRouteText)), props.routes.length > 0 && /*#__PURE__*/React__default.createElement(DisclosureChevronIcon, null)), /*#__PURE__*/React__default.createElement("button", {
|
|
3527
3527
|
type: "button",
|
|
3528
|
-
className: styles$
|
|
3528
|
+
className: styles$5["profile-button"],
|
|
3529
3529
|
onClick: () => {
|
|
3530
3530
|
var _a, _b;
|
|
3531
3531
|
props.requestConnectedPeopleFetch();
|
|
@@ -3541,7 +3541,7 @@ const SmallRoute = ({
|
|
|
3541
3541
|
className,
|
|
3542
3542
|
...props
|
|
3543
3543
|
}) => (/*#__PURE__*/React__default.createElement("a", {
|
|
3544
|
-
className: classnames(styles$
|
|
3544
|
+
className: classnames(styles$5["route"], className, active && styles$5["is-active"]),
|
|
3545
3545
|
...props
|
|
3546
3546
|
}));
|
|
3547
3547
|
|
|
@@ -3680,6 +3680,124 @@ const topbarTheme = {
|
|
|
3680
3680
|
id: "topbar"
|
|
3681
3681
|
};
|
|
3682
3682
|
|
|
3683
|
+
function parseValue(element) {
|
|
3684
|
+
const datatype = element.getAttribute("datatype");
|
|
3685
|
+
switch (datatype) {
|
|
3686
|
+
case "boolean":
|
|
3687
|
+
return element.content === "true" || element.content === "1";
|
|
3688
|
+
default:
|
|
3689
|
+
return element.content;
|
|
3690
|
+
}
|
|
3691
|
+
}
|
|
3692
|
+
function getAllPcoMeta() {
|
|
3693
|
+
const elements = document.head.querySelectorAll(`meta[property^="pco:"]`);
|
|
3694
|
+
const meta = {};
|
|
3695
|
+
elements.forEach(e => {
|
|
3696
|
+
const property = e.getAttribute("property");
|
|
3697
|
+
meta[property.substring("pco:".length)] = parseValue(e);
|
|
3698
|
+
});
|
|
3699
|
+
return meta;
|
|
3700
|
+
}
|
|
3701
|
+
const store = createStore(getAllPcoMeta());
|
|
3702
|
+
const observer = new MutationObserver(() => {
|
|
3703
|
+
const prevState = store.getState();
|
|
3704
|
+
const nextState = getAllPcoMeta();
|
|
3705
|
+
if (!shallowCompare(prevState, nextState)) store.setState(nextState);
|
|
3706
|
+
});
|
|
3707
|
+
let hasTriggeredObserve = false;
|
|
3708
|
+
function observe() {
|
|
3709
|
+
if (hasTriggeredObserve) return;
|
|
3710
|
+
hasTriggeredObserve = true;
|
|
3711
|
+
observer.observe(document.head, {
|
|
3712
|
+
attributes: true,
|
|
3713
|
+
childList: true,
|
|
3714
|
+
subtree: true
|
|
3715
|
+
});
|
|
3716
|
+
}
|
|
3717
|
+
function usePcoMeta() {
|
|
3718
|
+
observe();
|
|
3719
|
+
return useSyncExternalStore(store.subscribe, () => store.getState());
|
|
3720
|
+
}
|
|
3721
|
+
|
|
3722
|
+
var styles$4 = {"debug-pco-resource":"debug-pco-resource-sLteM","debug-pco-resource-label":"debug-pco-resource-label-59ELk","debug-pco-resource-value":"debug-pco-resource-value-8IHn8","debug-pco-resource-json":"debug-pco-resource-json-Rx-JI"};
|
|
3723
|
+
|
|
3724
|
+
function describeResource(resource) {
|
|
3725
|
+
if (resource === undefined) return "No pco:resource meta tag found on this page";
|
|
3726
|
+
if (resource.trim() === "") return "pco:resource meta tag is present but malformed (empty)";
|
|
3727
|
+
return resource;
|
|
3728
|
+
}
|
|
3729
|
+
// A `pco:resource` value looks like `<product>/v2/<resource_type>/<id>`. The
|
|
3730
|
+
// product segment doubles as the API subdomain/path, so a lookup only needs it.
|
|
3731
|
+
function pcrlLookupUrl(resource, env) {
|
|
3732
|
+
const [product] = resource.split("/");
|
|
3733
|
+
if (!product) return null;
|
|
3734
|
+
const apiRoot = pcoApiUrl(product, {
|
|
3735
|
+
env,
|
|
3736
|
+
squiggly: false
|
|
3737
|
+
});
|
|
3738
|
+
const params = new URLSearchParams({
|
|
3739
|
+
"where[pcrl]": resource
|
|
3740
|
+
});
|
|
3741
|
+
return `${apiRoot}/pcrl_lookup?${params.toString()}`;
|
|
3742
|
+
}
|
|
3743
|
+
function DebugPcoResource({
|
|
3744
|
+
env
|
|
3745
|
+
}) {
|
|
3746
|
+
const {
|
|
3747
|
+
resource
|
|
3748
|
+
} = usePcoMeta();
|
|
3749
|
+
const [lookup, setLookup] = useState({
|
|
3750
|
+
status: "idle"
|
|
3751
|
+
});
|
|
3752
|
+
useEffect(() => {
|
|
3753
|
+
const url = resource && resource.trim() !== "" ? pcrlLookupUrl(resource, env) : null;
|
|
3754
|
+
if (!url) {
|
|
3755
|
+
setLookup({
|
|
3756
|
+
status: "idle"
|
|
3757
|
+
});
|
|
3758
|
+
return undefined;
|
|
3759
|
+
}
|
|
3760
|
+
let cancelled = false;
|
|
3761
|
+
setLookup({
|
|
3762
|
+
status: "loading"
|
|
3763
|
+
});
|
|
3764
|
+
apiRequest(defaultFetch, url).then(({
|
|
3765
|
+
json,
|
|
3766
|
+
ok,
|
|
3767
|
+
response
|
|
3768
|
+
}) => {
|
|
3769
|
+
if (cancelled) return;
|
|
3770
|
+
if (ok) {
|
|
3771
|
+
setLookup({
|
|
3772
|
+
json,
|
|
3773
|
+
status: "loaded"
|
|
3774
|
+
});
|
|
3775
|
+
} else {
|
|
3776
|
+
setLookup({
|
|
3777
|
+
message: `pcrl_lookup request failed${response ? ` (${response.status})` : ""}`,
|
|
3778
|
+
status: "error"
|
|
3779
|
+
});
|
|
3780
|
+
}
|
|
3781
|
+
});
|
|
3782
|
+
return () => {
|
|
3783
|
+
cancelled = true;
|
|
3784
|
+
};
|
|
3785
|
+
}, [resource, env]);
|
|
3786
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
3787
|
+
className: styles$4["debug-pco-resource"]
|
|
3788
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
3789
|
+
className: styles$4["debug-pco-resource-label"]
|
|
3790
|
+
}, "Debug: pco:resource"), /*#__PURE__*/React__default.createElement("span", {
|
|
3791
|
+
className: styles$4["debug-pco-resource-value"]
|
|
3792
|
+
}, describeResource(resource)), lookup.status === "loading" && (/*#__PURE__*/React__default.createElement("span", {
|
|
3793
|
+
className: styles$4["debug-pco-resource-value"]
|
|
3794
|
+
}, "Looking up resource\u2026")), lookup.status === "error" && (/*#__PURE__*/React__default.createElement("span", {
|
|
3795
|
+
className: styles$4["debug-pco-resource-value"]
|
|
3796
|
+
}, lookup.message)), lookup.status === "loaded" && (/*#__PURE__*/React__default.createElement("pre", {
|
|
3797
|
+
className: styles$4["debug-pco-resource-json"]
|
|
3798
|
+
}, JSON.stringify(lookup.json, null, 2))));
|
|
3799
|
+
}
|
|
3800
|
+
|
|
3683
3801
|
var styles$3 = {"drawer-wrap":"drawer-wrap-J0rSL","is-visible":"is-visible-KTME8","drawer":"drawer-j7f4l"};
|
|
3684
3802
|
|
|
3685
3803
|
function Drawer({
|
|
@@ -4080,7 +4198,9 @@ function UserProfile({
|
|
|
4080
4198
|
}, "Log out"), /*#__PURE__*/React__default.createElement(Icon, {
|
|
4081
4199
|
name: "general.intoBox",
|
|
4082
4200
|
fill: "var(--t-icon-color-secondary)"
|
|
4083
|
-
})))),
|
|
4201
|
+
})))), env !== "production" && /*#__PURE__*/React__default.createElement(DebugPcoResource, {
|
|
4202
|
+
env: env
|
|
4203
|
+
}), hasConnectedPeople && (/*#__PURE__*/React__default.createElement(StackView$2, {
|
|
4084
4204
|
mediaQueries: {
|
|
4085
4205
|
sm: {
|
|
4086
4206
|
display: "none"
|
|
@@ -5300,45 +5420,6 @@ const Notifications = {
|
|
|
5300
5420
|
name: "Notifications"
|
|
5301
5421
|
};
|
|
5302
5422
|
|
|
5303
|
-
function parseValue(element) {
|
|
5304
|
-
const datatype = element.getAttribute("datatype");
|
|
5305
|
-
switch (datatype) {
|
|
5306
|
-
case "boolean":
|
|
5307
|
-
return element.content === "true" || element.content === "1";
|
|
5308
|
-
default:
|
|
5309
|
-
return element.content;
|
|
5310
|
-
}
|
|
5311
|
-
}
|
|
5312
|
-
function getAllPcoMeta() {
|
|
5313
|
-
const elements = document.head.querySelectorAll(`meta[property^="pco:"]`);
|
|
5314
|
-
const meta = {};
|
|
5315
|
-
elements.forEach(e => {
|
|
5316
|
-
const property = e.getAttribute("property");
|
|
5317
|
-
meta[property.substring("pco:".length)] = parseValue(e);
|
|
5318
|
-
});
|
|
5319
|
-
return meta;
|
|
5320
|
-
}
|
|
5321
|
-
const store = createStore(getAllPcoMeta());
|
|
5322
|
-
const observer = new MutationObserver(() => {
|
|
5323
|
-
const prevState = store.getState();
|
|
5324
|
-
const nextState = getAllPcoMeta();
|
|
5325
|
-
if (!shallowCompare(prevState, nextState)) store.setState(nextState);
|
|
5326
|
-
});
|
|
5327
|
-
let hasTriggeredObserve = false;
|
|
5328
|
-
function observe() {
|
|
5329
|
-
if (hasTriggeredObserve) return;
|
|
5330
|
-
hasTriggeredObserve = true;
|
|
5331
|
-
observer.observe(document.head, {
|
|
5332
|
-
attributes: true,
|
|
5333
|
-
childList: true,
|
|
5334
|
-
subtree: true
|
|
5335
|
-
});
|
|
5336
|
-
}
|
|
5337
|
-
function usePcoMeta() {
|
|
5338
|
-
observe();
|
|
5339
|
-
return useSyncExternalStore(store.subscribe, () => store.getState());
|
|
5340
|
-
}
|
|
5341
|
-
|
|
5342
5423
|
const {
|
|
5343
5424
|
LoadingIndicator,
|
|
5344
5425
|
StackView
|
|
@@ -5680,10 +5761,10 @@ const useChatConfig = ({
|
|
|
5680
5761
|
userId
|
|
5681
5762
|
}) => {
|
|
5682
5763
|
const [displayChatIcon, setDisplayChatIcon] = useState(false);
|
|
5683
|
-
const [
|
|
5764
|
+
const [hasUnread, setHasUnread] = useState(false);
|
|
5684
5765
|
const fetchChatPerson = async () => {
|
|
5685
5766
|
const url = `${window.location.origin}/~api/chat/v2/me`;
|
|
5686
|
-
const personFields = ["can_chat_pending_age_check", "unread_messages"].join(",");
|
|
5767
|
+
const personFields = ["can_chat_pending_age_check", "unread_messages", "unread_reactions"].join(",");
|
|
5687
5768
|
const query = `?fields[Person]=${personFields}`;
|
|
5688
5769
|
const {
|
|
5689
5770
|
json
|
|
@@ -5695,9 +5776,10 @@ const useChatConfig = ({
|
|
|
5695
5776
|
}) => {
|
|
5696
5777
|
const {
|
|
5697
5778
|
can_chat_pending_age_check,
|
|
5698
|
-
unread_messages
|
|
5779
|
+
unread_messages,
|
|
5780
|
+
unread_reactions
|
|
5699
5781
|
} = data.attributes;
|
|
5700
|
-
|
|
5782
|
+
setHasUnread(unread_messages || unread_reactions);
|
|
5701
5783
|
setDisplayChatIcon(can_chat_pending_age_check);
|
|
5702
5784
|
}).catch(noop);
|
|
5703
5785
|
const chatJoltChannel = useJoltChannelSubscription({
|
|
@@ -5729,7 +5811,7 @@ const useChatConfig = ({
|
|
|
5729
5811
|
}, [isEnabled]);
|
|
5730
5812
|
return {
|
|
5731
5813
|
displayChatIcon,
|
|
5732
|
-
unreadIndicator:
|
|
5814
|
+
unreadIndicator: hasUnread
|
|
5733
5815
|
};
|
|
5734
5816
|
};
|
|
5735
5817
|
|