@bigbinary/neeto-folders-frontend 1.1.0 → 1.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../app/javascript/src/components/internal/Alerts.jsx","../app/javascript/src/components/internal/Pane/AddEdit.jsx","../app/javascript/src/components/internal/Pane/Node.jsx","../app/javascript/src/components/internal/Pane/Move/SelectableNode.jsx","../app/javascript/src/components/internal/Pane/Move/Body.jsx","../app/javascript/src/components/internal/Pane/Move/index.jsx","../app/javascript/src/components/internal/Pane/Reorder/DraggableNode.jsx","../app/javascript/src/components/internal/Pane/Reorder/index.jsx","../app/javascript/src/components/internal/Pane/index.jsx","../app/javascript/src/components/Context.jsx","../app/javascript/src/components/List/Tile.jsx","../app/javascript/src/components/List/index.jsx","../app/javascript/src/components/MoveToFolderPane.jsx","../app/javascript/src/components/Tree/Node.jsx","../app/javascript/src/components/Tree/index.jsx"],"sourcesContent":["import { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Alert } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { useDestroyFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport useFolders from \"hooks/useFolders\";\nimport useFolderStore from \"stores/foldersStore\";\nimport { isActiveFolder } from \"utils/internal\";\nimport { pathToFolder } from \"utils/pathUtils\";\n\nconst FoldersAlerts = ({ config }) => {\n const { setFolderState } = useFolderStore.pick();\n const queryParams = useQueryParams({ toCamelCase: false });\n const history = useHistory();\n const { t } = useTranslation();\n\n const { type, item } = useFolderStore.pick(\"alertState\");\n const { mutateAsync: destroyFolder, isLoading } = useDestroyFolder(config);\n const { folders } = useFolders(config);\n\n const onClose = () => setFolderState({ alertState: null });\n const alertProps = { isOpen: !!type, isSubmitting: isLoading, onClose };\n\n const onConfirmDelete = async () => {\n await destroyFolder(item.id);\n onClose();\n\n if (!isActiveFolder(item.sid) || !folders) return;\n const path = pathToFolder(folders, item.id);\n const parent = path[path.length - 2];\n if (!parent) return;\n history.replace(\n buildUrl(config.folderPath, {\n ...queryParams,\n folderId: parent.sid,\n })\n );\n };\n\n if (type === \"delete\") {\n alertProps.title = t(\"deleteFolder.title\");\n alertProps.message = <Trans i18nKey=\"deleteFolder.info\" values={item} />;\n if (config.customizeAlerts) config.customizeAlerts(type, item, alertProps);\n alertProps.onSubmit = onConfirmDelete;\n }\n\n return <Alert {...alertProps} />;\n};\n\nexport default FoldersAlerts;\n","import { useMemo } from \"react\";\n\nimport { Formik, Form } from \"formik\";\nimport { Pane, Typography } from \"neetoui\";\nimport { Input, Select, ActionBlock } from \"neetoui/formik\";\nimport { pipe, prop, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchFolders,\n useCreateFolder,\n useUpdateFolder,\n} from \"hooks/reactQuery/useFoldersApi\";\nimport useFolderStore from \"stores/foldersStore\";\nimport { treeToMap } from \"utils/treeUtils\";\n\nconst flattenTree = pipe(treeToMap, values);\n\nconst AddEditPane = ({ config, onClose }) => {\n const { type, item } = useFolderStore.pick(\"paneState\");\n const { data: folders } = useFetchFolders(config);\n const { mutate: createFolder } = useCreateFolder(config);\n const { mutateAsync: updateFolder } = useUpdateFolder(config);\n const { t } = useTranslation();\n\n const isEditing = type === \"edit\" && item;\n const initialValues = isEditing ? item : { name: \"\", parentId: null };\n const folderOptions = useMemo(() => flattenTree(folders), [folders]);\n\n const onSubmitForm = async values => {\n const payload = { name: values.name, parent_id: values.parentId };\n isEditing\n ? await updateFolder({ id: item.id, payload })\n : await createFolder(payload);\n onClose();\n };\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\">\n {isEditing ? t(\"folders.edit\") : t(\"folders.add\")}\n </Typography>\n </Pane.Header>\n <Formik {...{ initialValues }} onSubmit={onSubmitForm}>\n {({ setFieldValue }) => (\n <>\n <Pane.Body>\n <Form className=\"w-full space-y-5\">\n <Input label={t(\"folders.name\")} name=\"name\" />\n <div>\n <Select\n isClearable\n filterOption={({ value }) => value !== initialValues.id}\n getOptionLabel={prop(\"name\")}\n getOptionValue={prop(\"id\")}\n label={t(\"createFolder.parentTitle\")}\n name=\"parentId\"\n options={folderOptions}\n onChange={option =>\n setFieldValue(\"parentId\", option ? option.id : null)\n }\n />\n <Typography style=\"nano\">\n {t(\"createFolder.parentInfo\")}\n </Typography>\n </div>\n </Form>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock cancelButtonProps={{ onClick: onClose }} />\n </Pane.Footer>\n </>\n )}\n </Formik>\n </>\n );\n};\n\nexport default AddEditPane;\n","import { forwardRef } from \"react\";\n\nimport classNames from \"classnames\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst indentSize = 30;\n\nconst Node = (\n { icon = null, itemLabel, folder, depth, className, onClick, ...rest },\n ref\n) => {\n const { t } = useTranslation();\n\n const metaInfo = [];\n const childCount = folder.children?.length ?? 0;\n childCount > 0 &&\n metaInfo.push(t(\"folders.subfolderCount\", { count: childCount }));\n folder.itemCount > 0 && metaInfo.push(`${folder.itemCount} ${itemLabel}`);\n\n return (\n <div className=\"flex\">\n {Array.from({ length: depth }).map((_, index) => (\n <span\n className=\"relative border-l\"\n key={index}\n style={{ width: indentSize, left: Math.round(indentSize / 2) }}\n />\n ))}\n <div\n {...{ ...rest, onClick, ref }}\n className={classNames(\n \"relative my-1 flex cursor-pointer items-center px-2 py-1\",\n className\n )}\n >\n {icon}\n <div className=\"ml-2\">\n <Typography style=\"body3\" weight=\"medium\">\n {folder.name}\n </Typography>\n <Typography\n className=\"relative -top-0.5\"\n style=\"nano\"\n weight=\"normal\"\n >\n {metaInfo.join(\" . \")}\n </Typography>\n </div>\n </div>\n </div>\n );\n};\n\nexport default forwardRef(Node);\n","import classNames from \"classnames\";\nimport { isNotPresent, noop } from \"neetocist\";\nimport { Radio, Tooltip } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Node from \"../Node\";\n\nconst SelectableNode = ({\n folder,\n item,\n depth = 0,\n maxDepth,\n disabled,\n ...rest\n}) => {\n const { selection, onSelect } = rest;\n const { t } = useTranslation();\n\n const isDisabled = disabled || item?.id === folder.id || depth > maxDepth;\n\n const renderChildren = () => {\n if (isNotPresent(folder.children)) return null;\n\n return folder.children.map(child => (\n <SelectableNode\n {...{ ...rest, item, maxDepth }}\n depth={depth + 1}\n disabled={isDisabled}\n folder={child}\n key={child.id}\n />\n ));\n };\n\n return (\n <Tooltip\n content={t(\"moveToFolder.notAllowed\")}\n disabled={!isDisabled}\n position=\"top\"\n >\n <div className={classNames({ \"opacity-40\": isDisabled })}>\n <Node\n {...{ ...rest, depth, folder }}\n icon={\n <Radio.Item\n readOnly\n checked={selection === folder.id}\n name=\"move-folder-option\"\n />\n }\n onClick={isDisabled ? noop : () => onSelect(folder)}\n />\n {renderChildren()}\n </div>\n </Tooltip>\n );\n};\n\nexport default SelectableNode;\n","import { useState } from \"react\";\n\nimport { Button, Pane, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\nimport useFolderStore from \"stores/foldersStore\";\nimport { treeToMap, measureDepth } from \"utils/treeUtils\";\n\nimport SelectableNode from \"./SelectableNode\";\n\nconst PaneBody = ({\n item,\n config,\n submitButtonProps,\n cancelButtonProps,\n removeButtonProps,\n onSubmit,\n onClose,\n onRemove,\n}) => {\n const [selection, setSelection] = useState(null);\n const { setFolderState } = useFolderStore.pick();\n const { data: folders = [] } = useFetchFolders(config);\n const { t } = useTranslation();\n\n let folderDepth = 0;\n if (item) {\n // If item is a folder, measure the current depth from current folder to longest leaf.\n const foldersMap = treeToMap(folders);\n const folder = foldersMap[item.id];\n if (folder) folderDepth = measureDepth(folder);\n }\n\n const maxDepth = config.maxDepth - folderDepth;\n\n const onAddFolder = () => {\n setFolderState({ paneState: { type: \"add\", item: null } });\n };\n\n return (\n <>\n <Pane.Header className=\"flex items-center justify-between\">\n <Typography style=\"h2\">{t(\"moveToFolder.title\")}</Typography>\n <Button\n className=\"mr-2\"\n label={t(\"folders.add\")}\n style=\"link\"\n onClick={onAddFolder}\n />\n </Pane.Header>\n <Pane.Body>\n {folders.map(folder => (\n <SelectableNode\n {...{ folder, item, maxDepth, selection }}\n disabled={item?.id === folder.id || maxDepth <= 0}\n itemLabel={config.itemLabel}\n key={folder.id}\n onSelect={folder => setSelection(folder.id)}\n />\n ))}\n </Pane.Body>\n <Pane.Footer className=\"space-x-2\">\n <div className=\"flex flex-1 space-x-2\">\n <Button\n disabled={!selection}\n label={t(\"common.save\")}\n style=\"primary\"\n onClick={() => onSubmit(selection)}\n {...submitButtonProps}\n />\n <Button\n label={t(\"common.cancel\")}\n style=\"text\"\n onClick={onClose}\n {...cancelButtonProps}\n />\n </div>\n {onRemove && (\n <Button\n label={t(\"moveToFolder.remove\")}\n style=\"tertiary\"\n onClick={onRemove}\n {...removeButtonProps}\n />\n )}\n </Pane.Footer>\n </>\n );\n};\n\nexport default PaneBody;\n","import { useUpdateFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport PaneBody from \"./Body\";\n\nconst MoveFolderPane = ({ config, onClose }) => {\n const { item } = useFolderStore.pick(\"paneState\");\n const { mutate: updateFolder } = useUpdateFolder(config);\n\n const onSaveSelection = parentId => {\n const payload = { id: item.id, parentId };\n updateFolder({ id: item.id, payload }, { onSuccess: onClose });\n };\n\n return <PaneBody {...{ config, item, onClose }} onSubmit={onSaveSelection} />;\n};\n\nexport default MoveFolderPane;\n","import { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\n\nimport Node from \"../Node\";\n\nconst DraggableNode = ({ folder, depth = 0, ...rest }) => {\n const {\n isDragging,\n attributes,\n listeners,\n setNodeRef: setDraggableRef,\n } = useDraggable({\n id: `draggable-item--${folder.id}`,\n data: folder,\n disabled: depth <= 0,\n });\n\n const { isOver, setNodeRef: setDroppableRef } = useDroppable({\n id: `droppable-item--${folder.id}`,\n data: folder,\n disabled: isDragging,\n });\n\n const renderChildren = () => {\n if (isNotPresent(folder.children) || isDragging) return null;\n\n return folder.children.map(child => (\n <DraggableNode\n {...rest}\n depth={depth + 1}\n folder={child}\n key={child.id}\n />\n ));\n };\n\n return (\n <div>\n <Node\n {...rest}\n className={classNames({\n \"neeto-ui-bg-gray-100 opacity-50 \": isDragging,\n \"neeto-ui-border-primary-500 border\": isOver,\n \"border border-transparent\": !isOver,\n })}\n {...{ depth, folder, ...attributes, ...listeners }}\n ref={ref => {\n setDroppableRef(ref);\n setDraggableRef(ref);\n }}\n />\n {renderChildren()}\n </div>\n );\n};\n\nexport default DraggableNode;\n","import { useState } from \"react\";\n\nimport { DndContext, DragOverlay } from \"@dnd-kit/core\";\nimport { useStateWithDependency } from \"neetocommons/react-utils\";\nimport { Folder } from \"neetoicons\";\nimport { Button, Pane, Toastr, Typography } from \"neetoui\";\nimport { assoc, isEmpty } from \"ramda\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchFolders,\n useReorderFolders,\n} from \"hooks/reactQuery/useFoldersApi\";\nimport { treeToMap, measureDepth, mapToTree } from \"utils/treeUtils\";\n\nimport DraggableNode from \"./DraggableNode\";\n\nimport Node from \"../Node\";\n\nconst ReorderFoldersPane = ({ config, onClose }) => {\n const [dragItem, setDragItem] = useState(null);\n const [changes, setChanges] = useState({});\n\n const { t } = useTranslation();\n const { data: folders } = useFetchFolders(config);\n const { mutate: reorderFolders } = useReorderFolders(config);\n\n const [tree, setTree] = useStateWithDependency(\n () => ({ name: \"/\", id: null, children: folders }),\n [folders]\n );\n\n const onDragEnd = ({ active, over }) => {\n setDragItem(null);\n if (!over) return;\n\n const foldersMap = treeToMap(tree);\n const activeFolder = foldersMap[active.data.current.id];\n const overFolder = foldersMap[over.data.current.id];\n\n // Check moving inside same directory\n if (activeFolder.meta.parent?.id === overFolder.id) return;\n\n // Check moving to a folder with depth greater than the allowed limit.\n // maxDepth + 1 due to extra root node added for the tree\n const activeDepth = measureDepth(activeFolder);\n const overDepth = overFolder.meta.depth;\n if (activeDepth + overDepth >= config.maxDepth + 1) {\n Toastr.error(\n t(\"moveToFolder.depthExceeded\", { maxDepth: config.maxDepth })\n );\n\n return;\n }\n\n activeFolder.meta.parent = overFolder;\n const newTree = mapToTree(foldersMap);\n setTree(newTree);\n setChanges(assoc(activeFolder.id, overFolder.id));\n };\n\n const onSubmit = () => {\n const payload = { changes };\n reorderFolders(payload, { onSuccess: onClose });\n };\n\n const nodeProps = { icon: <Folder />, itemLabel: config.itemLabel };\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\">{t(\"reorderFolder.title\")}</Typography>\n </Pane.Header>\n <DndContext\n {...{ onDragEnd }}\n onDragStart={({ active }) => setDragItem(active.data.current)}\n >\n <Pane.Body>\n <DraggableNode {...nodeProps} folder={tree} key={tree.id} />\n </Pane.Body>\n <Pane.Footer className=\"space-x-2\">\n <Button\n disabled={isEmpty(changes)}\n label={t(\"common.save\")}\n style=\"primary\"\n onClick={onSubmit}\n />\n <Button label={t(\"common.cancel\")} style=\"text\" onClick={onClose} />\n </Pane.Footer>\n {createPortal(\n <DragOverlay zIndex={99999}>\n {dragItem && (\n <Node\n {...nodeProps}\n className=\"neeto-ui-bg-gray-200\"\n depth={0}\n folder={dragItem}\n />\n )}\n </DragOverlay>,\n document.body\n )}\n </DndContext>\n </>\n );\n};\n\nexport default ReorderFoldersPane;\n","/* eslint-disable @bigbinary/neeto/no-conditional-overlays */\n\nimport { Pane } from \"neetoui\";\n\nimport { DEFAULT_CONFIG } from \"constants/config\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport AddEditPane from \"./AddEdit\";\nimport MoveFolderPane from \"./Move\";\nimport ReorderFoldersPane from \"./Reorder\";\n\nconst FoldersPane = ({ config: configProps }) => {\n const config = { ...DEFAULT_CONFIG, ...configProps };\n const { setFolderState } = useFolderStore.pick();\n const { type } = useFolderStore.pick(\"paneState\");\n\n const onClose = () => setFolderState({ paneState: null });\n const commonProps = { config, onClose };\n\n return (\n <Pane {...{ onClose }} isOpen={!!type}>\n {(type === \"edit\" || type === \"add\") && <AddEditPane {...commonProps} />}\n {type === \"move\" && <MoveFolderPane {...commonProps} />}\n {type === \"reorder\" && <ReorderFoldersPane {...commonProps} />}\n </Pane>\n );\n};\n\nexport default FoldersPane;\n","import FoldersAlerts from \"components/internal/Alerts\";\nimport FoldersPane from \"components/internal/Pane\";\n\nconst FoldersContext = ({ config, children }) => (\n <>\n {children}\n <FoldersPane {...{ config }} />\n <FoldersAlerts {...{ config }} />\n </>\n);\n\nexport default FoldersContext;\n","import MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport { Checkbox, Typography, Tooltip } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nconst FolderTile = ({\n isSelected,\n link,\n itemLabel,\n folder,\n actions,\n onSelect,\n}) => {\n const { t } = useTranslation();\n\n const actionCallback = callback => event => {\n event.preventDefault();\n callback(folder);\n };\n\n const menuItems = [\n {\n key: \"edit\",\n label: t(\"common.edit\"),\n onClick: actionCallback(actions.onEdit),\n },\n {\n key: \"move\",\n label: t(\"common.move\"),\n onClick: actionCallback(actions.onMove),\n },\n {\n key: \"delete\",\n label: t(\"common.delete\"),\n onClick: actionCallback(actions.onDelete),\n },\n ];\n\n const metaInfo = [];\n const childCount = folder.children?.length ?? 0;\n childCount > 0 &&\n metaInfo.push(t(\"folders.subfolderCount\", { count: childCount }));\n metaInfo.push(`${folder.itemCount || 0} ${itemLabel}`);\n\n return (\n <Link\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-md m-2 w-64 border p-3\"\n to={link}\n >\n <div className=\"mb-1 flex items-center justify-between\">\n <div className=\"flex items-center\">\n <Checkbox\n checked={isSelected}\n className=\"mr-2\"\n name={folder.id}\n onChange={event => onSelect(folder, event.target.checked)}\n onClick={event => event.stopPropagation()}\n />\n <Tooltip content={folder.name} delay={[300, 0]}>\n <Typography className=\"line-clamp-1\" style=\"body1\" weight=\"medium\">\n {folder.name}\n </Typography>\n </Tooltip>\n </div>\n <MoreDropdown\n {...{ menuItems }}\n dropdownProps={{ onClick: event => event.preventDefault() }}\n />\n </div>\n <Typography className=\"ml-6\" style=\"body3\">\n {metaInfo.join(\" . \")}\n </Typography>\n </Link>\n );\n};\n\nexport default FolderTile;\n","import { isNotPresent } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport FoldersContext from \"components/Context\";\nimport { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFolder, useFolders } from \"hooks\";\nimport useFolderActions from \"hooks/useFolderActions\";\n\nimport FolderTile from \"./Tile\";\n\nconst FoldersList = ({ selection = [], config: configProps, onSelect }) => {\n const config = { ...DEFAULT_CONFIG, ...configProps };\n const params = useQueryParams({ toCamelCase: false });\n const { t } = useTranslation();\n\n const { folders } = useFolders(config);\n const { folderId, folder } = useFolder(config);\n const actions = useFolderActions(config);\n const subFolders = folderId ? folder?.children : folders;\n if (isNotPresent(subFolders)) return null;\n\n return (\n <FoldersContext {...{ config }}>\n <Typography className=\"mb-2 mt-2\" style=\"h4\">\n {t(\"folders.title\")}\n </Typography>\n <div className=\"mb-6 flex flex-wrap justify-items-center\">\n {subFolders.map(folder => (\n <FolderTile\n {...{ actions, folder, onSelect }}\n isSelected={selection.includes(folder.id)}\n itemLabel={config.itemLabel}\n key={folder.id}\n link={buildUrl(config.folderPath, {\n ...params,\n folderId: folder.sid,\n })}\n />\n ))}\n </div>\n </FoldersContext>\n );\n};\n\nexport default FoldersList;\n","import { Pane } from \"neetoui\";\n\nimport PaneBody from \"components/internal/Pane/Move/Body\";\n\nconst MoveToFolderPane = ({ isOpen, onClose, ...rest }) => (\n <Pane {...{ isOpen, onClose }}>\n <PaneBody {...{ ...rest, onClose }} />\n </Pane>\n);\n\nexport default MoveToFolderPane;\n","import { Tooltip, Typography } from \"neetoui\";\nimport { NavLink } from \"react-router-dom\";\n\nconst FolderNode = ({ isActive, folder, link }) => (\n <NavLink\n activeClassName=\"active\"\n className=\"block\"\n isActive={() => isActive}\n to={link}\n >\n <Tooltip content={folder.name} delay={[300, 0]}>\n <Typography className=\"line-clamp-1\" component=\"span\" style=\"body2\">\n {folder.name}\n </Typography>\n </Tooltip>\n </NavLink>\n);\n\nexport default FolderNode;\n","import { startTransition, useEffect, useState } from \"react\";\n\nimport { isNotPresent } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Tree, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\nimport { getActiveFolderId } from \"utils/internal\";\nimport { treeToMap } from \"utils/treeUtils\";\n\nimport FolderNode from \"./Node\";\n\nconst FoldersTree = ({ config: configProps }) => {\n const config = { ...DEFAULT_CONFIG, ...configProps };\n const [expandedKeys, setExpandedKeys] = useState([]);\n\n const { t } = useTranslation();\n const params = useQueryParams({ toCamelCase: false });\n const activeFolderSid = getActiveFolderId(config);\n const { data: folders } = useFetchFolders(config);\n\n const updateExpandedKeys = () => {\n if (!folders) return;\n // When active folder changes from external sources, update expanded keys to auto expand tree.\n const expandedKeys = [];\n const map = treeToMap(folders, \"sid\");\n const activeFolder = map[activeFolderSid];\n const parentSid = activeFolder?.meta?.parent?.sid;\n if (parentSid) expandedKeys.push(parentSid);\n setExpandedKeys(expandedKeys);\n };\n\n useEffect(() => {\n // Non urgent update.\n startTransition(updateExpandedKeys);\n }, [activeFolderSid, folders]);\n\n if (isNotPresent(folders)) {\n return (\n <Typography\n className=\"w-full text-center\"\n style=\"body2\"\n weight=\"semibold\"\n >\n {t(\"folders.noFolders\")}\n </Typography>\n );\n }\n\n return (\n <Tree\n {...{ expandedKeys }}\n autoExpandParent\n blockNode\n showLine\n componentToken={{ titleHeight: 25, indentSize: 25 }}\n fieldNames={{ key: \"sid\" }}\n selectedKeys={[activeFolderSid]}\n treeData={folders}\n titleRender={folder => (\n <FolderNode\n {...{ folder }}\n isActive={folder.sid === activeFolderSid}\n link={buildUrl(config.folderPath, {\n ...params,\n folderId: folder.sid,\n })}\n />\n )}\n onExpand={setExpandedKeys}\n />\n );\n};\n\nexport default FoldersTree;\n"],"names":["FoldersAlerts","_ref","config","_useFolderStore","useFolderStore","store","setFolderState","shallow","queryParams","useQueryParams","toCamelCase","history","useHistory","_useTranslation","useTranslation","t","_useFolderStore2","_store$alertState","_store$alertState2","type","item","_useDestroyFolder","useDestroyFolder","destroyFolder","mutateAsync","isLoading","_useFolders","useFolders","folders","onClose","alertState","alertProps","isOpen","isSubmitting","onConfirmDelete","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","parent","wrap","_callee$","_context","prev","next","id","isActiveFolder","sid","abrupt","pathToFolder","length","replace","buildUrl","folderPath","_objectSpread","folderId","stop","apply","arguments","title","message","_jsx","Trans","i18nKey","values","customizeAlerts","onSubmit","Alert","flattenTree","pipe","treeToMap","AddEditPane","_store$paneState","_store$paneState2","_useFetchFolders","useFetchFolders","data","_useCreateFolder","useCreateFolder","createFolder","mutate","_useUpdateFolder","useUpdateFolder","updateFolder","isEditing","initialValues","name","parentId","folderOptions","useMemo","onSubmitForm","payload","parent_id","_x","_jsxs","_Fragment","children","Pane","Header","Typography","style","Formik","_ref3","setFieldValue","Body","Form","className","Input","label","Select","isClearable","filterOption","_ref4","value","getOptionLabel","prop","getOptionValue","options","onChange","option","Footer","ActionBlock","cancelButtonProps","onClick","indentSize","Node","ref","_folder$children$leng","_folder$children","_ref$icon","icon","itemLabel","folder","depth","rest","_objectWithoutProperties","_excluded","metaInfo","childCount","push","count","itemCount","concat","Array","from","map","_","index","width","left","Math","round","classNames","weight","join","forwardRef","SelectableNode","_ref$depth","maxDepth","disabled","selection","onSelect","isDisabled","renderChildren","isNotPresent","child","_createElement","_SelectableNode","key","Tooltip","content","position","Radio","Item","readOnly","checked","noop","PaneBody","submitButtonProps","removeButtonProps","onRemove","_useState","useState","_useState2","_slicedToArray","setSelection","_useFetchFolders$data","folderDepth","foldersMap","measureDepth","onAddFolder","paneState","Button","MoveFolderPane","onSaveSelection","onSuccess","DraggableNode","_useDraggable","useDraggable","isDragging","attributes","listeners","setDraggableRef","setNodeRef","_useDroppable","useDroppable","isOver","setDroppableRef","_DraggableNode","ReorderFoldersPane","dragItem","setDragItem","_useState3","_useState4","changes","setChanges","_useReorderFolders","useReorderFolders","reorderFolders","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","tree","setTree","onDragEnd","_activeFolder$meta$pa","active","over","activeFolder","current","overFolder","meta","activeDepth","overDepth","Toastr","error","newTree","mapToTree","assoc","nodeProps","Folder","DndContext","onDragStart","isEmpty","createPortal","DragOverlay","zIndex","document","body","FoldersPane","configProps","DEFAULT_CONFIG","commonProps","FoldersContext","FolderTile","isSelected","link","actions","actionCallback","callback","event","preventDefault","menuItems","onEdit","onMove","onDelete","Link","to","Checkbox","target","stopPropagation","delay","MoreDropdown","dropdownProps","FoldersList","_ref$selection","params","_useFolder","useFolder","useFolderActions","subFolders","includes","MoveToFolderPane","FolderNode","isActive","NavLink","activeClassName","component","FoldersTree","expandedKeys","setExpandedKeys","activeFolderSid","getActiveFolderId","updateExpandedKeys","_activeFolder$meta","parentSid","useEffect","startTransition","Tree","autoExpandParent","blockNode","showLine","componentToken","titleHeight","fieldNames","selectedKeys","treeData","titleRender","onExpand"],"mappings":"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"}
1
+ {"version":3,"file":"components.js","sources":["../app/javascript/src/components/internal/Alerts.jsx","../app/javascript/src/components/internal/Pane/AddEdit/TreeSelect.jsx","../app/javascript/src/components/internal/Pane/AddEdit/utils.js","../app/javascript/src/components/internal/Pane/AddEdit/index.jsx","../app/javascript/src/components/internal/Pane/Node.jsx","../app/javascript/src/components/internal/Pane/Move/SelectableNode.jsx","../app/javascript/src/components/internal/Pane/Move/Body.jsx","../app/javascript/src/components/internal/Pane/Move/index.jsx","../app/javascript/src/components/internal/Pane/Reorder/DraggableNode.jsx","../app/javascript/src/components/internal/Pane/Reorder/index.jsx","../app/javascript/src/components/internal/Pane/index.jsx","../app/javascript/src/components/Context.jsx","../app/javascript/src/components/List/Tile.jsx","../app/javascript/src/components/List/index.jsx","../app/javascript/src/components/MoveToFolderPane.jsx","../app/javascript/src/components/Tree/Node.jsx","../app/javascript/src/components/Tree/index.jsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js"],"sourcesContent":["import { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Alert } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { useDestroyFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport useFolders from \"hooks/useFolders\";\nimport useFolderStore from \"stores/foldersStore\";\nimport { isActiveFolder } from \"utils/internal\";\nimport { pathToFolder } from \"utils/pathUtils\";\n\nconst FoldersAlerts = ({ config }) => {\n const { setFolderState } = useFolderStore.pick();\n const queryParams = useQueryParams({ toCamelCase: false });\n const history = useHistory();\n const { t } = useTranslation();\n\n const { type, item } = useFolderStore.pick(\"alertState\");\n const { mutateAsync: destroyFolder, isLoading } = useDestroyFolder(config);\n const { folders } = useFolders(config);\n\n const onClose = () => setFolderState({ alertState: null });\n const alertProps = { isOpen: !!type, isSubmitting: isLoading, onClose };\n\n const onConfirmDelete = async () => {\n await destroyFolder(item.id);\n onClose();\n\n if (!isActiveFolder(item.sid) || !folders) return;\n const path = pathToFolder(folders, item.id);\n const parent = path[path.length - 2];\n if (!parent) return;\n history.replace(\n buildUrl(config.folderPath, {\n ...queryParams,\n folderId: parent.sid,\n })\n );\n };\n\n if (type === \"delete\") {\n alertProps.title = t(\"deleteFolder.title\");\n alertProps.message = <Trans i18nKey=\"deleteFolder.info\" values={item} />;\n if (config.customizeAlerts) config.customizeAlerts(type, item, alertProps);\n alertProps.onSubmit = onConfirmDelete;\n }\n\n return <Alert {...alertProps} />;\n};\n\nexport default FoldersAlerts;\n","import { forwardRef } from \"react\";\n\nimport { TreeSelect as AntdTree, ConfigProvider } from \"antd\";\nimport classnames from \"classnames\";\nimport { useField } from \"formik\";\nimport { Down } from \"neetoicons\";\nimport { Label } from \"neetoui\";\n\nconst TreeSelect = forwardRef(\n (\n {\n className,\n disabled = false,\n fieldNames,\n label = \"\",\n loading = false,\n name,\n placeholder = \"\",\n required = false,\n showSearch = true,\n size = \"middle\",\n treeData,\n ...otherProps\n },\n ref\n ) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n const hasLeafNodes = treeData?.some(node => node?.pId !== null);\n\n return (\n <div className=\"neeto-ui-input__wrapper\">\n {label && <Label {...{ required }}>{label}</Label>}\n <ConfigProvider\n theme={{ components: { TreeSelect: { titleHeight: 28 } } }}\n >\n <AntdTree\n treeDataSimpleMode\n data-cy=\"nui-select-container-wrapper\"\n dropdownStyle={{ zIndex: 100000 }}\n name={field.name}\n popupClassName=\"neeto-ui-tree-select-dropdown\"\n suffixIcon={<Down />}\n treeNodeFilterProp={fieldNames?.label ?? \"title\"}\n value={field.value || undefined}\n className={classnames(\"neeto-ui-tree-select__wrapper\", className, {\n \"neeto-ui-tree-select__error\": meta.error,\n })}\n switcherIcon={props => (\n <div {...props}>\n <Down />\n </div>\n )}\n onBlur={() => setTouched(true)}\n onChange={value => setValue(value)}\n {...{\n disabled,\n fieldNames,\n loading,\n placeholder,\n ref,\n showSearch,\n size,\n treeData,\n ...otherProps,\n }}\n dropdownRender={menu =>\n hasLeafNodes ? menu : <div className=\"-mx-5 -ml-6\">{menu}</div>\n }\n />\n </ConfigProvider>\n {meta.error && <p className=\"neeto-ui-input__error\">{meta.error}</p>}\n </div>\n );\n }\n);\n\nTreeSelect.displayName = \"TreeSelect\";\n\nexport default TreeSelect;\n","import { values } from \"ramda\";\n\nexport const createFolderOptions = (foldersMap, config) =>\n values(foldersMap).map(folder => ({\n id: folder.id,\n title: folder.name,\n value: folder.id,\n pId: folder.meta.parent?.id,\n disabled: folder.meta.depth >= config.maxDepth,\n }));\n","import { useMemo } from \"react\";\n\nimport { Formik, Form } from \"formik\";\nimport { Pane, Typography } from \"neetoui\";\nimport { Input, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchFolders,\n useCreateFolder,\n useUpdateFolder,\n} from \"hooks/reactQuery/useFoldersApi\";\nimport useFolderStore from \"stores/foldersStore\";\nimport { getActiveFolderId } from \"utils/internal\";\nimport { treeToMap } from \"utils/treeUtils\";\n\nimport TreeSelect from \"./TreeSelect\";\nimport { createFolderOptions } from \"./utils\";\n\nconst AddEditPane = ({ setFocusField, config, onClose }) => {\n const { t } = useTranslation();\n const { type, item } = useFolderStore.pick(\"paneState\");\n const { data: folders } = useFetchFolders(config);\n const { mutate: createFolder } = useCreateFolder(config);\n const { mutateAsync: updateFolder } = useUpdateFolder(config);\n\n const isEditing = type === \"edit\" && item;\n const foldersMap = useMemo(() => treeToMap(folders, \"sid\"), [folders]);\n const folderOptions = useMemo(\n () => createFolderOptions(foldersMap, config),\n [foldersMap]\n );\n\n const activeFolderSid = getActiveFolderId(config);\n const activeFolder = foldersMap[activeFolderSid];\n const isValidParent = activeFolder?.meta.depth < config.maxDepth;\n const parentId = isValidParent ? activeFolder.id : null;\n const initialValues = useMemo(\n () => (isEditing ? item : { name: \"\", parentId }),\n [isEditing, item, parentId]\n );\n\n const onSubmitForm = async values => {\n const payload = { name: values.name, parent_id: values.parentId };\n isEditing\n ? await updateFolder({ id: item.id, payload })\n : await createFolder(payload);\n onClose();\n };\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\">\n {isEditing ? t(\"folders.edit\") : t(\"folders.add\")}\n </Typography>\n </Pane.Header>\n <Formik {...{ initialValues }} enableReinitialize onSubmit={onSubmitForm}>\n {() => (\n <>\n <Pane.Body>\n <Form className=\"w-full space-y-5\">\n <Input\n label={t(\"folders.name\")}\n name=\"name\"\n ref={setFocusField}\n />\n <div>\n <TreeSelect\n allowClear\n showSearch\n label={t(\"createFolder.parentTitle\")}\n name=\"parentId\"\n treeData={folderOptions}\n />\n <Typography style=\"nano\">\n {t(\"createFolder.parentInfo\")}\n </Typography>\n </div>\n </Form>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock cancelButtonProps={{ onClick: onClose }} />\n </Pane.Footer>\n </>\n )}\n </Formik>\n </>\n );\n};\n\nexport default AddEditPane;\n","import { forwardRef } from \"react\";\n\nimport classNames from \"classnames\";\nimport { Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst indentSize = 30;\n\nconst Node = (\n { icon = null, itemLabel, folder, depth, className, onClick, ...rest },\n ref\n) => {\n const { t } = useTranslation();\n\n const metaInfo = [];\n const childCount = folder.children?.length ?? 0;\n childCount > 0 &&\n metaInfo.push(t(\"folders.subfolderCount\", { count: childCount }));\n folder.itemCount > 0 && metaInfo.push(`${folder.itemCount} ${itemLabel}`);\n\n return (\n <div className=\"flex\">\n {Array.from({ length: depth }).map((_, index) => (\n <span\n className=\"neeto-ui-border-gray-200 relative border-l\"\n key={index}\n style={{ width: indentSize, left: Math.round(indentSize / 2) }}\n />\n ))}\n <div\n {...{ ...rest, onClick, ref }}\n className={classNames(\n \"relative my-1 flex cursor-pointer items-center px-2 py-1\",\n className\n )}\n >\n {icon}\n <div className=\"ml-2\">\n <Typography style=\"body3\" weight=\"medium\">\n {folder.name}\n </Typography>\n <Typography\n className=\"relative -top-0.5\"\n style=\"nano\"\n weight=\"normal\"\n >\n {metaInfo.join(\" . \")}\n </Typography>\n </div>\n </div>\n </div>\n );\n};\n\nexport default forwardRef(Node);\n","import classNames from \"classnames\";\nimport { isNotPresent, noop } from \"neetocist\";\nimport { Radio, Tooltip } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Node from \"../Node\";\n\nconst SelectableNode = ({\n folder,\n item,\n depth = 0,\n maxDepth,\n disabled,\n ...rest\n}) => {\n const { selection, onSelect } = rest;\n const { t } = useTranslation();\n\n const isDisabled = disabled || item?.id === folder.id || depth > maxDepth;\n\n const renderChildren = () => {\n if (isNotPresent(folder.children)) return null;\n\n return folder.children.map(child => (\n <SelectableNode\n {...{ ...rest, item, maxDepth }}\n depth={depth + 1}\n disabled={isDisabled}\n folder={child}\n key={child.id}\n />\n ));\n };\n\n return (\n <Tooltip\n content={t(\"moveToFolder.notAllowed\")}\n disabled={!isDisabled}\n position=\"top\"\n >\n <div className={classNames({ \"opacity-40\": isDisabled })}>\n <Node\n {...{ ...rest, depth, folder }}\n icon={\n <Radio.Item\n readOnly\n checked={selection === folder.id}\n name=\"move-folder-option\"\n />\n }\n onClick={isDisabled ? noop : () => onSelect(folder)}\n />\n {renderChildren()}\n </div>\n </Tooltip>\n );\n};\n\nexport default SelectableNode;\n","import { useState } from \"react\";\n\nimport { Button, Pane, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\nimport useFolderStore from \"stores/foldersStore\";\nimport { treeToMap, measureDepth } from \"utils/treeUtils\";\n\nimport SelectableNode from \"./SelectableNode\";\n\nconst PaneBody = ({\n item,\n config,\n submitButtonProps,\n cancelButtonProps,\n removeButtonProps,\n onSubmit,\n onClose,\n onRemove,\n}) => {\n const [selection, setSelection] = useState(null);\n const { setFolderState } = useFolderStore.pick();\n const { data: folders = [] } = useFetchFolders(config);\n const { t } = useTranslation();\n\n let folderDepth = 0;\n if (item) {\n // If item is a folder, measure the current depth from current folder to longest leaf.\n const foldersMap = treeToMap(folders);\n const folder = foldersMap[item.id];\n if (folder) folderDepth = measureDepth(folder);\n }\n\n const maxDepth = config.maxDepth - folderDepth;\n\n const onAddFolder = () => {\n setFolderState({ paneState: { type: \"add\", item: null } });\n };\n\n return (\n <>\n <Pane.Header className=\"flex items-center justify-between\">\n <Typography style=\"h2\">{t(\"moveToFolder.title\")}</Typography>\n <Button\n className=\"mr-2\"\n label={t(\"folders.add\")}\n style=\"link\"\n onClick={onAddFolder}\n />\n </Pane.Header>\n <Pane.Body>\n {folders.map(folder => (\n <SelectableNode\n {...{ folder, item, maxDepth, selection }}\n disabled={item?.id === folder.id || maxDepth <= 0}\n itemLabel={config.itemLabel}\n key={folder.id}\n onSelect={folder => setSelection(folder.id)}\n />\n ))}\n </Pane.Body>\n <Pane.Footer className=\"space-x-2\">\n <div className=\"flex flex-1 space-x-2\">\n <Button\n disabled={!selection}\n label={t(\"common.save\")}\n style=\"primary\"\n onClick={() => onSubmit(selection)}\n {...submitButtonProps}\n />\n <Button\n label={t(\"common.cancel\")}\n style=\"text\"\n onClick={onClose}\n {...cancelButtonProps}\n />\n </div>\n {onRemove && (\n <Button\n label={t(\"moveToFolder.remove\")}\n style=\"tertiary\"\n onClick={onRemove}\n {...removeButtonProps}\n />\n )}\n </Pane.Footer>\n </>\n );\n};\n\nexport default PaneBody;\n","import { useUpdateFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport PaneBody from \"./Body\";\n\nconst MoveFolderPane = ({ config, onClose }) => {\n const { item } = useFolderStore.pick(\"paneState\");\n const { mutate: updateFolder } = useUpdateFolder(config);\n\n const onSaveSelection = parentId => {\n const payload = { id: item.id, parentId };\n updateFolder({ id: item.id, payload }, { onSuccess: onClose });\n };\n\n return <PaneBody {...{ config, item, onClose }} onSubmit={onSaveSelection} />;\n};\n\nexport default MoveFolderPane;\n","import { useDraggable, useDroppable } from \"@dnd-kit/core\";\nimport classNames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\n\nimport Node from \"../Node\";\n\nconst DraggableNode = ({ folder, depth = 0, ...rest }) => {\n const {\n isDragging,\n attributes,\n listeners,\n setNodeRef: setDraggableRef,\n } = useDraggable({\n id: `draggable-item--${folder.id}`,\n data: folder,\n disabled: depth <= 0,\n });\n\n const { isOver, setNodeRef: setDroppableRef } = useDroppable({\n id: `droppable-item--${folder.id}`,\n data: folder,\n disabled: isDragging,\n });\n\n const renderChildren = () => {\n if (isNotPresent(folder.children) || isDragging) return null;\n\n return folder.children.map(child => (\n <DraggableNode\n {...rest}\n depth={depth + 1}\n folder={child}\n key={child.id}\n />\n ));\n };\n\n return (\n <div>\n <Node\n {...rest}\n className={classNames({\n \"neeto-ui-bg-gray-100 opacity-50 \": isDragging,\n \"neeto-ui-border-primary-500 border\": isOver,\n \"border border-transparent\": !isOver,\n })}\n {...{ depth, folder, ...attributes, ...listeners }}\n ref={ref => {\n setDroppableRef(ref);\n setDraggableRef(ref);\n }}\n />\n {renderChildren()}\n </div>\n );\n};\n\nexport default DraggableNode;\n","import { useState } from \"react\";\n\nimport { DndContext, DragOverlay } from \"@dnd-kit/core\";\nimport { useStateWithDependency } from \"neetocommons/react-utils\";\nimport { Folder } from \"neetoicons\";\nimport { Button, Pane, Toastr, Typography } from \"neetoui\";\nimport { assoc, isEmpty } from \"ramda\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useFetchFolders,\n useReorderFolders,\n} from \"hooks/reactQuery/useFoldersApi\";\nimport { treeToMap, measureDepth, mapToTree } from \"utils/treeUtils\";\n\nimport DraggableNode from \"./DraggableNode\";\n\nimport Node from \"../Node\";\n\nconst ReorderFoldersPane = ({ config, onClose }) => {\n const [dragItem, setDragItem] = useState(null);\n const [changes, setChanges] = useState({});\n\n const { t } = useTranslation();\n const { data: folders } = useFetchFolders(config);\n const { mutate: reorderFolders } = useReorderFolders(config);\n\n const [tree, setTree] = useStateWithDependency(\n () => ({ name: \"/\", id: null, children: folders }),\n [folders]\n );\n\n const onDragEnd = ({ active, over }) => {\n setDragItem(null);\n if (!over) return;\n\n const foldersMap = treeToMap(tree);\n const activeFolder = foldersMap[active.data.current.id];\n const overFolder = foldersMap[over.data.current.id];\n\n // Check moving inside same directory\n if (activeFolder.meta.parent?.id === overFolder.id) return;\n\n // Check moving to a folder with depth greater than the allowed limit.\n // maxDepth + 1 due to extra root node added for the tree\n const activeDepth = measureDepth(activeFolder);\n const overDepth = overFolder.meta.depth;\n if (activeDepth + overDepth >= config.maxDepth + 1) {\n Toastr.error(\n t(\"moveToFolder.depthExceeded\", { maxDepth: config.maxDepth })\n );\n\n return;\n }\n\n activeFolder.meta.parent = overFolder;\n const newTree = mapToTree(foldersMap);\n setTree(newTree);\n setChanges(assoc(activeFolder.id, overFolder.id));\n };\n\n const onSubmit = () => {\n const payload = { changes };\n reorderFolders(payload, { onSuccess: onClose });\n };\n\n const nodeProps = { icon: <Folder />, itemLabel: config.itemLabel };\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\">{t(\"reorderFolder.title\")}</Typography>\n </Pane.Header>\n <DndContext\n {...{ onDragEnd }}\n onDragStart={({ active }) => setDragItem(active.data.current)}\n >\n <Pane.Body className=\"pb-6\">\n <DraggableNode {...nodeProps} folder={tree} key={tree.id} />\n </Pane.Body>\n <Pane.Footer className=\"gap-2\">\n <Button\n disabled={isEmpty(changes)}\n label={t(\"common.save\")}\n style=\"primary\"\n onClick={onSubmit}\n />\n <Button label={t(\"common.cancel\")} style=\"text\" onClick={onClose} />\n </Pane.Footer>\n {createPortal(\n <DragOverlay zIndex={99999}>\n {dragItem && (\n <Node\n {...nodeProps}\n className=\"neeto-ui-bg-gray-200\"\n depth={0}\n folder={dragItem}\n />\n )}\n </DragOverlay>,\n document.body\n )}\n </DndContext>\n </>\n );\n};\n\nexport default ReorderFoldersPane;\n","/* eslint-disable @bigbinary/neeto/no-conditional-overlays */\nimport { Pane } from \"neetoui\";\n\nimport { DEFAULT_CONFIG } from \"constants/config\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport AddEditPane from \"./AddEdit\";\nimport MoveFolderPane from \"./Move\";\nimport ReorderFoldersPane from \"./Reorder\";\n\nconst FoldersPane = ({ config: configProps }) => {\n const config = { ...DEFAULT_CONFIG, ...configProps };\n const { setFolderState } = useFolderStore.pick();\n const { type } = useFolderStore.pick(\"paneState\");\n\n const onClose = () => setFolderState({ paneState: null });\n const commonProps = { config, onClose };\n\n return (\n <Pane {...{ onClose }} isOpen={!!type}>\n {({ setFocusField }) => (\n <>\n {(type === \"edit\" || type === \"add\") && (\n <AddEditPane {...{ setFocusField, ...commonProps }} />\n )}\n {type === \"move\" && <MoveFolderPane {...commonProps} />}\n {type === \"reorder\" && <ReorderFoldersPane {...commonProps} />}\n </>\n )}\n </Pane>\n );\n};\n\nexport default FoldersPane;\n","import FoldersAlerts from \"components/internal/Alerts\";\nimport FoldersPane from \"components/internal/Pane\";\n\nconst FoldersContext = ({ config, children }) => (\n <>\n {children}\n <FoldersPane {...{ config }} />\n <FoldersAlerts {...{ config }} />\n </>\n);\n\nexport default FoldersContext;\n","import MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport { Checkbox, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\nimport { Link } from \"react-router-dom\";\n\nconst FolderTile = ({\n isSelected,\n link,\n itemLabel,\n folder,\n actions,\n onSelect,\n}) => {\n const { t } = useTranslation();\n\n const actionCallback = callback => event => {\n event.preventDefault();\n callback(folder);\n };\n\n const menuItems = [\n {\n key: \"edit\",\n label: t(\"common.edit\"),\n onClick: actionCallback(actions.onEdit),\n },\n {\n key: \"move\",\n label: t(\"common.move\"),\n onClick: actionCallback(actions.onMove),\n },\n {\n key: \"delete\",\n label: t(\"common.delete\"),\n onClick: actionCallback(actions.onDelete),\n },\n ];\n\n const metaInfo = [];\n const childCount = folder.children?.length ?? 0;\n childCount > 0 &&\n metaInfo.push(t(\"folders.subfolderCount\", { count: childCount }));\n metaInfo.push(`${folder.itemCount || 0} ${itemLabel}`);\n\n return (\n <Link\n className=\"neeto-ui-bg-gray-50 neeto-ui-border-gray-200 neeto-ui-rounded-md hover:neeto-ui-border-primary-500 relative flex max-w-full items-start gap-2 border-2 p-3 transition-colors ease-in\"\n to={link}\n >\n <Checkbox\n checked={isSelected}\n className=\"m-0 flex-shrink-0 flex-grow-0 pt-0.5\"\n name={folder.id}\n onChange={event => onSelect(folder, event.target.checked)}\n onClick={event => event.stopPropagation()}\n />\n <span className=\"flex min-w-0 flex-grow flex-col gap-2\">\n <Typography\n className=\"-mt-0.5 line-clamp-2 pr-8\"\n lineHeight=\"snug\"\n style=\"body1\"\n title={folder.name}\n weight=\"medium\"\n >\n {folder.name}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body3\">\n {metaInfo.join(\" . \")}\n </Typography>\n </span>\n <MoreDropdown\n {...{ menuItems }}\n dropdownButtonProps={{ className: \"absolute right-2 top-2\" }}\n dropdownProps={{ onClick: event => event.preventDefault() }}\n />\n </Link>\n );\n};\n\nexport default FolderTile;\n","import { isNotPresent } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Typography } from \"neetoui\";\nimport { pick } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport FoldersContext from \"components/Context\";\nimport { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFolder, useFolders } from \"hooks\";\nimport useFolderActions from \"hooks/useFolderActions\";\n\nimport FolderTile from \"./Tile\";\n\nconst FoldersList = ({ selection = [], config: configProps, onSelect }) => {\n const config = { ...DEFAULT_CONFIG, ...configProps };\n const params = useQueryParams();\n const { t } = useTranslation();\n\n const fetchParams = pick([\"sortBy\", \"orderBy\"], params);\n const { folders } = useFolders({ ...config, params: fetchParams });\n const { folderId, folder } = useFolder(config);\n const actions = useFolderActions(config);\n const subFolders = folderId ? folder?.children : folders;\n if (isNotPresent(subFolders)) return null;\n\n return (\n <FoldersContext {...{ config }}>\n <Typography className=\"my-3\" style=\"h4\">\n {t(\"folders.title\")}\n </Typography>\n <div className=\"neeto-folders-grid-view-wrapper mb-10 grid w-full gap-4\">\n {subFolders.map(folder => (\n <FolderTile\n {...{ actions, folder, onSelect }}\n isSelected={selection.includes(folder.id)}\n itemLabel={config.itemLabel}\n key={folder.id}\n link={buildUrl(config.folderPath, {\n ...params,\n folderId: folder.sid,\n })}\n />\n ))}\n </div>\n </FoldersContext>\n );\n};\n\nexport default FoldersList;\n","import { Pane } from \"neetoui\";\n\nimport PaneBody from \"components/internal/Pane/Move/Body\";\n\nconst MoveToFolderPane = ({ isOpen, onClose, ...rest }) => (\n <Pane {...{ isOpen, onClose }}>\n <PaneBody {...{ ...rest, onClose }} />\n </Pane>\n);\n\nexport default MoveToFolderPane;\n","import { Typography } from \"neetoui\";\nimport { NavLink } from \"react-router-dom\";\n\nconst FolderNode = ({ isActive, folder, link }) => (\n <NavLink\n activeClassName=\"active\"\n className=\"neeto-sidebar-folders-tree__folder-node block\"\n isActive={() => isActive}\n to={link}\n >\n <Typography\n className=\"line-clamp-1\"\n component=\"span\"\n style=\"body2\"\n title={folder.name}\n >\n {folder.name}\n </Typography>\n </NavLink>\n);\n\nexport default FolderNode;\n","import { startTransition, useEffect, useState } from \"react\";\n\nimport { isNotPresent } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Tree, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\nimport { getActiveFolderId } from \"utils/internal\";\nimport { treeToMap } from \"utils/treeUtils\";\n\nimport FolderNode from \"./Node\";\n\nconst FoldersTree = ({ config: configProps }) => {\n const config = { ...DEFAULT_CONFIG, ...configProps };\n const [expandedKeys, setExpandedKeys] = useState([]);\n\n const { t } = useTranslation();\n const params = useQueryParams({ toCamelCase: false });\n const activeFolderSid = getActiveFolderId(config);\n const { data: folders } = useFetchFolders(config);\n\n const updateExpandedKeys = () => {\n if (!folders) return;\n // When active folder changes from external sources, update expanded keys to auto expand tree.\n const expandedKeys = [];\n const map = treeToMap(folders, \"sid\");\n const activeFolder = map[activeFolderSid];\n const parentSid = activeFolder?.meta?.parent?.sid;\n if (parentSid) expandedKeys.push(parentSid);\n setExpandedKeys(expandedKeys);\n };\n\n useEffect(() => {\n // Non urgent update.\n startTransition(updateExpandedKeys);\n }, [activeFolderSid, folders]);\n\n if (isNotPresent(folders)) {\n return (\n <Typography\n className=\"w-full text-center\"\n style=\"body2\"\n weight=\"semibold\"\n >\n {t(\"folders.noFolders\")}\n </Typography>\n );\n }\n\n return (\n <Tree\n {...{ expandedKeys }}\n autoExpandParent\n blockNode\n showLine\n className=\"neeto-sidebar-folders-tree\"\n componentToken={{ titleHeight: 24, indentSize: 24 }}\n fieldNames={{ key: \"sid\" }}\n selectedKeys={[activeFolderSid]}\n treeData={folders}\n titleRender={folder => (\n <FolderNode\n {...{ folder }}\n isActive={folder.sid === activeFolderSid}\n link={buildUrl(config.folderPath, {\n ...params,\n folderId: folder.sid,\n })}\n />\n )}\n onExpand={setExpandedKeys}\n />\n );\n};\n\nexport default FoldersTree;\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n"],"names":["FoldersAlerts","_ref","config","_useFolderStore","useFolderStore","store","setFolderState","shallow","queryParams","useQueryParams","toCamelCase","history","useHistory","_useTranslation","useTranslation","t","_useFolderStore2","_store$alertState","_store$alertState2","type","item","_useDestroyFolder","useDestroyFolder","destroyFolder","mutateAsync","isLoading","_useFolders","useFolders","folders","onClose","alertState","alertProps","isOpen","isSubmitting","onConfirmDelete","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","path","parent","wrap","_callee$","_context","prev","next","id","isActiveFolder","sid","abrupt","pathToFolder","length","replace","buildUrl","folderPath","_objectSpread","folderId","stop","apply","arguments","title","message","_jsx","Trans","i18nKey","values","customizeAlerts","onSubmit","Alert","TreeSelect","forwardRef","ref","_fieldNames$label","className","_ref$disabled","disabled","fieldNames","_ref$label","label","_ref$loading","loading","name","_ref$placeholder","placeholder","_ref$required","required","_ref$showSearch","showSearch","_ref$size","size","treeData","otherProps","_objectWithoutProperties","_excluded","_useField","useField","_useField2","_slicedToArray","field","meta","_useField2$","setValue","setTouched","hasLeafNodes","some","node","pId","_jsxs","children","Label","ConfigProvider","theme","components","titleHeight","AntdTree","treeDataSimpleMode","dropdownStyle","zIndex","popupClassName","suffixIcon","Down","treeNodeFilterProp","value","undefined","classnames","error","switcherIcon","props","onBlur","onChange","dropdownRender","menu","displayName","createFolderOptions","foldersMap","map","folder","_folder$meta$parent","depth","maxDepth","AddEditPane","setFocusField","_store$paneState","_store$paneState2","_useFetchFolders","useFetchFolders","data","_useCreateFolder","useCreateFolder","createFolder","mutate","_useUpdateFolder","useUpdateFolder","updateFolder","isEditing","useMemo","treeToMap","folderOptions","activeFolderSid","getActiveFolderId","activeFolder","isValidParent","parentId","initialValues","onSubmitForm","payload","parent_id","_x","_Fragment","Pane","Header","Typography","style","Formik","enableReinitialize","Body","Form","Input","allowClear","Footer","ActionBlock","cancelButtonProps","onClick","indentSize","Node","_folder$children$leng","_folder$children","_ref$icon","icon","itemLabel","rest","metaInfo","childCount","push","count","itemCount","concat","Array","from","_","index","width","left","Math","round","classNames","weight","join","SelectableNode","_ref$depth","selection","onSelect","isDisabled","renderChildren","isNotPresent","child","_createElement","_SelectableNode","key","Tooltip","content","position","Radio","Item","readOnly","checked","noop","PaneBody","submitButtonProps","removeButtonProps","onRemove","_useState","useState","_useState2","setSelection","_useFetchFolders$data","folderDepth","measureDepth","onAddFolder","paneState","Button","MoveFolderPane","onSaveSelection","onSuccess","DraggableNode","_useDraggable","useDraggable","isDragging","attributes","listeners","setDraggableRef","setNodeRef","_useDroppable","useDroppable","isOver","setDroppableRef","_DraggableNode","ReorderFoldersPane","dragItem","setDragItem","_useState3","_useState4","changes","setChanges","_useReorderFolders","useReorderFolders","reorderFolders","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","tree","setTree","onDragEnd","_activeFolder$meta$pa","active","over","current","overFolder","activeDepth","overDepth","Toastr","newTree","mapToTree","assoc","nodeProps","Folder","DndContext","onDragStart","_ref3","isEmpty","createPortal","DragOverlay","document","body","FoldersPane","configProps","DEFAULT_CONFIG","commonProps","FoldersContext","FolderTile","isSelected","link","actions","actionCallback","callback","event","preventDefault","menuItems","onEdit","onMove","onDelete","Link","to","Checkbox","target","stopPropagation","lineHeight","MoreDropdown","dropdownButtonProps","dropdownProps","FoldersList","_ref$selection","params","fetchParams","pick","_useFolder","useFolder","useFolderActions","subFolders","includes","MoveToFolderPane","FolderNode","isActive","NavLink","activeClassName","component","FoldersTree","expandedKeys","setExpandedKeys","updateExpandedKeys","_activeFolder$meta","parentSid","useEffect","startTransition","Tree","autoExpandParent","blockNode","showLine","componentToken","selectedKeys","titleRender","onExpand"],"mappings":"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","x_google_ignoreList":[17]}
package/dist/hooks.js CHANGED
@@ -1,4 +1,4 @@
1
- export { u as useFolder, b as useFolderActions, a as useFolders } from './useFolderActions-AZ7a_96r.js';
1
+ export { u as useFolder, b as useFolderActions, a as useFolders } from './useFolderActions-BoLQ9bAf.js';
2
2
  import '@babel/runtime/helpers/defineProperty';
3
3
  import 'i18next';
4
4
  import '@bigbinary/neeto-cist';
@@ -26,15 +26,17 @@ var useDestroyMutation = function useDestroyMutation(config, api) {
26
26
  };
27
27
  var useFetchFolders = function useFetchFolders(config) {
28
28
  return reactQuery.useQuery({
29
- queryKey: [constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.LIST],
30
- queryFn: config.api.fetch
29
+ queryKey: [constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.LIST, config.params],
30
+ queryFn: function queryFn() {
31
+ return config.api.fetch(config.params);
32
+ }
31
33
  });
32
34
  };
33
35
  var useShowFolder = function useShowFolder(config, folderId) {
34
36
  return reactQuery.useQuery({
35
- queryKey: [constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.DETAILS, folderId],
37
+ queryKey: [constants.QUERY_KEYS.FOLDERS, config.type, constants.QUERY_KEYS.DETAILS, folderId, config.params],
36
38
  queryFn: function queryFn() {
37
- return config.api.get(folderId);
39
+ return config.api.get(folderId, config.params);
38
40
  },
39
41
  enabled: !!folderId
40
42
  });
@@ -220,4 +222,4 @@ exports.useFolderStore = useFolderStore;
220
222
  exports.useFolders = useFolders;
221
223
  exports.useReorderFolders = useReorderFolders;
222
224
  exports.useUpdateFolder = useUpdateFolder;
223
- //# sourceMappingURL=useFolderActions-DCs7hXdW.js.map
225
+ //# sourceMappingURL=useFolderActions-BaDwQAdE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFolderActions-BaDwQAdE.js","sources":["../app/javascript/src/hooks/reactQuery/useFoldersApi.js","../app/javascript/src/constants/config.js","../app/javascript/src/hooks/useFolders.js","../app/javascript/src/stores/foldersStore.js","../app/javascript/src/utils/internal.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nconst useDestroyMutation = (config, api) => {\n const queryClient = useQueryClient();\n\n // eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook\n return useMutationWithInvalidation(api, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n ].concat(config.itemKeys),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n refetchType: \"none\",\n });\n },\n });\n};\n\nexport const useFetchFolders = config =>\n useQuery({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST, config.params],\n queryFn: () => config.api.fetch(config.params),\n });\n\nexport const useShowFolder = (config, folderId) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.FOLDERS,\n config.type,\n QUERY_KEYS.DETAILS,\n folderId,\n config.params,\n ],\n queryFn: () => config.api.get(folderId, config.params),\n enabled: !!folderId,\n });\n\nexport const useCreateFolder = config =>\n useMutationWithInvalidation(config.api.create, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useUpdateFolder = config =>\n useMutationWithInvalidation(config.api.update, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useReorderFolders = config =>\n useMutationWithInvalidation(config.api.reorder, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useDestroyFolder = config =>\n useDestroyMutation(config, config.api.destroy);\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useDestroyMutation(config, config.api.bulkDestroy);\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\n\nexport const DEFAULT_CONFIG = {\n type: \"FOLDER\", // For query keys with different associated entities\n maxDepth: 2, // Maximum allowed depth for folder tree\n folderPath: \"/folders/:folderId\", // Path for handling URL redirections\n itemLabel: t(\"common.items\"), // For displaying the item label in counts\n itemKeys: [], // For invalidation purposes\n api: {\n // Folder CRUD\n fetch: noop,\n get: noop,\n create: noop,\n update: noop,\n destroy: noop,\n bulkUpdate: noop,\n bulkDestroy: noop,\n },\n};\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\n\nconst useFolders = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const { data: folders, isLoading } = useFetchFolders(config);\n\n return { isLoading, folders };\n};\n\nexport default useFolders;\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useFolderStore = create(\n withImmutableActions(set => ({\n paneState: null,\n alertState: null,\n selectedItem: null,\n setFolderState: set,\n }))\n);\n\nexport default useFolderStore;\n","import { matchPath } from \"react-router-dom\";\n\nexport const getActiveFolderId = config =>\n matchPath(window.location.pathname, config.folderPath)?.params?.folderId;\n\nexport const isActiveFolder = (config, folderId) =>\n getActiveFolderId(config) === folderId;\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useShowFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport { getActiveFolderId } from \"utils/internal\";\n\nconst useFolder = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const folderId = getActiveFolderId(config);\n\n const { data: folder, isLoading } = useShowFolder(config, folderId);\n\n return { isLoading, folderId, folder };\n};\n\nexport default useFolder;\n","import { useQueryClient } from \"@tanstack/react-query\";\n\nimport { QUERY_KEYS } from \"constants/query\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport {\n useBulkUpdateFolders,\n useBulkDestroyFolders,\n} from \"./reactQuery/useFoldersApi\";\n\nconst useFolderActions = config => {\n const queryClient = useQueryClient();\n const { setFolderState } = useFolderStore.pick();\n\n const { mutateAsync: onBulkUpdate, isPending: isUpdating } =\n useBulkUpdateFolders(config);\n\n const { mutateAsync: onBulkDelete, isPending: isDeleting } =\n useBulkDestroyFolders(config);\n\n const onInvalidate = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type],\n });\n };\n\n const onAdd = () =>\n setFolderState({ paneState: { type: \"add\", item: null } });\n\n const onEdit = item => setFolderState({ paneState: { type: \"edit\", item } });\n\n const onMove = item => setFolderState({ paneState: { type: \"move\", item } });\n\n const onDelete = item =>\n setFolderState({ alertState: { type: \"delete\", item } });\n\n const onReorder = () =>\n setFolderState({ paneState: { type: \"reorder\", item: null } });\n\n const isPending = isUpdating || isDeleting;\n\n return {\n isPending,\n onAdd,\n onEdit,\n onMove,\n onDelete,\n onReorder,\n onInvalidate,\n onBulkUpdate,\n onBulkDelete,\n };\n};\n\nexport default useFolderActions;\n"],"names":["useDestroyMutation","config","api","queryClient","useQueryClient","useMutationWithInvalidation","keysToInvalidate","QUERY_KEYS","FOLDERS","type","LIST","concat","itemKeys","onSuccess","invalidateQueries","queryKey","DETAILS","refetchType","useFetchFolders","useQuery","params","queryFn","fetch","useShowFolder","folderId","get","enabled","useCreateFolder","create","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","DEFAULT_CONFIG","maxDepth","folderPath","itemLabel","t","noop","useFolders","configArg","_objectSpread","_useFetchFolders","folders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","getActiveFolderId","_matchPath","matchPath","window","location","pathname","isActiveFolder","useFolder","_useShowFolder","folder","useFolderActions","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","onAdd","item","onEdit","onMove","onDelete","onReorder"],"mappings":"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"}
@@ -24,15 +24,17 @@ var useDestroyMutation = function useDestroyMutation(config, api) {
24
24
  };
25
25
  var useFetchFolders = function useFetchFolders(config) {
26
26
  return useQuery({
27
- queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],
28
- queryFn: config.api.fetch
27
+ queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST, config.params],
28
+ queryFn: function queryFn() {
29
+ return config.api.fetch(config.params);
30
+ }
29
31
  });
30
32
  };
31
33
  var useShowFolder = function useShowFolder(config, folderId) {
32
34
  return useQuery({
33
- queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS, folderId],
35
+ queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS, folderId, config.params],
34
36
  queryFn: function queryFn() {
35
- return config.api.get(folderId);
37
+ return config.api.get(folderId, config.params);
36
38
  },
37
39
  enabled: !!folderId
38
40
  });
@@ -206,5 +208,5 @@ var useFolderActions = function useFolderActions(config) {
206
208
  };
207
209
  };
208
210
 
209
- export { DEFAULT_CONFIG as D, useFolders as a, useFolderActions as b, useFolderStore as c, useDestroyFolder as d, useFetchFolders as e, useCreateFolder as f, useUpdateFolder as g, useReorderFolders as h, isActiveFolder as i, getActiveFolderId as j, useFolder as u };
210
- //# sourceMappingURL=useFolderActions-AZ7a_96r.js.map
211
+ export { DEFAULT_CONFIG as D, useFolders as a, useFolderActions as b, useFolderStore as c, useDestroyFolder as d, useFetchFolders as e, useCreateFolder as f, useUpdateFolder as g, getActiveFolderId as h, isActiveFolder as i, useReorderFolders as j, useFolder as u };
212
+ //# sourceMappingURL=useFolderActions-BoLQ9bAf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFolderActions-BoLQ9bAf.js","sources":["../app/javascript/src/hooks/reactQuery/useFoldersApi.js","../app/javascript/src/constants/config.js","../app/javascript/src/hooks/useFolders.js","../app/javascript/src/stores/foldersStore.js","../app/javascript/src/utils/internal.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nconst useDestroyMutation = (config, api) => {\n const queryClient = useQueryClient();\n\n // eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook\n return useMutationWithInvalidation(api, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n ].concat(config.itemKeys),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n refetchType: \"none\",\n });\n },\n });\n};\n\nexport const useFetchFolders = config =>\n useQuery({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST, config.params],\n queryFn: () => config.api.fetch(config.params),\n });\n\nexport const useShowFolder = (config, folderId) =>\n useQuery({\n queryKey: [\n QUERY_KEYS.FOLDERS,\n config.type,\n QUERY_KEYS.DETAILS,\n folderId,\n config.params,\n ],\n queryFn: () => config.api.get(folderId, config.params),\n enabled: !!folderId,\n });\n\nexport const useCreateFolder = config =>\n useMutationWithInvalidation(config.api.create, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useUpdateFolder = config =>\n useMutationWithInvalidation(config.api.update, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useReorderFolders = config =>\n useMutationWithInvalidation(config.api.reorder, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useDestroyFolder = config =>\n useDestroyMutation(config, config.api.destroy);\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useDestroyMutation(config, config.api.bulkDestroy);\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\n\nexport const DEFAULT_CONFIG = {\n type: \"FOLDER\", // For query keys with different associated entities\n maxDepth: 2, // Maximum allowed depth for folder tree\n folderPath: \"/folders/:folderId\", // Path for handling URL redirections\n itemLabel: t(\"common.items\"), // For displaying the item label in counts\n itemKeys: [], // For invalidation purposes\n api: {\n // Folder CRUD\n fetch: noop,\n get: noop,\n create: noop,\n update: noop,\n destroy: noop,\n bulkUpdate: noop,\n bulkDestroy: noop,\n },\n};\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\n\nconst useFolders = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const { data: folders, isLoading } = useFetchFolders(config);\n\n return { isLoading, folders };\n};\n\nexport default useFolders;\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useFolderStore = create(\n withImmutableActions(set => ({\n paneState: null,\n alertState: null,\n selectedItem: null,\n setFolderState: set,\n }))\n);\n\nexport default useFolderStore;\n","import { matchPath } from \"react-router-dom\";\n\nexport const getActiveFolderId = config =>\n matchPath(window.location.pathname, config.folderPath)?.params?.folderId;\n\nexport const isActiveFolder = (config, folderId) =>\n getActiveFolderId(config) === folderId;\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useShowFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport { getActiveFolderId } from \"utils/internal\";\n\nconst useFolder = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const folderId = getActiveFolderId(config);\n\n const { data: folder, isLoading } = useShowFolder(config, folderId);\n\n return { isLoading, folderId, folder };\n};\n\nexport default useFolder;\n","import { useQueryClient } from \"@tanstack/react-query\";\n\nimport { QUERY_KEYS } from \"constants/query\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport {\n useBulkUpdateFolders,\n useBulkDestroyFolders,\n} from \"./reactQuery/useFoldersApi\";\n\nconst useFolderActions = config => {\n const queryClient = useQueryClient();\n const { setFolderState } = useFolderStore.pick();\n\n const { mutateAsync: onBulkUpdate, isPending: isUpdating } =\n useBulkUpdateFolders(config);\n\n const { mutateAsync: onBulkDelete, isPending: isDeleting } =\n useBulkDestroyFolders(config);\n\n const onInvalidate = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type],\n });\n };\n\n const onAdd = () =>\n setFolderState({ paneState: { type: \"add\", item: null } });\n\n const onEdit = item => setFolderState({ paneState: { type: \"edit\", item } });\n\n const onMove = item => setFolderState({ paneState: { type: \"move\", item } });\n\n const onDelete = item =>\n setFolderState({ alertState: { type: \"delete\", item } });\n\n const onReorder = () =>\n setFolderState({ paneState: { type: \"reorder\", item: null } });\n\n const isPending = isUpdating || isDeleting;\n\n return {\n isPending,\n onAdd,\n onEdit,\n onMove,\n onDelete,\n onReorder,\n onInvalidate,\n onBulkUpdate,\n onBulkDelete,\n };\n};\n\nexport default useFolderActions;\n"],"names":["useDestroyMutation","config","api","queryClient","useQueryClient","useMutationWithInvalidation","keysToInvalidate","QUERY_KEYS","FOLDERS","type","LIST","concat","itemKeys","onSuccess","invalidateQueries","queryKey","DETAILS","refetchType","useFetchFolders","useQuery","params","queryFn","fetch","useShowFolder","folderId","get","enabled","useCreateFolder","create","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","DEFAULT_CONFIG","maxDepth","folderPath","itemLabel","t","noop","useFolders","configArg","_objectSpread","_useFetchFolders","folders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","getActiveFolderId","_matchPath","matchPath","window","location","pathname","isActiveFolder","useFolder","_useShowFolder","folder","useFolderActions","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","onAdd","item","onEdit","onMove","onDelete","onReorder"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-folders-frontend",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "A repo acts as the source of truth for the new nano's structure, configs, data etc.",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://github.com/bigbinary/neeto-folders-nano",
@@ -62,8 +62,8 @@
62
62
  "@bigbinary/babel-preset-neeto": "^1.0.3",
63
63
  "@bigbinary/eslint-plugin-neeto": "1.5.8",
64
64
  "@bigbinary/neeto-cist": "1.0.15",
65
- "@bigbinary/neeto-commons-frontend": "4.13.28",
66
- "@bigbinary/neeto-filters-frontend": "4.3.15",
65
+ "@bigbinary/neeto-commons-frontend": "4.13.29",
66
+ "@bigbinary/neeto-filters-frontend": "4.3.16",
67
67
  "@bigbinary/neeto-icons": "1.20.31",
68
68
  "@bigbinary/neeto-molecules": "3.16.1",
69
69
  "@bigbinary/neetoui": "8.2.75",
@@ -170,8 +170,8 @@
170
170
  "peerDependencies": {
171
171
  "@babel/runtime": "7.26.10",
172
172
  "@bigbinary/neeto-cist": "1.0.15",
173
- "@bigbinary/neeto-commons-frontend": "4.13.28",
174
- "@bigbinary/neeto-filters-frontend": "4.3.15",
173
+ "@bigbinary/neeto-commons-frontend": "4.13.29",
174
+ "@bigbinary/neeto-filters-frontend": "4.3.16",
175
175
  "@bigbinary/neeto-icons": "1.20.31",
176
176
  "@bigbinary/neeto-molecules": "3.16.1",
177
177
  "@bigbinary/neetoui": "8.2.75",
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFolderActions-AZ7a_96r.js","sources":["../app/javascript/src/hooks/reactQuery/useFoldersApi.js","../app/javascript/src/constants/config.js","../app/javascript/src/hooks/useFolders.js","../app/javascript/src/stores/foldersStore.js","../app/javascript/src/utils/internal.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nconst useDestroyMutation = (config, api) => {\n const queryClient = useQueryClient();\n\n // eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook\n return useMutationWithInvalidation(api, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n ].concat(config.itemKeys),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n refetchType: \"none\",\n });\n },\n });\n};\n\nexport const useFetchFolders = config =>\n useQuery({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n queryFn: config.api.fetch,\n });\n\nexport const useShowFolder = (config, folderId) =>\n useQuery({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS, folderId],\n queryFn: () => config.api.get(folderId),\n enabled: !!folderId,\n });\n\nexport const useCreateFolder = config =>\n useMutationWithInvalidation(config.api.create, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useUpdateFolder = config =>\n useMutationWithInvalidation(config.api.update, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useReorderFolders = config =>\n useMutationWithInvalidation(config.api.reorder, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useDestroyFolder = config =>\n useDestroyMutation(config, config.api.destroy);\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useDestroyMutation(config, config.api.bulkDestroy);\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\n\nexport const DEFAULT_CONFIG = {\n type: \"FOLDER\", // For query keys with different associated entities\n maxDepth: 2, // Maximum allowed depth for folder tree\n folderPath: \"/folders/:folderId\", // Path for handling URL redirections\n itemLabel: t(\"common.items\"), // For displaying the item label in counts\n itemKeys: [], // For invalidation purposes\n api: {\n // Folder CRUD\n fetch: noop,\n get: noop,\n create: noop,\n update: noop,\n destroy: noop,\n bulkUpdate: noop,\n bulkDestroy: noop,\n },\n};\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\n\nconst useFolders = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const { data: folders, isLoading } = useFetchFolders(config);\n\n return { isLoading, folders };\n};\n\nexport default useFolders;\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useFolderStore = create(\n withImmutableActions(set => ({\n paneState: null,\n alertState: null,\n selectedItem: null,\n setFolderState: set,\n }))\n);\n\nexport default useFolderStore;\n","import { matchPath } from \"react-router-dom\";\n\nexport const getActiveFolderId = config =>\n matchPath(window.location.pathname, config.folderPath)?.params?.folderId;\n\nexport const isActiveFolder = (config, folderId) =>\n getActiveFolderId(config) === folderId;\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useShowFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport { getActiveFolderId } from \"utils/internal\";\n\nconst useFolder = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const folderId = getActiveFolderId(config);\n\n const { data: folder, isLoading } = useShowFolder(config, folderId);\n\n return { isLoading, folderId, folder };\n};\n\nexport default useFolder;\n","import { useQueryClient } from \"@tanstack/react-query\";\n\nimport { QUERY_KEYS } from \"constants/query\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport {\n useBulkUpdateFolders,\n useBulkDestroyFolders,\n} from \"./reactQuery/useFoldersApi\";\n\nconst useFolderActions = config => {\n const queryClient = useQueryClient();\n const { setFolderState } = useFolderStore.pick();\n\n const { mutateAsync: onBulkUpdate, isPending: isUpdating } =\n useBulkUpdateFolders(config);\n\n const { mutateAsync: onBulkDelete, isPending: isDeleting } =\n useBulkDestroyFolders(config);\n\n const onInvalidate = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type],\n });\n };\n\n const onAdd = () =>\n setFolderState({ paneState: { type: \"add\", item: null } });\n\n const onEdit = item => setFolderState({ paneState: { type: \"edit\", item } });\n\n const onMove = item => setFolderState({ paneState: { type: \"move\", item } });\n\n const onDelete = item =>\n setFolderState({ alertState: { type: \"delete\", item } });\n\n const onReorder = () =>\n setFolderState({ paneState: { type: \"reorder\", item: null } });\n\n const isPending = isUpdating || isDeleting;\n\n return {\n isPending,\n onAdd,\n onEdit,\n onMove,\n onDelete,\n onReorder,\n onInvalidate,\n onBulkUpdate,\n onBulkDelete,\n };\n};\n\nexport default useFolderActions;\n"],"names":["useDestroyMutation","config","api","queryClient","useQueryClient","useMutationWithInvalidation","keysToInvalidate","QUERY_KEYS","FOLDERS","type","LIST","concat","itemKeys","onSuccess","invalidateQueries","queryKey","DETAILS","refetchType","useFetchFolders","useQuery","queryFn","fetch","useShowFolder","folderId","get","enabled","useCreateFolder","create","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","DEFAULT_CONFIG","maxDepth","folderPath","itemLabel","t","noop","useFolders","configArg","_objectSpread","_useFetchFolders","folders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","getActiveFolderId","_matchPath","matchPath","window","location","pathname","params","isActiveFolder","useFolder","_useShowFolder","folder","useFolderActions","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","onAdd","item","onEdit","onMove","onDelete","onReorder"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFolderActions-DCs7hXdW.js","sources":["../app/javascript/src/hooks/reactQuery/useFoldersApi.js","../app/javascript/src/constants/config.js","../app/javascript/src/hooks/useFolders.js","../app/javascript/src/stores/foldersStore.js","../app/javascript/src/utils/internal.js","../app/javascript/src/hooks/useFolder.js","../app/javascript/src/hooks/useFolderActions.js"],"sourcesContent":["import { useQuery, useQueryClient } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport { QUERY_KEYS } from \"constants/query\";\n\nconst useDestroyMutation = (config, api) => {\n const queryClient = useQueryClient();\n\n // eslint-disable-next-line @bigbinary/neeto/use-use-mutation-with-invalidation-hook\n return useMutationWithInvalidation(api, {\n keysToInvalidate: [\n [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n ].concat(config.itemKeys),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS],\n refetchType: \"none\",\n });\n },\n });\n};\n\nexport const useFetchFolders = config =>\n useQuery({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.LIST],\n queryFn: config.api.fetch,\n });\n\nexport const useShowFolder = (config, folderId) =>\n useQuery({\n queryKey: [QUERY_KEYS.FOLDERS, config.type, QUERY_KEYS.DETAILS, folderId],\n queryFn: () => config.api.get(folderId),\n enabled: !!folderId,\n });\n\nexport const useCreateFolder = config =>\n useMutationWithInvalidation(config.api.create, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useUpdateFolder = config =>\n useMutationWithInvalidation(config.api.update, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useReorderFolders = config =>\n useMutationWithInvalidation(config.api.reorder, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useDestroyFolder = config =>\n useDestroyMutation(config, config.api.destroy);\n\nexport const useBulkUpdateFolders = config =>\n useMutationWithInvalidation(config.api.bulkUpdate, {\n keysToInvalidate: [[QUERY_KEYS.FOLDERS, config.type]],\n });\n\nexport const useBulkDestroyFolders = config =>\n useDestroyMutation(config, config.api.bulkDestroy);\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\n\nexport const DEFAULT_CONFIG = {\n type: \"FOLDER\", // For query keys with different associated entities\n maxDepth: 2, // Maximum allowed depth for folder tree\n folderPath: \"/folders/:folderId\", // Path for handling URL redirections\n itemLabel: t(\"common.items\"), // For displaying the item label in counts\n itemKeys: [], // For invalidation purposes\n api: {\n // Folder CRUD\n fetch: noop,\n get: noop,\n create: noop,\n update: noop,\n destroy: noop,\n bulkUpdate: noop,\n bulkDestroy: noop,\n },\n};\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useFetchFolders } from \"hooks/reactQuery/useFoldersApi\";\n\nconst useFolders = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const { data: folders, isLoading } = useFetchFolders(config);\n\n return { isLoading, folders };\n};\n\nexport default useFolders;\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useFolderStore = create(\n withImmutableActions(set => ({\n paneState: null,\n alertState: null,\n selectedItem: null,\n setFolderState: set,\n }))\n);\n\nexport default useFolderStore;\n","import { matchPath } from \"react-router-dom\";\n\nexport const getActiveFolderId = config =>\n matchPath(window.location.pathname, config.folderPath)?.params?.folderId;\n\nexport const isActiveFolder = (config, folderId) =>\n getActiveFolderId(config) === folderId;\n","import { DEFAULT_CONFIG } from \"constants/config\";\nimport { useShowFolder } from \"hooks/reactQuery/useFoldersApi\";\nimport { getActiveFolderId } from \"utils/internal\";\n\nconst useFolder = configArg => {\n const config = { ...DEFAULT_CONFIG, ...configArg };\n const folderId = getActiveFolderId(config);\n\n const { data: folder, isLoading } = useShowFolder(config, folderId);\n\n return { isLoading, folderId, folder };\n};\n\nexport default useFolder;\n","import { useQueryClient } from \"@tanstack/react-query\";\n\nimport { QUERY_KEYS } from \"constants/query\";\nimport useFolderStore from \"stores/foldersStore\";\n\nimport {\n useBulkUpdateFolders,\n useBulkDestroyFolders,\n} from \"./reactQuery/useFoldersApi\";\n\nconst useFolderActions = config => {\n const queryClient = useQueryClient();\n const { setFolderState } = useFolderStore.pick();\n\n const { mutateAsync: onBulkUpdate, isPending: isUpdating } =\n useBulkUpdateFolders(config);\n\n const { mutateAsync: onBulkDelete, isPending: isDeleting } =\n useBulkDestroyFolders(config);\n\n const onInvalidate = () => {\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.FOLDERS, config.type],\n });\n };\n\n const onAdd = () =>\n setFolderState({ paneState: { type: \"add\", item: null } });\n\n const onEdit = item => setFolderState({ paneState: { type: \"edit\", item } });\n\n const onMove = item => setFolderState({ paneState: { type: \"move\", item } });\n\n const onDelete = item =>\n setFolderState({ alertState: { type: \"delete\", item } });\n\n const onReorder = () =>\n setFolderState({ paneState: { type: \"reorder\", item: null } });\n\n const isPending = isUpdating || isDeleting;\n\n return {\n isPending,\n onAdd,\n onEdit,\n onMove,\n onDelete,\n onReorder,\n onInvalidate,\n onBulkUpdate,\n onBulkDelete,\n };\n};\n\nexport default useFolderActions;\n"],"names":["useDestroyMutation","config","api","queryClient","useQueryClient","useMutationWithInvalidation","keysToInvalidate","QUERY_KEYS","FOLDERS","type","LIST","concat","itemKeys","onSuccess","invalidateQueries","queryKey","DETAILS","refetchType","useFetchFolders","useQuery","queryFn","fetch","useShowFolder","folderId","get","enabled","useCreateFolder","create","useUpdateFolder","update","useReorderFolders","reorder","useDestroyFolder","destroy","useBulkUpdateFolders","bulkUpdate","useBulkDestroyFolders","bulkDestroy","DEFAULT_CONFIG","maxDepth","folderPath","itemLabel","t","noop","useFolders","configArg","_objectSpread","_useFetchFolders","folders","data","isLoading","useFolderStore","withImmutableActions","set","paneState","alertState","selectedItem","setFolderState","getActiveFolderId","_matchPath","matchPath","window","location","pathname","params","isActiveFolder","useFolder","_useShowFolder","folder","useFolderActions","_useFolderStore","store","shallow","_useBulkUpdateFolders","onBulkUpdate","mutateAsync","isUpdating","isPending","_useBulkDestroyFolder","onBulkDelete","isDeleting","onInvalidate","onAdd","item","onEdit","onMove","onDelete","onReorder"],"mappings":"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"}