@payloadcms/ui 3.48.0-canary.6 → 3.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/elements/FolderView/Breadcrumbs/index.d.ts.map +1 -1
  2. package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -1
  3. package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -1
  4. package/dist/elements/FolderView/CurrentFolderActions/index.js +1 -0
  5. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  6. package/dist/elements/FolderView/DragOverlaySelection/index.d.ts +2 -3
  7. package/dist/elements/FolderView/DragOverlaySelection/index.d.ts.map +1 -1
  8. package/dist/elements/FolderView/DragOverlaySelection/index.js +2 -7
  9. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -1
  10. package/dist/elements/FolderView/DraggableTableRow/index.d.ts.map +1 -1
  11. package/dist/elements/FolderView/DraggableTableRow/index.js +0 -1
  12. package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -1
  13. package/dist/elements/FolderView/DraggableWithClick/index.d.ts +2 -2
  14. package/dist/elements/FolderView/DraggableWithClick/index.d.ts.map +1 -1
  15. package/dist/elements/FolderView/DraggableWithClick/index.js +11 -6
  16. package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -1
  17. package/dist/elements/FolderView/DraggableWithClick/index.scss +1 -1
  18. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +2 -0
  19. package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -1
  20. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +53 -44
  21. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  22. package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +4 -0
  23. package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts +4 -0
  24. package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts.map +1 -0
  25. package/dist/elements/FolderView/{CollectionTypePill → FilterFolderTypePill}/index.js +1 -1
  26. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -0
  27. package/dist/elements/FolderView/FolderField/index.server.d.ts +4 -0
  28. package/dist/elements/FolderView/FolderField/index.server.d.ts.map +1 -0
  29. package/dist/elements/FolderView/{Field → FolderField}/index.server.js +1 -1
  30. package/dist/elements/FolderView/FolderField/index.server.js.map +1 -0
  31. package/dist/elements/FolderView/FolderFileCard/index.d.ts +2 -1
  32. package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +1 -1
  33. package/dist/elements/FolderView/FolderFileCard/index.js +89 -48
  34. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  35. package/dist/elements/FolderView/FolderFileCard/index.scss +30 -18
  36. package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -1
  37. package/dist/elements/FolderView/FolderFileTable/index.js +41 -28
  38. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  39. package/dist/elements/FolderView/FolderTypeField/index.d.ts +6 -0
  40. package/dist/elements/FolderView/FolderTypeField/index.d.ts.map +1 -0
  41. package/dist/elements/FolderView/FolderTypeField/index.js +127 -0
  42. package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -0
  43. package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -1
  44. package/dist/elements/FolderView/MoveDocToFolder/index.js +2 -1
  45. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  46. package/dist/elements/FolderView/SortByPill/index.d.ts.map +1 -1
  47. package/dist/elements/FolderView/SortByPill/index.js +11 -9
  48. package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
  49. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts +2 -1
  50. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -1
  51. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +25 -22
  52. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  53. package/dist/exports/client/index.d.ts +2 -1
  54. package/dist/exports/client/index.d.ts.map +1 -1
  55. package/dist/exports/client/index.js +10 -10
  56. package/dist/exports/client/index.js.map +4 -4
  57. package/dist/exports/rsc/index.d.ts +1 -1
  58. package/dist/exports/rsc/index.d.ts.map +1 -1
  59. package/dist/exports/rsc/index.js +1 -1
  60. package/dist/exports/rsc/index.js.map +1 -1
  61. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  62. package/dist/fields/Checkbox/Input.js +113 -45
  63. package/dist/fields/Checkbox/Input.js.map +1 -1
  64. package/dist/fields/Select/index.d.ts +2 -0
  65. package/dist/fields/Select/index.d.ts.map +1 -1
  66. package/dist/fields/Select/index.js +1 -1
  67. package/dist/fields/Select/index.js.map +1 -1
  68. package/dist/providers/Folders/groupItemIDsByRelation.d.ts +3 -0
  69. package/dist/providers/Folders/groupItemIDsByRelation.d.ts.map +1 -0
  70. package/dist/providers/Folders/groupItemIDsByRelation.js +10 -0
  71. package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -0
  72. package/dist/providers/Folders/index.d.ts +4 -1
  73. package/dist/providers/Folders/index.d.ts.map +1 -1
  74. package/dist/providers/Folders/index.js +264 -105
  75. package/dist/providers/Folders/index.js.map +1 -1
  76. package/dist/styles.css +1 -1
  77. package/dist/utilities/getFolderResultsComponentAndData.d.ts +3 -7
  78. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -1
  79. package/dist/utilities/getFolderResultsComponentAndData.js +36 -20
  80. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  81. package/dist/views/BrowseByFolder/index.js +27 -12
  82. package/dist/views/BrowseByFolder/index.js.map +1 -1
  83. package/dist/views/CollectionFolder/ListSelection/index.d.ts +2 -0
  84. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -1
  85. package/dist/views/CollectionFolder/ListSelection/index.js +18 -14
  86. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  87. package/dist/views/CollectionFolder/index.js +21 -8
  88. package/dist/views/CollectionFolder/index.js.map +1 -1
  89. package/package.json +5 -5
  90. package/dist/elements/FolderView/CollectionTypePill/index.d.ts +0 -4
  91. package/dist/elements/FolderView/CollectionTypePill/index.d.ts.map +0 -1
  92. package/dist/elements/FolderView/CollectionTypePill/index.js.map +0 -1
  93. package/dist/elements/FolderView/Field/index.server.d.ts +0 -4
  94. package/dist/elements/FolderView/Field/index.server.d.ts.map +0 -1
  95. package/dist/elements/FolderView/Field/index.server.js.map +0 -1
  96. package/dist/providers/Folders/selection.d.ts +0 -11
  97. package/dist/providers/Folders/selection.d.ts.map +0 -1
  98. package/dist/providers/Folders/selection.js +0 -38
  99. package/dist/providers/Folders/selection.js.map +0 -1
  100. /package/dist/elements/FolderView/{CollectionTypePill → FilterFolderTypePill}/index.scss +0 -0
  101. /package/dist/elements/FolderView/{Field → FolderField}/index.scss +0 -0
@@ -1,8 +1,9 @@
1
- import type { ErrorResult, GetFolderResultsComponentAndDataArgs, ServerFunction } from 'payload';
1
+ import type { CollectionSlug, ErrorResult, GetFolderResultsComponentAndDataArgs, ServerFunction } from 'payload';
2
2
  import type { FolderBreadcrumb, FolderOrDocument } from 'payload/shared';
3
3
  type GetFolderResultsComponentAndDataResult = {
4
4
  breadcrumbs?: FolderBreadcrumb[];
5
5
  documents?: FolderOrDocument[];
6
+ folderAssignedCollections?: CollectionSlug[];
6
7
  FolderResultsComponent: React.ReactNode;
7
8
  subfolders?: FolderOrDocument[];
8
9
  };
@@ -18,12 +19,7 @@ export declare const getFolderResultsComponentAndDataHandler: ServerFunction<Get
18
19
  /**
19
20
  * This function is responsible for fetching folder data, building the results component
20
21
  * and returns the data and component together.
21
- *
22
- *
23
- * Open ended questions:
24
- * - If we rerender the results section, does the provider update?? I dont think so, if the provider is on the server.
25
- * Maybe we should move the provider to the client.
26
22
  */
27
- export declare const getFolderResultsComponentAndData: ({ activeCollectionSlugs, browseByFolder, displayAs, folderID, req, sort, }: GetFolderResultsComponentAndDataArgs) => Promise<GetFolderResultsComponentAndDataResult>;
23
+ export declare const getFolderResultsComponentAndData: ({ browseByFolder, collectionsToDisplay: activeCollectionSlugs, displayAs, folderAssignedCollections, folderID, req, sort, }: GetFolderResultsComponentAndDataArgs) => Promise<GetFolderResultsComponentAndDataResult>;
28
24
  export {};
29
25
  //# sourceMappingURL=getFolderResultsComponentAndData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFolderResultsComponentAndData.d.ts","sourceRoot":"","sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,oCAAoC,EACpC,cAAc,EAEf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAWxE,KAAK,sCAAsC,GAAG;IAC5C,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC9B,sBAAsB,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAChC,CAAA;AAED,KAAK,2CAA2C,GAAG;IACjD,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,sBAAsB,CAAC,EAAE,KAAK,CAAA;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,eAAO,MAAM,uCAAuC,EAAE,cAAc,CAClE,oCAAoC,EACpC,OAAO,CAAC,2CAA2C,GAAG,sCAAsC,CAAC,CAsB9F,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,+EAO1C,oCAAoC,KAAG,OAAO,CAAC,sCAAsC,CA6FvF,CAAA"}
1
+ {"version":3,"file":"getFolderResultsComponentAndData.d.ts","sourceRoot":"","sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,oCAAoC,EACpC,cAAc,EAEf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAWxE,KAAK,sCAAsC,GAAG;IAC5C,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC9B,yBAAyB,CAAC,EAAE,cAAc,EAAE,CAAA;IAC5C,sBAAsB,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAChC,CAAA;AAED,KAAK,2CAA2C,GAAG;IACjD,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,sBAAsB,CAAC,EAAE,KAAK,CAAA;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,eAAO,MAAM,uCAAuC,EAAE,cAAc,CAClE,oCAAoC,EACpC,OAAO,CAAC,2CAA2C,GAAG,sCAAsC,CAAC,CAe9F,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,gIAQ1C,oCAAoC,KAAG,OAAO,CAAC,sCAAsC,CAwIvF,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { APIError, formatErrors, getFolderData } from 'payload';
3
- import { buildFolderWhereConstraints } from 'payload/shared';
3
+ import { buildFolderWhereConstraints, combineWhereConstraints } from 'payload/shared';
4
4
  import { FolderFileTable, ItemCardGrid } from '../exports/client/index.js';
5
5
  export const getFolderResultsComponentAndDataHandler = async args => {
6
6
  const {
@@ -12,32 +12,20 @@ export const getFolderResultsComponentAndDataHandler = async args => {
12
12
  } catch (err) {
13
13
  req.payload.logger.error({
14
14
  err,
15
- msg: `There was an error building form state`
15
+ msg: `There was an error getting the folder results component and data`
16
16
  });
17
- if (err.message === 'Could not find field schema for given path') {
18
- return {
19
- message: err.message
20
- };
21
- }
22
- if (err.message === 'Unauthorized') {
23
- return null;
24
- }
25
17
  return formatErrors(err);
26
18
  }
27
19
  };
28
20
  /**
29
21
  * This function is responsible for fetching folder data, building the results component
30
22
  * and returns the data and component together.
31
- *
32
- *
33
- * Open ended questions:
34
- * - If we rerender the results section, does the provider update?? I dont think so, if the provider is on the server.
35
- * Maybe we should move the provider to the client.
36
23
  */
37
24
  export const getFolderResultsComponentAndData = async ({
38
- activeCollectionSlugs,
39
- browseByFolder,
25
+ browseByFolder = false,
26
+ collectionsToDisplay: activeCollectionSlugs,
40
27
  displayAs,
28
+ folderAssignedCollections,
41
29
  folderID = undefined,
42
30
  req,
43
31
  sort
@@ -48,9 +36,14 @@ export const getFolderResultsComponentAndData = async ({
48
36
  if (!payload.config.folders) {
49
37
  throw new APIError('Folders are not enabled in the configuration.');
50
38
  }
39
+ const emptyQuery = {
40
+ id: {
41
+ exists: false
42
+ }
43
+ };
51
44
  let collectionSlug = undefined;
52
- let documentWhere = undefined;
53
- let folderWhere = undefined;
45
+ let documentWhere = Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined;
46
+ let folderWhere = Array.isArray(activeCollectionSlugs) && !activeCollectionSlugs.length ? emptyQuery : undefined;
54
47
  // todo(perf): - collect promises and resolve them in parallel
55
48
  for (const activeCollectionSlug of activeCollectionSlugs) {
56
49
  if (activeCollectionSlug === payload.config.folders.slug) {
@@ -65,6 +58,27 @@ export const getFolderResultsComponentAndData = async ({
65
58
  if (folderCollectionConstraints) {
66
59
  folderWhere = folderCollectionConstraints;
67
60
  }
61
+ folderWhere = combineWhereConstraints([folderWhere, Array.isArray(folderAssignedCollections) && folderAssignedCollections.length && payload.config.folders.collectionSpecific ? {
62
+ or: [{
63
+ folderType: {
64
+ in: folderAssignedCollections
65
+ }
66
+ },
67
+ // if the folderType is not set, it means it accepts all collections and should appear in the results
68
+ {
69
+ folderType: {
70
+ exists: false
71
+ }
72
+ }, {
73
+ folderType: {
74
+ equals: []
75
+ }
76
+ }, {
77
+ folderType: {
78
+ equals: null
79
+ }
80
+ }]
81
+ } : undefined]);
68
82
  } else if (browseByFolder && folderID || !browseByFolder) {
69
83
  if (!browseByFolder) {
70
84
  collectionSlug = activeCollectionSlug;
@@ -92,7 +106,8 @@ export const getFolderResultsComponentAndData = async ({
92
106
  documentWhere,
93
107
  folderID,
94
108
  folderWhere,
95
- req
109
+ req,
110
+ sort
96
111
  });
97
112
  let FolderResultsComponent = null;
98
113
  if (displayAs === 'grid') {
@@ -120,6 +135,7 @@ export const getFolderResultsComponentAndData = async ({
120
135
  return {
121
136
  breadcrumbs: folderData.breadcrumbs,
122
137
  documents: folderData.documents,
138
+ folderAssignedCollections: folderData.folderAssignedCollections,
123
139
  FolderResultsComponent,
124
140
  subfolders: folderData.subfolders
125
141
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getFolderResultsComponentAndData.js","names":["APIError","formatErrors","getFolderData","buildFolderWhereConstraints","FolderFileTable","ItemCardGrid","getFolderResultsComponentAndDataHandler","args","req","res","getFolderResultsComponentAndData","err","payload","logger","error","msg","message","activeCollectionSlugs","browseByFolder","displayAs","folderID","undefined","sort","config","folders","collectionSlug","documentWhere","folderWhere","activeCollectionSlug","slug","folderCollectionConstraints","collectionConfig","collections","localeCode","locale","search","query","or","collectionConstraints","push","folderData","FolderResultsComponent","_jsxs","subfolders","length","_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 } 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 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({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n return null\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 *\n *\n * Open ended questions:\n * - If we rerender the results section, does the provider update?? I dont think so, if the provider is on the server.\n * Maybe we should move the provider to the client.\n */\nexport const getFolderResultsComponentAndData = async ({\n activeCollectionSlugs,\n browseByFolder,\n displayAs,\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 let collectionSlug: CollectionSlug | undefined = undefined\n let documentWhere: undefined | Where = undefined\n let folderWhere: undefined | Where = 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 } 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 })\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 FolderResultsComponent,\n subfolders: folderData.subfolders,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"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","equals","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 folderType: {\n equals: [],\n },\n },\n {\n folderType: {\n equals: null,\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":[]}
@@ -7,10 +7,10 @@ import { getTranslation } from '@payloadcms/translations';
7
7
  import { useRouter } from 'next/navigation.js';
8
8
  import React, { Fragment } from 'react';
9
9
  import { DroppableBreadcrumb } from '../../elements/FolderView/Breadcrumbs/index.js';
10
- import { CollectionTypePill } from '../../elements/FolderView/CollectionTypePill/index.js';
11
10
  import { ColoredFolderIcon } from '../../elements/FolderView/ColoredFolderIcon/index.js';
12
11
  import { CurrentFolderActions } from '../../elements/FolderView/CurrentFolderActions/index.js';
13
12
  import { DragOverlaySelection } from '../../elements/FolderView/DragOverlaySelection/index.js';
13
+ import { FilterFolderTypePill } from '../../elements/FolderView/FilterFolderTypePill/index.js';
14
14
  import { FolderFileTable } from '../../elements/FolderView/FolderFileTable/index.js';
15
15
  import { ItemCardGrid } from '../../elements/FolderView/ItemCardGrid/index.js';
16
16
  import { SortByPill } from '../../elements/FolderView/SortByPill/index.js';
@@ -64,7 +64,7 @@ export function DefaultBrowseByFolderView({
64
64
  });
65
65
  }
66
66
  function BrowseByFolderViewInContext(props) {
67
- const $ = _c(27);
67
+ const $ = _c(30);
68
68
  const {
69
69
  AfterFolderList,
70
70
  AfterFolderListTable,
@@ -73,6 +73,7 @@ function BrowseByFolderViewInContext(props) {
73
73
  Description,
74
74
  disableBulkDelete,
75
75
  disableBulkEdit,
76
+ folderAssignedCollections,
76
77
  viewPreference
77
78
  } = props;
78
79
  const router = useRouter();
@@ -107,11 +108,12 @@ function BrowseByFolderViewInContext(props) {
107
108
  allowCreateCollectionSlugs,
108
109
  breadcrumbs,
109
110
  documents,
111
+ dragOverlayItem,
110
112
  folderCollectionConfig,
111
113
  folderID,
114
+ folderType,
112
115
  getFolderRoute,
113
116
  getSelectedItems,
114
- lastSelectedIndex,
115
117
  moveToFolder,
116
118
  refineFolderData,
117
119
  search,
@@ -248,6 +250,7 @@ function BrowseByFolderViewInContext(props) {
248
250
  t6 = $[24];
249
251
  }
250
252
  React.useEffect(t5, t6);
253
+ const nonFolderCollectionSlugs = allowCreateCollectionSlugs.filter(slug_0 => slug_0 !== folderCollectionConfig.slug);
251
254
  let t7;
252
255
  if ($[25] !== refineFolderData) {
253
256
  t7 = search_0 => refineFolderData({
@@ -261,6 +264,18 @@ function BrowseByFolderViewInContext(props) {
261
264
  } else {
262
265
  t7 = $[26];
263
266
  }
267
+ let t8;
268
+ if ($[27] !== dragOverlayItem || $[28] !== selectedItemKeys.size) {
269
+ t8 = selectedItemKeys.size > 0 && dragOverlayItem && _jsx(DragOverlaySelection, {
270
+ item: dragOverlayItem,
271
+ selectedCount: selectedItemKeys.size
272
+ });
273
+ $[27] = dragOverlayItem;
274
+ $[28] = selectedItemKeys.size;
275
+ $[29] = t8;
276
+ } else {
277
+ t8 = $[29];
278
+ }
264
279
  return _jsxs(Fragment, {
265
280
  children: [_jsx(DndEventListener, {
266
281
  onDragEnd,
@@ -272,18 +287,20 @@ function BrowseByFolderViewInContext(props) {
272
287
  children: [_jsx(ListHeader, {
273
288
  Actions: [!smallBreak && _jsx(ListSelection, {
274
289
  disableBulkDelete,
275
- disableBulkEdit
290
+ disableBulkEdit,
291
+ folderAssignedCollections
276
292
  }, "list-selection")].filter(Boolean),
277
293
  AfterListHeaderContent: Description,
278
294
  title: listHeaderTitle,
279
295
  TitleActions: [allowCreateCollectionSlugs.length && _jsx(ListCreateNewDocInFolderButton, {
280
296
  buttonLabel: t("general:createNew"),
281
297
  collectionSlugs: allowCreateCollectionSlugs,
298
+ folderAssignedCollections: Array.isArray(folderType) ? folderType : [],
282
299
  onCreateSuccess: clearRouteCache,
283
300
  slugPrefix: "create-document--header-pill"
284
301
  }, "create-new-button")].filter(Boolean)
285
302
  }), _jsx(SearchBar, {
286
- Actions: [_jsx(SortByPill, {}, "sort-by-pill"), folderID && _jsx(CollectionTypePill, {}, "collection-type"), _jsx(ToggleViewButtons, {
303
+ Actions: [_jsx(SortByPill, {}, "sort-by-pill"), folderID && _jsx(FilterFolderTypePill, {}, "collection-type"), _jsx(ToggleViewButtons, {
287
304
  activeView,
288
305
  setActiveView: handleSetViewType
289
306
  }, "toggle-view-buttons"), _jsx(CurrentFolderActions, {}, "current-folder-actions")].filter(Boolean),
@@ -311,11 +328,13 @@ function BrowseByFolderViewInContext(props) {
311
328
  Actions: [allowCreateCollectionSlugs.includes(folderCollectionConfig.slug) && _jsx(ListCreateNewDocInFolderButton, {
312
329
  buttonLabel: `${t("general:create")} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`,
313
330
  collectionSlugs: [folderCollectionConfig.slug],
331
+ folderAssignedCollections: Array.isArray(folderType) ? folderType : [],
314
332
  onCreateSuccess: clearRouteCache,
315
333
  slugPrefix: "create-folder--no-results"
316
- }, "create-folder"), folderID && allowCreateCollectionSlugs.filter(slug_1 => slug_1 !== folderCollectionConfig.slug).length > 0 && _jsx(ListCreateNewDocInFolderButton, {
334
+ }, "create-folder"), folderID && nonFolderCollectionSlugs.length > 0 && _jsx(ListCreateNewDocInFolderButton, {
317
335
  buttonLabel: `${t("general:create")} ${t("general:document").toLowerCase()}`,
318
- collectionSlugs: allowCreateCollectionSlugs.filter(slug_0 => slug_0 !== folderCollectionConfig.slug),
336
+ collectionSlugs: nonFolderCollectionSlugs,
337
+ folderAssignedCollections: Array.isArray(folderType) ? folderType : [],
319
338
  onCreateSuccess: clearRouteCache,
320
339
  slugPrefix: "create-document--no-results"
321
340
  }, "create-document")].filter(Boolean),
@@ -326,11 +345,7 @@ function BrowseByFolderViewInContext(props) {
326
345
  })
327
346
  }), AfterFolderListTable]
328
347
  }), AfterFolderList]
329
- }), _jsx(DragOverlaySelection, {
330
- allItems: [...subfolders, ...documents],
331
- lastSelected: lastSelectedIndex,
332
- selectedCount: selectedItemKeys.size
333
- })]
348
+ }), t8]
334
349
  });
335
350
  }
336
351
  function DndEventListener(t0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useDndMonitor","getTranslation","useRouter","React","Fragment","DroppableBreadcrumb","CollectionTypePill","ColoredFolderIcon","CurrentFolderActions","DragOverlaySelection","FolderFileTable","ItemCardGrid","SortByPill","ToggleViewButtons","Gutter","ListHeader","ListCreateNewDocInFolderButton","NoListResults","SearchBar","useStepNav","useConfig","useEditDepth","FolderProvider","useFolder","usePreferences","useRouteCache","useRouteTransition","useTranslation","useWindowInfo","ListSelection","baseClass","DefaultBrowseByFolderView","activeCollectionFolderSlugs","allCollectionFolderSlugs","allowCreateCollectionSlugs","baseFolderPath","breadcrumbs","documents","folderFieldName","folderID","FolderResultsComponent","search","subfolders","restOfProps","_jsx","BrowseByFolderViewInContext","props","$","AfterFolderList","AfterFolderListTable","BeforeFolderList","BeforeFolderListTable","Description","disableBulkDelete","disableBulkEdit","viewPreference","router","getEntityConfig","i18n","t","drawerDepth","setStepNav","startRouteTransition","clearRouteCache","breakpoints","t0","s","smallBreak","setPreference","visibleCollectionSlugs","folderCollectionConfig","getFolderRoute","getSelectedItems","lastSelectedIndex","moveToFolder","refineFolderData","selectedItemKeys","setIsDragging","activeView","setActiveView","useState","t1","locationLabel","length","labels","plural","name","folderName","searchPlaceholder","t2","event","over","data","current","type","itemsToMove","toFolderID","id","onDragEnd","totalDocsAndSubfolders","t3","listHeaderTitle","t4","acc","slug","index","array","collectionConfig","collectionSlug","toLowerCase","noResultsLabel","reduce","handleSetViewType","view","t5","t6","label","_jsxs","className","children","filter","Boolean","join","onClick","push","map","crumb","crumbIndex","useEffect","t7","search_0","query","updateURL","DndEventListener","Actions","AfterListHeaderContent","title","TitleActions","buttonLabel","collectionSlugs","onCreateSuccess","slugPrefix","onSearchChange","searchQueryParam","_Fragment","items","subfolderCount","includes","singular","slug_1","slug_0","Message","allItems","lastSelected","selectedCount","size","onDragCancel","onDragStart"],"sources":["../../../src/views/BrowseByFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { DragEndEvent } from '@dnd-kit/core'\nimport type { FolderListViewClientProps } from 'payload'\n\nimport { useDndMonitor } from '@dnd-kit/core'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DroppableBreadcrumb } from '../../elements/FolderView/Breadcrumbs/index.js'\nimport { CollectionTypePill } from '../../elements/FolderView/CollectionTypePill/index.js'\nimport { ColoredFolderIcon } from '../../elements/FolderView/ColoredFolderIcon/index.js'\nimport { CurrentFolderActions } from '../../elements/FolderView/CurrentFolderActions/index.js'\nimport { DragOverlaySelection } from '../../elements/FolderView/DragOverlaySelection/index.js'\nimport { FolderFileTable } from '../../elements/FolderView/FolderFileTable/index.js'\nimport { ItemCardGrid } from '../../elements/FolderView/ItemCardGrid/index.js'\nimport { SortByPill } from '../../elements/FolderView/SortByPill/index.js'\nimport { ToggleViewButtons } from '../../elements/FolderView/ToggleViewButtons/index.js'\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { ListHeader } from '../../elements/ListHeader/index.js'\nimport { ListCreateNewDocInFolderButton } from '../../elements/ListHeader/TitleActions/index.js'\nimport { NoListResults } from '../../elements/NoListResults/index.js'\nimport { SearchBar } from '../../elements/SearchBar/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { FolderProvider, useFolder } from '../../providers/Folders/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useWindowInfo } from '../../providers/WindowInfo/index.js'\nimport { ListSelection } from '../CollectionFolder/ListSelection/index.js'\nimport './index.scss'\n\nconst baseClass = 'folder-list'\n\nexport function DefaultBrowseByFolderView({\n activeCollectionFolderSlugs,\n allCollectionFolderSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath,\n breadcrumbs,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n search,\n subfolders,\n ...restOfProps\n}: FolderListViewClientProps) {\n return (\n <FolderProvider\n activeCollectionFolderSlugs={activeCollectionFolderSlugs}\n allCollectionFolderSlugs={allCollectionFolderSlugs}\n allowCreateCollectionSlugs={allowCreateCollectionSlugs}\n baseFolderPath={baseFolderPath}\n breadcrumbs={breadcrumbs}\n documents={documents}\n folderFieldName={folderFieldName}\n folderID={folderID}\n FolderResultsComponent={FolderResultsComponent}\n search={search}\n subfolders={subfolders}\n >\n <BrowseByFolderViewInContext {...restOfProps} />\n </FolderProvider>\n )\n}\n\ntype BrowseByFolderViewInContextProps = Omit<\n FolderListViewClientProps,\n | 'activeCollectionFolderSlugs'\n | 'allCollectionFolderSlugs'\n | 'allowCreateCollectionSlugs'\n | 'baseFolderPath'\n | 'breadcrumbs'\n | 'documents'\n | 'folderFieldName'\n | 'folderID'\n | 'FolderResultsComponent'\n | 'subfolders'\n>\n\nfunction BrowseByFolderViewInContext(props: BrowseByFolderViewInContextProps) {\n const {\n AfterFolderList,\n AfterFolderListTable,\n BeforeFolderList,\n BeforeFolderListTable,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n viewPreference,\n } = props\n\n const router = useRouter()\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const drawerDepth = useEditDepth()\n const { setStepNav } = useStepNav()\n const { startRouteTransition } = useRouteTransition()\n const { clearRouteCache } = useRouteCache()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n const { setPreference } = usePreferences()\n const {\n activeCollectionFolderSlugs: visibleCollectionSlugs,\n allowCreateCollectionSlugs,\n breadcrumbs,\n documents,\n folderCollectionConfig,\n folderID,\n getFolderRoute,\n getSelectedItems,\n lastSelectedIndex,\n moveToFolder,\n refineFolderData,\n search,\n selectedItemKeys,\n setIsDragging,\n subfolders,\n } = useFolder()\n\n const [activeView, setActiveView] = React.useState<'grid' | 'list'>(viewPreference || 'grid')\n const [searchPlaceholder] = React.useState(() => {\n const locationLabel =\n breadcrumbs.length === 0\n ? getTranslation(folderCollectionConfig.labels?.plural, i18n)\n : breadcrumbs[breadcrumbs.length - 1].name\n return t('folder:searchByNameInFolder', {\n folderName: locationLabel,\n })\n })\n\n const onDragEnd = React.useCallback(\n async (event: DragEndEvent) => {\n if (!event.over) {\n return\n }\n\n if (event.over.data.current.type === 'folder' && 'id' in event.over.data.current) {\n await moveToFolder({\n itemsToMove: getSelectedItems(),\n toFolderID: event.over.data.current.id || null,\n })\n clearRouteCache()\n }\n },\n [moveToFolder, getSelectedItems, clearRouteCache],\n )\n\n const totalDocsAndSubfolders = documents.length + subfolders.length\n const listHeaderTitle = !breadcrumbs.length\n ? t('folder:browseByFolder')\n : breadcrumbs[breadcrumbs.length - 1].name\n const noResultsLabel = visibleCollectionSlugs.reduce((acc, slug, index, array) => {\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n if (index === 0) {\n return getTranslation(collectionConfig.labels?.plural, i18n)\n }\n if (index === array.length - 1) {\n return `${acc} ${t('general:or').toLowerCase()} ${getTranslation(collectionConfig.labels?.plural, i18n)}`\n }\n return `${acc}, ${getTranslation(collectionConfig.labels?.plural, i18n)}`\n }, '')\n\n const handleSetViewType = React.useCallback(\n (view: 'grid' | 'list') => {\n void setPreference('browse-by-folder', {\n viewPreference: view,\n })\n setActiveView(view)\n },\n [setPreference],\n )\n\n React.useEffect(() => {\n if (!drawerDepth) {\n setStepNav([\n !breadcrumbs.length\n ? {\n label: (\n <div className={`${baseClass}__step-nav-icon-label`} key=\"root\">\n <ColoredFolderIcon />\n {t('folder:browseByFolder')}\n </div>\n ),\n }\n : {\n label: (\n <DroppableBreadcrumb\n className={[\n `${baseClass}__step-nav-droppable`,\n `${baseClass}__step-nav-icon-label`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={null}\n key=\"root\"\n onClick={() => {\n startRouteTransition(() => {\n router.push(getFolderRoute(null))\n })\n }}\n >\n <ColoredFolderIcon />\n {t('folder:browseByFolder')}\n </DroppableBreadcrumb>\n ),\n },\n ...breadcrumbs.map((crumb, crumbIndex) => {\n return {\n label:\n crumbIndex === breadcrumbs.length - 1 ? (\n crumb.name\n ) : (\n <DroppableBreadcrumb\n className={`${baseClass}__step-nav-droppable`}\n id={crumb.id}\n key={crumb.id}\n onClick={() => {\n startRouteTransition(() => {\n router.push(getFolderRoute(crumb.id))\n })\n }}\n >\n {crumb.name}\n </DroppableBreadcrumb>\n ),\n }\n }),\n ])\n }\n }, [breadcrumbs, drawerDepth, getFolderRoute, router, setStepNav, startRouteTransition, t])\n\n return (\n <Fragment>\n <DndEventListener onDragEnd={onDragEnd} setIsDragging={setIsDragging} />\n <div className={`${baseClass} ${baseClass}--folders`}>\n {BeforeFolderList}\n <Gutter className={`${baseClass}__wrap`}>\n <ListHeader\n Actions={[\n !smallBreak && (\n <ListSelection\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n key=\"list-selection\"\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n title={listHeaderTitle}\n TitleActions={[\n allowCreateCollectionSlugs.length && (\n <ListCreateNewDocInFolderButton\n buttonLabel={t('general:createNew')}\n collectionSlugs={allowCreateCollectionSlugs}\n key=\"create-new-button\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--header-pill\"\n />\n ),\n ].filter(Boolean)}\n />\n <SearchBar\n Actions={[\n <SortByPill key=\"sort-by-pill\" />,\n folderID && <CollectionTypePill key=\"collection-type\" />,\n <ToggleViewButtons\n activeView={activeView}\n key=\"toggle-view-buttons\"\n setActiveView={handleSetViewType}\n />,\n <CurrentFolderActions key=\"current-folder-actions\" />,\n ].filter(Boolean)}\n label={searchPlaceholder}\n onSearchChange={(search) => refineFolderData({ query: { search }, updateURL: true })}\n searchQueryParam={search}\n />\n {BeforeFolderListTable}\n {totalDocsAndSubfolders > 0 && (\n <>\n {activeView === 'grid' ? (\n <div>\n {subfolders.length ? (\n <>\n <ItemCardGrid items={subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {documents.length ? (\n <>\n <ItemCardGrid\n items={documents}\n subfolderCount={subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n ) : (\n <FolderFileTable />\n )}\n </>\n )}\n {totalDocsAndSubfolders === 0 && (\n <NoListResults\n Actions={[\n allowCreateCollectionSlugs.includes(folderCollectionConfig.slug) && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`}\n collectionSlugs={[folderCollectionConfig.slug]}\n key=\"create-folder\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-folder--no-results\"\n />\n ),\n folderID &&\n allowCreateCollectionSlugs.filter((slug) => slug !== folderCollectionConfig.slug)\n .length > 0 && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${t('general:document').toLowerCase()}`}\n collectionSlugs={allowCreateCollectionSlugs.filter(\n (slug) => slug !== folderCollectionConfig.slug,\n )}\n key=\"create-document\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--no-results\"\n />\n ),\n ].filter(Boolean)}\n Message={\n <p>\n {i18n.t('general:noResults', {\n label: noResultsLabel,\n })}\n </p>\n }\n />\n )}\n {AfterFolderListTable}\n </Gutter>\n {AfterFolderList}\n </div>\n <DragOverlaySelection\n allItems={[...subfolders, ...documents]}\n lastSelected={lastSelectedIndex}\n selectedCount={selectedItemKeys.size}\n />\n </Fragment>\n )\n}\nfunction DndEventListener({ onDragEnd, setIsDragging }) {\n useDndMonitor({\n onDragCancel() {\n setIsDragging(false)\n },\n onDragEnd(event) {\n setIsDragging(false)\n onDragEnd(event)\n },\n onDragStart() {\n setIsDragging(true)\n },\n })\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useDndMonitor","getTranslation","useRouter","React","Fragment","DroppableBreadcrumb","ColoredFolderIcon","CurrentFolderActions","DragOverlaySelection","FilterFolderTypePill","FolderFileTable","ItemCardGrid","SortByPill","ToggleViewButtons","Gutter","ListHeader","ListCreateNewDocInFolderButton","NoListResults","SearchBar","useStepNav","useConfig","useEditDepth","FolderProvider","useFolder","usePreferences","useRouteCache","useRouteTransition","useTranslation","useWindowInfo","ListSelection","baseClass","DefaultBrowseByFolderView","activeCollectionFolderSlugs","allCollectionFolderSlugs","allowCreateCollectionSlugs","baseFolderPath","breadcrumbs","documents","folderFieldName","folderID","FolderResultsComponent","search","subfolders","restOfProps","_jsx","BrowseByFolderViewInContext","props","$","AfterFolderList","AfterFolderListTable","BeforeFolderList","BeforeFolderListTable","Description","disableBulkDelete","disableBulkEdit","folderAssignedCollections","viewPreference","router","getEntityConfig","i18n","t","drawerDepth","setStepNav","startRouteTransition","clearRouteCache","breakpoints","t0","s","smallBreak","setPreference","visibleCollectionSlugs","dragOverlayItem","folderCollectionConfig","folderType","getFolderRoute","getSelectedItems","moveToFolder","refineFolderData","selectedItemKeys","setIsDragging","activeView","setActiveView","useState","t1","locationLabel","length","labels","plural","name","folderName","searchPlaceholder","t2","event","over","data","current","type","itemsToMove","toFolderID","id","onDragEnd","totalDocsAndSubfolders","t3","listHeaderTitle","t4","acc","slug","index","array","collectionConfig","collectionSlug","toLowerCase","noResultsLabel","reduce","handleSetViewType","view","t5","t6","label","_jsxs","className","children","filter","Boolean","join","onClick","push","map","crumb","crumbIndex","useEffect","nonFolderCollectionSlugs","slug_0","t7","search_0","query","updateURL","t8","size","item","selectedCount","DndEventListener","Actions","AfterListHeaderContent","title","TitleActions","buttonLabel","collectionSlugs","Array","isArray","onCreateSuccess","slugPrefix","onSearchChange","searchQueryParam","_Fragment","items","subfolderCount","includes","singular","Message","onDragCancel","onDragStart"],"sources":["../../../src/views/BrowseByFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { DragEndEvent } from '@dnd-kit/core'\nimport type { FolderListViewClientProps } from 'payload'\n\nimport { useDndMonitor } from '@dnd-kit/core'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DroppableBreadcrumb } from '../../elements/FolderView/Breadcrumbs/index.js'\nimport { ColoredFolderIcon } from '../../elements/FolderView/ColoredFolderIcon/index.js'\nimport { CurrentFolderActions } from '../../elements/FolderView/CurrentFolderActions/index.js'\nimport { DragOverlaySelection } from '../../elements/FolderView/DragOverlaySelection/index.js'\nimport { FilterFolderTypePill } from '../../elements/FolderView/FilterFolderTypePill/index.js'\nimport { FolderFileTable } from '../../elements/FolderView/FolderFileTable/index.js'\nimport { ItemCardGrid } from '../../elements/FolderView/ItemCardGrid/index.js'\nimport { SortByPill } from '../../elements/FolderView/SortByPill/index.js'\nimport { ToggleViewButtons } from '../../elements/FolderView/ToggleViewButtons/index.js'\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { ListHeader } from '../../elements/ListHeader/index.js'\nimport { ListCreateNewDocInFolderButton } from '../../elements/ListHeader/TitleActions/index.js'\nimport { NoListResults } from '../../elements/NoListResults/index.js'\nimport { SearchBar } from '../../elements/SearchBar/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { FolderProvider, useFolder } from '../../providers/Folders/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useWindowInfo } from '../../providers/WindowInfo/index.js'\nimport { ListSelection } from '../CollectionFolder/ListSelection/index.js'\nimport './index.scss'\n\nconst baseClass = 'folder-list'\n\nexport function DefaultBrowseByFolderView({\n activeCollectionFolderSlugs,\n allCollectionFolderSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath,\n breadcrumbs,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n search,\n subfolders,\n ...restOfProps\n}: FolderListViewClientProps) {\n return (\n <FolderProvider\n activeCollectionFolderSlugs={activeCollectionFolderSlugs}\n allCollectionFolderSlugs={allCollectionFolderSlugs}\n allowCreateCollectionSlugs={allowCreateCollectionSlugs}\n baseFolderPath={baseFolderPath}\n breadcrumbs={breadcrumbs}\n documents={documents}\n folderFieldName={folderFieldName}\n folderID={folderID}\n FolderResultsComponent={FolderResultsComponent}\n search={search}\n subfolders={subfolders}\n >\n <BrowseByFolderViewInContext {...restOfProps} />\n </FolderProvider>\n )\n}\n\ntype BrowseByFolderViewInContextProps = Omit<\n FolderListViewClientProps,\n | 'activeCollectionFolderSlugs'\n | 'allCollectionFolderSlugs'\n | 'allowCreateCollectionSlugs'\n | 'baseFolderPath'\n | 'breadcrumbs'\n | 'documents'\n | 'folderFieldName'\n | 'folderID'\n | 'FolderResultsComponent'\n | 'subfolders'\n>\n\nfunction BrowseByFolderViewInContext(props: BrowseByFolderViewInContextProps) {\n const {\n AfterFolderList,\n AfterFolderListTable,\n BeforeFolderList,\n BeforeFolderListTable,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n folderAssignedCollections,\n viewPreference,\n } = props\n\n const router = useRouter()\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const drawerDepth = useEditDepth()\n const { setStepNav } = useStepNav()\n const { startRouteTransition } = useRouteTransition()\n const { clearRouteCache } = useRouteCache()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n const { setPreference } = usePreferences()\n const {\n activeCollectionFolderSlugs: visibleCollectionSlugs,\n allowCreateCollectionSlugs,\n breadcrumbs,\n documents,\n dragOverlayItem,\n folderCollectionConfig,\n folderID,\n folderType,\n getFolderRoute,\n getSelectedItems,\n moveToFolder,\n refineFolderData,\n search,\n selectedItemKeys,\n setIsDragging,\n subfolders,\n } = useFolder()\n\n const [activeView, setActiveView] = React.useState<'grid' | 'list'>(viewPreference || 'grid')\n const [searchPlaceholder] = React.useState(() => {\n const locationLabel =\n breadcrumbs.length === 0\n ? getTranslation(folderCollectionConfig.labels?.plural, i18n)\n : breadcrumbs[breadcrumbs.length - 1].name\n return t('folder:searchByNameInFolder', {\n folderName: locationLabel,\n })\n })\n\n const onDragEnd = React.useCallback(\n async (event: DragEndEvent) => {\n if (!event.over) {\n return\n }\n\n if (event.over.data.current.type === 'folder' && 'id' in event.over.data.current) {\n await moveToFolder({\n itemsToMove: getSelectedItems(),\n toFolderID: event.over.data.current.id || null,\n })\n clearRouteCache()\n }\n },\n [moveToFolder, getSelectedItems, clearRouteCache],\n )\n\n const totalDocsAndSubfolders = documents.length + subfolders.length\n const listHeaderTitle = !breadcrumbs.length\n ? t('folder:browseByFolder')\n : breadcrumbs[breadcrumbs.length - 1].name\n const noResultsLabel = visibleCollectionSlugs.reduce((acc, slug, index, array) => {\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n if (index === 0) {\n return getTranslation(collectionConfig.labels?.plural, i18n)\n }\n if (index === array.length - 1) {\n return `${acc} ${t('general:or').toLowerCase()} ${getTranslation(collectionConfig.labels?.plural, i18n)}`\n }\n return `${acc}, ${getTranslation(collectionConfig.labels?.plural, i18n)}`\n }, '')\n\n const handleSetViewType = React.useCallback(\n (view: 'grid' | 'list') => {\n void setPreference('browse-by-folder', {\n viewPreference: view,\n })\n setActiveView(view)\n },\n [setPreference],\n )\n\n React.useEffect(() => {\n if (!drawerDepth) {\n setStepNav([\n !breadcrumbs.length\n ? {\n label: (\n <div className={`${baseClass}__step-nav-icon-label`} key=\"root\">\n <ColoredFolderIcon />\n {t('folder:browseByFolder')}\n </div>\n ),\n }\n : {\n label: (\n <DroppableBreadcrumb\n className={[\n `${baseClass}__step-nav-droppable`,\n `${baseClass}__step-nav-icon-label`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={null}\n key=\"root\"\n onClick={() => {\n startRouteTransition(() => {\n router.push(getFolderRoute(null))\n })\n }}\n >\n <ColoredFolderIcon />\n {t('folder:browseByFolder')}\n </DroppableBreadcrumb>\n ),\n },\n ...breadcrumbs.map((crumb, crumbIndex) => {\n return {\n label:\n crumbIndex === breadcrumbs.length - 1 ? (\n crumb.name\n ) : (\n <DroppableBreadcrumb\n className={`${baseClass}__step-nav-droppable`}\n id={crumb.id}\n key={crumb.id}\n onClick={() => {\n startRouteTransition(() => {\n router.push(getFolderRoute(crumb.id))\n })\n }}\n >\n {crumb.name}\n </DroppableBreadcrumb>\n ),\n }\n }),\n ])\n }\n }, [breadcrumbs, drawerDepth, getFolderRoute, router, setStepNav, startRouteTransition, t])\n\n const nonFolderCollectionSlugs = allowCreateCollectionSlugs.filter(\n (slug) => slug !== folderCollectionConfig.slug,\n )\n\n return (\n <Fragment>\n <DndEventListener onDragEnd={onDragEnd} setIsDragging={setIsDragging} />\n <div className={`${baseClass} ${baseClass}--folders`}>\n {BeforeFolderList}\n <Gutter className={`${baseClass}__wrap`}>\n <ListHeader\n Actions={[\n !smallBreak && (\n <ListSelection\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n folderAssignedCollections={folderAssignedCollections}\n key=\"list-selection\"\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n title={listHeaderTitle}\n TitleActions={[\n allowCreateCollectionSlugs.length && (\n <ListCreateNewDocInFolderButton\n buttonLabel={t('general:createNew')}\n collectionSlugs={allowCreateCollectionSlugs}\n folderAssignedCollections={Array.isArray(folderType) ? folderType : []}\n key=\"create-new-button\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--header-pill\"\n />\n ),\n ].filter(Boolean)}\n />\n <SearchBar\n Actions={[\n <SortByPill key=\"sort-by-pill\" />,\n folderID && <FilterFolderTypePill key=\"collection-type\" />,\n <ToggleViewButtons\n activeView={activeView}\n key=\"toggle-view-buttons\"\n setActiveView={handleSetViewType}\n />,\n <CurrentFolderActions key=\"current-folder-actions\" />,\n ].filter(Boolean)}\n label={searchPlaceholder}\n onSearchChange={(search) => refineFolderData({ query: { search }, updateURL: true })}\n searchQueryParam={search}\n />\n {BeforeFolderListTable}\n {totalDocsAndSubfolders > 0 && (\n <>\n {activeView === 'grid' ? (\n <div>\n {subfolders.length ? (\n <>\n <ItemCardGrid items={subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {documents.length ? (\n <>\n <ItemCardGrid\n items={documents}\n subfolderCount={subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n ) : (\n <FolderFileTable />\n )}\n </>\n )}\n {totalDocsAndSubfolders === 0 && (\n <NoListResults\n Actions={[\n allowCreateCollectionSlugs.includes(folderCollectionConfig.slug) && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`}\n collectionSlugs={[folderCollectionConfig.slug]}\n folderAssignedCollections={Array.isArray(folderType) ? folderType : []}\n key=\"create-folder\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-folder--no-results\"\n />\n ),\n folderID && nonFolderCollectionSlugs.length > 0 && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${t('general:document').toLowerCase()}`}\n collectionSlugs={nonFolderCollectionSlugs}\n folderAssignedCollections={Array.isArray(folderType) ? folderType : []}\n key=\"create-document\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--no-results\"\n />\n ),\n ].filter(Boolean)}\n Message={\n <p>\n {i18n.t('general:noResults', {\n label: noResultsLabel,\n })}\n </p>\n }\n />\n )}\n {AfterFolderListTable}\n </Gutter>\n {AfterFolderList}\n </div>\n {selectedItemKeys.size > 0 && dragOverlayItem && (\n <DragOverlaySelection item={dragOverlayItem} selectedCount={selectedItemKeys.size} />\n )}\n </Fragment>\n )\n}\nfunction DndEventListener({ onDragEnd, setIsDragging }) {\n useDndMonitor({\n onDragCancel() {\n setIsDragging(false)\n },\n onDragEnd(event) {\n setIsDragging(false)\n onDragEnd(event)\n },\n onDragStart() {\n setIsDragging(true)\n },\n })\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,9 @@
1
+ import type { CollectionSlug } from 'payload';
1
2
  import React from 'react';
2
3
  export type ListSelectionProps = {
3
4
  disableBulkDelete?: boolean;
4
5
  disableBulkEdit?: boolean;
6
+ folderAssignedCollections: CollectionSlug[];
5
7
  };
6
8
  export declare const ListSelection: React.FC<ListSelectionProps>;
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/CollectionFolder/ListSelection/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAyBvC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqJtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/CollectionFolder/ListSelection/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAyBvC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,yBAAyB,EAAE,cAAc,EAAE,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuJtD,CAAA"}
@@ -19,10 +19,11 @@ import { useRouteCache } from '../../../providers/RouteCache/index.js';
19
19
  import { useTranslation } from '../../../providers/Translation/index.js';
20
20
  const moveToFolderDrawerSlug = 'move-to-folder--list';
21
21
  export const ListSelection = t0 => {
22
- const $ = _c(16);
22
+ const $ = _c(17);
23
23
  const {
24
24
  disableBulkDelete,
25
- disableBulkEdit
25
+ disableBulkEdit,
26
+ folderAssignedCollections
26
27
  } = t0;
27
28
  const {
28
29
  clearSelections,
@@ -48,7 +49,7 @@ export const ListSelection = t0 => {
48
49
  } = useModal();
49
50
  let t1;
50
51
  let t2;
51
- if ($[0] !== clearRouteCache || $[1] !== clearSelections || $[2] !== closeModal || $[3] !== config || $[4] !== currentFolder?.value?._folderOrDocumentTitle || $[5] !== disableBulkDelete || $[6] !== disableBulkEdit || $[7] !== folderCollectionSlug || $[8] !== folderFieldName || $[9] !== folderID || $[10] !== getSelectedItems || $[11] !== moveToFolder || $[12] !== openModal || $[13] !== t) {
52
+ if ($[0] !== clearRouteCache || $[1] !== clearSelections || $[2] !== closeModal || $[3] !== config || $[4] !== currentFolder?.value?._folderOrDocumentTitle || $[5] !== disableBulkDelete || $[6] !== disableBulkEdit || $[7] !== folderAssignedCollections || $[8] !== folderCollectionSlug || $[9] !== folderFieldName || $[10] !== folderID || $[11] !== getSelectedItems || $[12] !== moveToFolder || $[13] !== openModal || $[14] !== t) {
52
53
  t2 = Symbol.for("react.early_return_sentinel");
53
54
  bb0: {
54
55
  const items = getSelectedItems();
@@ -97,6 +98,7 @@ export const ListSelection = t0 => {
97
98
  }), _jsx(MoveItemsToFolderDrawer, {
98
99
  action: "moveItemsToFolder",
99
100
  drawerSlug: moveToFolderDrawerSlug,
101
+ folderAssignedCollections,
100
102
  folderCollectionSlug,
101
103
  folderFieldName,
102
104
  fromFolderID: folderID,
@@ -121,6 +123,7 @@ export const ListSelection = t0 => {
121
123
  title: `${count} ${count > 1 ? t("general:items") : t("general:item")}`
122
124
  }));
123
125
  }
126
+ clearRouteCache();
124
127
  closeModal(moveToFolderDrawerSlug);
125
128
  }
126
129
  })]
@@ -140,18 +143,19 @@ export const ListSelection = t0 => {
140
143
  $[4] = currentFolder?.value?._folderOrDocumentTitle;
141
144
  $[5] = disableBulkDelete;
142
145
  $[6] = disableBulkEdit;
143
- $[7] = folderCollectionSlug;
144
- $[8] = folderFieldName;
145
- $[9] = folderID;
146
- $[10] = getSelectedItems;
147
- $[11] = moveToFolder;
148
- $[12] = openModal;
149
- $[13] = t;
150
- $[14] = t1;
151
- $[15] = t2;
146
+ $[7] = folderAssignedCollections;
147
+ $[8] = folderCollectionSlug;
148
+ $[9] = folderFieldName;
149
+ $[10] = folderID;
150
+ $[11] = getSelectedItems;
151
+ $[12] = moveToFolder;
152
+ $[13] = openModal;
153
+ $[14] = t;
154
+ $[15] = t1;
155
+ $[16] = t2;
152
156
  } else {
153
- t1 = $[14];
154
- t2 = $[15];
157
+ t1 = $[15];
158
+ t2 = $[16];
155
159
  }
156
160
  if (t2 !== Symbol.for("react.early_return_sentinel")) {
157
161
  return t2;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","extractID","React","Fragment","toast","DeleteMany_v4","EditMany_v4","EditFolderAction","MoveItemsToFolderDrawer","ListSelection_v4","ListSelectionButton","PublishMany_v4","UnpublishMany_v4","useConfig","useFolder","useRouteCache","useTranslation","moveToFolderDrawerSlug","ListSelection","t0","$","disableBulkDelete","disableBulkEdit","clearSelections","currentFolder","folderCollectionSlug","folderFieldName","folderID","getSelectedItems","moveToFolder","clearRouteCache","config","t","closeModal","openModal","t1","t2","value","_folderOrDocumentTitle","Symbol","for","bb0","items","groupedSelections","reduce","_temp","count","length","singleNonFolderCollectionSelected","Object","keys","collectionConfig","collections","find","collection","slug","ids","_jsx","ListActions","onClick","children","filter","Boolean","SelectionActions","_jsxs","selectAll","id","type","action","drawerSlug","fromFolderID","fromFolderName","itemsToMove","onConfirm","t3","name","toFolderID","success","folderName","title","afterDelete","selections","acc","item","relationTo","push","totalCount"],"sources":["../../../../src/views/CollectionFolder/ListSelection/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { extractID } from 'payload/shared'\nimport React, { Fragment } from 'react'\nimport { toast } from 'sonner'\n\nimport { DeleteMany_v4 } from '../../../elements/DeleteMany/index.js'\nimport { EditMany_v4 } from '../../../elements/EditMany/index.js'\nimport { EditFolderAction } from '../../../elements/FolderView/Drawers/EditFolderAction/index.js'\nimport { MoveItemsToFolderDrawer } from '../../../elements/FolderView/Drawers/MoveToFolder/index.js'\nimport { ListSelection_v4, ListSelectionButton } from '../../../elements/ListSelection/index.js'\nimport { PublishMany_v4 } from '../../../elements/PublishMany/index.js'\nimport { UnpublishMany_v4 } from '../../../elements/UnpublishMany/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nconst moveToFolderDrawerSlug = 'move-to-folder--list'\n\ntype GroupedSelections = {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount: number\n }\n}\n\nexport type ListSelectionProps = {\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n}\n\nexport const ListSelection: React.FC<ListSelectionProps> = ({\n disableBulkDelete,\n disableBulkEdit,\n}) => {\n const {\n clearSelections,\n currentFolder,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n getSelectedItems,\n moveToFolder,\n } = useFolder()\n const { clearRouteCache } = useRouteCache()\n const { config } = useConfig()\n const { t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const items = getSelectedItems()\n\n const groupedSelections: GroupedSelections = items.reduce((acc, item) => {\n if (item) {\n if (acc[item.relationTo]) {\n acc[item.relationTo].ids.push(extractID(item.value))\n acc[item.relationTo].totalCount += 1\n } else {\n acc[item.relationTo] = {\n ids: [extractID(item.value)],\n totalCount: 1,\n }\n }\n }\n\n return acc\n }, {} as GroupedSelections)\n\n const count = items.length\n const singleNonFolderCollectionSelected =\n Object.keys(groupedSelections).length === 1 &&\n Object.keys(groupedSelections)[0] !== folderCollectionSlug\n const collectionConfig = singleNonFolderCollectionSelected\n ? config.collections.find((collection) => {\n return collection.slug === Object.keys(groupedSelections)[0]\n })\n : null\n\n if (count === 0) {\n return null\n }\n\n const ids = singleNonFolderCollectionSelected\n ? groupedSelections[Object.keys(groupedSelections)[0]]?.ids || []\n : []\n\n return (\n <ListSelection_v4\n count={count}\n ListActions={[\n count > 0 && (\n <ListSelectionButton key=\"clear-all\" onClick={() => clearSelections()}>\n {t('general:clearAll')}\n </ListSelectionButton>\n ),\n ].filter(Boolean)}\n SelectionActions={[\n !disableBulkEdit && ids.length && (\n <Fragment key=\"bulk-actions\">\n <EditMany_v4 collection={collectionConfig} count={count} ids={ids} selectAll={false} />\n <PublishMany_v4\n collection={collectionConfig}\n count={count}\n ids={ids}\n selectAll={false}\n />\n <UnpublishMany_v4\n collection={collectionConfig}\n count={count}\n ids={ids}\n selectAll={false}\n />\n </Fragment>\n ),\n count === 1 && !singleNonFolderCollectionSelected && (\n <EditFolderAction\n folderCollectionSlug={folderCollectionSlug}\n id={groupedSelections[folderCollectionSlug].ids[0]}\n key=\"edit-folder-action\"\n />\n ),\n count > 0 ? (\n <React.Fragment key={moveToFolderDrawerSlug}>\n <ListSelectionButton\n onClick={() => {\n openModal(moveToFolderDrawerSlug)\n }}\n type=\"button\"\n >\n {t('general:move')}\n </ListSelectionButton>\n\n <MoveItemsToFolderDrawer\n action=\"moveItemsToFolder\"\n drawerSlug={moveToFolderDrawerSlug}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={folderID}\n fromFolderName={currentFolder?.value?._folderOrDocumentTitle}\n itemsToMove={getSelectedItems()}\n onConfirm={async ({ id, name }) => {\n await moveToFolder({\n itemsToMove: getSelectedItems(),\n toFolderID: id,\n })\n\n if (id) {\n // moved to folder\n toast.success(\n t('folder:itemsMovedToFolder', {\n folderName: `\"${name}\"`,\n title: `${count} ${count > 1 ? t('general:items') : t('general:item')}`,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemsMovedToRoot', {\n title: `${count} ${count > 1 ? t('general:items') : t('general:item')}`,\n }),\n )\n }\n\n closeModal(moveToFolderDrawerSlug)\n }}\n />\n </React.Fragment>\n ) : null,\n !disableBulkDelete && (\n <DeleteMany_v4\n afterDelete={() => {\n clearRouteCache()\n clearSelections()\n }}\n key=\"bulk-delete\"\n selections={groupedSelections}\n />\n ),\n ].filter(Boolean)}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","extractID","React","Fragment","toast","DeleteMany_v4","EditMany_v4","EditFolderAction","MoveItemsToFolderDrawer","ListSelection_v4","ListSelectionButton","PublishMany_v4","UnpublishMany_v4","useConfig","useFolder","useRouteCache","useTranslation","moveToFolderDrawerSlug","ListSelection","t0","$","disableBulkDelete","disableBulkEdit","folderAssignedCollections","clearSelections","currentFolder","folderCollectionSlug","folderFieldName","folderID","getSelectedItems","moveToFolder","clearRouteCache","config","t","closeModal","openModal","t1","t2","value","_folderOrDocumentTitle","Symbol","for","bb0","items","groupedSelections","reduce","_temp","count","length","singleNonFolderCollectionSelected","Object","keys","collectionConfig","collections","find","collection","slug","ids","_jsx","ListActions","onClick","children","filter","Boolean","SelectionActions","_jsxs","selectAll","id","type","action","drawerSlug","fromFolderID","fromFolderName","itemsToMove","onConfirm","t3","name","toFolderID","success","folderName","title","afterDelete","selections","acc","item","relationTo","push","totalCount"],"sources":["../../../../src/views/CollectionFolder/ListSelection/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { extractID } from 'payload/shared'\nimport React, { Fragment } from 'react'\nimport { toast } from 'sonner'\n\nimport { DeleteMany_v4 } from '../../../elements/DeleteMany/index.js'\nimport { EditMany_v4 } from '../../../elements/EditMany/index.js'\nimport { EditFolderAction } from '../../../elements/FolderView/Drawers/EditFolderAction/index.js'\nimport { MoveItemsToFolderDrawer } from '../../../elements/FolderView/Drawers/MoveToFolder/index.js'\nimport { ListSelection_v4, ListSelectionButton } from '../../../elements/ListSelection/index.js'\nimport { PublishMany_v4 } from '../../../elements/PublishMany/index.js'\nimport { UnpublishMany_v4 } from '../../../elements/UnpublishMany/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nconst moveToFolderDrawerSlug = 'move-to-folder--list'\n\ntype GroupedSelections = {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount: number\n }\n}\n\nexport type ListSelectionProps = {\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n folderAssignedCollections: CollectionSlug[]\n}\n\nexport const ListSelection: React.FC<ListSelectionProps> = ({\n disableBulkDelete,\n disableBulkEdit,\n folderAssignedCollections,\n}) => {\n const {\n clearSelections,\n currentFolder,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n getSelectedItems,\n moveToFolder,\n } = useFolder()\n const { clearRouteCache } = useRouteCache()\n const { config } = useConfig()\n const { t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const items = getSelectedItems()\n\n const groupedSelections: GroupedSelections = items.reduce((acc, item) => {\n if (item) {\n if (acc[item.relationTo]) {\n acc[item.relationTo].ids.push(extractID(item.value))\n acc[item.relationTo].totalCount += 1\n } else {\n acc[item.relationTo] = {\n ids: [extractID(item.value)],\n totalCount: 1,\n }\n }\n }\n\n return acc\n }, {} as GroupedSelections)\n\n const count = items.length\n const singleNonFolderCollectionSelected =\n Object.keys(groupedSelections).length === 1 &&\n Object.keys(groupedSelections)[0] !== folderCollectionSlug\n const collectionConfig = singleNonFolderCollectionSelected\n ? config.collections.find((collection) => {\n return collection.slug === Object.keys(groupedSelections)[0]\n })\n : null\n\n if (count === 0) {\n return null\n }\n\n const ids = singleNonFolderCollectionSelected\n ? groupedSelections[Object.keys(groupedSelections)[0]]?.ids || []\n : []\n\n return (\n <ListSelection_v4\n count={count}\n ListActions={[\n count > 0 && (\n <ListSelectionButton key=\"clear-all\" onClick={() => clearSelections()}>\n {t('general:clearAll')}\n </ListSelectionButton>\n ),\n ].filter(Boolean)}\n SelectionActions={[\n !disableBulkEdit && ids.length && (\n <Fragment key=\"bulk-actions\">\n <EditMany_v4 collection={collectionConfig} count={count} ids={ids} selectAll={false} />\n <PublishMany_v4\n collection={collectionConfig}\n count={count}\n ids={ids}\n selectAll={false}\n />\n <UnpublishMany_v4\n collection={collectionConfig}\n count={count}\n ids={ids}\n selectAll={false}\n />\n </Fragment>\n ),\n count === 1 && !singleNonFolderCollectionSelected && (\n <EditFolderAction\n folderCollectionSlug={folderCollectionSlug}\n id={groupedSelections[folderCollectionSlug].ids[0]}\n key=\"edit-folder-action\"\n />\n ),\n count > 0 ? (\n <React.Fragment key={moveToFolderDrawerSlug}>\n <ListSelectionButton\n onClick={() => {\n openModal(moveToFolderDrawerSlug)\n }}\n type=\"button\"\n >\n {t('general:move')}\n </ListSelectionButton>\n\n <MoveItemsToFolderDrawer\n action=\"moveItemsToFolder\"\n drawerSlug={moveToFolderDrawerSlug}\n folderAssignedCollections={folderAssignedCollections}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={folderID}\n fromFolderName={currentFolder?.value?._folderOrDocumentTitle}\n itemsToMove={getSelectedItems()}\n onConfirm={async ({ id, name }) => {\n await moveToFolder({\n itemsToMove: getSelectedItems(),\n toFolderID: id,\n })\n\n if (id) {\n // moved to folder\n toast.success(\n t('folder:itemsMovedToFolder', {\n folderName: `\"${name}\"`,\n title: `${count} ${count > 1 ? t('general:items') : t('general:item')}`,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemsMovedToRoot', {\n title: `${count} ${count > 1 ? t('general:items') : t('general:item')}`,\n }),\n )\n }\n\n clearRouteCache()\n closeModal(moveToFolderDrawerSlug)\n }}\n />\n </React.Fragment>\n ) : null,\n !disableBulkDelete && (\n <DeleteMany_v4\n afterDelete={() => {\n clearRouteCache()\n clearSelections()\n }}\n key=\"bulk-delete\"\n selections={groupedSelections}\n />\n ),\n ].filter(Boolean)}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}