@edifice.io/react 2.6.5-develop-pedago.20260911135210 → 2.6.5-develop-b2school.20260914145143
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/Form/FormText.js +11 -6
- package/dist/components/Input/Input.d.ts +11 -2
- package/dist/components/Input/Input.js +38 -21
- package/dist/components/Label/Label.js +4 -4
- package/dist/components/LinkPill/LinkPill.d.ts +45 -0
- package/dist/components/LinkPill/LinkPill.js +27 -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/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 +12 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useClickOutside/useClickOutside.d.ts +1 -1
- package/dist/hooks/useClickOutside/useClickOutside.js +3 -2
- package/dist/hooks/useUploadFiles/index.d.ts +0 -1
- package/dist/hooks/useUploadFiles/useUploadFiles.d.ts +1 -11
- package/dist/hooks/useUploadFiles/useUploadFiles.js +7 -12
- package/dist/hooks/useUserPreferences/index.d.ts +1 -0
- package/dist/hooks/useUserPreferences/useUserPreferences.d.ts +9 -0
- package/dist/hooks/useUserPreferences/useUserPreferences.js +39 -0
- package/dist/index.js +166 -160
- package/dist/modules/homepage/components/Header/Header.js +11 -4
- 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 +29 -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/hooks/useProfileLinks.js +18 -8
- package/dist/modules/homepage/components/index.d.ts +1 -0
- package/dist/modules/multimedia/MediaLibrary/innertabs/Upload.js +7 -34
- package/dist/modules/multimedia/UploadFiles/UploadFiles.d.ts +1 -2
- package/package.json +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState,
|
|
1
|
+
import { useState, useCallback, useEffect } from "react";
|
|
2
2
|
import { ImageResizer, addTimestampToImageUrl } from "@edifice.io/utilities";
|
|
3
3
|
import { useDropzoneContext } from "../../components/Dropzone/DropzoneContext.js";
|
|
4
4
|
import useWorkspaceFile from "../useWorkspaceFile/useWorkspaceFile.js";
|
|
@@ -8,7 +8,7 @@ const useUploadFiles = ({
|
|
|
8
8
|
visibility,
|
|
9
9
|
application
|
|
10
10
|
}) => {
|
|
11
|
-
const [uploadedFiles, setUploadedFiles] = useState([]),
|
|
11
|
+
const [uploadedFiles, setUploadedFiles] = useState([]), [editingImage, setEditingImage] = useState(void 0), {
|
|
12
12
|
files,
|
|
13
13
|
deleteFile,
|
|
14
14
|
replaceFileAt,
|
|
@@ -34,10 +34,7 @@ const useUploadFiles = ({
|
|
|
34
34
|
} catch (err) {
|
|
35
35
|
console.error(err);
|
|
36
36
|
}
|
|
37
|
-
!resource && !replacement && (resource = await uploadFile(file)), resource ? (
|
|
38
|
-
name: file.name,
|
|
39
|
-
lastModified: file.lastModified
|
|
40
|
-
}), setUploadedFiles((prevFiles) => [...prevFiles, resource])) : resetInputValue();
|
|
37
|
+
!resource && !replacement && (resource = await uploadFile(file)), resource ? setUploadedFiles((prevFiles) => [...prevFiles, resource]) : resetInputValue();
|
|
41
38
|
});
|
|
42
39
|
}, [uploadAlternateFile, uploadFile, replaceFileAt]);
|
|
43
40
|
useEffect(() => {
|
|
@@ -50,17 +47,15 @@ const useUploadFiles = ({
|
|
|
50
47
|
newFiles.forEach((file) => file && setUploadStatus(file, "idle")), tryUploading(newFiles);
|
|
51
48
|
}, [files, uploadedFiles, getUploadStatus, setUploadStatus, tryUploading]), useEffect(() => {
|
|
52
49
|
const sortedUploadedFiles = sortUploadedFiles(files, uploadedFiles);
|
|
53
|
-
handleOnChange(sortedUploadedFiles
|
|
54
|
-
...sourceFilesInfoRef.current
|
|
55
|
-
});
|
|
50
|
+
handleOnChange(sortedUploadedFiles);
|
|
56
51
|
}, [uploadedFiles]);
|
|
57
52
|
const sortUploadedFiles = (filesArray, uploadedFilesArray) => {
|
|
58
|
-
const orderMap = filesArray.reduce((acc, item, index) => (
|
|
59
|
-
return
|
|
53
|
+
const orderMap = filesArray.reduce((acc, item, index) => (acc[item.name] = index, acc), {});
|
|
54
|
+
return uploadedFilesArray.sort((a, b) => orderMap[a.name] - orderMap[b.name]);
|
|
60
55
|
};
|
|
61
56
|
async function removeFile(file) {
|
|
62
57
|
const resource = uploadedFiles.find((uploadedFile) => uploadedFile.name === file.name);
|
|
63
|
-
resource && (await remove(resource), clearUploadStatus(file),
|
|
58
|
+
resource && (await remove(resource), clearUploadStatus(file), setUploadedFiles((prevFiles) => prevFiles.filter((prevFile) => prevFile.name !== (resource == null ? void 0 : resource.name)))), deleteFile(file), resetInputValue();
|
|
64
59
|
}
|
|
65
60
|
async function updateImage({
|
|
66
61
|
blob,
|
|
@@ -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,39 @@
|
|
|
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
|
|
39
|
+
};
|
package/dist/index.js
CHANGED
|
@@ -37,86 +37,88 @@ import { default as default35 } from "./modules/multimedia/ImageEditor/component
|
|
|
37
37
|
import { default as default36 } from "./modules/multimedia/ImagePicker/ImagePicker.js";
|
|
38
38
|
import { default as default37 } from "./components/Input/Input.js";
|
|
39
39
|
import { default as default38 } from "./components/Label/Label.js";
|
|
40
|
-
import { default as default39 } from "./components/
|
|
41
|
-
import { default as default40 } from "./components/
|
|
42
|
-
import { default as default41 } from "./components/
|
|
43
|
-
import { default as default42 } from "./components/
|
|
44
|
-
import { default as default43 } from "./
|
|
45
|
-
import { default as default44 } from "./
|
|
46
|
-
import { default as default45 } from "./components/
|
|
47
|
-
import { default as default46 } from "./
|
|
48
|
-
import { default as default47 } from "./components/
|
|
49
|
-
import { default as default48 } from "./
|
|
50
|
-
import { default as default49
|
|
51
|
-
import { default as default50 } from "./
|
|
52
|
-
import { default as default51 } from "./components/
|
|
53
|
-
import { default as default52 } from "./
|
|
54
|
-
import { default as default53 } from "./components/
|
|
55
|
-
import { default as default54 } from "./components/
|
|
56
|
-
import { default as default55 } from "./components/
|
|
57
|
-
import { default as default56 } from "./components/
|
|
58
|
-
import { default as default57 } from "./
|
|
59
|
-
import { default as default58 } from "./
|
|
60
|
-
import { default as default59 } from "./modules/modals/ShareModal/
|
|
61
|
-
import { default as default60 } from "./
|
|
62
|
-
import { default as default61 } from "./
|
|
63
|
-
import { default as default62 } from "./components/
|
|
64
|
-
import { default as default63 } from "./components/
|
|
65
|
-
import { default as default64 } from "./components/
|
|
66
|
-
import { default as default65 } from "./components/
|
|
67
|
-
import { default as default66 } from "./components/
|
|
68
|
-
import { default as default67 } from "./components/
|
|
69
|
-
import { default as default68 } from "./components/
|
|
70
|
-
import { default as default69 } from "./components/
|
|
71
|
-
import { default as default70 } from "./
|
|
72
|
-
import { default as default71 } from "./
|
|
73
|
-
import { default as default72 } from "./modules/multimedia/
|
|
74
|
-
import { default as default73 } from "./modules/multimedia/
|
|
75
|
-
import { default as default74 } from "./
|
|
76
|
-
import { default as default75 } from "./modules/multimedia/
|
|
77
|
-
import { default as default76 } from "./
|
|
78
|
-
import { default as default77 } from "./
|
|
79
|
-
import { default as default78 } from "./
|
|
80
|
-
import { default as default79 } from "./hooks/
|
|
81
|
-
import { default as default80 } from "./hooks/
|
|
82
|
-
import { default as default81 } from "./hooks/
|
|
83
|
-
import { default as default82 } from "./hooks/
|
|
84
|
-
import { default as default83 } from "./hooks/
|
|
85
|
-
import { default as default84 } from "./hooks/
|
|
86
|
-
import { default as default85 } from "./hooks/
|
|
87
|
-
import { default as default86 } from "./hooks/
|
|
88
|
-
import { default as default87 } from "./hooks/
|
|
89
|
-
import { default as default88 } from "./hooks/
|
|
90
|
-
import { default as default89 } from "./hooks/
|
|
91
|
-
import { default as default90 } from "./hooks/
|
|
92
|
-
import { default as default91 } from "./hooks/
|
|
93
|
-
import { default as default92 } from "./hooks/
|
|
94
|
-
import { default as default93 } from "./hooks/
|
|
95
|
-
import { default as default94 } from "./hooks/
|
|
96
|
-
import { default as default95 } from "./hooks/
|
|
97
|
-
import { default as default96 } from "./hooks/
|
|
98
|
-
import { default as default97 } from "./hooks/
|
|
99
|
-
import { default as default98 } from "./hooks/
|
|
100
|
-
import { default as default99 } from "./hooks/
|
|
101
|
-
import { default as default100 } from "./hooks/
|
|
102
|
-
import { default as default101 } from "./hooks/
|
|
103
|
-
import { default as default102 } from "./
|
|
104
|
-
import { default as default103 } from "./hooks/
|
|
105
|
-
import { default as default104 } from "./hooks/
|
|
106
|
-
import { default as default105 } from "./hooks/
|
|
107
|
-
import { default as default106 } from "./hooks/
|
|
108
|
-
import { default as default107 } from "./hooks/
|
|
109
|
-
import { default as default108 } from "./hooks/
|
|
110
|
-
import { default as default109 } from "./
|
|
111
|
-
import { default as default110 } from "./hooks/
|
|
112
|
-
import { default as default111 } from "./hooks/
|
|
113
|
-
import { default as default112 } from "./hooks/
|
|
114
|
-
import { default as default113 } from "./hooks/
|
|
115
|
-
import { default as default114 } from "./hooks/
|
|
116
|
-
import {
|
|
117
|
-
import { default as default116 } from "./hooks/
|
|
118
|
-
import { default as default117 } from "./hooks/
|
|
119
|
-
import { default as default118 } from "./hooks/
|
|
40
|
+
import { default as default39 } from "./components/LinkPill/LinkPill.js";
|
|
41
|
+
import { default as default40 } from "./components/Loading/Loading.js";
|
|
42
|
+
import { default as default41 } from "./components/LoadingScreen/LoadingScreen.js";
|
|
43
|
+
import { default as default42 } from "./components/Logo/Logo.js";
|
|
44
|
+
import { default as default43 } from "./components/LogoBeta/LogoBeta.js";
|
|
45
|
+
import { default as default44 } from "./modules/multimedia/MediaLibrary/MediaLibrary.js";
|
|
46
|
+
import { default as default45 } from "./components/MediaViewer/MediaViewer.js";
|
|
47
|
+
import { default as default46 } from "./components/Modal/Modal.js";
|
|
48
|
+
import { default as default47 } from "./components/ModalBeta/ModalBeta.js";
|
|
49
|
+
import { default as default48 } from "./modules/modals/OnboardingModal/OnboardingModal.js";
|
|
50
|
+
import { default as default49 } from "./components/PageLayout/PageLayout.js";
|
|
51
|
+
import { default as default50 } from "./components/PreventPropagation/PreventPropagation.js";
|
|
52
|
+
import { default as default51, Root } from "./components/PromotionCard/PromotionCard.js";
|
|
53
|
+
import { default as default52 } from "./modules/modals/PublishModal/PublishModal.js";
|
|
54
|
+
import { default as default53 } from "./components/Radio/Radio.js";
|
|
55
|
+
import { default as default54 } from "./components/RadioCard/RadioCard.js";
|
|
56
|
+
import { default as default55 } from "./components/SearchBar/SearchBar.js";
|
|
57
|
+
import { default as default56 } from "./components/Button/SearchButton.js";
|
|
58
|
+
import { default as default57 } from "./components/SegmentedControl/SegmentedControl.js";
|
|
59
|
+
import { default as default58 } from "./components/Select/Select.js";
|
|
60
|
+
import { default as default59 } from "./modules/modals/ShareModal/apps/ShareBlog.js";
|
|
61
|
+
import { default as default60 } from "./modules/modals/ShareModal/ShareModal.js";
|
|
62
|
+
import { default as default61 } from "./modules/modals/ShareModal/ShareResources.js";
|
|
63
|
+
import { default as default62 } from "./components/Tree/components/SortableTree.js";
|
|
64
|
+
import { default as default63 } from "./components/StackedGroup/StackedGroup.js";
|
|
65
|
+
import { default as default64 } from "./components/Stepper/Stepper.js";
|
|
66
|
+
import { default as default65 } from "./components/Switch/Switch.js";
|
|
67
|
+
import { default as default66 } from "./components/Table/components/Table.js";
|
|
68
|
+
import { default as default67 } from "./components/TextArea/TextArea.js";
|
|
69
|
+
import { default as default68 } from "./components/Skeleton/TextSkeleton.js";
|
|
70
|
+
import { default as default69 } from "./components/Tooltip/Tooltip.js";
|
|
71
|
+
import { default as default70 } from "./components/Tree/components/Tree.js";
|
|
72
|
+
import { default as default71 } from "./components/TreeView/TreeView.js";
|
|
73
|
+
import { default as default72 } from "./modules/multimedia/UploadCard/UploadCard.js";
|
|
74
|
+
import { default as default73 } from "./modules/multimedia/UploadFiles/UploadFiles.js";
|
|
75
|
+
import { default as default74 } from "./modules/multimedia/VideoEmbed/VideoEmbed.js";
|
|
76
|
+
import { default as default75 } from "./modules/multimedia/VideoRecorder/VideoRecorder.js";
|
|
77
|
+
import { default as default76 } from "./components/VisuallyHidden/VisuallyHidden.js";
|
|
78
|
+
import { default as default77 } from "./modules/multimedia/Workspace/Workspace.js";
|
|
79
|
+
import { default as default78 } from "./modules/multimedia/WorkspaceFolders/WorkspaceFolders.js";
|
|
80
|
+
import { default as default79 } from "./hooks/useBookmark/useBookmark.js";
|
|
81
|
+
import { default as default80 } from "./hooks/useBreakpoint/useBreakpoint.js";
|
|
82
|
+
import { default as default81 } from "./hooks/useBrowserInfo/useBrowserInfo.js";
|
|
83
|
+
import { default as default82 } from "./hooks/useCantoo/useCantoo.js";
|
|
84
|
+
import { default as default83 } from "./hooks/useClickOutside/useClickOutside.js";
|
|
85
|
+
import { default as default84 } from "./hooks/useConversation/useConversation.js";
|
|
86
|
+
import { default as default85 } from "./hooks/useDate/useDate.js";
|
|
87
|
+
import { default as default86 } from "./hooks/useDebounce/useDebounce.js";
|
|
88
|
+
import { default as default87 } from "./hooks/useDirectory/useDirectory.js";
|
|
89
|
+
import { default as default88 } from "./hooks/useDropdown/useDropdown.js";
|
|
90
|
+
import { default as default89 } from "./hooks/useDropzone/useDropzone.js";
|
|
91
|
+
import { default as default90 } from "./hooks/useEdificeIcons/useEdificeIcons.js";
|
|
92
|
+
import { default as default91 } from "./hooks/useHasWorkflow/useHasWorkflow.js";
|
|
93
|
+
import { default as default92 } from "./hooks/useHover/useHover.js";
|
|
94
|
+
import { default as default93 } from "./hooks/useHttpErrorToast/useHttpErrorToast.js";
|
|
95
|
+
import { default as default94 } from "./hooks/useImage/useImage.js";
|
|
96
|
+
import { default as default95 } from "./hooks/useInfiniteScroll/useInfiniteScroll.js";
|
|
97
|
+
import { default as default96 } from "./hooks/useIsAdmc/useIsAdmc.js";
|
|
98
|
+
import { default as default97 } from "./hooks/useIsAdml/useIsAdml.js";
|
|
99
|
+
import { default as default98 } from "./hooks/useIsAdmlcOrAdmc/useIsAdmlcOrAdmc.js";
|
|
100
|
+
import { default as default99 } from "./hooks/useKeyPress/useKeyPress.js";
|
|
101
|
+
import { default as default100 } from "./hooks/useLibraryUrl/useLibraryUrl.js";
|
|
102
|
+
import { default as default101 } from "./hooks/useMediaLibrary/useMediaLibrary.js";
|
|
103
|
+
import { default as default102 } from "./hooks/usePublicConf/usePublicConf.js";
|
|
104
|
+
import { default as default103 } from "./hooks/useScrollToTop/useScrollToTop.js";
|
|
105
|
+
import { default as default104 } from "./modules/modals/ShareModal/hooks/useShareMutation.js";
|
|
106
|
+
import { default as default105 } from "./hooks/useTitle/useTitle.js";
|
|
107
|
+
import { default as default106 } from "./hooks/useToast/useToast.js";
|
|
108
|
+
import { default as default107 } from "./hooks/useToggle/useToggle.js";
|
|
109
|
+
import { default as default108 } from "./hooks/useTrapFocus/useTrapFocus.js";
|
|
110
|
+
import { default as default109 } from "./hooks/useTrashedResource/useTrashedResource.js";
|
|
111
|
+
import { default as default110 } from "./hooks/useUiOverride/useUiOverride.js";
|
|
112
|
+
import { default as default111 } from "./modules/modals/ResourceModal/hooks/useUpdateMutation.js";
|
|
113
|
+
import { default as default112 } from "./hooks/useUpload/useUpload.js";
|
|
114
|
+
import { default as default113 } from "./hooks/useUploadFiles/useUploadFiles.js";
|
|
115
|
+
import { default as default114 } from "./hooks/useUser/useUser.js";
|
|
116
|
+
import { default as default115 } from "./hooks/useWorkspaceFile/useWorkspaceFile.js";
|
|
117
|
+
import { default as default116 } from "./hooks/useWorkspaceFolders/useWorkspaceFolders.js";
|
|
118
|
+
import { WORKSPACE_SHARED_FOLDER_ID, WORKSPACE_USER_FOLDER_ID, default as default117 } from "./hooks/useWorkspaceFolders/useWorkspaceFoldersTree.js";
|
|
119
|
+
import { default as default118 } from "./hooks/useWorkspaceSearch/useWorkspaceSearch.js";
|
|
120
|
+
import { default as default119 } from "./hooks/useXitiTrackPageLoad/useXitiTrackPageLoad.js";
|
|
121
|
+
import { default as default120 } from "./hooks/useZendeskGuide/useZendeskGuide.js";
|
|
120
122
|
import { AccessiblePalette, DefaultPalette } from "./components/ColorPicker/ColorPalette.js";
|
|
121
123
|
import { AntProvider } from "./providers/AntThemeProvider/AntProvider.js";
|
|
122
124
|
import { BetaSwitch } from "./components/BetaSwitch/BetaSwitch.js";
|
|
@@ -160,6 +162,7 @@ import { useOverlay } from "./components/PageLayout/hook/useOverlay.js";
|
|
|
160
162
|
import { useScreeb } from "./hooks/useScreeb/useScreeb.js";
|
|
161
163
|
import { useTreeSortable } from "./components/Tree/hooks/useTreeSortable.js";
|
|
162
164
|
import { useTreeView } from "./components/TreeView/hooks/useTreeView.js";
|
|
165
|
+
import { useUserPreferences } from "./hooks/useUserPreferences/useUserPreferences.js";
|
|
163
166
|
export {
|
|
164
167
|
AccessiblePalette,
|
|
165
168
|
default2 as ActionBar,
|
|
@@ -215,65 +218,67 @@ export {
|
|
|
215
218
|
InternalLinker,
|
|
216
219
|
default38 as Label,
|
|
217
220
|
Layout,
|
|
221
|
+
default39 as LinkPill,
|
|
218
222
|
List,
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
default40 as Loading,
|
|
224
|
+
default41 as LoadingScreen,
|
|
225
|
+
default42 as Logo,
|
|
226
|
+
default43 as LogoBeta,
|
|
227
|
+
default44 as MediaLibrary,
|
|
228
|
+
default45 as MediaViewer,
|
|
225
229
|
Menu,
|
|
226
230
|
MockedProvider,
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
231
|
+
default46 as Modal,
|
|
232
|
+
default47 as ModalBeta,
|
|
233
|
+
default48 as OnboardingModal,
|
|
234
|
+
default49 as PageLayout,
|
|
230
235
|
PageLayoutContext,
|
|
231
236
|
Pagination,
|
|
232
237
|
Popover,
|
|
233
238
|
PopoverBody,
|
|
234
239
|
PopoverFooter,
|
|
235
240
|
PopoverHeader,
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
+
default50 as PreventPropagation,
|
|
242
|
+
default51 as PromotionCard,
|
|
243
|
+
default52 as PublishModal,
|
|
244
|
+
default53 as Radio,
|
|
245
|
+
default54 as RadioCard,
|
|
241
246
|
ResourceModal,
|
|
242
247
|
Root,
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
248
|
+
default55 as SearchBar,
|
|
249
|
+
default56 as SearchButton,
|
|
250
|
+
default57 as SegmentedControl,
|
|
251
|
+
default58 as Select,
|
|
252
|
+
default59 as ShareBlog,
|
|
253
|
+
default60 as ShareModal,
|
|
254
|
+
default61 as ShareResources,
|
|
255
|
+
default62 as SortableTree,
|
|
256
|
+
default63 as StackedGroup,
|
|
257
|
+
default64 as Stepper,
|
|
258
|
+
default65 as Switch,
|
|
259
|
+
default66 as Table,
|
|
255
260
|
Tabs,
|
|
256
|
-
|
|
257
|
-
|
|
261
|
+
default67 as TextArea,
|
|
262
|
+
default68 as TextSkeleton,
|
|
258
263
|
Toolbar,
|
|
259
|
-
|
|
260
|
-
|
|
264
|
+
default69 as Tooltip,
|
|
265
|
+
default70 as Tree,
|
|
261
266
|
TreeNode,
|
|
262
267
|
TreeNodeFolderWrapper,
|
|
263
|
-
|
|
268
|
+
default71 as TreeView,
|
|
264
269
|
Upload,
|
|
265
|
-
|
|
266
|
-
|
|
270
|
+
default72 as UploadCard,
|
|
271
|
+
default73 as UploadFiles,
|
|
267
272
|
UserRightsList,
|
|
268
273
|
UserSearch,
|
|
269
|
-
|
|
270
|
-
|
|
274
|
+
default74 as VideoEmbed,
|
|
275
|
+
default75 as VideoRecorder,
|
|
271
276
|
VisibleType,
|
|
272
|
-
|
|
277
|
+
default76 as VisuallyHidden,
|
|
273
278
|
WORKSPACE_SHARED_FOLDER_ID,
|
|
274
279
|
WORKSPACE_USER_FOLDER_ID,
|
|
275
|
-
|
|
276
|
-
|
|
280
|
+
default77 as Workspace,
|
|
281
|
+
default78 as WorkspaceFolders,
|
|
277
282
|
addNode,
|
|
278
283
|
arrayUnique,
|
|
279
284
|
buildTree,
|
|
@@ -304,57 +309,58 @@ export {
|
|
|
304
309
|
setRef,
|
|
305
310
|
updateNode,
|
|
306
311
|
updateParentIds,
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
312
|
+
default79 as useBookmark,
|
|
313
|
+
default80 as useBreakpoint,
|
|
314
|
+
default81 as useBrowserInfo,
|
|
315
|
+
default82 as useCantoo,
|
|
311
316
|
useCheckable,
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
317
|
+
default83 as useClickOutside,
|
|
318
|
+
default84 as useConversation,
|
|
319
|
+
default85 as useDate,
|
|
320
|
+
default86 as useDebounce,
|
|
321
|
+
default87 as useDirectory,
|
|
322
|
+
default88 as useDropdown,
|
|
323
|
+
default89 as useDropzone,
|
|
319
324
|
useDropzoneContext,
|
|
320
325
|
useEdificeClient,
|
|
321
|
-
|
|
326
|
+
default90 as useEdificeIcons,
|
|
322
327
|
useEdificeTheme,
|
|
323
328
|
useFileToAttachment,
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
329
|
+
default91 as useHasWorkflow,
|
|
330
|
+
default92 as useHover,
|
|
331
|
+
default93 as useHttpErrorToast,
|
|
332
|
+
default94 as useImage,
|
|
333
|
+
default95 as useInfiniteScroll,
|
|
334
|
+
default96 as useIsAdmc,
|
|
335
|
+
default97 as useIsAdml,
|
|
336
|
+
default98 as useIsAdmlcOrAdmc,
|
|
337
|
+
default99 as useKeyPress,
|
|
338
|
+
default100 as useLibraryUrl,
|
|
339
|
+
default101 as useMediaLibrary,
|
|
335
340
|
useOverlay,
|
|
336
341
|
usePageLayout,
|
|
337
|
-
|
|
342
|
+
default102 as usePublicConf,
|
|
338
343
|
useScreeb,
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
344
|
+
default103 as useScrollToTop,
|
|
345
|
+
default104 as useShareMutation,
|
|
346
|
+
default105 as useTitle,
|
|
347
|
+
default106 as useToast,
|
|
348
|
+
default107 as useToggle,
|
|
349
|
+
default108 as useTrapFocus,
|
|
350
|
+
default109 as useTrashedResource,
|
|
346
351
|
useTreeSortable,
|
|
347
352
|
useTreeView,
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
353
|
+
default110 as useUiOverride,
|
|
354
|
+
default111 as useUpdateMutation,
|
|
355
|
+
default112 as useUpload,
|
|
356
|
+
default113 as useUploadFiles,
|
|
357
|
+
default114 as useUser,
|
|
358
|
+
useUserPreferences,
|
|
359
|
+
default115 as useWorkspaceFile,
|
|
360
|
+
default116 as useWorkspaceFolders,
|
|
361
|
+
default117 as useWorkspaceFoldersTree,
|
|
362
|
+
default118 as useWorkspaceSearch,
|
|
363
|
+
default119 as useXitiTrackPageLoad,
|
|
364
|
+
default120 as useZendeskGuide,
|
|
359
365
|
wrapTreeNode
|
|
360
366
|
};
|
|
@@ -6,6 +6,7 @@ import { Navbar } from "../../../../components/Layout/components/Navbar.js";
|
|
|
6
6
|
import { NavItem } from "../../../../components/Layout/components/NavItem.js";
|
|
7
7
|
import { NavLink } from "../../../../components/Layout/components/NavLink.js";
|
|
8
8
|
import useHeader from "../../../../components/Layout/hooks/useHeader.js";
|
|
9
|
+
import SvgIconSetBackground from "../../../icons/components/IconSetBackground.js";
|
|
9
10
|
import SvgIconCommunitiesBeta from "../../../icons/components/nav/IconCommunitiesBeta.js";
|
|
10
11
|
import SvgIconDisconnect from "../../../icons/components/nav/IconDisconnect.js";
|
|
11
12
|
import SvgIconHomeBeta from "../../../icons/components/nav/IconHomeBeta.js";
|
|
@@ -86,10 +87,16 @@ const Header = ({
|
|
|
86
87
|
] }),
|
|
87
88
|
/* @__PURE__ */ jsxs(NavItem, { className: "position-relative", ref: userRef, id: popoverUserId, "aria-haspopup": "true", "aria-expanded": isUserHovered, "data-testid": "header-user-menu-button", children: [
|
|
88
89
|
/* @__PURE__ */ jsx(NavLink, { link: "/userbook/mon-compte", translate: t("navbar.myaccount"), "data-testid": "header-user-profile-button", children: /* @__PURE__ */ jsx(Avatar, { alt: userName, size: "sm", src: userAvatar, variant: "circle", className: "bg-white", width: "32", height: "32" }) }),
|
|
89
|
-
/* @__PURE__ */ jsx(Popover, { align: "end", className: "widget", id: popoverUserId, isVisible: isUserHovered, children: /* @__PURE__ */
|
|
90
|
-
/* @__PURE__ */
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
/* @__PURE__ */ jsx(Popover, { align: "end", className: "widget", id: popoverUserId, isVisible: isUserHovered, children: /* @__PURE__ */ jsxs(PopoverBody, { children: [
|
|
91
|
+
/* @__PURE__ */ jsxs("a", { href: "/timeline/customize", className: "nav-link customize d-flex align-items-center gap-8", "data-testid": "header-customize-button", children: [
|
|
92
|
+
/* @__PURE__ */ jsx(SvgIconSetBackground, { className: "icon" }),
|
|
93
|
+
/* @__PURE__ */ jsx("span", { id: "cutomize-label", className: "nav-text", children: t("navbar.customize") })
|
|
94
|
+
] }),
|
|
95
|
+
/* @__PURE__ */ jsxs("a", { href: "/auth/logout?callback=" + ((theme == null ? void 0 : theme.logoutCallback) ?? ""), className: "nav-link logout d-flex align-items-center gap-8", "data-testid": "header-logout-button", children: [
|
|
96
|
+
/* @__PURE__ */ jsx(SvgIconDisconnect, { className: "icon logout" }),
|
|
97
|
+
/* @__PURE__ */ jsx("span", { id: "logout-label", className: "nav-text", children: t("navbar.disconnect") })
|
|
98
|
+
] })
|
|
99
|
+
] }) })
|
|
93
100
|
] })
|
|
94
101
|
] })
|
|
95
102
|
] }) });
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { UsefulLink, UsefulLinkPayload } from '@edifice.io/client';
|
|
2
|
+
export interface LinkFormProps {
|
|
3
|
+
mode: 'add' | 'edit';
|
|
4
|
+
/** Link being edited. Ignored (and required to be undefined) in "add" mode. */
|
|
5
|
+
link?: UsefulLink;
|
|
6
|
+
isSubmitting: boolean;
|
|
7
|
+
/** Closes the form and goes back to the management modal, without saving. */
|
|
8
|
+
onCancel: () => void;
|
|
9
|
+
/** Closes the whole modal stack. */
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
onSubmit: (payload: UsefulLinkPayload) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function LinkForm({ mode, link, isSubmitting, onCancel, onClose, onSubmit, }: LinkFormProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import { useForm } from "react-hook-form";
|
|
4
|
+
import ModalBeta from "../../../../components/ModalBeta/ModalBeta.js";
|
|
5
|
+
import FormControl from "../../../../components/Form/FormControl.js";
|
|
6
|
+
import Label from "../../../../components/Label/Label.js";
|
|
7
|
+
import Input from "../../../../components/Input/Input.js";
|
|
8
|
+
import ButtonBeta from "../../../../components/ButtonBeta/ButtonBeta.js";
|
|
9
|
+
const NAME_MAX_LENGTH = 80, URL_PLACEHOLDER = "https://example.fr", URL_PATTERN = /^https?:\/\/.+/i;
|
|
10
|
+
function LinkForm({
|
|
11
|
+
mode,
|
|
12
|
+
link,
|
|
13
|
+
isSubmitting,
|
|
14
|
+
onCancel,
|
|
15
|
+
onClose,
|
|
16
|
+
onSubmit
|
|
17
|
+
}) {
|
|
18
|
+
const {
|
|
19
|
+
t
|
|
20
|
+
} = useTranslation(), formId = "useful-link-form", {
|
|
21
|
+
register,
|
|
22
|
+
handleSubmit,
|
|
23
|
+
formState: {
|
|
24
|
+
errors,
|
|
25
|
+
isDirty,
|
|
26
|
+
isValid
|
|
27
|
+
}
|
|
28
|
+
} = useForm({
|
|
29
|
+
mode: "onChange",
|
|
30
|
+
defaultValues: {
|
|
31
|
+
name: (link == null ? void 0 : link.name) ?? "",
|
|
32
|
+
url: (link == null ? void 0 : link.url) ?? ""
|
|
33
|
+
}
|
|
34
|
+
}), title = mode === "add" ? t("homepage.usefulLinks.form.addTitle", "Ajouter un lien") : t("homepage.usefulLinks.form.editTitle", "Modifier un lien"), handleFormSubmit = (data) => {
|
|
35
|
+
onSubmit({
|
|
36
|
+
name: data.name.trim(),
|
|
37
|
+
url: data.url.trim()
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
return /* @__PURE__ */ jsxs(ModalBeta, { id: "useful-link-modal", isOpen: !0, size: "l", onModalClose: onClose, children: [
|
|
41
|
+
/* @__PURE__ */ jsx(ModalBeta.Header, { onModalClose: onClose, children: title }),
|
|
42
|
+
/* @__PURE__ */ jsx(ModalBeta.Body, { children: /* @__PURE__ */ jsxs("form", { id: formId, onSubmit: handleSubmit(handleFormSubmit), children: [
|
|
43
|
+
/* @__PURE__ */ jsxs(FormControl, { id: "useful-link-name", className: "mb-16", isRequired: !0, children: [
|
|
44
|
+
/* @__PURE__ */ jsx(Label, { children: t("homepage.usefulLinks.form.name", "Nom") }),
|
|
45
|
+
/* @__PURE__ */ jsx(Input, { type: "text", size: "md", maxLength: NAME_MAX_LENGTH, showCounter: !0, clearable: !0, "data-testid": "usefullinks-input-name", placeholder: t("homepage.usefulLinks.form.name.placeholder", "Nom du lien utile"), ...register("name", {
|
|
46
|
+
required: !0,
|
|
47
|
+
maxLength: NAME_MAX_LENGTH
|
|
48
|
+
}) })
|
|
49
|
+
] }),
|
|
50
|
+
/* @__PURE__ */ jsxs(FormControl, { id: "useful-link-url", isRequired: !0, status: errors.url ? "invalid" : void 0, children: [
|
|
51
|
+
/* @__PURE__ */ jsx(Label, { children: t("homepage.usefulLinks.form.url", "Lien") }),
|
|
52
|
+
/* @__PURE__ */ jsx(Input, { type: "text", size: "md", "data-testid": "usefullinks-input-url", placeholder: t("homepage.usefulLinks.form.url.placeholder", URL_PLACEHOLDER), ...register("url", {
|
|
53
|
+
required: !0,
|
|
54
|
+
pattern: URL_PATTERN
|
|
55
|
+
}) }),
|
|
56
|
+
errors.url && /* @__PURE__ */ jsx(FormControl.Text, { children: t("homepage.usefulLinks.form.url.error", "L'adresse doit être une URL valide (ex. https://exemple.fr)") })
|
|
57
|
+
] })
|
|
58
|
+
] }) }),
|
|
59
|
+
/* @__PURE__ */ jsxs(ModalBeta.Footer, { children: [
|
|
60
|
+
/* @__PURE__ */ jsx(ButtonBeta, { type: "button", variant: "ghost", color: "tertiary", "data-testid": "usefullinks-button-cancel", onClick: onCancel, children: t("homepage.usefulLinks.form.cancel", "Annuler") }),
|
|
61
|
+
/* @__PURE__ */ jsx(ButtonBeta, { form: formId, type: "submit", isLoading: isSubmitting, disabled: !isValid || !isDirty || isSubmitting, "data-testid": "usefullinks-button-save", children: t("homepage.usefulLinks.form.save", "Enregistrer") })
|
|
62
|
+
] })
|
|
63
|
+
] });
|
|
64
|
+
}
|
|
65
|
+
export {
|
|
66
|
+
LinkForm
|
|
67
|
+
};
|