@edifice.io/react 2.5.22 → 2.5.23-chore-tiptap-v3.20260930150159
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/AppIcon/AppIcon.js +4 -1
- package/dist/components/Avatar/Avatar.d.ts +2 -2
- package/dist/components/Avatar/Avatar.js +2 -1
- package/dist/components/BetaSwitch/BetaSwitch.d.ts +13 -0
- package/dist/components/BetaSwitch/BetaSwitch.js +27 -0
- package/dist/components/BetaSwitch/index.d.ts +1 -0
- package/dist/components/ButtonBeta/ButtonBeta.d.ts +47 -0
- package/dist/components/ButtonBeta/ButtonBeta.js +34 -0
- package/dist/components/ButtonBeta/index.d.ts +2 -0
- package/dist/components/Dropdown/DropdownTrigger.d.ts +1 -1
- package/dist/components/Flex/Flex.js +5 -1
- package/dist/components/Logo/index.d.ts +1 -1
- package/dist/components/LogoBeta/LogoBeta.d.ts +7 -0
- package/dist/components/LogoBeta/LogoBeta.js +14 -0
- package/dist/components/LogoBeta/index.d.ts +2 -0
- package/dist/components/MediaViewer/MediaViewer.d.ts +1 -1
- package/dist/components/MediaViewer/MediaWrapper.d.ts +1 -1
- package/dist/components/PageLayout/PageLayout.d.ts +45 -0
- package/dist/components/PageLayout/PageLayout.js +94 -0
- package/dist/components/PageLayout/PageLayoutContext.d.ts +14 -0
- package/dist/components/PageLayout/PageLayoutContext.js +8 -0
- package/dist/components/PageLayout/components/PageLayoutBreadcrumb.d.ts +9 -0
- package/dist/components/PageLayout/components/PageLayoutBreadcrumb.js +10 -0
- package/dist/components/PageLayout/components/PageLayoutContent.d.ts +9 -0
- package/dist/components/PageLayout/components/PageLayoutContent.js +18 -0
- package/dist/components/PageLayout/components/PageLayoutHeader.d.ts +10 -0
- package/dist/components/PageLayout/components/PageLayoutHeader.js +18 -0
- package/dist/components/PageLayout/components/PageLayoutOverlay.d.ts +15 -0
- package/dist/components/PageLayout/components/PageLayoutOverlay.js +51 -0
- package/dist/components/PageLayout/components/PageLayoutSidebarLeft.d.ts +9 -0
- package/dist/components/PageLayout/components/PageLayoutSidebarLeft.js +18 -0
- package/dist/components/PageLayout/components/PageLayoutSidebarRight.d.ts +9 -0
- package/dist/components/PageLayout/components/PageLayoutSidebarRight.js +18 -0
- package/dist/components/PageLayout/hook/useOverlay.d.ts +5 -0
- package/dist/components/PageLayout/hook/useOverlay.js +15 -0
- package/dist/components/PageLayout/index.d.ts +4 -0
- package/dist/components/PageLayout/store/overlayStore.d.ts +15 -0
- package/dist/components/PageLayout/store/overlayStore.js +12 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/editor.js +2 -0
- package/dist/homepage.js +34 -0
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/useEdificeIcons/useEdificeIcons.js +10 -9
- package/dist/hooks/useScreeb/index.d.ts +1 -1
- package/dist/icons-nav.js +38 -28
- package/dist/index.js +215 -202
- package/dist/modules/editor/components/BubbleMenuEditImage/BubbleMenuEditImage.js +97 -90
- package/dist/modules/editor/components/BubbleMenuEditInformationPane/BubbleMenuEditInformationPane.js +111 -95
- package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +3 -2
- package/dist/modules/editor/components/Toolbar/LinkToolbar.FloatingOptions.js +12 -0
- package/dist/modules/editor/components/Toolbar/LinkToolbar.js +5 -4
- package/dist/modules/editor/components/Toolbar/TableToolbar.js +10 -5
- package/dist/modules/editor/hooks/index.d.ts +1 -0
- package/dist/modules/editor/hooks/useCommentEditor.d.ts +1 -1
- package/dist/modules/editor/hooks/useCommentEditor.js +1 -1
- package/dist/modules/editor/hooks/useEditorState.d.ts +20 -0
- package/dist/modules/editor/hooks/useEditorState.js +16 -0
- package/dist/modules/editor/hooks/useTipTapEditor.d.ts +1 -1
- package/dist/modules/editor/hooks/useTipTapEditor.js +4 -8
- package/dist/modules/homepage/components/Favorites/Favorites.d.ts +6 -0
- package/dist/modules/homepage/components/Favorites/Favorites.js +28 -0
- package/dist/modules/homepage/components/Favorites/FavoritesContainer.d.ts +4 -0
- package/dist/modules/homepage/components/Favorites/FavoritesContainer.js +10 -0
- package/dist/modules/homepage/components/Favorites/index.d.ts +2 -0
- package/dist/modules/homepage/components/Header/Header.d.ts +9 -0
- package/dist/modules/homepage/components/Header/Header.js +80 -0
- package/dist/modules/homepage/components/Header/index.d.ts +2 -0
- package/dist/modules/homepage/components/HomeCard/HomeCard.d.ts +37 -0
- package/dist/modules/homepage/components/HomeCard/HomeCard.js +17 -0
- package/dist/modules/homepage/components/HomeCard/HomeCardContent.d.ts +7 -0
- package/dist/modules/homepage/components/HomeCard/HomeCardContent.js +10 -0
- package/dist/modules/homepage/components/HomeCard/HomeCardHeader.d.ts +18 -0
- package/dist/modules/homepage/components/HomeCard/HomeCardHeader.js +22 -0
- package/dist/modules/homepage/components/HomeCard/index.d.ts +4 -0
- package/dist/modules/homepage/components/LastInfos/LastInfos.d.ts +49 -0
- package/dist/modules/homepage/components/LastInfos/LastInfos.js +58 -0
- package/dist/modules/homepage/components/LastInfos/LastInfosContainer.d.ts +4 -0
- package/dist/modules/homepage/components/LastInfos/LastInfosContainer.js +37 -0
- package/dist/modules/homepage/components/LastInfos/LastInfosList.d.ts +13 -0
- package/dist/modules/homepage/components/LastInfos/LastInfosList.js +31 -0
- package/dist/modules/homepage/components/LastInfos/index.d.ts +4 -0
- package/dist/modules/homepage/components/LastInfos/useLastInfos.d.ts +18 -0
- package/dist/modules/homepage/components/LastInfos/useLastInfos.js +25 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlash.d.ts +12 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlash.js +65 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlashList.d.ts +12 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlashList.js +10 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlashListContainer.d.ts +5 -0
- package/dist/modules/homepage/components/MessageFlashList/MessageFlashListContainer.js +14 -0
- package/dist/modules/homepage/components/MessageFlashList/hooks/useMessageFlashList.d.ts +16 -0
- package/dist/modules/homepage/components/MessageFlashList/hooks/useMessageFlashList.js +19 -0
- package/dist/modules/homepage/components/MessageFlashList/index.d.ts +4 -0
- package/dist/modules/homepage/components/MessageFlashList/services/api/index.d.ts +4 -0
- package/dist/modules/homepage/components/MessageFlashList/services/api/index.js +5 -0
- package/dist/modules/homepage/components/MessageFlashList/services/api/messagesFlashService.d.ts +20 -0
- package/dist/modules/homepage/components/MessageFlashList/services/api/messagesFlashService.js +21 -0
- package/dist/modules/homepage/components/MessageFlashList/services/queries/messagesFlash.d.ts +13 -0
- package/dist/modules/homepage/components/MessageFlashList/services/queries/messagesFlash.js +31 -0
- package/dist/modules/homepage/components/Notifications/Notification.d.ts +20 -0
- package/dist/modules/homepage/components/Notifications/Notification.js +16 -0
- package/dist/modules/homepage/components/Notifications/NotificationList.d.ts +18 -0
- package/dist/modules/homepage/components/Notifications/NotificationList.js +44 -0
- package/dist/modules/homepage/components/Notifications/NotificationListContainer.d.ts +9 -0
- package/dist/modules/homepage/components/Notifications/NotificationListContainer.js +20 -0
- package/dist/modules/homepage/components/Notifications/NotificationListSkeleton.d.ts +5 -0
- package/dist/modules/homepage/components/Notifications/NotificationListSkeleton.js +17 -0
- package/dist/modules/homepage/components/Notifications/NotificationSkeleton.d.ts +3 -0
- package/dist/modules/homepage/components/Notifications/NotificationSkeleton.js +19 -0
- package/dist/modules/homepage/components/Notifications/components/NotificationItem.d.ts +24 -0
- package/dist/modules/homepage/components/Notifications/components/NotificationItem.js +28 -0
- package/dist/modules/homepage/components/Notifications/components/NotificationResource.d.ts +15 -0
- package/dist/modules/homepage/components/Notifications/components/NotificationResource.js +19 -0
- package/dist/modules/homepage/components/Notifications/components/SystemNotification.d.ts +15 -0
- package/dist/modules/homepage/components/Notifications/components/SystemNotification.js +20 -0
- package/dist/modules/homepage/components/Notifications/components/UserNotification.d.ts +15 -0
- package/dist/modules/homepage/components/Notifications/components/UserNotification.js +25 -0
- package/dist/modules/homepage/components/Notifications/components/notificationAdapter.d.ts +27 -0
- package/dist/modules/homepage/components/Notifications/components/notificationAdapter.js +53 -0
- package/dist/modules/homepage/components/Notifications/hooks/useNotificationList.d.ts +20 -0
- package/dist/modules/homepage/components/Notifications/hooks/useNotificationList.js +26 -0
- package/dist/modules/homepage/components/Notifications/index.d.ts +6 -0
- package/dist/modules/homepage/components/Notifications/services/api/index.d.ts +4 -0
- package/dist/modules/homepage/components/Notifications/services/api/index.js +5 -0
- package/dist/modules/homepage/components/Notifications/services/api/notificationService.d.ts +15 -0
- package/dist/modules/homepage/components/Notifications/services/api/notificationService.js +22 -0
- package/dist/modules/homepage/components/Notifications/services/queries/notification.d.ts +20 -0
- package/dist/modules/homepage/components/Notifications/services/queries/notification.js +40 -0
- package/dist/modules/homepage/components/SchoolSpace/SchoolSpace.d.ts +15 -0
- package/dist/modules/homepage/components/SchoolSpace/SchoolSpace.js +29 -0
- package/dist/modules/homepage/components/SchoolSpace/SchoolSpaceContainer.d.ts +4 -0
- package/dist/modules/homepage/components/SchoolSpace/SchoolSpaceContainer.js +13 -0
- package/dist/modules/homepage/components/SchoolSpace/index.d.ts +3 -0
- package/dist/modules/homepage/components/SchoolSpace/useUserSchools.d.ts +6 -0
- package/dist/modules/homepage/components/SchoolSpace/useUserSchools.js +39 -0
- package/dist/modules/homepage/components/UserSpace/UserSpace.d.ts +13 -0
- package/dist/modules/homepage/components/UserSpace/UserSpace.js +28 -0
- package/dist/modules/homepage/components/UserSpace/UserSpaceContainer.d.ts +7 -0
- package/dist/modules/homepage/components/UserSpace/UserSpaceContainer.js +19 -0
- package/dist/modules/homepage/components/UserSpace/index.d.ts +3 -0
- package/dist/modules/homepage/components/index.d.ts +8 -0
- package/dist/modules/homepage/hooks/useWidget.d.ts +6 -0
- package/dist/modules/homepage/hooks/useWidget.js +83 -0
- package/dist/modules/homepage/hooks/useWidgetPreferences.d.ts +6 -0
- package/dist/modules/homepage/hooks/useWidgetPreferences.js +34 -0
- package/dist/modules/homepage/index.d.ts +1 -0
- package/dist/modules/icons/components/nav/IconCommunitiesBeta.d.ts +7 -0
- package/dist/modules/icons/components/nav/IconCommunitiesBeta.js +18 -0
- package/dist/modules/icons/components/nav/IconHomeBeta.d.ts +7 -0
- package/dist/modules/icons/components/nav/IconHomeBeta.js +13 -0
- package/dist/modules/icons/components/{IconStarFavorite.d.ts → nav/IconMessagesBeta.d.ts} +2 -2
- package/dist/modules/icons/components/nav/IconMessagesBeta.js +18 -0
- package/dist/modules/icons/components/nav/IconMyAppsBeta.d.ts +7 -0
- package/dist/modules/icons/components/nav/IconMyAppsBeta.js +13 -0
- package/dist/modules/icons/components/nav/IconNotificationBeta.d.ts +7 -0
- package/dist/modules/icons/components/nav/IconNotificationBeta.js +14 -0
- package/dist/modules/icons/components/nav/index.d.ts +5 -0
- package/dist/modules/modals/OnboardingModal/index.d.ts +1 -1
- package/dist/node_modules/.pnpm/@tiptap_extension-floating-menu@3.31.3_@floating-ui_dom@1.6.0_@tiptap_core@3.10.2_@tiptap_pm@3.10.2__@tiptap_pm@3.10.2/node_modules/@tiptap/extension-floating-menu/dist/index.js +159 -0
- package/dist/node_modules/.pnpm/@tiptap_react@3.10.2_@floating-ui_dom@1.6.0_@tiptap_core@3.10.2_@tiptap_pm@3.10.2__@tiptap_pm_dubv75vojf3t6hpx6vhaocpyzq/node_modules/@tiptap/react/dist/menus/index.js +89 -0
- package/dist/node_modules/.pnpm/prosemirror-model@1.25.12/node_modules/prosemirror-model/dist/index.js +419 -0
- package/dist/node_modules/.pnpm/prosemirror-state@1.4.4/node_modules/prosemirror-state/dist/index.js +489 -0
- package/dist/node_modules/.pnpm/prosemirror-transform@1.12.2/node_modules/prosemirror-transform/dist/index.js +607 -0
- package/dist/providers/EdificeClientProvider/EdificeClientProvider.d.ts +0 -7
- package/dist/utilities/create-selectors/createSelectors.d.ts +10 -0
- package/dist/utilities/create-selectors/createSelectors.js +11 -0
- package/package.json +47 -49
- package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.d.ts +0 -2
- package/dist/modules/editor/components/Toolbar/LinkToolbar.TippyOptions.js +0 -8
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { NotificationModel } from '@edifice.io/client';
|
|
2
|
+
type WebNotificationBase = {
|
|
3
|
+
id: string;
|
|
4
|
+
uri?: string;
|
|
5
|
+
message: string;
|
|
6
|
+
date: Date;
|
|
7
|
+
};
|
|
8
|
+
/** Notification triggered by another user (e.g. shared a resource). */
|
|
9
|
+
export type UserWebNotification = WebNotificationBase & {
|
|
10
|
+
type: 'user';
|
|
11
|
+
params: {
|
|
12
|
+
appCode: string;
|
|
13
|
+
username: string;
|
|
14
|
+
userId: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
/** Notification triggered by an application event (no sender). */
|
|
18
|
+
export type SystemWebNotification = WebNotificationBase & {
|
|
19
|
+
type: 'system';
|
|
20
|
+
params: {
|
|
21
|
+
appCode: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
/** Discriminated union — narrow on `type` to get the specific variant. */
|
|
25
|
+
export type WebNotification = UserWebNotification | SystemWebNotification;
|
|
26
|
+
export declare const notificationAdapter: (notification: NotificationModel) => WebNotification;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const resolveNotificationResourceUri = (params, type) => {
|
|
2
|
+
if (type === "user")
|
|
3
|
+
return params.resourceUri || params.uri;
|
|
4
|
+
for (const [key, value] of Object.entries(params))
|
|
5
|
+
if (typeof value == "string" && value.length > 0 && key.endsWith("Uri") && key !== "profilUri" && key !== "resourceFolderUri")
|
|
6
|
+
return value;
|
|
7
|
+
}, parseNotificationMessage = (message) => message.replace(/<\/a>/gi, "</strong>").replace(/<a\b[^>]*>/gi, "<strong>"), getAppCode = (appCode) => {
|
|
8
|
+
switch (appCode = appCode.toLowerCase(), appCode) {
|
|
9
|
+
case "collaborativewall":
|
|
10
|
+
return "collaborative-wall";
|
|
11
|
+
case "formulaire":
|
|
12
|
+
return "forms";
|
|
13
|
+
case "messagerie":
|
|
14
|
+
return "conversation";
|
|
15
|
+
case "news":
|
|
16
|
+
return "actualites";
|
|
17
|
+
case "homeworks":
|
|
18
|
+
return "cahier-de-texte";
|
|
19
|
+
case "userbook_motto":
|
|
20
|
+
case "userbook_mood":
|
|
21
|
+
case "userbook_discovervisiblegroups":
|
|
22
|
+
return "userbook";
|
|
23
|
+
default:
|
|
24
|
+
return appCode.replace(/_/g, "-");
|
|
25
|
+
}
|
|
26
|
+
}, notificationAdapter = (notification) => {
|
|
27
|
+
const type = notification.sender ? "user" : "system", uri = resolveNotificationResourceUri(notification.params, type), date = new Date(notification.date.$date), appCode = getAppCode(notification.type), message = parseNotificationMessage(notification.message), base = {
|
|
28
|
+
id: notification._id,
|
|
29
|
+
uri,
|
|
30
|
+
message,
|
|
31
|
+
date
|
|
32
|
+
};
|
|
33
|
+
return type === "user" ? {
|
|
34
|
+
...base,
|
|
35
|
+
type: "user",
|
|
36
|
+
params: {
|
|
37
|
+
username: notification.params.username,
|
|
38
|
+
// cannot be undefined if sender is present (user type)
|
|
39
|
+
userId: notification.sender,
|
|
40
|
+
// cannot be undefined if sender is present (user type)
|
|
41
|
+
appCode
|
|
42
|
+
}
|
|
43
|
+
} : {
|
|
44
|
+
...base,
|
|
45
|
+
type: "system",
|
|
46
|
+
params: {
|
|
47
|
+
appCode
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export {
|
|
52
|
+
notificationAdapter
|
|
53
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NotificationModel } from '@edifice.io/client';
|
|
2
|
+
export interface UseNotificationListContainerReturn {
|
|
3
|
+
/** Array of notifications */
|
|
4
|
+
notifications: NotificationModel[] | undefined;
|
|
5
|
+
/** Array of notification types */
|
|
6
|
+
notificationTypes: string[] | undefined;
|
|
7
|
+
/** Indicates if there are more notifications to load */
|
|
8
|
+
hasNextPage: boolean | undefined;
|
|
9
|
+
/** Callback to load the next page of notifications */
|
|
10
|
+
loadNextPage: () => void;
|
|
11
|
+
/** Loading state for fetching notifications */
|
|
12
|
+
isLoading: boolean;
|
|
13
|
+
/** Error state from fetching notifications */
|
|
14
|
+
error: Error | null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Custom hook that provides notifications data and handlers with exposed loading states
|
|
18
|
+
* @returns Object containing notifications, loading state, and error state
|
|
19
|
+
*/
|
|
20
|
+
export declare const useNotificationListContainer: () => UseNotificationListContainerReturn;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useNotificationTypes, useNotifications } from "../services/queries/notification.js";
|
|
2
|
+
const useNotificationListContainer = () => {
|
|
3
|
+
const {
|
|
4
|
+
data: notificationTypes,
|
|
5
|
+
isLoading: isLoadingTypes,
|
|
6
|
+
isFetched: isFetchedTypes,
|
|
7
|
+
error: errorTypes
|
|
8
|
+
} = useNotificationTypes(), {
|
|
9
|
+
data: notifications,
|
|
10
|
+
hasNextPage,
|
|
11
|
+
isLoading: isLoadingNotifications,
|
|
12
|
+
error: errorNotifications,
|
|
13
|
+
fetchNextPage
|
|
14
|
+
} = useNotifications(notificationTypes ?? [], isFetchedTypes && !!notificationTypes);
|
|
15
|
+
return {
|
|
16
|
+
notifications,
|
|
17
|
+
notificationTypes,
|
|
18
|
+
hasNextPage,
|
|
19
|
+
loadNextPage: () => fetchNextPage(),
|
|
20
|
+
isLoading: isLoadingTypes || isLoadingNotifications,
|
|
21
|
+
error: errorTypes || errorNotifications
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
useNotificationListContainer
|
|
26
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './Notification';
|
|
2
|
+
export { default as Notification } from './Notification';
|
|
3
|
+
export * from './NotificationList';
|
|
4
|
+
export { default as NotificationList } from './NotificationList';
|
|
5
|
+
export * from './NotificationListContainer';
|
|
6
|
+
export { default as NotificationListContainer } from './NotificationListContainer';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NotificationModel } from '@edifice.io/client';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a notification service with methods to interact with notifications.
|
|
4
|
+
*
|
|
5
|
+
* @param baseURL The base URL for the notification service API.
|
|
6
|
+
* @returns A service exposing methods to retrieve notifications.
|
|
7
|
+
*/
|
|
8
|
+
export declare const createNotificationService: (baseURL: string) => {
|
|
9
|
+
/**
|
|
10
|
+
* Get notifications.
|
|
11
|
+
* @returns list of notification objects
|
|
12
|
+
*/
|
|
13
|
+
getNotifications(types: string[], page: number): Promise<NotificationModel[]>;
|
|
14
|
+
getNotificationTypes(): Promise<string[]>;
|
|
15
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { odeServices } from "@edifice.io/client";
|
|
2
|
+
const createNotificationService = (baseURL) => ({
|
|
3
|
+
/**
|
|
4
|
+
* Get notifications.
|
|
5
|
+
* @returns list of notification objects
|
|
6
|
+
*/
|
|
7
|
+
getNotifications(types, page) {
|
|
8
|
+
const searchParams = new URLSearchParams({
|
|
9
|
+
page: page.toString(),
|
|
10
|
+
mine: "1"
|
|
11
|
+
});
|
|
12
|
+
return types.forEach((type) => {
|
|
13
|
+
searchParams.append("type", type);
|
|
14
|
+
}), odeServices.http().get(`${baseURL}/timeline/lastNotifications?${searchParams.toString()}`).then((response) => response.status !== "ok" ? [] : response.number && response.results ? response.results : []);
|
|
15
|
+
},
|
|
16
|
+
getNotificationTypes() {
|
|
17
|
+
return odeServices.http().get(`${baseURL}/timeline/types`);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
export {
|
|
21
|
+
createNotificationService
|
|
22
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NotificationModel } from '@edifice.io/client';
|
|
2
|
+
export declare const notificationQueryKeys: {
|
|
3
|
+
all: () => readonly ["notifications"];
|
|
4
|
+
notifications: (types?: string[]) => readonly ["notifications", "list", string[]];
|
|
5
|
+
types: () => readonly ["notifications", "types"];
|
|
6
|
+
};
|
|
7
|
+
export declare const notificationQueryOptions: {
|
|
8
|
+
getNotifications(types: string[], enabled: boolean): import('@tanstack/react-query').OmitKeyof<import('@tanstack/react-query').UseInfiniteQueryOptions<NotificationModel[], Error, NotificationModel[], NotificationModel[], readonly ["notifications", "list", string[]], number>, "queryFn"> & {
|
|
9
|
+
queryFn?: import('@tanstack/react-query').QueryFunction<NotificationModel[], readonly ["notifications", "list", string[]], number> | undefined;
|
|
10
|
+
} & {
|
|
11
|
+
queryKey: import('@tanstack/react-query').DataTag<readonly ["notifications", "list", string[]], import('@tanstack/react-query').InfiniteData<NotificationModel[], unknown>>;
|
|
12
|
+
};
|
|
13
|
+
getNotificationTypes(): import('@tanstack/react-query').OmitKeyof<import('@tanstack/react-query').UseQueryOptions<string[], Error, string[], import('@tanstack/react-query').QueryKey>, "queryFn"> & {
|
|
14
|
+
queryFn?: import('@tanstack/react-query').QueryFunction<string[], import('@tanstack/react-query').QueryKey, never> | undefined;
|
|
15
|
+
} & {
|
|
16
|
+
queryKey: import('@tanstack/react-query').DataTag<import('@tanstack/react-query').QueryKey, string[]>;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare const useNotifications: (types?: string[], enabled?: boolean) => import('@tanstack/react-query').UseInfiniteQueryResult<NotificationModel[], Error>;
|
|
20
|
+
export declare const useNotificationTypes: () => import('@tanstack/react-query').UseQueryResult<string[], Error>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { useQuery, useInfiniteQuery, queryOptions, infiniteQueryOptions } from "@tanstack/react-query";
|
|
2
|
+
import { notificationService } from "../api/index.js";
|
|
3
|
+
const notificationQueryKeys = {
|
|
4
|
+
all: () => ["notifications"],
|
|
5
|
+
notifications: (types = []) => [...notificationQueryKeys.all(), "list", types],
|
|
6
|
+
types: () => [...notificationQueryKeys.all(), "types"]
|
|
7
|
+
}, notificationQueryOptions = {
|
|
8
|
+
getNotifications(types, enabled) {
|
|
9
|
+
return infiniteQueryOptions({
|
|
10
|
+
queryKey: notificationQueryKeys.notifications(types),
|
|
11
|
+
queryFn: ({
|
|
12
|
+
pageParam = 0
|
|
13
|
+
}) => notificationService.getNotifications(types, pageParam),
|
|
14
|
+
staleTime: 5 * 60 * 1e3,
|
|
15
|
+
// 5 minutes
|
|
16
|
+
initialPageParam: 0,
|
|
17
|
+
select(data) {
|
|
18
|
+
const seenIds = /* @__PURE__ */ new Set();
|
|
19
|
+
return data.pages.flat().filter((notification) => seenIds.has(notification._id) ? !1 : (seenIds.add(notification._id), !0));
|
|
20
|
+
},
|
|
21
|
+
getNextPageParam: (lastPage, _allPages, lastPageParam) => {
|
|
22
|
+
if ((lastPage == null ? void 0 : lastPage.length) !== 0)
|
|
23
|
+
return lastPageParam + 1;
|
|
24
|
+
},
|
|
25
|
+
enabled
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
getNotificationTypes() {
|
|
29
|
+
return queryOptions({
|
|
30
|
+
queryKey: notificationQueryKeys.types(),
|
|
31
|
+
queryFn: async () => notificationService.getNotificationTypes()
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}, useNotifications = (types = [], enabled = !0) => useInfiniteQuery(notificationQueryOptions.getNotifications(types, enabled)), useNotificationTypes = () => useQuery(notificationQueryOptions.getNotificationTypes());
|
|
35
|
+
export {
|
|
36
|
+
notificationQueryKeys,
|
|
37
|
+
notificationQueryOptions,
|
|
38
|
+
useNotificationTypes,
|
|
39
|
+
useNotifications
|
|
40
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { School } from '@edifice.io/client';
|
|
2
|
+
/**
|
|
3
|
+
* SchoolSpace component displays the currently selected school and provides
|
|
4
|
+
* a dropdown menu to switch between multiple schools if available.
|
|
5
|
+
*/
|
|
6
|
+
export interface SchoolSpaceProps {
|
|
7
|
+
selectedSchool: School | undefined;
|
|
8
|
+
onSelectedSchoolChange?: (school: School) => void;
|
|
9
|
+
schools?: School[];
|
|
10
|
+
}
|
|
11
|
+
declare const SchoolSpace: {
|
|
12
|
+
({ schools, selectedSchool, onSelectedSchoolChange, }: SchoolSpaceProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
displayName: string;
|
|
14
|
+
};
|
|
15
|
+
export default SchoolSpace;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import SvgIconRafterUp from "../../../icons/components/IconRafterUp.js";
|
|
4
|
+
import useToggle from "../../../../hooks/useToggle/useToggle.js";
|
|
5
|
+
import Flex from "../../../../components/Flex/Flex.js";
|
|
6
|
+
import Dropdown from "../../../../components/Dropdown/Dropdown.js";
|
|
7
|
+
import IconButton from "../../../../components/Button/IconButton.js";
|
|
8
|
+
import { getRotateTransitionStyle } from "../../../../utilities/rotate-transition-style/get-rotate-transition-style.js";
|
|
9
|
+
const SchoolSpace = ({
|
|
10
|
+
schools,
|
|
11
|
+
selectedSchool,
|
|
12
|
+
onSelectedSchoolChange
|
|
13
|
+
}) => {
|
|
14
|
+
const [isExpanded, toggleExpanded] = useToggle(!1), {
|
|
15
|
+
t
|
|
16
|
+
} = useTranslation(), hasManySchools = schools && schools.length > 1;
|
|
17
|
+
return selectedSchool ? /* @__PURE__ */ jsx("div", { className: "school-space", children: /* @__PURE__ */ jsxs(Flex, { className: "school-space-container", justify: "center", gap: "4", align: "center", children: [
|
|
18
|
+
/* @__PURE__ */ jsx("b", { children: selectedSchool.name }),
|
|
19
|
+
hasManySchools && /* @__PURE__ */ jsx(Dropdown, { placement: "bottom-end", onToggle: toggleExpanded, children: (triggerProps) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
20
|
+
/* @__PURE__ */ jsx(IconButton, { ...triggerProps, "aria-label": t("show"), color: "tertiary", variant: "ghost", icon: /* @__PURE__ */ jsx(SvgIconRafterUp, { className: "w-16 min-w-0", style: getRotateTransitionStyle(isExpanded, {
|
|
21
|
+
degrees: 180
|
|
22
|
+
}) }) }),
|
|
23
|
+
/* @__PURE__ */ jsx(Dropdown.Menu, { children: schools.map((school) => /* @__PURE__ */ jsx(Dropdown.Item, { onClick: () => onSelectedSchoolChange == null ? void 0 : onSelectedSchoolChange(school), children: /* @__PURE__ */ jsx(Flex, { direction: "column", children: /* @__PURE__ */ jsx("p", { children: school.name }) }) }, school.id)) })
|
|
24
|
+
] }) })
|
|
25
|
+
] }) }) : null;
|
|
26
|
+
};
|
|
27
|
+
export {
|
|
28
|
+
SchoolSpace as default
|
|
29
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import SchoolSpace from "./SchoolSpace.js";
|
|
3
|
+
import { useUserSchools } from "./useUserSchools.js";
|
|
4
|
+
function SchoolSpaceContainer() {
|
|
5
|
+
const {
|
|
6
|
+
handleSelectedSchoolChange,
|
|
7
|
+
...otherProps
|
|
8
|
+
} = useUserSchools();
|
|
9
|
+
return /* @__PURE__ */ jsx(SchoolSpace, { onSelectedSchoolChange: handleSelectedSchoolChange, ...otherProps });
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
SchoolSpaceContainer
|
|
13
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { WIDGET_NAME } from "@edifice.io/client";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
import useWidget from "../../hooks/useWidget.js";
|
|
4
|
+
import useSession from "../../../../hooks/useSession/useSession.js";
|
|
5
|
+
function useUserSchools() {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const {
|
|
8
|
+
data: session
|
|
9
|
+
} = useSession(), {
|
|
10
|
+
preference,
|
|
11
|
+
savePreference
|
|
12
|
+
} = useWidget(WIDGET_NAME.SCHOOL), [selectedSchool, setSelectedSchool] = useState(), [schools, setSchools] = useState((_a = session == null ? void 0 : session.userDescription) == null ? void 0 : _a.schools);
|
|
13
|
+
return useEffect(() => {
|
|
14
|
+
var _a2;
|
|
15
|
+
const newSchools = (_a2 = session == null ? void 0 : session.userDescription) == null ? void 0 : _a2.schools;
|
|
16
|
+
setSchools(newSchools), setSelectedSchool(newSchools == null ? void 0 : newSchools[0]);
|
|
17
|
+
}, [(_b = session == null ? void 0 : session.userDescription) == null ? void 0 : _b.schools]), useEffect(() => {
|
|
18
|
+
if (Array.isArray(schools)) {
|
|
19
|
+
if (schools.length === 1)
|
|
20
|
+
setSelectedSchool(schools[0]);
|
|
21
|
+
else if (preference != null && preference.schoolId) {
|
|
22
|
+
const index = schools.findIndex((school) => school.id === (preference == null ? void 0 : preference.schoolId));
|
|
23
|
+
setSelectedSchool(index < 0 || index >= schools.length ? schools[0] : schools[index]);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}, [preference, schools]), {
|
|
27
|
+
schools: schools ?? [],
|
|
28
|
+
selectedSchool,
|
|
29
|
+
handleSelectedSchoolChange: (school) => {
|
|
30
|
+
setSelectedSchool(school), preference && savePreference({
|
|
31
|
+
...preference,
|
|
32
|
+
schoolId: school.id
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
useUserSchools
|
|
39
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { UserProfile } from '@edifice.io/client';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
export type UserSpaceProps = {
|
|
4
|
+
name: string;
|
|
5
|
+
avatar: string;
|
|
6
|
+
profile: UserProfile[number];
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
};
|
|
9
|
+
declare function UserSpace({ name, avatar, profile, children, }: UserSpaceProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare namespace UserSpace {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
export default UserSpace;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import HomeCard from "../HomeCard/HomeCard.js";
|
|
4
|
+
import Flex from "../../../../components/Flex/Flex.js";
|
|
5
|
+
import Avatar from "../../../../components/Avatar/Avatar.js";
|
|
6
|
+
function UserSpace({
|
|
7
|
+
name,
|
|
8
|
+
avatar,
|
|
9
|
+
profile,
|
|
10
|
+
children
|
|
11
|
+
}) {
|
|
12
|
+
const {
|
|
13
|
+
t
|
|
14
|
+
} = useTranslation();
|
|
15
|
+
return /* @__PURE__ */ jsxs(HomeCard, { variant: "user", children: [
|
|
16
|
+
/* @__PURE__ */ jsx(HomeCard.Header, { title: /* @__PURE__ */ jsxs(Flex, { className: "user-space", direction: "row", gap: "8", children: [
|
|
17
|
+
/* @__PURE__ */ jsx(Avatar, { className: "user-space--avatar", size: "auto", alt: name, src: avatar, variant: "circle" }),
|
|
18
|
+
/* @__PURE__ */ jsxs(Flex, { direction: "column", children: [
|
|
19
|
+
/* @__PURE__ */ jsx("div", { "data-testid": "user-space-name", className: "user-space--name", children: name }),
|
|
20
|
+
/* @__PURE__ */ jsx("div", { "data-testid": "user-space-profile", className: "user-space--profile", children: t(profile) })
|
|
21
|
+
] })
|
|
22
|
+
] }) }),
|
|
23
|
+
children && /* @__PURE__ */ jsx(HomeCard.Content, { children })
|
|
24
|
+
] });
|
|
25
|
+
}
|
|
26
|
+
export {
|
|
27
|
+
UserSpace as default
|
|
28
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import UserSpace from "./UserSpace.js";
|
|
3
|
+
import useUser from "../../../../hooks/useUser/useUser.js";
|
|
4
|
+
function UserSpaceContainer({
|
|
5
|
+
children
|
|
6
|
+
}) {
|
|
7
|
+
var _a;
|
|
8
|
+
const {
|
|
9
|
+
user,
|
|
10
|
+
avatar,
|
|
11
|
+
userDescription
|
|
12
|
+
} = useUser();
|
|
13
|
+
if (!user || !userDescription) return null;
|
|
14
|
+
const name = user.username || "", profile = ((_a = userDescription.profiles) == null ? void 0 : _a[0]) || "Guest";
|
|
15
|
+
return /* @__PURE__ */ jsx(UserSpace, { name, profile, avatar, children });
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
UserSpaceContainer
|
|
19
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { WidgetName, WidgetUserPref } from '@edifice.io/client';
|
|
2
|
+
export default function useWidget(widgetName: WidgetName): {
|
|
3
|
+
widget: import('@edifice.io/client').IWidgetModel | undefined;
|
|
4
|
+
preference: WidgetUserPref | undefined;
|
|
5
|
+
savePreference: (pref: WidgetUserPref) => Promise<void> | undefined;
|
|
6
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { WIDGET_POSITION } from "@edifice.io/client";
|
|
2
|
+
import { useMemo, useState, useCallback, useEffect } from "react";
|
|
3
|
+
import { useWidgetPreferences } from "./useWidgetPreferences.js";
|
|
4
|
+
const DEFAULT_VALUES = (/* @__PURE__ */ new Map()).set("school-widget", {
|
|
5
|
+
index: 0,
|
|
6
|
+
position: WIDGET_POSITION.LEFT
|
|
7
|
+
}).set("my-apps", {
|
|
8
|
+
index: 10,
|
|
9
|
+
position: WIDGET_POSITION.RIGHT
|
|
10
|
+
}).set("record-me", {
|
|
11
|
+
index: 15,
|
|
12
|
+
position: WIDGET_POSITION.RIGHT
|
|
13
|
+
}).set("last-infos-widget", {
|
|
14
|
+
index: 20,
|
|
15
|
+
position: WIDGET_POSITION.LEFT
|
|
16
|
+
}).set("qwant", {
|
|
17
|
+
index: 30,
|
|
18
|
+
position: WIDGET_POSITION.RIGHT
|
|
19
|
+
}).set("qwant-junior", {
|
|
20
|
+
index: 30,
|
|
21
|
+
position: WIDGET_POSITION.LEFT
|
|
22
|
+
}).set("universalis-widget", {
|
|
23
|
+
index: 35,
|
|
24
|
+
position: WIDGET_POSITION.RIGHT
|
|
25
|
+
}).set("agenda-widget", {
|
|
26
|
+
index: 40,
|
|
27
|
+
position: WIDGET_POSITION.LEFT
|
|
28
|
+
}).set("bookmark-widget", {
|
|
29
|
+
index: 50,
|
|
30
|
+
position: WIDGET_POSITION.RIGHT
|
|
31
|
+
}).set("carnet-de-bord", {
|
|
32
|
+
index: 60,
|
|
33
|
+
position: WIDGET_POSITION.LEFT
|
|
34
|
+
}).set("maxicours-widget", {
|
|
35
|
+
index: 70,
|
|
36
|
+
position: WIDGET_POSITION.RIGHT
|
|
37
|
+
}).set("cursus-widget", {
|
|
38
|
+
index: 80,
|
|
39
|
+
position: WIDGET_POSITION.LEFT
|
|
40
|
+
}).set("briefme-widget", {
|
|
41
|
+
index: 90,
|
|
42
|
+
position: WIDGET_POSITION.LEFT
|
|
43
|
+
}).set("rss-widget", {
|
|
44
|
+
index: 100,
|
|
45
|
+
position: WIDGET_POSITION.LEFT
|
|
46
|
+
}).set("mood", {
|
|
47
|
+
index: 110,
|
|
48
|
+
position: WIDGET_POSITION.LEFT
|
|
49
|
+
}).set("birthday", {
|
|
50
|
+
index: 120,
|
|
51
|
+
position: WIDGET_POSITION.LEFT
|
|
52
|
+
}).set("calendar-widget", {
|
|
53
|
+
index: 130,
|
|
54
|
+
position: WIDGET_POSITION.RIGHT
|
|
55
|
+
}).set("notes", {
|
|
56
|
+
index: 140,
|
|
57
|
+
position: WIDGET_POSITION.RIGHT
|
|
58
|
+
});
|
|
59
|
+
function useWidget(widgetName) {
|
|
60
|
+
const {
|
|
61
|
+
widgets,
|
|
62
|
+
preferences,
|
|
63
|
+
savePreferences
|
|
64
|
+
} = useWidgetPreferences(), widget = useMemo(() => widgets == null ? void 0 : widgets.find((w) => w.name === widgetName), [widgets, widgetName]), [preference, setPreference] = useState(), savePreference = useCallback((pref) => {
|
|
65
|
+
if (preferences)
|
|
66
|
+
return preferences[widgetName] = pref, savePreferences(preferences);
|
|
67
|
+
}, [preferences, savePreferences, widgetName]);
|
|
68
|
+
return useEffect(() => {
|
|
69
|
+
const defaultValue = DEFAULT_VALUES.get(widgetName), pref = (preferences == null ? void 0 : preferences[widgetName]) ?? {
|
|
70
|
+
index: (defaultValue == null ? void 0 : defaultValue.index) ?? 999,
|
|
71
|
+
show: !0,
|
|
72
|
+
position: defaultValue == null ? void 0 : defaultValue.position
|
|
73
|
+
};
|
|
74
|
+
widget != null && widget.mandatory && (pref.show = !0, pref.index = (defaultValue == null ? void 0 : defaultValue.index) ?? 0), setPreference(pref);
|
|
75
|
+
}, [preferences, widget, widgetName]), {
|
|
76
|
+
widget,
|
|
77
|
+
preference,
|
|
78
|
+
savePreference
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export {
|
|
82
|
+
useWidget as default
|
|
83
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IWidgetPreferences } from '@edifice.io/client';
|
|
2
|
+
export declare function useWidgetPreferences(): {
|
|
3
|
+
widgets: import('@edifice.io/client').IWidgetModel[] | undefined;
|
|
4
|
+
preferences: IWidgetPreferences | undefined;
|
|
5
|
+
savePreferences: (prefs: IWidgetPreferences) => Promise<void>;
|
|
6
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { odeServices } from "@edifice.io/client";
|
|
2
|
+
import { useQueryClient, useQuery, queryOptions, useMutation } from "@tanstack/react-query";
|
|
3
|
+
const WIDGETS_QUERY_KEY = ["widgets", "system"], PREFERENCES_QUERY_KEY = ["widgets", "preferences"];
|
|
4
|
+
function useWidgetPreferences() {
|
|
5
|
+
const queryClient = useQueryClient(), {
|
|
6
|
+
data: widgets
|
|
7
|
+
} = useQuery(queryOptions({
|
|
8
|
+
queryKey: WIDGETS_QUERY_KEY,
|
|
9
|
+
queryFn: () => odeServices.widget().getSystemWidgets()
|
|
10
|
+
})), {
|
|
11
|
+
data: preferences
|
|
12
|
+
} = useQuery(queryOptions({
|
|
13
|
+
queryKey: PREFERENCES_QUERY_KEY,
|
|
14
|
+
queryFn: () => odeServices.widget().getPreferences()
|
|
15
|
+
})), preferencesMutation = useMutation({
|
|
16
|
+
mutationFn: (prefs) => odeServices.widget().setPreferences(prefs),
|
|
17
|
+
onMutate: async (prefs) => {
|
|
18
|
+
queryClient.setQueryData(PREFERENCES_QUERY_KEY, () => prefs);
|
|
19
|
+
},
|
|
20
|
+
onError() {
|
|
21
|
+
queryClient.invalidateQueries({
|
|
22
|
+
queryKey: PREFERENCES_QUERY_KEY
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return {
|
|
27
|
+
widgets,
|
|
28
|
+
preferences,
|
|
29
|
+
savePreferences: (prefs) => preferencesMutation.mutateAsync(prefs)
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
useWidgetPreferences
|
|
34
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconCommunitiesBeta: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconCommunitiesBeta;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
const SvgIconCommunitiesBeta = ({
|
|
3
|
+
title,
|
|
4
|
+
titleId,
|
|
5
|
+
...props
|
|
6
|
+
}) => /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", fill: "none", viewBox: "0 0 32 32", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
|
|
7
|
+
title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
|
|
8
|
+
/* @__PURE__ */ jsxs("g", { strokeMiterlimit: 10, strokeWidth: 2.667, clipPath: "url(#icon-communities-beta_svg__a)", children: [
|
|
9
|
+
/* @__PURE__ */ jsx("path", { fill: "#FEECFE", stroke: "#E26AE2", d: "M19.96 5.803a3.803 3.803 0 1 0-7.605 0 3.803 3.803 0 0 0 7.606 0Z" }),
|
|
10
|
+
/* @__PURE__ */ jsx("path", { stroke: "#E26AE2", d: "M9.668 11.861a3.803 3.803 0 1 0-7.606 0 3.803 3.803 0 0 0 7.606 0ZM30.254 11.861a3.803 3.803 0 1 0-7.606 0 3.803 3.803 0 0 0 7.606 0Z" }),
|
|
11
|
+
/* @__PURE__ */ jsx("path", { stroke: "#FC94FF", d: "M6.389 18.847a5.25 5.25 0 0 1 5.248 5.248v6.837H1.14v-6.837a5.25 5.25 0 0 1 5.248-5.248ZM25.637 18.847a5.25 5.25 0 0 1 5.248 5.248v6.837H20.389v-6.837a5.25 5.25 0 0 1 5.248-5.248Z" }),
|
|
12
|
+
/* @__PURE__ */ jsx("path", { fill: "#FEECFE", stroke: "#E26AE2", d: "M16.158 12.955a5.25 5.25 0 0 1 5.248 5.248v12.73H10.91v-12.73a5.25 5.25 0 0 1 5.248-5.248Z" })
|
|
13
|
+
] }),
|
|
14
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "icon-communities-beta_svg__a", children: /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M0 0h32v32H0z" }) }) })
|
|
15
|
+
] });
|
|
16
|
+
export {
|
|
17
|
+
SvgIconCommunitiesBeta as default
|
|
18
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SVGProps } from 'react';
|
|
2
|
+
interface SVGRProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
titleId?: string;
|
|
5
|
+
}
|
|
6
|
+
declare const SvgIconHomeBeta: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default SvgIconHomeBeta;
|