@edifice.io/react 2.2.5-develop-pedago.20250430103926 → 2.2.5-develop-b2school.20250506170337
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/Button/Button.d.ts +1 -1
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/IconButton.js +1 -1
- package/dist/components/Combobox/Combobox.d.ts +56 -5
- package/dist/components/Combobox/Combobox.js +16 -7
- package/dist/components/Combobox/ComboboxTrigger.d.ts +31 -2
- package/dist/components/Combobox/ComboboxTrigger.js +31 -8
- package/dist/components/Dropdown/Dropdown.d.ts +10 -2
- package/dist/components/Dropdown/Dropdown.js +5 -3
- package/dist/components/Dropdown/DropdownItem.d.ts +5 -1
- package/dist/components/Dropdown/DropdownItem.js +4 -1
- package/dist/components/Dropdown/DropdownTrigger.js +5 -1
- package/dist/components/List/List.d.ts +15 -1
- package/dist/components/List/List.js +15 -12
- package/dist/components/SearchBar/SearchBar.d.ts +1 -1
- package/dist/components/SearchBar/SearchBar.js +3 -1
- package/dist/components/Toolbar/Toolbar.d.ts +4 -0
- package/dist/components/Toolbar/Toolbar.js +8 -3
- package/dist/components/Tree/components/Tree.js +1 -2
- package/dist/components/Tree/hooks/useTree.d.ts +0 -1
- package/dist/components/Tree/hooks/useTree.js +2 -25
- package/dist/components/Tree/types/index.d.ts +0 -4
- package/dist/editor.js +28 -24
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useCheckable/useCheckable.js +10 -3
- package/dist/hooks/useConversation/useConversation.d.ts +1 -1
- package/dist/hooks/useConversation/useConversation.js +13 -17
- package/dist/hooks/useDropdown/useDropdown.d.ts +2 -1
- package/dist/hooks/useDropdown/useDropdown.js +5 -3
- package/dist/hooks/useWorkspaceFolders/index.d.ts +3 -0
- package/dist/hooks/useWorkspaceFolders/useWorkspaceFolders.js +54 -0
- package/dist/hooks/useWorkspaceFolders/useWorkspaceFoldersTree.d.ts +13 -0
- package/dist/hooks/useWorkspaceFolders/useWorkspaceFoldersTree.js +51 -0
- package/dist/icons.js +232 -212
- package/dist/index.d.ts +1 -0
- package/dist/index.js +50 -20
- package/dist/modals.js +16 -14
- package/dist/modules/editor/components/Editor/Editor.d.ts +3 -1
- package/dist/modules/editor/components/Editor/Editor.js +3 -2
- package/dist/modules/editor/components/NodeView/ConversationHistoryNodeView.d.ts +2 -0
- package/dist/modules/editor/components/NodeView/ConversationHistoryNodeView.js +10 -0
- package/dist/modules/editor/components/NodeView/index.d.ts +2 -1
- package/dist/modules/editor/components/Renderer/ConversationHistoryRenderer.d.ts +8 -0
- package/dist/modules/editor/components/Renderer/ConversationHistoryRenderer.js +28 -0
- package/dist/modules/editor/components/Renderer/index.d.ts +2 -1
- package/dist/modules/editor/hooks/useTipTapEditor.d.ts +6 -2
- package/dist/modules/editor/hooks/useTipTapEditor.js +2 -2
- package/dist/modules/icons/components/IconFolderAdd.d.ts +7 -0
- package/dist/modules/icons/components/IconFolderAdd.js +13 -0
- package/dist/modules/icons/components/IconFolderDelete.d.ts +7 -0
- package/dist/modules/icons/components/IconFolderDelete.js +12 -0
- package/dist/modules/icons/components/IconGlobe2.d.ts +7 -0
- package/dist/modules/icons/components/IconGlobe2.js +16 -0
- package/dist/modules/icons/components/IconGroupAvatar.d.ts +7 -0
- package/dist/modules/icons/components/IconGroupAvatar.js +12 -0
- package/dist/modules/icons/components/IconMailRecall.d.ts +7 -0
- package/dist/modules/icons/components/IconMailRecall.js +13 -0
- package/dist/modules/icons/components/IconQuestionMark.d.ts +7 -0
- package/dist/modules/icons/components/IconQuestionMark.js +13 -0
- package/dist/modules/icons/components/IconReadMail.d.ts +7 -0
- package/dist/modules/icons/components/IconReadMail.js +16 -0
- package/dist/modules/icons/components/IconSignature.d.ts +7 -0
- package/dist/modules/icons/components/IconSignature.js +13 -0
- package/dist/modules/icons/components/IconUndoAll.d.ts +7 -0
- package/dist/modules/icons/components/IconUndoAll.js +14 -0
- package/dist/modules/icons/components/IconUnreadMail.d.ts +7 -0
- package/dist/modules/icons/components/IconUnreadMail.js +16 -0
- package/dist/modules/icons/components/index.d.ts +10 -0
- package/dist/modules/modals/ConfirmModal/ConfirmModal.d.ts +47 -0
- package/dist/modules/modals/ConfirmModal/ConfirmModal.js +37 -0
- package/dist/modules/modals/ConfirmModal/index.d.ts +1 -0
- package/dist/modules/modals/index.d.ts +1 -0
- package/dist/modules/multimedia/Linker/InternalLinker/InternalLinker.js +6 -10
- package/dist/modules/multimedia/WorkspaceFolders/WorkspaceFolders.d.ts +8 -0
- package/dist/modules/multimedia/WorkspaceFolders/WorkspaceFolders.js +55 -0
- package/dist/modules/multimedia/WorkspaceFolders/components/NewFolderForm.d.ts +16 -0
- package/dist/modules/multimedia/WorkspaceFolders/components/NewFolderForm.js +39 -0
- package/dist/modules/multimedia/WorkspaceFolders/index.d.ts +1 -0
- package/dist/modules/multimedia/index.d.ts +1 -0
- package/dist/multimedia.js +3 -1
- package/package.json +6 -6
|
@@ -44,11 +44,15 @@ export { default as IconExternalLink } from './IconExternalLink';
|
|
|
44
44
|
export { default as IconFiles } from './IconFiles';
|
|
45
45
|
export { default as IconFilter } from './IconFilter';
|
|
46
46
|
export { default as IconFlag } from './IconFlag';
|
|
47
|
+
export { default as IconFolderAdd } from './IconFolderAdd';
|
|
48
|
+
export { default as IconFolderDelete } from './IconFolderDelete';
|
|
47
49
|
export { default as IconFolderMove } from './IconFolderMove';
|
|
48
50
|
export { default as IconFolder } from './IconFolder';
|
|
49
51
|
export { default as IconForgoing } from './IconForgoing';
|
|
50
52
|
export { default as IconFullScreen } from './IconFullScreen';
|
|
53
|
+
export { default as IconGlobe2 } from './IconGlobe2';
|
|
51
54
|
export { default as IconGlobe } from './IconGlobe';
|
|
55
|
+
export { default as IconGroupAvatar } from './IconGroupAvatar';
|
|
52
56
|
export { default as IconHandMove } from './IconHandMove';
|
|
53
57
|
export { default as IconHeadphone } from './IconHeadphone';
|
|
54
58
|
export { default as IconHide } from './IconHide';
|
|
@@ -67,6 +71,7 @@ export { default as IconLink } from './IconLink';
|
|
|
67
71
|
export { default as IconListOrder } from './IconListOrder';
|
|
68
72
|
export { default as IconLoader } from './IconLoader';
|
|
69
73
|
export { default as IconLock } from './IconLock';
|
|
74
|
+
export { default as IconMailRecall } from './IconMailRecall';
|
|
70
75
|
export { default as IconMail } from './IconMail';
|
|
71
76
|
export { default as IconMergeCells } from './IconMergeCells';
|
|
72
77
|
export { default as IconMessageInfo } from './IconMessageInfo';
|
|
@@ -87,12 +92,14 @@ export { default as IconPlus } from './IconPlus';
|
|
|
87
92
|
export { default as IconPointerDefault } from './IconPointerDefault';
|
|
88
93
|
export { default as IconPointerHand } from './IconPointerHand';
|
|
89
94
|
export { default as IconPrint } from './IconPrint';
|
|
95
|
+
export { default as IconQuestionMark } from './IconQuestionMark';
|
|
90
96
|
export { default as IconQuestion } from './IconQuestion';
|
|
91
97
|
export { default as IconRafterDown } from './IconRafterDown';
|
|
92
98
|
export { default as IconRafterLeft } from './IconRafterLeft';
|
|
93
99
|
export { default as IconRafterRight } from './IconRafterRight';
|
|
94
100
|
export { default as IconRafterUp } from './IconRafterUp';
|
|
95
101
|
export { default as IconReaction } from './IconReaction';
|
|
102
|
+
export { default as IconReadMail } from './IconReadMail';
|
|
96
103
|
export { default as IconRecordPause } from './IconRecordPause';
|
|
97
104
|
export { default as IconRecordStop } from './IconRecordStop';
|
|
98
105
|
export { default as IconRecordVideo } from './IconRecordVideo';
|
|
@@ -109,6 +116,7 @@ export { default as IconSend } from './IconSend';
|
|
|
109
116
|
export { default as IconSetBackground } from './IconSetBackground';
|
|
110
117
|
export { default as IconSettings } from './IconSettings';
|
|
111
118
|
export { default as IconShare } from './IconShare';
|
|
119
|
+
export { default as IconSignature } from './IconSignature';
|
|
112
120
|
export { default as IconSmartphone } from './IconSmartphone';
|
|
113
121
|
export { default as IconSmiley } from './IconSmiley';
|
|
114
122
|
export { default as IconSortAscendingLetters } from './IconSortAscendingLetters';
|
|
@@ -136,9 +144,11 @@ export { default as IconTextVanilla } from './IconTextVanilla';
|
|
|
136
144
|
export { default as IconToolCenter } from './IconToolCenter';
|
|
137
145
|
export { default as IconTool } from './IconTool';
|
|
138
146
|
export { default as IconTrendingUp } from './IconTrendingUp';
|
|
147
|
+
export { default as IconUndoAll } from './IconUndoAll';
|
|
139
148
|
export { default as IconUndo } from './IconUndo';
|
|
140
149
|
export { default as IconUnlink } from './IconUnlink';
|
|
141
150
|
export { default as IconUnlock } from './IconUnlock';
|
|
151
|
+
export { default as IconUnreadMail } from './IconUnreadMail';
|
|
142
152
|
export { default as IconUpload } from './IconUpload';
|
|
143
153
|
export { default as IconUserSearch } from './IconUserSearch';
|
|
144
154
|
export { default as IconUser } from './IconUser';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ModalSize } from '../../../components';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
export type ConfirmModalVariant = 'yes/no' | 'ok/cancel';
|
|
4
|
+
interface ConfirmModalProps {
|
|
5
|
+
/**
|
|
6
|
+
* Variant of text buttons content
|
|
7
|
+
*/
|
|
8
|
+
variant?: ConfirmModalVariant;
|
|
9
|
+
/**
|
|
10
|
+
* Modal id (useful when multiple modal on the same page)
|
|
11
|
+
*/
|
|
12
|
+
id: string;
|
|
13
|
+
/**
|
|
14
|
+
* Is Modal Open
|
|
15
|
+
*/
|
|
16
|
+
isOpen: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Content of header modal's
|
|
19
|
+
*/
|
|
20
|
+
header?: ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Content of body modal's
|
|
23
|
+
*/
|
|
24
|
+
body?: ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Key text translation of confirm button (useTranslation('common'))
|
|
27
|
+
*/
|
|
28
|
+
okText?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Key text translation of cancel button (useTranslation('common'))
|
|
31
|
+
*/
|
|
32
|
+
koText?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Size of the modal (width)
|
|
35
|
+
*/
|
|
36
|
+
size?: ModalSize;
|
|
37
|
+
/**
|
|
38
|
+
* Function to call when success button proceed
|
|
39
|
+
*/
|
|
40
|
+
onSuccess?: () => void;
|
|
41
|
+
/**
|
|
42
|
+
* Function to call when closing modal
|
|
43
|
+
*/
|
|
44
|
+
onCancel?: () => void;
|
|
45
|
+
}
|
|
46
|
+
export default function ConfirmModal({ variant, id, isOpen, header, body, okText, koText, size, onSuccess, onCancel, }: ConfirmModalProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation } from "react-i18next";
|
|
3
|
+
import Modal from "../../../components/Modal/Modal.js";
|
|
4
|
+
import Button from "../../../components/Button/Button.js";
|
|
5
|
+
function ConfirmModal({
|
|
6
|
+
variant = "yes/no",
|
|
7
|
+
id,
|
|
8
|
+
isOpen,
|
|
9
|
+
header,
|
|
10
|
+
body,
|
|
11
|
+
okText,
|
|
12
|
+
koText,
|
|
13
|
+
size = "md",
|
|
14
|
+
onSuccess = () => ({}),
|
|
15
|
+
onCancel = () => ({})
|
|
16
|
+
}) {
|
|
17
|
+
const {
|
|
18
|
+
t
|
|
19
|
+
} = useTranslation(), ok = {
|
|
20
|
+
"yes/no": t("yes"),
|
|
21
|
+
"ok/cancel": t("ok")
|
|
22
|
+
}, ko = {
|
|
23
|
+
"yes/no": t("no"),
|
|
24
|
+
"ok/cancel": t("cancel")
|
|
25
|
+
};
|
|
26
|
+
return /* @__PURE__ */ jsxs(Modal, { isOpen, onModalClose: onCancel, id, size, children: [
|
|
27
|
+
/* @__PURE__ */ jsx(Modal.Header, { onModalClose: onCancel, children: header }),
|
|
28
|
+
/* @__PURE__ */ jsx(Modal.Body, { children: body }),
|
|
29
|
+
/* @__PURE__ */ jsxs(Modal.Footer, { children: [
|
|
30
|
+
/* @__PURE__ */ jsx(Button, { color: "tertiary", onClick: onCancel, type: "button", variant: "ghost", children: koText ? t(koText) : ko[variant] }),
|
|
31
|
+
/* @__PURE__ */ jsx(Button, { color: "danger", onClick: onSuccess, type: "button", variant: "filled", children: okText ? t(okText) : ok[variant] })
|
|
32
|
+
] })
|
|
33
|
+
] });
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
ConfirmModal as default
|
|
37
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ConfirmModal } from './ConfirmModal';
|
|
@@ -77,22 +77,18 @@ const InternalLinker = ({
|
|
|
77
77
|
return useEffect(() => {
|
|
78
78
|
(async () => {
|
|
79
79
|
if (applicationList) {
|
|
80
|
-
setOptions(applicationList.
|
|
81
|
-
...app,
|
|
82
|
-
displayName: app.application === "exercizer" ? `${t("bbm.linker.int.app.exercizer")}` : app.application === "form" ? `${t("bbm.linker.int.app.forms")}` : app.displayName
|
|
83
|
-
})).sort((a, b) => a.displayName.localeCompare(b.displayName)));
|
|
80
|
+
setOptions(applicationList.sort((app1, app2) => app1.displayName.localeCompare(app2.displayName)));
|
|
84
81
|
return;
|
|
85
82
|
}
|
|
86
|
-
const appPromises = resourceApplications.map((application) => odeServices.session().getWebApp(application)), webApps = await Promise.all(appPromises)
|
|
83
|
+
const appPromises = resourceApplications.map((application) => odeServices.session().getWebApp(application)), webApps = await Promise.all(appPromises);
|
|
84
|
+
setOptions(resourceApplications.map((application, index) => {
|
|
87
85
|
var _a;
|
|
88
|
-
|
|
89
|
-
return application === "exercizer" ? displayName = `${t("bbm.linker.int.app.exercizer")}` : application === "form" && (displayName = `${t("bbm.linker.int.app.forms")}`), {
|
|
86
|
+
return {
|
|
90
87
|
application,
|
|
91
|
-
displayName,
|
|
88
|
+
displayName: t(((_a = webApps[index]) == null ? void 0 : _a.displayName) ?? application),
|
|
92
89
|
icon: /* @__PURE__ */ jsx(AppIcon, { app: webApps[index], size: "24" })
|
|
93
90
|
};
|
|
94
|
-
}).sort((
|
|
95
|
-
setOptions(opts);
|
|
91
|
+
}).sort((app1, app2) => app1.displayName.localeCompare(app2.displayName)));
|
|
96
92
|
})();
|
|
97
93
|
}, [resourceApplications, t, applicationList]), useEffect(() => {
|
|
98
94
|
loadAndDisplayResources(debounceSearch);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface WorkspaceFoldersProps {
|
|
2
|
+
/**
|
|
3
|
+
* Function called when a folder is selected
|
|
4
|
+
*/
|
|
5
|
+
onFolderSelected: (folderId: string, canCopyFileInto: boolean) => void;
|
|
6
|
+
}
|
|
7
|
+
export default function WorkspaceFolders({ onFolderSelected, }: WorkspaceFoldersProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import SvgIconFolderAdd from "../../icons/components/IconFolderAdd.js";
|
|
5
|
+
import NewFolderForm from "./components/NewFolderForm.js";
|
|
6
|
+
import useWorkspaceFolders from "../../../hooks/useWorkspaceFolders/useWorkspaceFolders.js";
|
|
7
|
+
import useWorkspaceFoldersTree, { WORKSPACE_USER_FOLDER_ID, WORKSPACE_SHARED_FOLDER_ID } from "../../../hooks/useWorkspaceFolders/useWorkspaceFoldersTree.js";
|
|
8
|
+
import SearchBar from "../../../components/SearchBar/SearchBar.js";
|
|
9
|
+
import Loading from "../../../components/Loading/Loading.js";
|
|
10
|
+
import Tree from "../../../components/Tree/components/Tree.js";
|
|
11
|
+
import Button from "../../../components/Button/Button.js";
|
|
12
|
+
function WorkspaceFolders({
|
|
13
|
+
onFolderSelected
|
|
14
|
+
}) {
|
|
15
|
+
const {
|
|
16
|
+
t
|
|
17
|
+
} = useTranslation(), {
|
|
18
|
+
folders,
|
|
19
|
+
isLoading,
|
|
20
|
+
canCopyFileIntoFolder
|
|
21
|
+
} = useWorkspaceFolders(), {
|
|
22
|
+
foldersTree,
|
|
23
|
+
filterTree
|
|
24
|
+
} = useWorkspaceFoldersTree(folders), [searchValue, setSearchValue] = useState(""), [selectedFolderId, setSelectedFolderId] = useState(void 0), [showNewFolderForm, setShowNewFolderForm] = useState(!1), [canCreateFolderIntoSelectedFolder, setCanCreateFolderIntoSelectedFolder] = useState(!1), selectedFolderIdForAPI = selectedFolderId === WORKSPACE_USER_FOLDER_ID || !selectedFolderId ? "" : selectedFolderId;
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (selectedFolderId) {
|
|
27
|
+
const canCopyFileInto = selectedFolderId === WORKSPACE_USER_FOLDER_ID || canCopyFileIntoFolder(selectedFolderId) && selectedFolderId !== WORKSPACE_SHARED_FOLDER_ID;
|
|
28
|
+
setCanCreateFolderIntoSelectedFolder(canCopyFileInto), onFolderSelected(selectedFolderIdForAPI, canCopyFileInto);
|
|
29
|
+
}
|
|
30
|
+
}, [selectedFolderId]);
|
|
31
|
+
const handleSearchChange = (e) => {
|
|
32
|
+
setSearchValue(e.target.value);
|
|
33
|
+
}, handleSearchSubmit = () => {
|
|
34
|
+
filterTree(searchValue);
|
|
35
|
+
}, handleFolderSelected = (folderId) => {
|
|
36
|
+
setShowNewFolderForm(!1), setSelectedFolderId(folderId);
|
|
37
|
+
}, handleNewFolderClick = () => {
|
|
38
|
+
setShowNewFolderForm(!0);
|
|
39
|
+
}, handleNewFolderCreated = (folderId) => {
|
|
40
|
+
handleFolderSelected(folderId);
|
|
41
|
+
};
|
|
42
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: "d-flex flex-column gap-12", children: [
|
|
43
|
+
/* @__PURE__ */ jsx(SearchBar, { onChange: handleSearchChange, isVariant: !1, placeholder: t("search"), onClick: handleSearchSubmit }),
|
|
44
|
+
/* @__PURE__ */ jsxs("div", { className: "border border-gray-400 rounded", children: [
|
|
45
|
+
/* @__PURE__ */ jsx("div", { className: "p-12", children: isLoading ? /* @__PURE__ */ jsx(Loading, { isLoading: !0, className: "justify-content-center" }) : /* @__PURE__ */ jsx(Tree, { nodes: foldersTree, onTreeItemClick: handleFolderSelected, selectedNodeId: selectedFolderId }) }),
|
|
46
|
+
/* @__PURE__ */ jsxs("div", { className: "d-flex justify-content-end border-top border-gray-400 px-8 py-4 ", children: [
|
|
47
|
+
!showNewFolderForm && /* @__PURE__ */ jsx(Button, { color: "primary", variant: "ghost", leftIcon: /* @__PURE__ */ jsx(SvgIconFolderAdd, {}), onClick: handleNewFolderClick, disabled: !canCreateFolderIntoSelectedFolder, children: t("workspace.folder.create") }),
|
|
48
|
+
showNewFolderForm && selectedFolderId !== void 0 && /* @__PURE__ */ jsx(NewFolderForm, { onClose: () => setShowNewFolderForm(!1), folderParentId: selectedFolderIdForAPI, onFolderCreated: handleNewFolderCreated })
|
|
49
|
+
] })
|
|
50
|
+
] })
|
|
51
|
+
] }) });
|
|
52
|
+
}
|
|
53
|
+
export {
|
|
54
|
+
WorkspaceFolders as default
|
|
55
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type Props = {
|
|
2
|
+
/**
|
|
3
|
+
* Function called when the modal is closed
|
|
4
|
+
*/
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
/**
|
|
7
|
+
* Parent folder ID where the new folder will be created
|
|
8
|
+
*/
|
|
9
|
+
folderParentId: string;
|
|
10
|
+
/**
|
|
11
|
+
* Function called when the new folder is created
|
|
12
|
+
*/
|
|
13
|
+
onFolderCreated: (folderId: string) => void;
|
|
14
|
+
};
|
|
15
|
+
export default function NewFolderForm({ onClose, folderParentId, onFolderCreated, }: Props): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useEffect } from "react";
|
|
3
|
+
import { useTranslation } from "react-i18next";
|
|
4
|
+
import SvgIconSave from "../../../icons/components/IconSave.js";
|
|
5
|
+
import useWorkspaceFolders from "../../../../hooks/useWorkspaceFolders/useWorkspaceFolders.js";
|
|
6
|
+
import FormControl from "../../../../components/Form/FormControl.js";
|
|
7
|
+
import IconButton from "../../../../components/Button/IconButton.js";
|
|
8
|
+
function NewFolderForm({
|
|
9
|
+
onClose,
|
|
10
|
+
folderParentId,
|
|
11
|
+
onFolderCreated
|
|
12
|
+
}) {
|
|
13
|
+
const {
|
|
14
|
+
t
|
|
15
|
+
} = useTranslation(), refInputName = useRef(null), {
|
|
16
|
+
createFolderMutation
|
|
17
|
+
} = useWorkspaceFolders();
|
|
18
|
+
return useEffect(() => {
|
|
19
|
+
refInputName.current && refInputName.current.focus();
|
|
20
|
+
}, []), /* @__PURE__ */ jsx("form", { id: "modalWorkspaceNewFolderForm", onSubmit: async (event) => {
|
|
21
|
+
var _a;
|
|
22
|
+
event.preventDefault();
|
|
23
|
+
const folderName = (_a = refInputName.current) == null ? void 0 : _a.value;
|
|
24
|
+
folderName && createFolderMutation.mutate({
|
|
25
|
+
folderName,
|
|
26
|
+
folderParentId
|
|
27
|
+
}, {
|
|
28
|
+
onSuccess: (newFolder) => {
|
|
29
|
+
newFolder._id && onFolderCreated(newFolder._id), onClose();
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}, children: /* @__PURE__ */ jsxs("div", { className: "d-flex gap-4 flex-row", children: [
|
|
33
|
+
/* @__PURE__ */ jsx(FormControl, { id: "modalWorkspaceNewFolderForm", isRequired: !0, children: /* @__PURE__ */ jsx(FormControl.Input, { ref: refInputName, size: "md", type: "text", placeholder: t("workspace.folder.new.placeholder") }) }),
|
|
34
|
+
/* @__PURE__ */ jsx(IconButton, { type: "submit", color: "primary", variant: "ghost", title: t("workspace.folder.new.create"), disabled: createFolderMutation.isPending, isLoading: createFolderMutation.isPending, icon: /* @__PURE__ */ jsx(SvgIconSave, {}) })
|
|
35
|
+
] }) });
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
NewFolderForm as default
|
|
39
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as WorkspaceFolders } from './WorkspaceFolders';
|
package/dist/multimedia.js
CHANGED
|
@@ -6,6 +6,7 @@ import { default as default6 } from "./modules/multimedia/MediaLibrary/MediaLibr
|
|
|
6
6
|
import { default as default7 } from "./modules/multimedia/VideoEmbed/VideoEmbed.js";
|
|
7
7
|
import { default as default8 } from "./modules/multimedia/VideoRecorder/VideoRecorder.js";
|
|
8
8
|
import { default as default9 } from "./modules/multimedia/Workspace/Workspace.js";
|
|
9
|
+
import { default as default10 } from "./modules/multimedia/WorkspaceFolders/WorkspaceFolders.js";
|
|
9
10
|
import { ExternalLinker } from "./modules/multimedia/Linker/ExternalLinker/ExternalLinker.js";
|
|
10
11
|
import { InternalLinker } from "./modules/multimedia/Linker/InternalLinker/InternalLinker.js";
|
|
11
12
|
export {
|
|
@@ -18,5 +19,6 @@ export {
|
|
|
18
19
|
default6 as MediaLibrary,
|
|
19
20
|
default7 as VideoEmbed,
|
|
20
21
|
default8 as VideoRecorder,
|
|
21
|
-
default9 as Workspace
|
|
22
|
+
default9 as Workspace,
|
|
23
|
+
default10 as WorkspaceFolders
|
|
22
24
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edifice.io/react",
|
|
3
|
-
"version": "2.2.5-develop-
|
|
3
|
+
"version": "2.2.5-develop-b2school.20250506170337",
|
|
4
4
|
"description": "Edifice React Library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -118,9 +118,9 @@
|
|
|
118
118
|
"react-slugify": "^3.0.3",
|
|
119
119
|
"swiper": "^10.1.0",
|
|
120
120
|
"ua-parser-js": "^1.0.36",
|
|
121
|
-
"@edifice.io/bootstrap": "2.2.5-develop-
|
|
122
|
-
"@edifice.io/
|
|
123
|
-
"@edifice.io/
|
|
121
|
+
"@edifice.io/bootstrap": "2.2.5-develop-b2school.20250506170337",
|
|
122
|
+
"@edifice.io/utilities": "2.2.5-develop-b2school.20250506170337",
|
|
123
|
+
"@edifice.io/tiptap-extensions": "2.2.5-develop-b2school.20250506170337"
|
|
124
124
|
},
|
|
125
125
|
"devDependencies": {
|
|
126
126
|
"@babel/plugin-transform-react-pure-annotations": "^7.23.3",
|
|
@@ -151,8 +151,8 @@
|
|
|
151
151
|
"vite": "^5.4.11",
|
|
152
152
|
"vite-plugin-dts": "^4.1.0",
|
|
153
153
|
"vite-tsconfig-paths": "^5.0.1",
|
|
154
|
-
"@edifice.io/client": "2.2.5-develop-
|
|
155
|
-
"@edifice.io/config": "2.2.5-develop-
|
|
154
|
+
"@edifice.io/client": "2.2.5-develop-b2school.20250506170337",
|
|
155
|
+
"@edifice.io/config": "2.2.5-develop-b2school.20250506170337"
|
|
156
156
|
},
|
|
157
157
|
"peerDependencies": {
|
|
158
158
|
"@react-spring/web": "^9.7.5",
|