@edifice.io/react 2.6.9-develop.20261013171251 → 2.6.10-develop-b2school.20261019104630

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.
Files changed (133) hide show
  1. package/dist/components/Layout/Layout.js +12 -4
  2. package/dist/components/Layout/components/Header.js +4 -4
  3. package/dist/components/Layout/components/NavLink.d.ts +3 -3
  4. package/dist/components/Layout/components/NavLink.js +5 -3
  5. package/dist/components/Tree/utilities/tree.js +21 -1
  6. package/dist/homepage.js +62 -24
  7. package/dist/hooks/index.d.ts +2 -0
  8. package/dist/hooks/useBackground/useBackground.d.ts +1 -1
  9. package/dist/hooks/useCarbonioUnread/index.d.ts +1 -0
  10. package/dist/hooks/useCarbonioUnread/useCarbonioUnread.d.ts +5 -0
  11. package/dist/hooks/useCarbonioUnread/useCarbonioUnread.js +24 -0
  12. package/dist/hooks/useNextcloudSearch/index.d.ts +1 -0
  13. package/dist/hooks/useNextcloudSearch/useNextcloudSearch.d.ts +14 -0
  14. package/dist/hooks/useNextcloudSearch/useNextcloudSearch.js +64 -0
  15. package/dist/hooks/useZendeskGuide/useZendeskGuide.d.ts +2 -6
  16. package/dist/hooks/useZendeskGuide/useZendeskGuide.js +11 -8
  17. package/dist/icons.js +404 -402
  18. package/dist/index.js +160 -152
  19. package/dist/modules/HelpZone/HelpZone.js +6 -8
  20. package/dist/modules/HelpZone/HelpZoneContainer.js +2 -5
  21. package/dist/modules/homepage/components/Agenda/Agenda.d.ts +10 -0
  22. package/dist/modules/homepage/components/Agenda/Agenda.js +54 -0
  23. package/dist/modules/homepage/components/Agenda/AgendaContainer.d.ts +1 -0
  24. package/dist/modules/homepage/components/Agenda/AgendaContainer.js +14 -0
  25. package/dist/modules/homepage/components/Agenda/AgendaEventCard.d.ts +10 -0
  26. package/dist/modules/homepage/components/Agenda/AgendaEventCard.js +30 -0
  27. package/dist/modules/homepage/components/Agenda/hooks/useAgendaContainer.d.ts +14 -0
  28. package/dist/modules/homepage/components/Agenda/hooks/useAgendaContainer.js +27 -0
  29. package/dist/modules/homepage/components/Agenda/index.d.ts +3 -0
  30. package/dist/modules/homepage/components/Agenda/services/api/agendaService.d.ts +24 -0
  31. package/dist/modules/homepage/components/Agenda/services/api/agendaService.js +45 -0
  32. package/dist/modules/homepage/components/Agenda/services/api/index.d.ts +4 -0
  33. package/dist/modules/homepage/components/Agenda/services/api/index.js +5 -0
  34. package/dist/modules/homepage/components/Agenda/services/queries/agenda.d.ts +19 -0
  35. package/dist/modules/homepage/components/Agenda/services/queries/agenda.js +26 -0
  36. package/dist/modules/homepage/components/BriefMe/BriefMe.d.ts +9 -0
  37. package/dist/modules/homepage/components/BriefMe/BriefMe.js +59 -0
  38. package/dist/modules/homepage/components/BriefMe/BriefMeContainer.d.ts +4 -0
  39. package/dist/modules/homepage/components/BriefMe/BriefMeContainer.js +17 -0
  40. package/dist/modules/homepage/components/BriefMe/index.d.ts +4 -0
  41. package/dist/modules/homepage/components/BriefMe/types.d.ts +17 -0
  42. package/dist/modules/homepage/components/BriefMe/types.js +8 -0
  43. package/dist/modules/homepage/components/BriefMe/useBriefMe.d.ts +31 -0
  44. package/dist/modules/homepage/components/BriefMe/useBriefMe.js +51 -0
  45. package/dist/modules/homepage/components/Cantine/Cantine.d.ts +7 -0
  46. package/dist/modules/homepage/components/Cantine/Cantine.js +44 -0
  47. package/dist/modules/homepage/components/Cantine/CantineContainer.d.ts +4 -0
  48. package/dist/modules/homepage/components/Cantine/CantineContainer.js +18 -0
  49. package/dist/modules/homepage/components/Cantine/CantineModal.d.ts +24 -0
  50. package/dist/modules/homepage/components/Cantine/CantineModal.js +88 -0
  51. package/dist/modules/homepage/components/Cantine/CantineModalContainer.d.ts +7 -0
  52. package/dist/modules/homepage/components/Cantine/CantineModalContainer.js +12 -0
  53. package/dist/modules/homepage/components/Cantine/components/CantineLegend.d.ts +5 -0
  54. package/dist/modules/homepage/components/Cantine/components/CantineLegend.js +22 -0
  55. package/dist/modules/homepage/components/Cantine/components/CantineMenuSection.d.ts +6 -0
  56. package/dist/modules/homepage/components/Cantine/components/CantineMenuSection.js +28 -0
  57. package/dist/modules/homepage/components/Cantine/components/cantineLabels.d.ts +12 -0
  58. package/dist/modules/homepage/components/Cantine/components/cantineLabels.js +60 -0
  59. package/dist/modules/homepage/components/Cantine/hooks/useCantine.d.ts +11 -0
  60. package/dist/modules/homepage/components/Cantine/hooks/useCantine.js +20 -0
  61. package/dist/modules/homepage/components/Cantine/hooks/useCantineMenu.d.ts +24 -0
  62. package/dist/modules/homepage/components/Cantine/hooks/useCantineMenu.js +65 -0
  63. package/dist/modules/homepage/components/Cantine/hooks/useCantineModal.d.ts +23 -0
  64. package/dist/modules/homepage/components/Cantine/hooks/useCantineModal.js +43 -0
  65. package/dist/modules/homepage/components/Cantine/index.d.ts +7 -0
  66. package/dist/modules/homepage/components/Cantine/types.d.ts +42 -0
  67. package/dist/modules/homepage/components/Communities/Communities.js +4 -4
  68. package/dist/modules/homepage/components/GenerationHdf/GenerationHdf.d.ts +16 -0
  69. package/dist/modules/homepage/components/GenerationHdf/GenerationHdf.js +48 -0
  70. package/dist/modules/homepage/components/GenerationHdf/GenerationHdfContainer.d.ts +4 -0
  71. package/dist/modules/homepage/components/GenerationHdf/GenerationHdfContainer.js +12 -0
  72. package/dist/modules/homepage/components/GenerationHdf/formatSolde.d.ts +1 -0
  73. package/dist/modules/homepage/components/GenerationHdf/formatSolde.js +6 -0
  74. package/dist/modules/homepage/components/GenerationHdf/index.d.ts +3 -0
  75. package/dist/modules/homepage/components/GenerationHdf/useGenerationHdf.d.ts +10 -0
  76. package/dist/modules/homepage/components/GenerationHdf/useGenerationHdf.js +68 -0
  77. package/dist/modules/homepage/components/Header/Header.js +37 -14
  78. package/dist/modules/homepage/components/Header/MyAppsPopover.d.ts +5 -0
  79. package/dist/modules/homepage/components/Header/MyAppsPopover.js +28 -0
  80. package/dist/modules/homepage/components/Header/useSafeHoverPopover.js +32 -0
  81. package/dist/modules/homepage/components/HomeCard/HomeCardHeader.d.ts +5 -1
  82. package/dist/modules/homepage/components/HomeCard/HomeCardHeader.js +1 -1
  83. package/dist/modules/homepage/components/MessageFlashList/MessageFlash.js +1 -1
  84. package/dist/modules/homepage/components/Notifications/NotificationList.js +5 -5
  85. package/dist/modules/homepage/components/Notifications/NotificationSkeleton.js +2 -2
  86. package/dist/modules/homepage/components/Notifications/components/NotificationFilterMenu.js +1 -5
  87. package/dist/modules/homepage/components/Notifications/components/NotificationFilterModal.js +10 -12
  88. package/dist/modules/homepage/components/Notifications/components/NotificationOptionsMenu.js +3 -9
  89. package/dist/modules/homepage/components/Notifications/components/ReportNotificationModal.js +6 -12
  90. package/dist/modules/homepage/components/Notifications/components/notificationAdapter.js +12 -10
  91. package/dist/modules/homepage/components/Notifications/hooks/useNotificationList.js +9 -10
  92. package/dist/modules/homepage/components/Qwant/Qwant.d.ts +4 -0
  93. package/dist/modules/homepage/components/Qwant/Qwant.js +41 -0
  94. package/dist/modules/homepage/components/Qwant/QwantContainer.d.ts +1 -0
  95. package/dist/modules/homepage/components/Qwant/QwantContainer.js +10 -0
  96. package/dist/modules/homepage/components/Qwant/index.d.ts +3 -0
  97. package/dist/modules/homepage/components/SchoolSpace/SchoolSpaceContainer.js +1 -1
  98. package/dist/modules/homepage/components/Universalis/Universalis.d.ts +8 -0
  99. package/dist/modules/homepage/components/Universalis/Universalis.js +62 -0
  100. package/dist/modules/homepage/components/Universalis/UniversalisContainer.d.ts +1 -0
  101. package/dist/modules/homepage/components/Universalis/UniversalisContainer.js +16 -0
  102. package/dist/modules/homepage/components/Universalis/index.d.ts +3 -0
  103. package/dist/modules/homepage/components/UserSpace/UserSpace.d.ts +3 -1
  104. package/dist/modules/homepage/components/UserSpace/UserSpace.js +13 -7
  105. package/dist/modules/homepage/components/UserSpace/UserSpaceContainer.d.ts +4 -2
  106. package/dist/modules/homepage/components/UserSpace/UserSpaceContainer.js +3 -2
  107. package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetToggle.d.ts +16 -0
  108. package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetToggle.js +15 -0
  109. package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetsPersonalizationPanel.d.ts +21 -0
  110. package/dist/modules/homepage/components/WidgetsPersonalizationPanel/WidgetsPersonalizationPanel.js +47 -0
  111. package/dist/modules/homepage/components/WidgetsPersonalizationPanel/index.d.ts +2 -0
  112. package/dist/modules/homepage/components/index.d.ts +8 -1
  113. package/dist/modules/homepage/{components/SchoolSpace → hooks}/useUserSchools.d.ts +2 -2
  114. package/dist/modules/homepage/{components/SchoolSpace → hooks}/useUserSchools.js +4 -4
  115. package/dist/modules/icons/components/IconAddWidget.d.ts +7 -0
  116. package/dist/modules/icons/components/IconAddWidget.js +12 -0
  117. package/dist/modules/icons/components/index.d.ts +1 -0
  118. package/dist/modules/multimedia/FileCard/NextcloudFileCard.d.ts +25 -0
  119. package/dist/modules/multimedia/FileCard/NextcloudFileCard.js +102 -0
  120. package/dist/modules/multimedia/FileCard/index.d.ts +2 -0
  121. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.d.ts +2 -2
  122. package/dist/modules/multimedia/MediaLibrary/MediaLibrary.js +36 -11
  123. package/dist/modules/multimedia/MediaLibrary/innertabs/Nextcloud.d.ts +1 -0
  124. package/dist/modules/multimedia/MediaLibrary/innertabs/Nextcloud.js +48 -0
  125. package/dist/modules/multimedia/MediaLibrary/innertabs/index.d.ts +1 -0
  126. package/dist/modules/multimedia/MediaLibrary/innertabs/index.js +2 -0
  127. package/dist/modules/multimedia/Nextcloud/Nextcloud.d.ts +24 -0
  128. package/dist/modules/multimedia/Nextcloud/Nextcloud.js +120 -0
  129. package/dist/modules/multimedia/Nextcloud/index.d.ts +2 -0
  130. package/dist/modules/multimedia/Workspace/Workspace.js +8 -5
  131. package/dist/modules/multimedia/index.d.ts +1 -0
  132. package/dist/multimedia.js +16 -12
  133. package/package.json +6 -6
@@ -0,0 +1,120 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useRef, useState, useCallback, useEffect, useMemo } from "react";
3
+ import { DocumentHelper } from "@edifice.io/client";
4
+ import clsx from "clsx";
5
+ import { useTranslation } from "react-i18next";
6
+ import { findNodeById } from "../../../components/Tree/utilities/tree.js";
7
+ import SvgIconSortAscendingLetters from "../../icons/components/IconSortAscendingLetters.js";
8
+ import SvgIconSortDescendingLetters from "../../icons/components/IconSortDescendingLetters.js";
9
+ import SvgIconSortTime from "../../icons/components/IconSortTime.js";
10
+ import illuError from "@edifice.io/bootstrap/dist/images/emptyscreen/illu-error.svg";
11
+ import illuConnectionLost from "@edifice.io/bootstrap/dist/images/emptyscreen/illu-connection-lost.svg";
12
+ import illuTrash from "@edifice.io/bootstrap/dist/images/emptyscreen/illu-trash.svg";
13
+ import useUser from "../../../hooks/useUser/useUser.js";
14
+ import useToast from "../../../hooks/useToast/useToast.js";
15
+ import useNextcloudSearch from "../../../hooks/useNextcloudSearch/useNextcloudSearch.js";
16
+ import LoadingScreen from "../../../components/LoadingScreen/LoadingScreen.js";
17
+ import Flex from "../../../components/Flex/Flex.js";
18
+ import EmptyScreen from "../../../components/EmptyScreen/EmptyScreen.js";
19
+ import Button from "../../../components/Button/Button.js";
20
+ import { Grid } from "../../../components/Grid/Grid.js";
21
+ import Tree from "../../../components/Tree/components/Tree.js";
22
+ import SearchBar from "../../../components/SearchBar/SearchBar.js";
23
+ import Dropdown from "../../../components/Dropdown/Dropdown.js";
24
+ import NextcloudFileCard from "../FileCard/NextcloudFileCard.js";
25
+ const ROOT_ID = "root";
26
+ function compare(a, b) {
27
+ return a === b ? 0 : a === void 0 ? -1 : b === void 0 ? 1 : a.localeCompare(b);
28
+ }
29
+ const Nextcloud = ({
30
+ onSelect,
31
+ multiple = !0,
32
+ roles,
33
+ className
34
+ }) => {
35
+ const {
36
+ t
37
+ } = useTranslation(), {
38
+ user
39
+ } = useUser(), toast = useToast(), {
40
+ root,
41
+ needsAuth,
42
+ isCheckingAuth,
43
+ isAuthError,
44
+ refetchAuthStatus,
45
+ loadContent,
46
+ loadError
47
+ } = useNextcloudSearch(ROOT_ID, t("nextcloud"), user == null ? void 0 : user.userId), popupRef = useRef(null), [currentNodeId, setCurrentNodeId] = useState(ROOT_ID), currentNode = findNodeById(root, currentNodeId) ?? root, [searchTerm, setSearchTerm] = useState(void 0), [sortOrder, setSortOrder] = useState(["modified", "desc"]), [selectedDocuments, setSelectedDocuments] = useState([]), handleTreeItemChange = useCallback((nodeId) => {
48
+ setCurrentNodeId(nodeId), loadContent(nodeId);
49
+ }, [loadContent]);
50
+ useEffect(() => {
51
+ needsAuth || loadContent(ROOT_ID);
52
+ }, [loadContent, needsAuth]);
53
+ const documents = useMemo(() => {
54
+ if (!currentNode.files) return;
55
+ const matchesRole = (doc) => {
56
+ if (!roles) return !0;
57
+ const role = DocumentHelper.role(doc.contentType, !1);
58
+ return Array.isArray(roles) ? roles.includes(role) : roles === role;
59
+ }, normalizedSearchTerm = searchTerm == null ? void 0 : searchTerm.toLowerCase(), list = currentNode.files.filter((f) => (!normalizedSearchTerm || f.name.toLowerCase().includes(normalizedSearchTerm)) && matchesRole(f));
60
+ let sortFunction;
61
+ return sortOrder[0] === "name" ? sortFunction = sortOrder[1] === "asc" ? (a, b) => compare(a.name, b.name) : (a, b) => compare(b.name, a.name) : sortFunction = (a, b) => compare(b.lastModified, a.lastModified), list.sort(sortFunction);
62
+ }, [currentNode, searchTerm, sortOrder, roles]), selectedPaths = useMemo(() => new Set(selectedDocuments.map((d) => d.path)), [selectedDocuments]), handleSearchChange = useCallback((e) => {
63
+ setSearchTerm(e.target.value);
64
+ }, [setSearchTerm]);
65
+ function getSortOrderLabel() {
66
+ return sortOrder[0] === "name" ? sortOrder[1] === "asc" ? t("sort.order.alpha.asc") : t("sort.order.alpha.desc") : t("sort.order.modify.desc");
67
+ }
68
+ function handleSelectDoc(doc) {
69
+ let currentDocuments = [...selectedDocuments];
70
+ multiple ? currentDocuments.some((selectedDocument) => selectedDocument.path === doc.path) ? currentDocuments = currentDocuments.filter((selectedDocument) => selectedDocument.path !== doc.path) : currentDocuments = [...currentDocuments, doc] : currentDocuments = [doc], setSelectedDocuments(currentDocuments), onSelect(currentDocuments);
71
+ }
72
+ const nextcloud = clsx("workspace flex-grow-1 gap-0", className), openLoginPopup = () => {
73
+ popupRef.current = window.open(`${window.location.origin}/nextcloud/user/oauth2/init`, "", "popup, height=600, width=400"), popupRef.current || toast.error(t("nextcloud.auth.popupBlocked"));
74
+ };
75
+ return useEffect(() => {
76
+ function handleMessage(event) {
77
+ var _a;
78
+ event.origin !== window.location.origin || ((_a = event.data) == null ? void 0 : _a.type) !== "nextcloud-connected" || (popupRef.current && !popupRef.current.closed && popupRef.current.close(), refetchAuthStatus());
79
+ }
80
+ return window.addEventListener("message", handleMessage), () => window.removeEventListener("message", handleMessage);
81
+ }, [refetchAuthStatus]), isCheckingAuth ? /* @__PURE__ */ jsx(LoadingScreen, {}) : isAuthError ? /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "12", className: "h-full w-100", justify: "center", align: "center", children: [
82
+ /* @__PURE__ */ jsx(EmptyScreen, { imageSrc: illuError, title: t("nextcloud.error.title"), text: t("nextcloud.error.description") }),
83
+ /* @__PURE__ */ jsx(Button, { onClick: () => refetchAuthStatus(), children: t("retry") })
84
+ ] }) : needsAuth ? /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "12", className: "h-full w-100", justify: "center", align: "center", children: [
85
+ /* @__PURE__ */ jsx(EmptyScreen, { imageSrc: illuConnectionLost, title: t("nextcloud.auth.title"), text: t("nextcloud.auth.description") }),
86
+ /* @__PURE__ */ jsx(Button, { onClick: openLoginPopup, children: t("nextcloud.auth.connect") })
87
+ ] }) : /* @__PURE__ */ jsxs(Grid, { className: nextcloud, children: [
88
+ /* @__PURE__ */ jsx(Grid.Col, { sm: "12", md: "3", xl: "4", className: "workspace-folders p-12 pt-0 gap-12", children: /* @__PURE__ */ jsx("div", { style: {
89
+ position: "sticky",
90
+ top: 0,
91
+ paddingTop: "1.2rem"
92
+ }, children: /* @__PURE__ */ jsx(Tree, { nodes: root, selectedNodeId: currentNodeId, showIcon: !0, onTreeItemClick: handleTreeItemChange, onTreeItemUnfold: handleTreeItemChange }) }) }),
93
+ /* @__PURE__ */ jsx(Grid.Col, { sm: "12", md: "5", xl: "8", children: /* @__PURE__ */ jsxs(Grid, { className: "flex-grow-1 gap-0", children: [
94
+ /* @__PURE__ */ jsxs(Grid.Col, { sm: "4", md: "8", xl: "12", children: [
95
+ /* @__PURE__ */ jsx("div", { className: "workspace-search px-16 py-8 ", children: /* @__PURE__ */ jsx(SearchBar, { isVariant: !0, className: "gap-16", onChange: handleSearchChange }) }),
96
+ /* @__PURE__ */ jsxs(Flex, { className: "px-8 py-4", align: "center", justify: "end", children: [
97
+ /* @__PURE__ */ jsx("small", { className: "text-muted", children: t("workspace.search.order") }),
98
+ /* @__PURE__ */ jsxs(Dropdown, { children: [
99
+ /* @__PURE__ */ jsx(Dropdown.Trigger, { size: "sm", label: getSortOrderLabel(), variant: "ghost" }),
100
+ /* @__PURE__ */ jsxs(Dropdown.Menu, { children: [
101
+ /* @__PURE__ */ jsx(Dropdown.Item, { icon: /* @__PURE__ */ jsx(SvgIconSortTime, {}), onClick: () => setSortOrder(["modified", "desc"]), children: t("sort.order.modify.desc") }),
102
+ /* @__PURE__ */ jsx(Dropdown.Item, { icon: /* @__PURE__ */ jsx(SvgIconSortAscendingLetters, {}), onClick: () => setSortOrder(["name", "asc"]), children: t("sort.order.alpha.asc") }),
103
+ /* @__PURE__ */ jsx(Dropdown.Item, { icon: /* @__PURE__ */ jsx(SvgIconSortDescendingLetters, {}), onClick: () => setSortOrder(["name", "desc"]), children: t("sort.order.alpha.desc") })
104
+ ] })
105
+ ] })
106
+ ] })
107
+ ] }),
108
+ /* @__PURE__ */ jsx(Grid.Col, { sm: "4", md: "8", xl: "12", className: "p-8 gap-8", children: loadError ? /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "12", className: "h-full w-100", justify: "center", align: "center", children: [
109
+ /* @__PURE__ */ jsx(EmptyScreen, { imageSrc: illuError, title: t("nextcloud.error.title"), text: t("nextcloud.error.description") }),
110
+ /* @__PURE__ */ jsx(Button, { onClick: () => loadContent(currentNodeId), children: t("retry") })
111
+ ] }) : documents ? documents.length !== 0 ? /* @__PURE__ */ jsx("div", { className: "grid grid-workspace", children: documents.map((doc) => {
112
+ const isSelected = selectedPaths.has(doc.path);
113
+ return /* @__PURE__ */ jsx(NextcloudFileCard, { doc, userId: user.userId, isSelected, onClick: () => handleSelectDoc(doc) }, doc.path);
114
+ }) }) : /* @__PURE__ */ jsx(EmptyScreen, { imageSrc: illuTrash, text: t("workspace.empty.docSpace"), title: t("explorer.emptyScreen.trash.title") }) : /* @__PURE__ */ jsx(LoadingScreen, {}) })
115
+ ] }) })
116
+ ] });
117
+ };
118
+ export {
119
+ Nextcloud as default
120
+ };
@@ -0,0 +1,2 @@
1
+ export { default as Nextcloud } from './Nextcloud';
2
+ export * from './Nextcloud';
@@ -6,6 +6,7 @@ import SvgIconSortAscendingLetters from "../../icons/components/IconSortAscendin
6
6
  import SvgIconSortDescendingLetters from "../../icons/components/IconSortDescendingLetters.js";
7
7
  import SvgIconSortTime from "../../icons/components/IconSortTime.js";
8
8
  import illuTrash from "@edifice.io/bootstrap/dist/images/emptyscreen/illu-trash.svg";
9
+ import useHasWorkflow from "../../../hooks/useHasWorkflow/useHasWorkflow.js";
9
10
  import useWorkspaceSearch from "../../../hooks/useWorkspaceSearch/useWorkspaceSearch.js";
10
11
  import { Grid } from "../../../components/Grid/Grid.js";
11
12
  import TreeView from "../../../components/TreeView/TreeView.js";
@@ -15,7 +16,7 @@ import LoadingScreen from "../../../components/LoadingScreen/LoadingScreen.js";
15
16
  import FileCard from "../FileCard/FileCard.js";
16
17
  import EmptyScreen from "../../../components/EmptyScreen/EmptyScreen.js";
17
18
  import { findTreeNode } from "../../../components/TreeView/utilities/treeview.js";
18
- const Workspace = ({
19
+ const WORKSPACE_VIEW_WORKFLOW = "org.entcore.workspace.controllers.WorkspaceController|view", Workspace = ({
19
20
  roles,
20
21
  onSelect,
21
22
  multiple = !0,
@@ -25,7 +26,7 @@ const Workspace = ({
25
26
  }) => {
26
27
  const {
27
28
  t
28
- } = useTranslation(), {
29
+ } = useTranslation(), hasWorkspaceViewRight = useHasWorkflow(WORKSPACE_VIEW_WORKFLOW), canViewPersonalFolders = !!hasWorkspaceViewRight, {
29
30
  root: ownerRoot,
30
31
  loadContent: loadOwnerDocs
31
32
  } = useWorkspaceSearch("root", t("workspace.tree.owner"), "owner", roles), {
@@ -111,7 +112,9 @@ const Workspace = ({
111
112
  return;
112
113
  }
113
114
  (_a = ref == null ? void 0 : ref.current) == null || _a.select("root");
114
- }, [currentFilter]), useEffect(loadContent, [loadContent]), useEffect(() => {
115
+ }, [currentFilter]), useEffect(() => {
116
+ hasWorkspaceViewRight === !1 && (currentFilter === "owner" || currentFilter === "shared") && selectAndLoadContent("protected", "root");
117
+ }, [hasWorkspaceViewRight]), useEffect(loadContent, [loadContent]), useEffect(() => {
115
118
  if (currentNode.files) {
116
119
  let list = [].concat(currentNode.files);
117
120
  searchTerm && (list = list.filter((f) => f.name.indexOf(searchTerm) >= 0));
@@ -140,8 +143,8 @@ const Workspace = ({
140
143
  top: 0,
141
144
  paddingTop: "1.2rem"
142
145
  }, children: [
143
- /* @__PURE__ */ jsx(TreeView, { ref: ownerRef, data: ownerRoot, onTreeItemClick: (nodeId) => selectAndLoadContent("owner", nodeId), onTreeItemUnfold: (nodeId) => selectAndLoadContent("owner", nodeId) }),
144
- /* @__PURE__ */ jsx(TreeView, { ref: sharedRef, data: sharedRoot, onTreeItemClick: (nodeId) => selectAndLoadContent("shared", nodeId), onTreeItemUnfold: (nodeId) => selectAndLoadContent("shared", nodeId) }),
146
+ canViewPersonalFolders && /* @__PURE__ */ jsx(TreeView, { ref: ownerRef, data: ownerRoot, onTreeItemClick: (nodeId) => selectAndLoadContent("owner", nodeId), onTreeItemUnfold: (nodeId) => selectAndLoadContent("owner", nodeId) }),
147
+ canViewPersonalFolders && /* @__PURE__ */ jsx(TreeView, { ref: sharedRef, data: sharedRoot, onTreeItemClick: (nodeId) => selectAndLoadContent("shared", nodeId), onTreeItemUnfold: (nodeId) => selectAndLoadContent("shared", nodeId) }),
145
148
  /* @__PURE__ */ jsx(TreeView, { ref: protectRef, data: protectRoot, onTreeItemClick: (nodeId) => selectAndLoadContent("protected", nodeId), onTreeItemUnfold: (nodeId) => selectAndLoadContent("protected", nodeId) }),
146
149
  showPublicFolder && /* @__PURE__ */ jsx(TreeView, { ref: publicRef, data: publicRoot, onTreeItemClick: (nodeId) => selectAndLoadContent("public", nodeId), onTreeItemUnfold: (nodeId) => selectAndLoadContent("public", nodeId) })
147
150
  ] }) }),
@@ -5,6 +5,7 @@ export * from './ImagePicker';
5
5
  export * from './FileCard';
6
6
  export * from './Linker';
7
7
  export * from './MediaLibrary';
8
+ export * from './Nextcloud';
8
9
  export * from './UploadCard';
9
10
  export * from './VideoEmbed';
10
11
  export * from './VideoRecorder';
@@ -4,12 +4,14 @@ import { default as default4 } from "./modules/multimedia/FileCard/FileCard.js";
4
4
  import { default as default5 } from "./modules/multimedia/ImageEditor/components/ImageEditor.js";
5
5
  import { default as default6 } from "./modules/multimedia/ImagePicker/ImagePicker.js";
6
6
  import { default as default7 } from "./modules/multimedia/MediaLibrary/MediaLibrary.js";
7
- import { default as default8 } from "./modules/multimedia/UploadCard/UploadCard.js";
8
- import { default as default9 } from "./modules/multimedia/UploadFiles/UploadFiles.js";
9
- import { default as default10 } from "./modules/multimedia/VideoEmbed/VideoEmbed.js";
10
- import { default as default11 } from "./modules/multimedia/VideoRecorder/VideoRecorder.js";
11
- import { default as default12 } from "./modules/multimedia/Workspace/Workspace.js";
12
- import { default as default13 } from "./modules/multimedia/WorkspaceFolders/WorkspaceFolders.js";
7
+ import { default as default8 } from "./modules/multimedia/Nextcloud/Nextcloud.js";
8
+ import { default as default9 } from "./modules/multimedia/FileCard/NextcloudFileCard.js";
9
+ import { default as default10 } from "./modules/multimedia/UploadCard/UploadCard.js";
10
+ import { default as default11 } from "./modules/multimedia/UploadFiles/UploadFiles.js";
11
+ import { default as default12 } from "./modules/multimedia/VideoEmbed/VideoEmbed.js";
12
+ import { default as default13 } from "./modules/multimedia/VideoRecorder/VideoRecorder.js";
13
+ import { default as default14 } from "./modules/multimedia/Workspace/Workspace.js";
14
+ import { default as default15 } from "./modules/multimedia/WorkspaceFolders/WorkspaceFolders.js";
13
15
  import { ExternalLinker } from "./modules/multimedia/Linker/ExternalLinker/ExternalLinker.js";
14
16
  import { InternalLinker } from "./modules/multimedia/Linker/InternalLinker/InternalLinker.js";
15
17
  import { Upload } from "./modules/multimedia/MediaLibrary/innertabs/Upload.js";
@@ -22,11 +24,13 @@ export {
22
24
  default6 as ImagePicker,
23
25
  InternalLinker,
24
26
  default7 as MediaLibrary,
27
+ default8 as Nextcloud,
28
+ default9 as NextcloudFileCard,
25
29
  Upload,
26
- default8 as UploadCard,
27
- default9 as UploadFiles,
28
- default10 as VideoEmbed,
29
- default11 as VideoRecorder,
30
- default12 as Workspace,
31
- default13 as WorkspaceFolders
30
+ default10 as UploadCard,
31
+ default11 as UploadFiles,
32
+ default12 as VideoEmbed,
33
+ default13 as VideoRecorder,
34
+ default14 as Workspace,
35
+ default15 as WorkspaceFolders
32
36
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edifice.io/react",
3
- "version": "2.6.9-develop.20261013171251",
3
+ "version": "2.6.10-develop-b2school.20261019104630",
4
4
  "description": "Edifice React Library",
5
5
  "keywords": [
6
6
  "react",
@@ -140,9 +140,9 @@
140
140
  "swiper": "10.1.0",
141
141
  "ua-parser-js": "1.0.36",
142
142
  "zustand": "4.5.7",
143
- "@edifice.io/bootstrap": "2.6.9-develop.20261013171251",
144
- "@edifice.io/utilities": "2.6.9-develop.20261013171251",
145
- "@edifice.io/tiptap-extensions": "2.6.9-develop.20261013171251"
143
+ "@edifice.io/utilities": "2.6.10-develop-b2school.20261019104630",
144
+ "@edifice.io/tiptap-extensions": "2.6.10-develop-b2school.20261019104630",
145
+ "@edifice.io/bootstrap": "2.6.10-develop-b2school.20261019104630"
146
146
  },
147
147
  "devDependencies": {
148
148
  "@babel/plugin-transform-react-pure-annotations": "7.27.1",
@@ -173,8 +173,8 @@
173
173
  "vite": "5.4.14",
174
174
  "vite-plugin-dts": "4.5.4",
175
175
  "vite-tsconfig-paths": "5.1.4",
176
- "@edifice.io/config": "2.6.9-develop.20261013171251",
177
- "@edifice.io/client": "2.6.9-develop.20261013171251"
176
+ "@edifice.io/client": "2.6.10-develop-b2school.20261019104630",
177
+ "@edifice.io/config": "2.6.10-develop-b2school.20261019104630"
178
178
  },
179
179
  "peerDependencies": {
180
180
  "@react-spring/web": "9.7.5",