{"version":3,"file":"index.client.js","names":["formatAdminURL","React","useEffect","MoveDocToFolderButton","useConfig","useTranslation","FolderTableCellClient","collectionSlug","data","docTitle","folderCollectionSlug","folderFieldName","viewType","docID","id","intialFolderID","config","t","fromFolderName","setFromFolderName","useState","fromFolderID","setFromFolderID","hasLoadedFolderName","useRef","onConfirm","useCallback","name","fetch","apiRoute","routes","api","path","body","JSON","stringify","credentials","headers","method","error","console","loadFolderName","req","res","json","current","_jsx","buttonProps","disabled","size","docData","modalSlug","skipConfirmModal"],"sources":["../../../../src/elements/FolderView/Cell/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { Data, ViewTypes } from 'payload'\nimport type { FolderOrDocument } from 'payload/shared'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useEffect } from 'react'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { MoveDocToFolderButton, useConfig, useTranslation } from '../../../exports/client/index.js'\n\ntype Props = {\n readonly collectionSlug: string\n readonly data: Data\n readonly docTitle: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly viewType?: ViewTypes\n}\n\nexport const FolderTableCellClient = ({\n collectionSlug,\n data,\n docTitle,\n folderCollectionSlug,\n folderFieldName,\n viewType,\n}: Props) => {\n const docID = data.id\n const intialFolderID = data?.[folderFieldName]\n\n const { config } = useConfig()\n const { t } = useTranslation()\n const [fromFolderName, setFromFolderName] = React.useState(() =>\n intialFolderID ? `${t('general:loading')}...` : t('folder:noFolder'),\n )\n const [fromFolderID, setFromFolderID] = React.useState(intialFolderID)\n\n const hasLoadedFolderName = React.useRef(false)\n\n const onConfirm = React.useCallback(\n async ({ id, name }) => {\n try {\n await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${collectionSlug}/${docID}`,\n }),\n {\n body: JSON.stringify({\n [folderFieldName]: id,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n\n setFromFolderID(id)\n setFromFolderName(name || t('folder:noFolder'))\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error moving document to folder', error)\n }\n },\n [config.routes.api, collectionSlug, docID, folderFieldName, t],\n )\n\n useEffect(() => {\n const loadFolderName = async () => {\n try {\n const req = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${folderCollectionSlug}${intialFolderID ? `/${intialFolderID}` : ''}`,\n }),\n {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'GET',\n },\n )\n\n const res = await req.json()\n setFromFolderName(res?.name || t('folder:noFolder'))\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error moving document to folder', error)\n }\n }\n\n if (!hasLoadedFolderName.current) {\n void loadFolderName()\n hasLoadedFolderName.current = true\n }\n }, [config.routes.api, folderCollectionSlug, intialFolderID, t])\n\n return (\n \n )\n}\n"],"mappings":"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","ignoreList":[]}