@edifice.io/react 2.6.6 → 2.6.7-develop-b2school.20260928143952
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/components/Alert/Alert.js +47 -23
- package/dist/components/Form/FormText.js +11 -6
- package/dist/components/Input/Input.d.ts +11 -2
- package/dist/components/Input/Input.js +43 -21
- package/dist/components/Label/Label.js +4 -4
- package/dist/components/Layout/Layout.js +30 -15
- package/dist/components/LinkPill/LinkPill.d.ts +41 -0
- package/dist/components/LinkPill/LinkPill.js +28 -0
- package/dist/components/LinkPill/index.d.ts +2 -0
- package/dist/components/ModalBeta/ModalBeta.d.ts +47 -0
- package/dist/components/ModalBeta/ModalBeta.js +62 -0
- package/dist/components/ModalBeta/ModalBetaBody.d.ts +19 -0
- package/dist/components/ModalBeta/ModalBetaBody.js +15 -0
- package/dist/components/ModalBeta/ModalBetaContext.d.ts +7 -0
- package/dist/components/ModalBeta/ModalBetaContext.js +15 -0
- package/dist/components/ModalBeta/ModalBetaFooter.d.ts +13 -0
- package/dist/components/ModalBeta/ModalBetaFooter.js +7 -0
- package/dist/components/ModalBeta/ModalBetaHeader.d.ts +23 -0
- package/dist/components/ModalBeta/ModalBetaHeader.js +31 -0
- package/dist/components/ModalBeta/index.d.ts +2 -0
- package/dist/components/PageLayout/PageLayout.d.ts +4 -0
- package/dist/components/PageLayout/PageLayout.js +37 -14
- package/dist/components/PageLayout/components/PageLayoutContent.js +5 -1
- package/dist/components/PageLayout/components/PageLayoutHelpZone.d.ts +12 -0
- package/dist/components/PageLayout/components/PageLayoutHelpZone.js +6 -0
- package/dist/components/Table/components/Table.d.ts +2 -2
- package/dist/components/Table/components/TableTd.d.ts +1 -1
- package/dist/components/Table/components/TableTh.d.ts +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/homepage.js +44 -19
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/useBackground/index.d.ts +1 -0
- package/dist/hooks/useBackground/useBackground.d.ts +7 -0
- package/dist/hooks/useBackground/useBackground.js +16 -0
- package/dist/hooks/useClickOutside/useClickOutside.d.ts +1 -1
- package/dist/hooks/useClickOutside/useClickOutside.js +3 -2
- package/dist/hooks/useToast/useToast.d.ts +1 -0
- package/dist/hooks/useToast/useToast.js +12 -9
- package/dist/hooks/useUserPreferences/index.d.ts +1 -0
- package/dist/hooks/useUserPreferences/useUserPreferences.d.ts +9 -0
- package/dist/hooks/useUserPreferences/useUserPreferences.js +40 -0
- package/dist/hooks/useZendeskGuide/useZendeskGuide.d.ts +16 -2
- package/dist/hooks/useZendeskGuide/useZendeskGuide.js +58 -24
- package/dist/icons.js +404 -402
- package/dist/index.js +168 -160
- package/dist/modules/HelpZone/HelpZone.d.ts +13 -0
- package/dist/modules/HelpZone/HelpZone.js +52 -0
- package/dist/modules/HelpZone/HelpZoneContainer.d.ts +4 -0
- package/dist/modules/HelpZone/HelpZoneContainer.js +18 -0
- package/dist/modules/HelpZone/index.d.ts +3 -0
- package/dist/modules/homepage/components/Communities/Communities.js +35 -0
- package/dist/modules/homepage/components/Communities/CommunitiesContainer.d.ts +4 -2
- package/dist/modules/homepage/components/Communities/CommunitiesContainer.js +31 -0
- package/dist/modules/homepage/components/Communities/CommunitiesSkeleton.js +32 -0
- package/dist/modules/homepage/components/Communities/CommunityItem.d.ts +2 -1
- package/dist/modules/homepage/components/Communities/CommunityItem.js +28 -0
- package/dist/modules/homepage/components/Communities/useCommunities.d.ts +1 -4
- package/dist/modules/homepage/components/Communities/useCommunities.js +25 -0
- package/dist/modules/homepage/components/Favorites/Favorites.js +2 -2
- package/dist/modules/homepage/components/Header/Header.js +11 -4
- package/dist/modules/homepage/components/HomeCard/HomeCard.d.ts +1 -1
- package/dist/modules/homepage/components/HomeCard/HomeCardHeader.d.ts +15 -1
- package/dist/modules/homepage/components/HomeCard/HomeCardHeader.js +2 -1
- package/dist/modules/homepage/components/Notifications/components/NotificationFilterModal.js +36 -26
- package/dist/modules/homepage/components/Notifications/components/ReportNotificationModal.js +1 -1
- package/dist/modules/homepage/components/Notifications/services/queries/notification.js +9 -2
- package/dist/modules/homepage/components/UsefulLinks/LinkForm.d.ts +13 -0
- package/dist/modules/homepage/components/UsefulLinks/LinkForm.js +67 -0
- package/dist/modules/homepage/components/UsefulLinks/UsefulLinks.d.ts +6 -0
- package/dist/modules/homepage/components/UsefulLinks/UsefulLinks.js +31 -0
- package/dist/modules/homepage/components/UsefulLinks/UsefulLinksContainer.d.ts +1 -0
- package/dist/modules/homepage/components/UsefulLinks/UsefulLinksContainer.js +40 -0
- package/dist/modules/homepage/components/UsefulLinks/UsefulLinksModal.d.ts +11 -0
- package/dist/modules/homepage/components/UsefulLinks/UsefulLinksModal.js +65 -0
- package/dist/modules/homepage/components/UsefulLinks/hooks/useUsefulLinksContainer.d.ts +19 -0
- package/dist/modules/homepage/components/UsefulLinks/hooks/useUsefulLinksContainer.js +26 -0
- package/dist/modules/homepage/components/UsefulLinks/index.d.ts +5 -0
- package/dist/modules/homepage/components/UsefulLinks/services/api/index.d.ts +6 -0
- package/dist/modules/homepage/components/UsefulLinks/services/api/index.js +5 -0
- package/dist/modules/homepage/components/UsefulLinks/services/api/usefulLinksService.d.ts +31 -0
- package/dist/modules/homepage/components/UsefulLinks/services/api/usefulLinksService.js +50 -0
- package/dist/modules/homepage/components/UsefulLinks/services/queries/usefulLinks.d.ts +20 -0
- package/dist/modules/homepage/components/UsefulLinks/services/queries/usefulLinks.js +65 -0
- package/dist/modules/homepage/components/UserSpace/UserSpace.d.ts +3 -1
- package/dist/modules/homepage/components/UserSpace/UserSpace.js +13 -7
- package/dist/modules/homepage/components/UserSpace/UserSpaceContainer.d.ts +4 -2
- package/dist/modules/homepage/components/UserSpace/UserSpaceContainer.js +3 -2
- package/dist/modules/homepage/components/UserSpace/hooks/useProfileLinks.js +18 -8
- package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetToggle.d.ts +16 -0
- package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetToggle.js +15 -0
- package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetsPersonalizationPanel.d.ts +21 -0
- package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetsPersonalizationPanel.js +47 -0
- package/dist/modules/homepage/components/WidgetsPersonalizationPanel/index.d.ts +2 -0
- package/dist/modules/homepage/components/index.d.ts +3 -0
- package/dist/modules/icons/components/IconAddWidget.d.ts +7 -0
- package/dist/modules/icons/components/IconAddWidget.js +12 -0
- package/dist/modules/icons/components/index.d.ts +1 -0
- package/dist/modules/icons/components/logo/IconLogoEdificeFull.d.ts +7 -0
- package/dist/modules/icons/components/logo/IconLogoEdificeFull.js +26 -0
- package/dist/modules/icons/components/logo/IconLogoEdificeSmall.d.ts +7 -0
- package/dist/modules/icons/components/logo/IconLogoEdificeSmall.js +17 -0
- package/dist/modules/icons/components/logo/index.d.ts +2 -0
- package/dist/modules/widgets/index.d.ts +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface ModalBetaHeaderProps {
|
|
3
|
+
/**
|
|
4
|
+
* Method called on modal close
|
|
5
|
+
*/
|
|
6
|
+
onModalClose: () => void;
|
|
7
|
+
/**
|
|
8
|
+
* Modal title
|
|
9
|
+
*/
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* Optional text displayed below the title
|
|
13
|
+
*/
|
|
14
|
+
subtitle?: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* ModalBeta Header
|
|
18
|
+
*/
|
|
19
|
+
declare const ModalBetaHeader: {
|
|
20
|
+
({ onModalClose, children, subtitle, }: ModalBetaHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
displayName: string;
|
|
22
|
+
};
|
|
23
|
+
export default ModalBetaHeader;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useEffect } from "react";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import SvgIconClose from "../../modules/icons/components/IconClose.js";
|
|
5
|
+
import ButtonBeta from "../ButtonBeta/ButtonBeta.js";
|
|
6
|
+
import { useModalBetaContext } from "./ModalBetaContext.js";
|
|
7
|
+
const ModalBetaHeader = ({
|
|
8
|
+
onModalClose,
|
|
9
|
+
children,
|
|
10
|
+
subtitle
|
|
11
|
+
}) => {
|
|
12
|
+
const {
|
|
13
|
+
ariaLabelId,
|
|
14
|
+
focusId
|
|
15
|
+
} = useModalBetaContext(), closeButtonRef = useRef(null), {
|
|
16
|
+
t
|
|
17
|
+
} = useTranslation();
|
|
18
|
+
return useEffect(() => {
|
|
19
|
+
var _a;
|
|
20
|
+
focusId || (_a = closeButtonRef.current) == null || _a.focus();
|
|
21
|
+
}, [focusId]), /* @__PURE__ */ jsxs("div", { className: "modal-beta-header", children: [
|
|
22
|
+
/* @__PURE__ */ jsxs("div", { className: "modal-beta-title-row", children: [
|
|
23
|
+
/* @__PURE__ */ jsx("h2", { id: ariaLabelId, className: "modal-beta-title", tabIndex: -1, children }),
|
|
24
|
+
/* @__PURE__ */ jsx(ButtonBeta, { ref: closeButtonRef, "aria-label": t("close"), title: t("close"), type: "button", variant: "ghost", color: "tertiary", leftIcon: /* @__PURE__ */ jsx(SvgIconClose, {}), onClick: onModalClose })
|
|
25
|
+
] }),
|
|
26
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "modal-beta-subtitle", children: subtitle })
|
|
27
|
+
] });
|
|
28
|
+
};
|
|
29
|
+
export {
|
|
30
|
+
ModalBetaHeader as default
|
|
31
|
+
};
|
|
@@ -41,5 +41,9 @@ declare const PageLayout: {
|
|
|
41
41
|
({ children, onClose, closeButton, backdrop, className, ...props }: import('./components/PageLayoutOverlay').PageLayoutOverlayProps): import("react/jsx-runtime").JSX.Element;
|
|
42
42
|
displayName: string;
|
|
43
43
|
};
|
|
44
|
+
HelpZone: {
|
|
45
|
+
(): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
displayName: string;
|
|
47
|
+
};
|
|
44
48
|
};
|
|
45
49
|
export default PageLayout;
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, Children, isValidElement } from "react";
|
|
3
3
|
import clsx from "clsx";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
4
5
|
import PageLayoutBreadcrumb from "./components/PageLayoutBreadcrumb.js";
|
|
5
6
|
import PageLayoutContent from "./components/PageLayoutContent.js";
|
|
6
7
|
import PageLayoutHeader from "./components/PageLayoutHeader.js";
|
|
8
|
+
import PageLayoutHelpZone from "./components/PageLayoutHelpZone.js";
|
|
7
9
|
import PageLayoutOverlay from "./components/PageLayoutOverlay.js";
|
|
8
10
|
import PageLayoutSidebarLeft from "./components/PageLayoutSidebarLeft.js";
|
|
9
11
|
import PageLayoutSidebarRight from "./components/PageLayoutSidebarRight.js";
|
|
10
12
|
import { PageLayoutContext } from "./PageLayoutContext.js";
|
|
13
|
+
import useCookiesConsent from "../../hooks/useCookiesConsent/useCookiesConsent.js";
|
|
14
|
+
import useToast from "../../hooks/useToast/useToast.js";
|
|
15
|
+
import Alert from "../Alert/Alert.js";
|
|
16
|
+
import ButtonBeta from "../ButtonBeta/ButtonBeta.js";
|
|
11
17
|
function analyzeChildren(children) {
|
|
12
|
-
let hasLeftSidebar = !1, hasRightSidebar = !1, breadcrumb = null, overlay = null;
|
|
18
|
+
let hasLeftSidebar = !1, hasRightSidebar = !1, breadcrumb = null, overlay = null, helpZone = null;
|
|
13
19
|
const headerChildren = [], mainChildren = [];
|
|
14
20
|
return Children.toArray(children).forEach((child) => {
|
|
15
21
|
if (/* @__PURE__ */ isValidElement(child))
|
|
@@ -23,6 +29,9 @@ function analyzeChildren(children) {
|
|
|
23
29
|
case PageLayoutOverlay:
|
|
24
30
|
overlay = child;
|
|
25
31
|
break;
|
|
32
|
+
case PageLayoutHelpZone:
|
|
33
|
+
helpZone = child;
|
|
34
|
+
break;
|
|
26
35
|
case PageLayoutSidebarLeft:
|
|
27
36
|
hasLeftSidebar = !0, mainChildren.push(child);
|
|
28
37
|
break;
|
|
@@ -41,6 +50,7 @@ function analyzeChildren(children) {
|
|
|
41
50
|
hasRightSidebar,
|
|
42
51
|
breadcrumb,
|
|
43
52
|
overlay,
|
|
53
|
+
helpZone,
|
|
44
54
|
headerChildren,
|
|
45
55
|
mainChildren
|
|
46
56
|
};
|
|
@@ -54,15 +64,22 @@ const Root = ({
|
|
|
54
64
|
className,
|
|
55
65
|
...props
|
|
56
66
|
}) => {
|
|
57
|
-
const
|
|
67
|
+
const {
|
|
68
|
+
t
|
|
69
|
+
} = useTranslation(), {
|
|
70
|
+
showCookiesConsent,
|
|
71
|
+
handleConsultCookies,
|
|
72
|
+
handleCloseCookiesConsent
|
|
73
|
+
} = useCookiesConsent(), contextValue = useMemo(() => ({
|
|
58
74
|
variant,
|
|
59
75
|
scrollMode,
|
|
60
76
|
noPadding
|
|
61
|
-
}), [variant, scrollMode, noPadding]), {
|
|
77
|
+
}), [variant, scrollMode, noPadding]), renderToaster = useToast().renderToaster(), {
|
|
62
78
|
hasLeftSidebar,
|
|
63
79
|
hasRightSidebar,
|
|
64
80
|
breadcrumb,
|
|
65
81
|
overlay,
|
|
82
|
+
helpZone,
|
|
66
83
|
headerChildren,
|
|
67
84
|
mainChildren
|
|
68
85
|
} = analyzeChildren(children), mainAreaClasses = clsx("pagelayout-mainarea", {
|
|
@@ -71,23 +88,29 @@ const Root = ({
|
|
|
71
88
|
"has-right-sidebar-only": !hasLeftSidebar && hasRightSidebar,
|
|
72
89
|
"has-gap": withGap
|
|
73
90
|
}), isFullpage = variant === "fullpage";
|
|
74
|
-
return /* @__PURE__ */
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
91
|
+
return /* @__PURE__ */ jsxs(PageLayoutContext.Provider, { value: contextValue, children: [
|
|
92
|
+
/* @__PURE__ */ jsxs("div", { className: clsx("pagelayout", `pagelayout-${variant}`, scrollMode && `pagelayout-scroll-${scrollMode}`, className), ...props, children: [
|
|
93
|
+
headerChildren,
|
|
94
|
+
headerChildren.length > 0 && /* @__PURE__ */ jsx("div", { className: "pagelayout-headerspacer" }),
|
|
95
|
+
!isFullpage && breadcrumb,
|
|
96
|
+
/* @__PURE__ */ jsxs("div", { className: mainAreaClasses, children: [
|
|
97
|
+
isFullpage && breadcrumb,
|
|
98
|
+
mainChildren
|
|
99
|
+
] }),
|
|
100
|
+
overlay,
|
|
101
|
+
showCookiesConsent && /* @__PURE__ */ jsx(Alert, { type: "info", isConfirm: !0, position: "bottom-right", button: /* @__PURE__ */ jsx(ButtonBeta, { variant: "outline", onClick: handleConsultCookies, children: t("rgpd.cookies.banner.button.consult") }), onClose: handleCloseCookiesConsent, children: t("rgpd.cookies.banner.text1") })
|
|
81
102
|
] }),
|
|
82
|
-
|
|
83
|
-
|
|
103
|
+
helpZone,
|
|
104
|
+
renderToaster
|
|
105
|
+
] });
|
|
84
106
|
}, PageLayout = Object.assign(Root, {
|
|
85
107
|
Header: PageLayoutHeader,
|
|
86
108
|
Breadcrumb: PageLayoutBreadcrumb,
|
|
87
109
|
SidebarLeft: PageLayoutSidebarLeft,
|
|
88
110
|
Content: PageLayoutContent,
|
|
89
111
|
SidebarRight: PageLayoutSidebarRight,
|
|
90
|
-
Overlay: PageLayoutOverlay
|
|
112
|
+
Overlay: PageLayoutOverlay,
|
|
113
|
+
HelpZone: PageLayoutHelpZone
|
|
91
114
|
});
|
|
92
115
|
export {
|
|
93
116
|
PageLayout as default
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import clsx from "clsx";
|
|
3
3
|
import { usePageLayout } from "../PageLayoutContext.js";
|
|
4
|
+
import useBackground from "../../../hooks/useBackground/useBackground.js";
|
|
4
5
|
const PageLayoutContent = ({
|
|
5
6
|
children,
|
|
6
7
|
className,
|
|
7
8
|
...props
|
|
8
9
|
}) => {
|
|
9
10
|
const {
|
|
11
|
+
productOverride,
|
|
12
|
+
background
|
|
13
|
+
} = useBackground(), {
|
|
10
14
|
noPadding
|
|
11
15
|
} = usePageLayout();
|
|
12
|
-
return /* @__PURE__ */ jsx("main", { className: clsx("pagelayout-content", {
|
|
16
|
+
return /* @__PURE__ */ jsx("main", { "data-product": productOverride, "data-background": background, className: clsx("pagelayout-content", {
|
|
13
17
|
"pagelayout-content--no-padding": noPadding == null ? void 0 : noPadding.content
|
|
14
18
|
}, className), ...props, children });
|
|
15
19
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opt-in slot: renders the floating Edifice help zone (badge + support
|
|
3
|
+
* button). Requires `EdificeClientProvider` and `EdificeThemeProvider`
|
|
4
|
+
* higher in the tree (used internally by `useZendeskGuide`) — kept opt-in
|
|
5
|
+
* rather than baked into `PageLayout` itself so standalone consumers
|
|
6
|
+
* without those providers don't crash at render.
|
|
7
|
+
*/
|
|
8
|
+
declare const PageLayoutHelpZone: {
|
|
9
|
+
(): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
displayName: string;
|
|
11
|
+
};
|
|
12
|
+
export default PageLayoutHelpZone;
|
|
@@ -13,7 +13,7 @@ declare const Table: import('react').ForwardRefExoticComponent<{
|
|
|
13
13
|
displayName: string;
|
|
14
14
|
};
|
|
15
15
|
Th: {
|
|
16
|
-
(props: React.
|
|
16
|
+
(props: React.ThHTMLAttributes<HTMLTableCellElement>): import("react/jsx-runtime").JSX.Element;
|
|
17
17
|
displayName: string;
|
|
18
18
|
};
|
|
19
19
|
Tbody: {
|
|
@@ -25,7 +25,7 @@ declare const Table: import('react').ForwardRefExoticComponent<{
|
|
|
25
25
|
displayName: string;
|
|
26
26
|
};
|
|
27
27
|
Td: {
|
|
28
|
-
(props: React.
|
|
28
|
+
(props: React.TdHTMLAttributes<HTMLTableCellElement>): import("react/jsx-runtime").JSX.Element;
|
|
29
29
|
displayName: string;
|
|
30
30
|
};
|
|
31
31
|
};
|
|
@@ -28,6 +28,7 @@ export * from './Image';
|
|
|
28
28
|
export * from './Input';
|
|
29
29
|
export * from './Label';
|
|
30
30
|
export * from './Layout';
|
|
31
|
+
export * from './LinkPill';
|
|
31
32
|
export * from './List';
|
|
32
33
|
export * from './Loading';
|
|
33
34
|
export * from './LoadingScreen';
|
|
@@ -36,6 +37,7 @@ export * from './LogoBeta';
|
|
|
36
37
|
export * from './MediaViewer';
|
|
37
38
|
export * from './Menu';
|
|
38
39
|
export * from './Modal';
|
|
40
|
+
export * from './ModalBeta';
|
|
39
41
|
export * from './PageLayout';
|
|
40
42
|
export * from './Pagination';
|
|
41
43
|
export * from './Popover';
|
package/dist/homepage.js
CHANGED
|
@@ -1,36 +1,61 @@
|
|
|
1
|
-
import { default as default2 } from "./modules/homepage/components/
|
|
2
|
-
import { default as default3 } from "./modules/homepage/components/
|
|
3
|
-
import { default as default4 } from "./modules/homepage/components/
|
|
4
|
-
import { default as default5 } from "./modules/homepage/components/
|
|
5
|
-
import { default as default6 } from "./modules/homepage/components/
|
|
6
|
-
import { default as default7 } from "./modules/homepage/components/
|
|
7
|
-
import { default as default8 } from "./modules/homepage/components/
|
|
1
|
+
import { default as default2 } from "./modules/homepage/components/Communities/Communities.js";
|
|
2
|
+
import { default as default3 } from "./modules/homepage/components/Communities/CommunityItem.js";
|
|
3
|
+
import { default as default4 } from "./modules/homepage/components/Communities/CommunitiesSkeleton.js";
|
|
4
|
+
import { default as default5 } from "./modules/homepage/components/Header/Header.js";
|
|
5
|
+
import { default as default6 } from "./modules/homepage/components/HomeCard/HomeCard.js";
|
|
6
|
+
import { default as default7 } from "./modules/homepage/components/LastInfos/LastInfos.js";
|
|
7
|
+
import { default as default8 } from "./modules/homepage/components/MessageFlashList/MessageFlash.js";
|
|
8
|
+
import { default as default9 } from "./modules/homepage/components/MessageFlashList/MessageFlashList.js";
|
|
9
|
+
import { default as default10 } from "./modules/homepage/components/Notifications/NotificationItem.js";
|
|
10
|
+
import { default as default11 } from "./modules/homepage/components/Notifications/NotificationList.js";
|
|
8
11
|
import { NotificationListContainer } from "./modules/homepage/components/Notifications/NotificationListContainer.js";
|
|
9
|
-
import { default as
|
|
10
|
-
import { default as
|
|
12
|
+
import { default as default12 } from "./modules/homepage/components/SchoolSpace/SchoolSpace.js";
|
|
13
|
+
import { default as default13 } from "./modules/homepage/components/UserSpace/UserSpace.js";
|
|
14
|
+
import { CommunitiesContainer } from "./modules/homepage/components/Communities/CommunitiesContainer.js";
|
|
11
15
|
import { Favorites } from "./modules/homepage/components/Favorites/Favorites.js";
|
|
12
16
|
import { FavoritesContainer } from "./modules/homepage/components/Favorites/FavoritesContainer.js";
|
|
13
17
|
import { LastInfosContainer } from "./modules/homepage/components/LastInfos/LastInfosContainer.js";
|
|
14
18
|
import { LastInfosList } from "./modules/homepage/components/LastInfos/LastInfosList.js";
|
|
19
|
+
import { LinkForm } from "./modules/homepage/components/UsefulLinks/LinkForm.js";
|
|
20
|
+
import { MAX_USEFUL_LINKS, useUsefulLinksContainer } from "./modules/homepage/components/UsefulLinks/hooks/useUsefulLinksContainer.js";
|
|
15
21
|
import { MessageFlashListContainer } from "./modules/homepage/components/MessageFlashList/MessageFlashListContainer.js";
|
|
16
22
|
import { SchoolSpaceContainer } from "./modules/homepage/components/SchoolSpace/SchoolSpaceContainer.js";
|
|
23
|
+
import { UsefulLinks } from "./modules/homepage/components/UsefulLinks/UsefulLinks.js";
|
|
24
|
+
import { UsefulLinksContainer } from "./modules/homepage/components/UsefulLinks/UsefulLinksContainer.js";
|
|
25
|
+
import { UsefulLinksModal } from "./modules/homepage/components/UsefulLinks/UsefulLinksModal.js";
|
|
17
26
|
import { UserSpaceContainer } from "./modules/homepage/components/UserSpace/UserSpaceContainer.js";
|
|
27
|
+
import { WidgetToggle } from "./modules/homepage/components/WidgetsPersonalizationPanel/WidgetToggle.js";
|
|
28
|
+
import { WidgetsPersonalizationPanel } from "./modules/homepage/components/WidgetsPersonalizationPanel/WidgetsPersonalizationPanel.js";
|
|
29
|
+
import { useCommunities } from "./modules/homepage/components/Communities/useCommunities.js";
|
|
18
30
|
export {
|
|
31
|
+
default2 as Communities,
|
|
32
|
+
CommunitiesContainer,
|
|
33
|
+
default3 as CommunitiesItem,
|
|
34
|
+
default4 as CommunitiesSkeleton,
|
|
19
35
|
Favorites,
|
|
20
36
|
FavoritesContainer,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
37
|
+
default5 as Header,
|
|
38
|
+
default6 as HomeCard,
|
|
39
|
+
default7 as LastInfos,
|
|
24
40
|
LastInfosContainer,
|
|
25
41
|
LastInfosList,
|
|
26
|
-
|
|
27
|
-
|
|
42
|
+
LinkForm,
|
|
43
|
+
MAX_USEFUL_LINKS,
|
|
44
|
+
default8 as MessageFlash,
|
|
45
|
+
default9 as MessageFlashList,
|
|
28
46
|
MessageFlashListContainer,
|
|
29
|
-
|
|
30
|
-
|
|
47
|
+
default10 as NotificationItem,
|
|
48
|
+
default11 as NotificationList,
|
|
31
49
|
NotificationListContainer,
|
|
32
|
-
|
|
50
|
+
default12 as SchoolSpace,
|
|
33
51
|
SchoolSpaceContainer,
|
|
34
|
-
|
|
35
|
-
|
|
52
|
+
UsefulLinks,
|
|
53
|
+
UsefulLinksContainer,
|
|
54
|
+
UsefulLinksModal,
|
|
55
|
+
default13 as UserSpace,
|
|
56
|
+
UserSpaceContainer,
|
|
57
|
+
WidgetToggle,
|
|
58
|
+
WidgetsPersonalizationPanel,
|
|
59
|
+
useCommunities,
|
|
60
|
+
useUsefulLinksContainer
|
|
36
61
|
};
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './useBackground';
|
|
1
2
|
export * from './useBookmark';
|
|
2
3
|
export * from './useBreakpoint';
|
|
3
4
|
export * from './useBrowserInfo';
|
|
@@ -34,6 +35,7 @@ export * from './useUiOverride';
|
|
|
34
35
|
export * from './useUpload';
|
|
35
36
|
export * from './useUploadFiles';
|
|
36
37
|
export * from './useUser';
|
|
38
|
+
export * from './useUserPreferences';
|
|
37
39
|
export * from './useWorkspaceFile';
|
|
38
40
|
export * from './useWorkspaceFolders';
|
|
39
41
|
export * from './useWorkspaceSearch';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as useBackground, type Background } from './useBackground';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type Background = 'default' | 'pink-200' | 'yellow-200' | 'orange-200' | 'blue-200' | 'green-200';
|
|
2
|
+
declare const _default: () => {
|
|
3
|
+
background: Background;
|
|
4
|
+
isBackgroundImageOverridden: boolean;
|
|
5
|
+
productOverride: string | undefined;
|
|
6
|
+
};
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import useUiOverride from "../useUiOverride/useUiOverride.js";
|
|
2
|
+
import useUserPreferences from "../useUserPreferences/useUserPreferences.js";
|
|
3
|
+
const useBackground = () => {
|
|
4
|
+
const backgroundOverride = useUiOverride("layout.background"), backgroundDefault = useUiOverride("background.default"), {
|
|
5
|
+
preferences
|
|
6
|
+
} = useUserPreferences(), isBackgroundImageOverridden = (backgroundOverride == null ? void 0 : backgroundOverride.variant) === "image";
|
|
7
|
+
return {
|
|
8
|
+
/* Actual background is either : user's prefered value, theme-conf overriden value or 'default' */
|
|
9
|
+
background: (preferences == null ? void 0 : preferences.background) ?? (backgroundDefault == null ? void 0 : backgroundDefault.variant) ?? "default",
|
|
10
|
+
isBackgroundImageOverridden,
|
|
11
|
+
productOverride: backgroundOverride == null ? void 0 : backgroundOverride.theme
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
useBackground as default
|
|
16
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function useClickOutside<T extends HTMLElement = any>(handler: () => void, events?: string[] | null, nodes?: Array<HTMLElement | null
|
|
1
|
+
export default function useClickOutside<T extends HTMLElement = any>(handler: () => void, events?: string[] | null, nodes?: Array<HTMLElement | null>, enabled?: boolean): import('react').MutableRefObject<T | null>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { useRef, useEffect } from "react";
|
|
2
2
|
const DEFAULT_EVENTS = ["mousedown", "touchstart"];
|
|
3
|
-
function useClickOutside(handler, events, nodes) {
|
|
3
|
+
function useClickOutside(handler, events, nodes, enabled = !0) {
|
|
4
4
|
const ref = useRef(null);
|
|
5
5
|
return useEffect(() => {
|
|
6
|
+
if (!enabled) return;
|
|
6
7
|
const listener = (event) => {
|
|
7
8
|
const {
|
|
8
9
|
target
|
|
@@ -19,7 +20,7 @@ function useClickOutside(handler, events, nodes) {
|
|
|
19
20
|
document.removeEventListener(fn, listener);
|
|
20
21
|
});
|
|
21
22
|
};
|
|
22
|
-
}, [ref, handler, nodes, events]), ref;
|
|
23
|
+
}, [ref, handler, nodes, events, enabled]), ref;
|
|
23
24
|
}
|
|
24
25
|
export {
|
|
25
26
|
useClickOutside as default
|
|
@@ -7,6 +7,7 @@ export interface CustomToastOptions {
|
|
|
7
7
|
duration?: number;
|
|
8
8
|
}
|
|
9
9
|
export default function useToast(): {
|
|
10
|
+
renderToaster: () => import("react/jsx-runtime").JSX.Element;
|
|
10
11
|
success: (message: string | ReactNode, options?: CustomToastOptions) => string;
|
|
11
12
|
error: (message: string | ReactNode, options?: CustomToastOptions) => string;
|
|
12
13
|
info: (message: string | ReactNode, options?: CustomToastOptions) => string;
|
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import toast from "react-hot-toast";
|
|
2
|
+
import toast, { Toaster } from "react-hot-toast";
|
|
3
3
|
import Alert from "../../components/Alert/Alert.js";
|
|
4
4
|
const DEFAULT_POSITION = "top-right", DEFAULT_DURATION = 5e3;
|
|
5
5
|
function useToast() {
|
|
6
6
|
return {
|
|
7
|
-
|
|
7
|
+
renderToaster: () => /* @__PURE__ */ jsx(Toaster, { containerClassName: "toaster-container", toastOptions: {
|
|
8
|
+
position: "top-right"
|
|
9
|
+
} }),
|
|
10
|
+
success: (message, options) => toast.custom((t) => /* @__PURE__ */ jsx(Alert, { type: "success", isToast: !0, isDismissible: options == null ? void 0 : options.isDismissible, autoClose: !(options != null && options.isDismissible), autoCloseDelay: (options == null ? void 0 : options.duration) ?? DEFAULT_DURATION, onClose: () => toast.dismiss(t.id), className: "mb-12", children: message }), {
|
|
8
11
|
id: options == null ? void 0 : options.id,
|
|
9
|
-
duration:
|
|
12
|
+
duration: 1 / 0,
|
|
10
13
|
position: (options == null ? void 0 : options.position) ?? DEFAULT_POSITION
|
|
11
14
|
}),
|
|
12
|
-
error: (message, options) => toast.custom(/* @__PURE__ */ jsx(Alert, { type: "danger", isToast: !0, isDismissible: options == null ? void 0 : options.isDismissible, className: "mb-12", children: message }), {
|
|
15
|
+
error: (message, options) => toast.custom((t) => /* @__PURE__ */ jsx(Alert, { type: "danger", isToast: !0, isDismissible: options == null ? void 0 : options.isDismissible, autoClose: !(options != null && options.isDismissible), autoCloseDelay: (options == null ? void 0 : options.duration) ?? DEFAULT_DURATION, onClose: () => toast.dismiss(t.id), className: "mb-12", children: message }), {
|
|
13
16
|
id: options == null ? void 0 : options.id,
|
|
14
|
-
duration:
|
|
17
|
+
duration: 1 / 0,
|
|
15
18
|
position: (options == null ? void 0 : options.position) ?? DEFAULT_POSITION
|
|
16
19
|
}),
|
|
17
|
-
info: (message, options) => toast.custom(/* @__PURE__ */ jsx(Alert, { type: "info", isToast: !0, isDismissible: options == null ? void 0 : options.isDismissible, className: "mb-12", children: message }), {
|
|
20
|
+
info: (message, options) => toast.custom((t) => /* @__PURE__ */ jsx(Alert, { type: "info", isToast: !0, isDismissible: options == null ? void 0 : options.isDismissible, autoClose: !(options != null && options.isDismissible), autoCloseDelay: (options == null ? void 0 : options.duration) ?? DEFAULT_DURATION, onClose: () => toast.dismiss(t.id), className: "mb-12", children: message }), {
|
|
18
21
|
id: options == null ? void 0 : options.id,
|
|
19
|
-
duration:
|
|
22
|
+
duration: 1 / 0,
|
|
20
23
|
position: (options == null ? void 0 : options.position) ?? DEFAULT_POSITION
|
|
21
24
|
}),
|
|
22
|
-
warning: (message, options) => toast.custom(/* @__PURE__ */ jsx(Alert, { type: "warning", isToast: !0, isDismissible: options == null ? void 0 : options.isDismissible, className: "mb-12", children: message }), {
|
|
25
|
+
warning: (message, options) => toast.custom((t) => /* @__PURE__ */ jsx(Alert, { type: "warning", isToast: !0, isDismissible: options == null ? void 0 : options.isDismissible, autoClose: !(options != null && options.isDismissible), autoCloseDelay: (options == null ? void 0 : options.duration) ?? DEFAULT_DURATION, onClose: () => toast.dismiss(t.id), className: "mb-12", children: message }), {
|
|
23
26
|
id: options == null ? void 0 : options.id,
|
|
24
|
-
duration:
|
|
27
|
+
duration: 1 / 0,
|
|
25
28
|
position: (options == null ? void 0 : options.position) ?? DEFAULT_POSITION
|
|
26
29
|
}),
|
|
27
30
|
loading: toast.loading,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default, useUserPreferences } from './useUserPreferences';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const USER_PREFERENCES_QUERY_KEY: string[];
|
|
2
|
+
export declare function useUserPreferences<T extends Record<string, any> = Record<string, any>>(): {
|
|
3
|
+
preferences: T | undefined;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
isError: boolean;
|
|
6
|
+
refetch: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<T, Error>>;
|
|
7
|
+
savePreferences: (preferences: T) => Promise<T>;
|
|
8
|
+
};
|
|
9
|
+
export default useUserPreferences;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { odeServices } from "@edifice.io/client";
|
|
2
|
+
import { useQueryClient, useQuery, queryOptions, useMutation } from "@tanstack/react-query";
|
|
3
|
+
const USER_PREFERENCES_QUERY_KEY = ["user", "preferences"];
|
|
4
|
+
function useUserPreferences() {
|
|
5
|
+
const queryClient = useQueryClient(), {
|
|
6
|
+
data: preferences,
|
|
7
|
+
isLoading,
|
|
8
|
+
isError,
|
|
9
|
+
refetch
|
|
10
|
+
} = useQuery(queryOptions({
|
|
11
|
+
queryKey: USER_PREFERENCES_QUERY_KEY,
|
|
12
|
+
queryFn: () => odeServices.conf().getUserPreferences(),
|
|
13
|
+
staleTime: 15e3
|
|
14
|
+
})), mutation = useMutation({
|
|
15
|
+
mutationFn: (preferences2) => odeServices.conf().saveUserPreferences(preferences2),
|
|
16
|
+
onMutate: async (preferences2) => {
|
|
17
|
+
queryClient.setQueryData(USER_PREFERENCES_QUERY_KEY, preferences2);
|
|
18
|
+
},
|
|
19
|
+
onError: () => {
|
|
20
|
+
queryClient.invalidateQueries({
|
|
21
|
+
queryKey: USER_PREFERENCES_QUERY_KEY
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
onSuccess: (preferences2) => {
|
|
25
|
+
queryClient.setQueryData(USER_PREFERENCES_QUERY_KEY, preferences2);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
preferences,
|
|
30
|
+
isLoading,
|
|
31
|
+
isError,
|
|
32
|
+
refetch,
|
|
33
|
+
savePreferences: (preferences2) => mutation.mutateAsync(preferences2)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
USER_PREFERENCES_QUERY_KEY,
|
|
38
|
+
useUserPreferences as default,
|
|
39
|
+
useUserPreferences
|
|
40
|
+
};
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export interface UseZendeskGuideAPI {
|
|
2
|
+
/** True once the widget script is loaded and configured. */
|
|
3
|
+
isReady: boolean;
|
|
4
|
+
/** True while the widget panel is open. */
|
|
5
|
+
isOpen: boolean;
|
|
6
|
+
open: () => void;
|
|
7
|
+
close: () => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Add Zendesk Guide
|
|
11
|
+
*
|
|
12
|
+
* @param headerColor Overrides the widget panel's theme color. Can change
|
|
13
|
+
* across renders (e.g. once resolved from async platform config) — the
|
|
14
|
+
* widget is updated in place, no need to keep it stable.
|
|
15
|
+
*/
|
|
16
|
+
export default function useZendeskGuide(headerColor?: string): UseZendeskGuideAPI;
|