@edifice.io/react 2.2.5-develop-b2school.20250515164909 → 2.2.5-develop-integration.20250515200442

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 (100) hide show
  1. package/dist/components/Button/Button.d.ts +1 -1
  2. package/dist/components/Button/Button.js +1 -1
  3. package/dist/components/Button/IconButton.js +1 -1
  4. package/dist/components/Combobox/Combobox.d.ts +5 -56
  5. package/dist/components/Combobox/Combobox.js +7 -16
  6. package/dist/components/Combobox/ComboboxTrigger.d.ts +2 -31
  7. package/dist/components/Combobox/ComboboxTrigger.js +8 -31
  8. package/dist/components/Dropdown/Dropdown.d.ts +2 -10
  9. package/dist/components/Dropdown/Dropdown.js +3 -5
  10. package/dist/components/Dropdown/DropdownItem.d.ts +1 -5
  11. package/dist/components/Dropdown/DropdownItem.js +1 -4
  12. package/dist/components/Dropdown/DropdownTrigger.js +1 -5
  13. package/dist/components/List/List.d.ts +1 -15
  14. package/dist/components/List/List.js +12 -15
  15. package/dist/components/SearchBar/SearchBar.d.ts +1 -1
  16. package/dist/components/SearchBar/SearchBar.js +1 -3
  17. package/dist/components/Table/components/Table.d.ts +2 -0
  18. package/dist/components/Table/components/Table.js +8 -2
  19. package/dist/components/Toolbar/Toolbar.d.ts +0 -4
  20. package/dist/components/Toolbar/Toolbar.js +3 -8
  21. package/dist/components/Tree/components/Tree.js +2 -1
  22. package/dist/components/Tree/hooks/useTree.d.ts +1 -0
  23. package/dist/components/Tree/hooks/useTree.js +25 -2
  24. package/dist/components/Tree/types/index.d.ts +4 -0
  25. package/dist/editor.js +26 -28
  26. package/dist/hooks/index.d.ts +0 -1
  27. package/dist/hooks/useCheckable/useCheckable.js +3 -10
  28. package/dist/hooks/useConversation/useConversation.d.ts +1 -1
  29. package/dist/hooks/useConversation/useConversation.js +17 -13
  30. package/dist/hooks/useDate/useDate.d.ts +0 -1
  31. package/dist/hooks/useDate/useDate.js +27 -33
  32. package/dist/hooks/useDropdown/useDropdown.d.ts +1 -2
  33. package/dist/hooks/useDropdown/useDropdown.js +3 -5
  34. package/dist/hooks/useHttpErrorToast/useHttpErrorToast.js +3 -12
  35. package/dist/icons.js +266 -280
  36. package/dist/index.d.ts +0 -1
  37. package/dist/index.js +20 -50
  38. package/dist/modals.js +14 -16
  39. package/dist/modules/editor/components/Editor/CantooAdaptTextBoxView.d.ts +7 -0
  40. package/dist/modules/editor/components/Editor/CantooAdaptTextBoxView.js +33 -0
  41. package/dist/modules/editor/components/Editor/Editor.d.ts +2 -8
  42. package/dist/modules/editor/components/Editor/Editor.js +19 -11
  43. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Cantoo.d.ts +9 -0
  44. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.Cantoo.js +79 -0
  45. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.d.ts +4 -1
  46. package/dist/modules/editor/components/EditorToolbar/EditorToolbar.js +15 -3
  47. package/dist/modules/editor/components/NodeView/index.d.ts +1 -2
  48. package/dist/modules/editor/components/Renderer/index.d.ts +1 -2
  49. package/dist/modules/editor/hooks/index.d.ts +1 -0
  50. package/dist/modules/editor/hooks/useCantooEditor.d.ts +17 -0
  51. package/dist/modules/editor/hooks/useCantooEditor.js +89 -0
  52. package/dist/modules/editor/hooks/useTipTapEditor.d.ts +2 -6
  53. package/dist/modules/editor/hooks/useTipTapEditor.js +2 -2
  54. package/dist/modules/icons/components/{IconGlobe2.d.ts → IconCantoo.d.ts} +2 -2
  55. package/dist/modules/icons/components/IconCantoo.js +23 -0
  56. package/dist/modules/icons/components/IconMicOff.d.ts +7 -0
  57. package/dist/modules/icons/components/IconMicOff.js +12 -0
  58. package/dist/modules/icons/components/IconTextToSpeechOff.d.ts +7 -0
  59. package/dist/modules/icons/components/IconTextToSpeechOff.js +12 -0
  60. package/dist/modules/icons/components/index.d.ts +3 -10
  61. package/dist/modules/modals/index.d.ts +0 -1
  62. package/dist/modules/multimedia/Linker/InternalLinker/InternalLinker.js +6 -5
  63. package/dist/modules/multimedia/index.d.ts +0 -1
  64. package/dist/multimedia.js +1 -3
  65. package/package.json +6 -6
  66. package/dist/hooks/useWorkspaceFolders/index.d.ts +0 -3
  67. package/dist/hooks/useWorkspaceFolders/useWorkspaceFolders.js +0 -54
  68. package/dist/hooks/useWorkspaceFolders/useWorkspaceFoldersTree.d.ts +0 -13
  69. package/dist/hooks/useWorkspaceFolders/useWorkspaceFoldersTree.js +0 -51
  70. package/dist/modules/editor/components/NodeView/ConversationHistoryNodeView.d.ts +0 -2
  71. package/dist/modules/editor/components/NodeView/ConversationHistoryNodeView.js +0 -10
  72. package/dist/modules/editor/components/Renderer/ConversationHistoryRenderer.d.ts +0 -8
  73. package/dist/modules/editor/components/Renderer/ConversationHistoryRenderer.js +0 -28
  74. package/dist/modules/icons/components/IconFolderAdd.d.ts +0 -7
  75. package/dist/modules/icons/components/IconFolderAdd.js +0 -13
  76. package/dist/modules/icons/components/IconFolderDelete.d.ts +0 -7
  77. package/dist/modules/icons/components/IconFolderDelete.js +0 -12
  78. package/dist/modules/icons/components/IconGlobe2.js +0 -16
  79. package/dist/modules/icons/components/IconGroupAvatar.d.ts +0 -7
  80. package/dist/modules/icons/components/IconGroupAvatar.js +0 -12
  81. package/dist/modules/icons/components/IconMailRecall.d.ts +0 -7
  82. package/dist/modules/icons/components/IconMailRecall.js +0 -13
  83. package/dist/modules/icons/components/IconQuestionMark.d.ts +0 -7
  84. package/dist/modules/icons/components/IconQuestionMark.js +0 -13
  85. package/dist/modules/icons/components/IconReadMail.d.ts +0 -7
  86. package/dist/modules/icons/components/IconReadMail.js +0 -16
  87. package/dist/modules/icons/components/IconSignature.d.ts +0 -7
  88. package/dist/modules/icons/components/IconSignature.js +0 -13
  89. package/dist/modules/icons/components/IconUndoAll.d.ts +0 -7
  90. package/dist/modules/icons/components/IconUndoAll.js +0 -14
  91. package/dist/modules/icons/components/IconUnreadMail.d.ts +0 -7
  92. package/dist/modules/icons/components/IconUnreadMail.js +0 -16
  93. package/dist/modules/modals/ConfirmModal/ConfirmModal.d.ts +0 -47
  94. package/dist/modules/modals/ConfirmModal/ConfirmModal.js +0 -37
  95. package/dist/modules/modals/ConfirmModal/index.d.ts +0 -1
  96. package/dist/modules/multimedia/WorkspaceFolders/WorkspaceFolders.d.ts +0 -8
  97. package/dist/modules/multimedia/WorkspaceFolders/WorkspaceFolders.js +0 -55
  98. package/dist/modules/multimedia/WorkspaceFolders/components/NewFolderForm.d.ts +0 -16
  99. package/dist/modules/multimedia/WorkspaceFolders/components/NewFolderForm.js +0 -39
  100. package/dist/modules/multimedia/WorkspaceFolders/index.d.ts +0 -1
@@ -1,7 +0,0 @@
1
- import { SVGProps } from 'react';
2
- interface SVGRProps {
3
- title?: string;
4
- titleId?: string;
5
- }
6
- declare const SvgIconReadMail: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
7
- export default SvgIconReadMail;
@@ -1,16 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- const SvgIconReadMail = ({
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 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
7
- title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
8
- /* @__PURE__ */ jsxs("g", { fill: "currentColor", fillRule: "evenodd", clipPath: "url(#icon-read-mail_svg__a)", clipRule: "evenodd", children: [
9
- /* @__PURE__ */ jsx("path", { d: "M1.143 8.986a1 1 0 0 1 1.372-.343l8.97 5.382a1 1 0 0 0 1.03 0l8.97-5.382a1 1 0 1 1 1.03 1.714l-8.971 5.383a3 3 0 0 1-3.088 0l-8.97-5.382a1 1 0 0 1-.343-1.373" }),
10
- /* @__PURE__ */ jsx("path", { d: "M12.466 2.4a.95.95 0 0 0-.932 0c-1.333.74-3.83 2.146-5.99 3.465-1.083.662-2.063 1.29-2.764 1.797a8 8 0 0 0-.78.62v11.003H0V8c0-.38.191-.664.272-.776.107-.148.238-.285.364-.404.254-.24.594-.506.973-.78.765-.552 1.797-1.212 2.892-1.881C6.697 2.817 9.224 1.395 10.563.65a2.95 2.95 0 0 1 2.874 0c1.34.744 3.866 2.166 6.062 3.508 1.095.669 2.127 1.33 2.892 1.882.38.273.719.54.973.78.126.118.257.255.364.403.08.112.272.395.272.776v11.285h-2V8.284l-.009-.008a8 8 0 0 0-.77-.613c-.702-.506-1.682-1.135-2.765-1.797-2.16-1.32-4.657-2.725-5.99-3.466M2.321 19.802c.253.192.647.34 1.123.34h17.112c.476 0 .87-.148 1.123-.34.252-.192.321-.384.321-.517h2c0 .892-.479 1.629-1.111 2.11-.632.479-1.46.747-2.333.747H3.444c-.873 0-1.701-.268-2.333-.748S0 20.178 0 19.285h2c0 .133.069.326.32.518" })
11
- ] }),
12
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "icon-read-mail_svg__a", children: /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M0 0h24v24H0z" }) }) })
13
- ] });
14
- export {
15
- SvgIconReadMail as default
16
- };
@@ -1,7 +0,0 @@
1
- import { SVGProps } from 'react';
2
- interface SVGRProps {
3
- title?: string;
4
- titleId?: string;
5
- }
6
- declare const SvgIconSignature: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
7
- export default SvgIconSignature;
@@ -1,13 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- const SvgIconSignature = ({
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 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
7
- title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
8
- /* @__PURE__ */ jsx("g", { fill: "currentColor", fillRule: "evenodd", clipPath: "url(#icon-signature_svg__a)", clipRule: "evenodd", children: /* @__PURE__ */ jsx("path", { d: "M6.82 11.679c-.047-.013-.298-.045-.906.231-.551.25-1.204.894-1.838 1.899-.616.978-1.143 2.185-1.496 3.391-.356 1.215-.514 2.358-.45 3.215.07.92.35 1.154.476 1.204.093.037.44.071 1.142-.166.648-.219 1.427-.61 2.243-1.132q.383-.245.761-.517v-.019c-.055-1.175.068-2.549.18-3.802q.038-.416.072-.81c.062-.746.105-1.427.098-2.014-.008-.602-.069-1.02-.165-1.28a.6.6 0 0 0-.1-.19c-.008-.008-.008-.008-.015-.01zm1.951 6.422c.035-.602.091-1.234.149-1.88l.077-.882c.063-.757.113-1.516.105-2.204-.009-.673-.073-1.365-.289-1.95-.227-.613-.669-1.216-1.461-1.434-.719-.198-1.5-.01-2.266.339-1.078.49-1.99 1.524-2.701 2.652-.729 1.155-1.327 2.537-1.725 3.896-.395 1.35-.613 2.748-.524 3.927.084 1.117.486 2.415 1.727 2.911.79.316 1.73.14 2.525-.128.848-.286 1.775-.763 2.68-1.342l.1-.065c.267.629.712 1.205 1.428 1.521 1.046.463 1.95.47 2.757.243.562-.158 1.104-.449 1.511-.667q.166-.09.297-.157c.476-.24.803-.342 1.154-.306.356.037.91.236 1.756.987a1 1 0 0 0 1.327-1.496c-1.02-.906-1.953-1.385-2.879-1.48-.931-.096-1.682.219-2.259.51-.182.091-.34.176-.485.253-.36.193-.63.337-.962.43-.37.104-.796.125-1.409-.146-.135-.06-.278-.185-.406-.502a3 3 0 0 1-.13-.432c1.164-.95 2.234-2.049 2.964-3.144a1 1 0 1 0-1.664-1.11 11 11 0 0 1-1.397 1.656M10.201 2.114c.306.049.58.217.762.468l10.453 14.397.198 2.262-2.089-.89L9.073 3.955a1.168 1.168 0 0 1 1.128-1.84m2.38-.707a3.168 3.168 0 0 0-5.127 3.722L18.07 19.751a1 1 0 0 0 .417.333l3.878 1.65a1 1 0 0 0 1.388-1.008l-.369-4.198a1 1 0 0 0-.187-.5z" }) }),
9
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "icon-signature_svg__a", children: /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M0 0h24v24H0z" }) }) })
10
- ] });
11
- export {
12
- SvgIconSignature as default
13
- };
@@ -1,7 +0,0 @@
1
- import { SVGProps } from 'react';
2
- interface SVGRProps {
3
- title?: string;
4
- titleId?: string;
5
- }
6
- declare const SvgIconUndoAll: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
7
- export default SvgIconUndoAll;
@@ -1,14 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- const SvgIconUndoAll = ({
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 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
7
- title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
8
- /* @__PURE__ */ jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M11.648 12.564a.917.917 0 0 0 0-1.297L7.713 7.332l3.935-3.935A.917.917 0 1 0 10.352 2.1L5.768 6.684a.917.917 0 0 0 0 1.296l4.584 4.583a.917.917 0 0 0 1.296 0", clipRule: "evenodd" }),
9
- /* @__PURE__ */ jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M7.523 12.564a.917.917 0 0 0 0-1.297L3.588 7.332l3.935-3.935A.917.917 0 1 0 6.227 2.1L1.643 6.684a.917.917 0 0 0 0 1.296l4.584 4.583a.917.917 0 0 0 1.296 0", clipRule: "evenodd" }),
10
- /* @__PURE__ */ jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M19.25 18.332c.506 0 .917-.41.917-.917V11a4.583 4.583 0 0 0-4.584-4.584H6.417a.917.917 0 0 0 0 1.834h9.166a2.75 2.75 0 0 1 2.75 2.75v6.416c0 .507.41.917.917.917", clipRule: "evenodd" })
11
- ] });
12
- export {
13
- SvgIconUndoAll as default
14
- };
@@ -1,7 +0,0 @@
1
- import { SVGProps } from 'react';
2
- interface SVGRProps {
3
- title?: string;
4
- titleId?: string;
5
- }
6
- declare const SvgIconUnreadMail: ({ title, titleId, ...props }: SVGProps<SVGSVGElement> & SVGRProps) => import("react/jsx-runtime").JSX.Element;
7
- export default SvgIconUnreadMail;
@@ -1,16 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- const SvgIconUnreadMail = ({
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 24 24", "aria-hidden": "true", "aria-labelledby": titleId, ...props, children: [
7
- title ? /* @__PURE__ */ jsx("title", { id: titleId, children: title }) : null,
8
- /* @__PURE__ */ jsxs("g", { fill: "currentColor", fillRule: "evenodd", clipPath: "url(#icon-unread-mail_svg__a)", clipRule: "evenodd", children: [
9
- /* @__PURE__ */ jsx("path", { d: "M7.975 4.5a5.1 5.1 0 0 0-.204-2h12.785A3.437 3.437 0 0 1 24 5.948V18.07c0 1.9-1.548 3.429-3.444 3.429H3.444A3.437 3.437 0 0 1 0 18.071V8.001c.581.436 1.261.749 2 .899v9.171c0 .783.64 1.429 1.444 1.429h17.112c.803 0 1.444-.646 1.444-1.429V7.79l-9.448 6.257a1 1 0 0 1-1.104 0L3.744 8.945a5 5 0 0 0 2.228-.924L12 12.014l9.916-6.567c-.2-.55-.73-.947-1.36-.947z" }),
10
- /* @__PURE__ */ jsx("path", { d: "M3 7a3 3 0 1 0 0-6 3 3 0 0 0 0 6" })
11
- ] }),
12
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "icon-unread-mail_svg__a", children: /* @__PURE__ */ jsx("path", { fill: "#fff", d: "M0 0h24v24H0z" }) }) })
13
- ] });
14
- export {
15
- SvgIconUnreadMail as default
16
- };
@@ -1,47 +0,0 @@
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 {};
@@ -1,37 +0,0 @@
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
- };
@@ -1 +0,0 @@
1
- export { default as ConfirmModal } from './ConfirmModal';
@@ -1,8 +0,0 @@
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 {};
@@ -1,55 +0,0 @@
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
- };
@@ -1,16 +0,0 @@
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 {};
@@ -1,39 +0,0 @@
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
- };
@@ -1 +0,0 @@
1
- export { default as WorkspaceFolders } from './WorkspaceFolders';