Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
9.8 KiB
Plaintext
1 line
9.8 KiB
Plaintext
{"version":3,"file":"getFolderResultsComponentAndData.js","names":["APIError","formatErrors","getFolderData","buildFolderWhereConstraints","combineWhereConstraints","FolderFileTable","ItemCardGrid","getFolderResultsComponentAndDataHandler","args","req","res","getFolderResultsComponentAndData","err","payload","logger","error","msg","browseByFolder","collectionsToDisplay","activeCollectionSlugs","displayAs","folderAssignedCollections","folderID","undefined","sort","config","folders","emptyQuery","id","exists","collectionSlug","documentWhere","Array","isArray","length","folderWhere","activeCollectionSlug","slug","folderCollectionConstraints","collectionConfig","collections","localeCode","locale","search","query","collectionSpecific","or","folderType","in","collectionConstraints","push","folderData","FolderResultsComponent","_jsxs","subfolders","_jsx","_Fragment","items","title","type","documents","subfolderCount","showRelationCell","breadcrumbs"],"sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"sourcesContent":["import type {\n CollectionSlug,\n ErrorResult,\n GetFolderResultsComponentAndDataArgs,\n ServerFunction,\n Where,\n} from 'payload'\nimport type { FolderBreadcrumb, FolderOrDocument } from 'payload/shared'\n\nimport { APIError, formatErrors, getFolderData } from 'payload'\nimport { buildFolderWhereConstraints, combineWhereConstraints } from 'payload/shared'\n\nimport {\n FolderFileTable,\n ItemCardGrid,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- This component is returned via server functions, it must reference the exports dir\n} from '../exports/client/index.js'\n\ntype GetFolderResultsComponentAndDataResult = {\n breadcrumbs?: FolderBreadcrumb[]\n documents?: FolderOrDocument[]\n folderAssignedCollections?: CollectionSlug[]\n FolderResultsComponent: React.ReactNode\n subfolders?: FolderOrDocument[]\n}\n\ntype GetFolderResultsComponentAndDataErrorResult = {\n breadcrumbs?: never\n documents?: never\n FolderResultsComponent?: never\n subfolders?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport const getFolderResultsComponentAndDataHandler: ServerFunction<\n GetFolderResultsComponentAndDataArgs,\n Promise<GetFolderResultsComponentAndDataErrorResult | GetFolderResultsComponentAndDataResult>\n> = async (args) => {\n const { req } = args\n\n try {\n const res = await getFolderResultsComponentAndData(args)\n return res\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `There was an error getting the folder results component and data`,\n })\n\n return formatErrors(err)\n }\n}\n\n/**\n * This function is responsible for fetching folder data, building the results component\n * and returns the data and component together.\n */\nexport const getFolderResultsComponentAndData = async ({\n browseByFolder = false,\n collectionsToDisplay: activeCollectionSlugs,\n displayAs,\n folderAssignedCollections,\n folderID = undefined,\n req,\n sort,\n}: GetFolderResultsComponentAndDataArgs): Promise<GetFolderResultsComponentAndDataResult> => {\n const { payload } = req\n\n if (!payload.config.folders) {\n throw new APIError('Folders are not enabled in the configuration.')\n }\n\n const emptyQuery = {\n id: {\n exists: false,\n },\n }\n\n let collectionSlug: CollectionSlug | undefined = undefined\n let documentWhere: undefined | Where =\n Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined\n let folderWhere: undefined | Where =\n Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined\n\n // todo(perf): - collect promises and resolve them in parallel\n for (const activeCollectionSlug of activeCollectionSlugs) {\n if (activeCollectionSlug === payload.config.folders.slug) {\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n\n folderWhere = combineWhereConstraints([\n folderWhere,\n Array.isArray(folderAssignedCollections) &&\n folderAssignedCollections.length &&\n payload.config.folders.collectionSpecific\n ? {\n or: [\n {\n folderType: {\n in: folderAssignedCollections,\n },\n },\n // if the folderType is not set, it means it accepts all collections and should appear in the results\n {\n folderType: {\n exists: false,\n },\n },\n ],\n }\n : undefined,\n ])\n } else if ((browseByFolder && folderID) || !browseByFolder) {\n if (!browseByFolder) {\n collectionSlug = activeCollectionSlug\n }\n\n if (!documentWhere) {\n documentWhere = {\n or: [],\n }\n }\n\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (collectionConstraints) {\n documentWhere.or.push(collectionConstraints)\n }\n }\n }\n\n const folderData = await getFolderData({\n collectionSlug,\n documentWhere,\n folderID,\n folderWhere,\n req,\n sort,\n })\n\n let FolderResultsComponent = null\n\n if (displayAs === 'grid') {\n FolderResultsComponent = (\n <div>\n {folderData.subfolders.length ? (\n <>\n <ItemCardGrid items={folderData.subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {folderData.documents.length ? (\n <>\n <ItemCardGrid\n items={folderData.documents}\n subfolderCount={folderData.subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n )\n } else {\n FolderResultsComponent = <FolderFileTable showRelationCell={browseByFolder} />\n }\n\n return {\n breadcrumbs: folderData.breadcrumbs,\n documents: folderData.documents,\n folderAssignedCollections: folderData.folderAssignedCollections,\n FolderResultsComponent,\n subfolders: folderData.subfolders,\n }\n}\n"],"mappings":"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","ignoreList":[]} |