@payloadcms/ui 3.80.0-internal.cdd7ef7 → 3.80.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.
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +12 -0
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +29 -7
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +3 -5
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/index.scss +5 -38
- package/dist/elements/Button/types.d.ts +1 -1
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.d.ts.map +1 -1
- package/dist/elements/CheckboxPopup/index.js +1 -0
- package/dist/elements/CheckboxPopup/index.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.scss +0 -1
- package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +54 -28
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts +0 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +10 -6
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.scss +1 -1
- package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +141 -54
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +1 -7
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +0 -2
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.scss +2 -2
- package/dist/elements/FolderView/Breadcrumbs/index.d.ts +19 -0
- package/dist/elements/FolderView/Breadcrumbs/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Breadcrumbs/index.js +96 -0
- package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -0
- package/dist/elements/FolderView/Breadcrumbs/index.scss +56 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts +6 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.d.ts.map +1 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.js +40 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -0
- package/dist/elements/FolderView/BrowseByFolderButton/index.scss +30 -0
- package/dist/elements/FolderView/Cell/index.client.d.ts +13 -0
- package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -0
- package/dist/elements/FolderView/Cell/index.client.js +95 -0
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -0
- package/dist/elements/FolderView/Cell/index.server.d.ts +4 -0
- package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -0
- package/dist/elements/FolderView/Cell/index.server.js +18 -0
- package/dist/elements/FolderView/Cell/index.server.js.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts +3 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.js +9 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -0
- package/dist/elements/FolderView/ColoredFolderIcon/index.scss +5 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts +7 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.js +162 -0
- package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.d.ts +11 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.js +62 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -0
- package/dist/elements/FolderView/DragOverlaySelection/index.scss +35 -0
- package/dist/elements/FolderView/DraggableTableRow/index.d.ts +18 -0
- package/dist/elements/FolderView/DraggableTableRow/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DraggableTableRow/index.js +63 -0
- package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -0
- package/dist/elements/FolderView/DraggableTableRow/index.scss +135 -0
- package/dist/elements/FolderView/DraggableWithClick/index.d.ts +15 -0
- package/dist/elements/FolderView/DraggableWithClick/index.d.ts.map +1 -0
- package/dist/elements/FolderView/DraggableWithClick/index.js +86 -0
- package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -0
- package/dist/elements/FolderView/DraggableWithClick/index.scss +5 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +7 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +39 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +37 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +609 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +30 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts +4 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.js +102 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -0
- package/dist/elements/FolderView/FilterFolderTypePill/index.scss +16 -0
- package/dist/elements/FolderView/FolderField/index.scss +12 -0
- package/dist/elements/FolderView/FolderField/index.server.d.ts +4 -0
- package/dist/elements/FolderView/FolderField/index.server.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderField/index.server.js +16 -0
- package/dist/elements/FolderView/FolderField/index.server.js.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.d.ts +30 -0
- package/dist/elements/FolderView/FolderFileCard/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.js +209 -0
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -0
- package/dist/elements/FolderView/FolderFileCard/index.scss +247 -0
- package/dist/elements/FolderView/FolderFileTable/index.d.ts +8 -0
- package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderFileTable/index.js +284 -0
- package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -0
- package/dist/elements/FolderView/FolderFileTable/index.scss +11 -0
- package/dist/elements/FolderView/FolderTypeField/index.d.ts +4 -0
- package/dist/elements/FolderView/FolderTypeField/index.d.ts.map +1 -0
- package/dist/elements/FolderView/FolderTypeField/index.js +123 -0
- package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.d.ts +16 -0
- package/dist/elements/FolderView/ItemCardGrid/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.js +34 -0
- package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -0
- package/dist/elements/FolderView/ItemCardGrid/index.scss +16 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +37 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.js +292 -0
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -0
- package/dist/elements/{Hierarchy/DocHeaderButton → FolderView/MoveDocToFolder}/index.scss +1 -7
- package/dist/elements/FolderView/SimpleTable/index.d.ts +19 -0
- package/dist/elements/FolderView/SimpleTable/index.d.ts.map +1 -0
- package/dist/elements/FolderView/SimpleTable/index.js +95 -0
- package/dist/elements/FolderView/SimpleTable/index.js.map +1 -0
- package/dist/elements/FolderView/SimpleTable/index.scss +59 -0
- package/dist/elements/FolderView/SortByPill/index.d.ts +4 -0
- package/dist/elements/FolderView/SortByPill/index.d.ts.map +1 -0
- package/dist/elements/FolderView/SortByPill/index.js +112 -0
- package/dist/elements/FolderView/SortByPill/index.js.map +1 -0
- package/dist/elements/FolderView/SortByPill/index.scss +16 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.d.ts +8 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.d.ts.map +1 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.js +31 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -0
- package/dist/elements/FolderView/ToggleViewButtons/index.scss +17 -0
- package/dist/elements/Link/index.d.ts +0 -4
- package/dist/elements/Link/index.d.ts.map +1 -1
- package/dist/elements/Link/index.js +0 -5
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts +15 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +182 -0
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/index.js +1 -0
- package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
- package/dist/elements/ListHeader/index.js +2 -2
- package/dist/elements/ListHeader/index.js.map +1 -1
- package/dist/elements/ListSelection/index.scss +1 -2
- package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +9 -7
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Locked/index.scss +1 -1
- package/dist/elements/RelationshipTable/index.js +3 -3
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +1 -10
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/StepNav/types.d.ts +0 -1
- package/dist/elements/StepNav/types.d.ts.map +1 -1
- package/dist/elements/StepNav/types.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +0 -20
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Tooltip/index.js +1 -1
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Tooltip/index.scss +15 -1
- package/dist/exports/client/index.d.ts +10 -27
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +24 -26
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +3 -3
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +3 -3
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +1 -1
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/shared/index.d.ts +2 -2
- package/dist/fields/shared/index.d.ts.map +1 -1
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/icons/Chevron/index.d.ts.map +1 -1
- package/dist/icons/Chevron/index.js +1 -5
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/Document/index.d.ts +1 -3
- package/dist/icons/Document/index.d.ts.map +1 -1
- package/dist/icons/Document/index.js +2 -4
- package/dist/icons/Document/index.js.map +1 -1
- package/dist/icons/Document/index.scss +0 -4
- package/dist/icons/Folder/index.d.ts +2 -4
- package/dist/icons/Folder/index.d.ts.map +1 -1
- package/dist/icons/Folder/index.js +2 -4
- package/dist/icons/Folder/index.js.map +1 -1
- package/dist/icons/Folder/index.scss +0 -8
- package/dist/icons/Lock/index.scss +1 -1
- package/dist/icons/Plus/index.d.ts.map +1 -1
- package/dist/icons/Plus/index.js +1 -2
- package/dist/icons/Plus/index.js.map +1 -1
- package/dist/providers/Folders/groupItemIDsByRelation.d.ts +3 -0
- package/dist/providers/Folders/groupItemIDsByRelation.d.ts.map +1 -0
- package/dist/providers/Folders/groupItemIDsByRelation.js +10 -0
- package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -0
- package/dist/providers/Folders/index.d.ts +143 -0
- package/dist/providers/Folders/index.d.ts.map +1 -0
- package/dist/providers/Folders/index.js +641 -0
- package/dist/providers/Folders/index.js.map +1 -0
- package/dist/providers/LivePreview/context.d.ts +6 -0
- package/dist/providers/LivePreview/context.d.ts.map +1 -1
- package/dist/providers/LivePreview/context.js +1 -0
- package/dist/providers/LivePreview/context.js.map +1 -1
- package/dist/providers/LivePreview/index.d.ts.map +1 -1
- package/dist/providers/LivePreview/index.js +13 -1
- package/dist/providers/LivePreview/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +15 -18
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +6 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +18 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +1 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -34
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.d.ts +25 -0
- package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -0
- package/dist/utilities/getFolderResultsComponentAndData.js +135 -0
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -0
- package/dist/utilities/handleLivePreview.d.ts.map +1 -1
- package/dist/utilities/renderTable.d.ts +1 -3
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +3 -9
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/BrowseByFolder/index.d.ts +5 -0
- package/dist/views/BrowseByFolder/index.d.ts.map +1 -0
- package/dist/views/BrowseByFolder/index.js +342 -0
- package/dist/views/BrowseByFolder/index.js.map +1 -0
- package/dist/views/BrowseByFolder/index.scss +174 -0
- package/dist/views/CollectionFolder/ListSelection/index.d.ts +9 -0
- package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -0
- package/dist/views/CollectionFolder/ListSelection/index.js +180 -0
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -0
- package/dist/views/CollectionFolder/index.d.ts +5 -0
- package/dist/views/CollectionFolder/index.d.ts.map +1 -0
- package/dist/views/CollectionFolder/index.js +325 -0
- package/dist/views/CollectionFolder/index.js.map +1 -0
- package/dist/views/CollectionFolder/index.scss +162 -0
- package/dist/views/Edit/index.d.ts +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +10 -8
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +7 -51
- package/dist/views/List/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/elements/CreateDocumentButton/index.d.ts +0 -26
- package/dist/elements/CreateDocumentButton/index.d.ts.map +0 -1
- package/dist/elements/CreateDocumentButton/index.js +0 -182
- package/dist/elements/CreateDocumentButton/index.js.map +0 -1
- package/dist/elements/DelayedSpinner/index.d.ts +0 -23
- package/dist/elements/DelayedSpinner/index.d.ts.map +0 -1
- package/dist/elements/DelayedSpinner/index.js +0 -61
- package/dist/elements/DelayedSpinner/index.js.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts +0 -5
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +0 -166
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.scss +0 -63
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts +0 -5
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +0 -161
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.scss +0 -105
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts +0 -8
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.js +0 -473
- package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.scss +0 -20
- package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +0 -106
- package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +0 -1
- package/dist/elements/Hierarchy/ColumnBrowser/types.js +0 -2
- package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +0 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts +0 -11
- package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js +0 -126
- package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +0 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts +0 -10
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.d.ts.map +0 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.js +0 -34
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.js.map +0 -1
- package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts +0 -15
- package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js +0 -60
- package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js.map +0 -1
- package/dist/elements/Hierarchy/Drawer/index.d.ts +0 -20
- package/dist/elements/Hierarchy/Drawer/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Drawer/index.js +0 -291
- package/dist/elements/Hierarchy/Drawer/index.js.map +0 -1
- package/dist/elements/Hierarchy/Drawer/index.scss +0 -81
- package/dist/elements/Hierarchy/Drawer/types.d.ts +0 -68
- package/dist/elements/Hierarchy/Drawer/types.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Drawer/types.js +0 -3
- package/dist/elements/Hierarchy/Drawer/types.js.map +0 -1
- package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts +0 -30
- package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js +0 -148
- package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js.map +0 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +0 -13
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +0 -185
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +0 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.scss +0 -78
- package/dist/elements/Hierarchy/Field/index.client.d.ts +0 -8
- package/dist/elements/Hierarchy/Field/index.client.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Field/index.client.js +0 -186
- package/dist/elements/Hierarchy/Field/index.client.js.map +0 -1
- package/dist/elements/Hierarchy/Field/index.scss +0 -35
- package/dist/elements/Hierarchy/Field/index.server.d.ts +0 -3
- package/dist/elements/Hierarchy/Field/index.server.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Field/index.server.js +0 -30
- package/dist/elements/Hierarchy/Field/index.server.js.map +0 -1
- package/dist/elements/Hierarchy/HydrateProvider/index.d.ts +0 -4
- package/dist/elements/Hierarchy/HydrateProvider/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/HydrateProvider/index.js +0 -70
- package/dist/elements/Hierarchy/HydrateProvider/index.js.map +0 -1
- package/dist/elements/Hierarchy/MoveMany/index.d.ts +0 -22
- package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/MoveMany/index.js +0 -278
- package/dist/elements/Hierarchy/MoveMany/index.js.map +0 -1
- package/dist/elements/Hierarchy/MoveMany/index.scss +0 -7
- package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts +0 -18
- package/dist/elements/Hierarchy/Search/HierarchySearchInput.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchInput.js +0 -115
- package/dist/elements/Hierarchy/Search/HierarchySearchInput.js.map +0 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts +0 -13
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +0 -88
- package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +0 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts +0 -17
- package/dist/elements/Hierarchy/Search/HierarchySearchResults.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/HierarchySearchResults.js +0 -85
- package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +0 -1
- package/dist/elements/Hierarchy/Search/index.d.ts +0 -10
- package/dist/elements/Hierarchy/Search/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/index.js +0 -144
- package/dist/elements/Hierarchy/Search/index.js.map +0 -1
- package/dist/elements/Hierarchy/Search/index.scss +0 -212
- package/dist/elements/Hierarchy/Search/types.d.ts +0 -21
- package/dist/elements/Hierarchy/Search/types.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/types.js +0 -2
- package/dist/elements/Hierarchy/Search/types.js.map +0 -1
- package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts +0 -20
- package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Search/useHierarchySearch.js +0 -122
- package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts +0 -21
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +0 -162
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts +0 -7
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +0 -177
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts +0 -8
- package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js +0 -36
- package/dist/elements/Hierarchy/Tree/LoadMore/LoadMoreButton.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts +0 -12
- package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.js +0 -29
- package/dist/elements/Hierarchy/Tree/LoadMore/index.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.scss +0 -26
- package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts +0 -7
- package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeConnector.js +0 -23
- package/dist/elements/Hierarchy/Tree/TreeConnector.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts +0 -28
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.js +0 -140
- package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts +0 -5
- package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js +0 -225
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.scss +0 -110
- package/dist/elements/Hierarchy/Tree/index.d.ts +0 -5
- package/dist/elements/Hierarchy/Tree/index.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/index.js +0 -270
- package/dist/elements/Hierarchy/Tree/index.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/index.scss +0 -60
- package/dist/elements/Hierarchy/Tree/types.d.ts +0 -76
- package/dist/elements/Hierarchy/Tree/types.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/types.js +0 -2
- package/dist/elements/Hierarchy/Tree/types.js.map +0 -1
- package/dist/elements/Hierarchy/Tree/useChildren.d.ts +0 -32
- package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Tree/useChildren.js +0 -229
- package/dist/elements/Hierarchy/Tree/useChildren.js.map +0 -1
- package/dist/elements/LoadMoreRow/index.d.ts +0 -15
- package/dist/elements/LoadMoreRow/index.d.ts.map +0 -1
- package/dist/elements/LoadMoreRow/index.js +0 -75
- package/dist/elements/LoadMoreRow/index.js.map +0 -1
- package/dist/elements/LoadMoreRow/index.scss +0 -42
- package/dist/elements/Spinner/index.d.ts +0 -16
- package/dist/elements/Spinner/index.d.ts.map +0 -1
- package/dist/elements/Spinner/index.js +0 -49
- package/dist/elements/Spinner/index.js.map +0 -1
- package/dist/elements/Spinner/index.scss +0 -39
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts +0 -6
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +0 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +0 -187
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +0 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.scss +0 -29
- package/dist/fields/Null/index.d.ts +0 -11
- package/dist/fields/Null/index.d.ts.map +0 -1
- package/dist/fields/Null/index.js +0 -13
- package/dist/fields/Null/index.js.map +0 -1
- package/dist/icons/Filter/index.d.ts +0 -4
- package/dist/icons/Filter/index.d.ts.map +0 -1
- package/dist/icons/Filter/index.js +0 -15
- package/dist/icons/Filter/index.js.map +0 -1
- package/dist/icons/Filter/index.scss +0 -13
- package/dist/icons/TableView/index.d.ts +0 -3
- package/dist/icons/TableView/index.d.ts.map +0 -1
- package/dist/icons/TableView/index.js +0 -16
- package/dist/icons/TableView/index.js.map +0 -1
- package/dist/icons/Tag/index.d.ts +0 -8
- package/dist/icons/Tag/index.d.ts.map +0 -1
- package/dist/icons/Tag/index.js +0 -22
- package/dist/icons/Tag/index.js.map +0 -1
- package/dist/icons/Tag/index.scss +0 -14
- package/dist/providers/DocumentSelection/index.d.ts +0 -8
- package/dist/providers/DocumentSelection/index.d.ts.map +0 -1
- package/dist/providers/DocumentSelection/index.js +0 -239
- package/dist/providers/DocumentSelection/index.js.map +0 -1
- package/dist/providers/DocumentSelection/types.d.ts +0 -122
- package/dist/providers/DocumentSelection/types.d.ts.map +0 -1
- package/dist/providers/DocumentSelection/types.js +0 -5
- package/dist/providers/DocumentSelection/types.js.map +0 -1
- package/dist/providers/Hierarchy/index.d.ts +0 -5
- package/dist/providers/Hierarchy/index.d.ts.map +0 -1
- package/dist/providers/Hierarchy/index.js +0 -350
- package/dist/providers/Hierarchy/index.js.map +0 -1
- package/dist/providers/Hierarchy/types.d.ts +0 -106
- package/dist/providers/Hierarchy/types.d.ts.map +0 -1
- package/dist/providers/Hierarchy/types.js +0 -2
- package/dist/providers/Hierarchy/types.js.map +0 -1
- package/dist/providers/SidebarTabs/index.d.ts +0 -19
- package/dist/providers/SidebarTabs/index.d.ts.map +0 -1
- package/dist/providers/SidebarTabs/index.js +0 -24
- package/dist/providers/SidebarTabs/index.js.map +0 -1
- package/dist/utilities/isSuperset.d.ts +0 -6
- package/dist/utilities/isSuperset.d.ts.map +0 -1
- package/dist/utilities/isSuperset.js +0 -10
- package/dist/utilities/isSuperset.js.map +0 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts +0 -10
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js +0 -194
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +0 -21
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.js +0 -67
- package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.scss +0 -9
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +0 -104
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/DateCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js +0 -53
- package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts +0 -4
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js +0 -128
- package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts +0 -99
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +0 -118
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.scss +0 -214
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts +0 -27
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/index.js +0 -388
- package/dist/views/HierarchyList/HierarchyTable/index.js.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/index.scss +0 -148
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts +0 -20
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +0 -1
- package/dist/views/HierarchyList/HierarchyTable/types.js +0 -2
- package/dist/views/HierarchyList/HierarchyTable/types.js.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.d.ts +0 -15
- package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.js +0 -37
- package/dist/views/HierarchyList/TypeFilter/index.js.map +0 -1
- package/dist/views/HierarchyList/TypeFilter/index.scss +0 -32
- package/dist/views/HierarchyList/index.d.ts +0 -5
- package/dist/views/HierarchyList/index.d.ts.map +0 -1
- package/dist/views/HierarchyList/index.js +0 -305
- package/dist/views/HierarchyList/index.js.map +0 -1
- package/dist/views/HierarchyList/index.scss +0 -72
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
@import '../../scss/styles.scss';
|
|
2
|
+
|
|
3
|
+
@layer payload-default {
|
|
4
|
+
.collection-folder-list {
|
|
5
|
+
width: 100%;
|
|
6
|
+
|
|
7
|
+
&__step-nav-icon-label,
|
|
8
|
+
&__step-nav-icon-label .btn__label {
|
|
9
|
+
margin: 0;
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: calc(var(--base) * 0.25);
|
|
13
|
+
|
|
14
|
+
.icon {
|
|
15
|
+
height: 18px;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
&__step-nav-droppable.droppable-button {
|
|
20
|
+
&--hover {
|
|
21
|
+
opacity: 0.3;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&__wrap {
|
|
26
|
+
padding-bottom: var(--spacing-view-bottom);
|
|
27
|
+
|
|
28
|
+
& > *:not(:last-child) {
|
|
29
|
+
margin-bottom: var(--base);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.cell-with-icon {
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
gap: calc(var(--base) * 0.5);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.list-header {
|
|
40
|
+
a {
|
|
41
|
+
text-decoration: none;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&__sub-header {
|
|
46
|
+
flex-basis: 100%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.table {
|
|
50
|
+
table {
|
|
51
|
+
width: 100%;
|
|
52
|
+
overflow: auto;
|
|
53
|
+
|
|
54
|
+
[class^='cell'] > p,
|
|
55
|
+
[class^='cell'] > span,
|
|
56
|
+
[class^='cell'] > a {
|
|
57
|
+
line-clamp: 4;
|
|
58
|
+
-webkit-box-orient: vertical;
|
|
59
|
+
-webkit-line-clamp: 4;
|
|
60
|
+
overflow: hidden;
|
|
61
|
+
display: -webkit-box;
|
|
62
|
+
max-width: 100vw;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&__no-results {
|
|
68
|
+
display: flex;
|
|
69
|
+
flex-direction: column;
|
|
70
|
+
align-items: flex-start;
|
|
71
|
+
gap: var(--base);
|
|
72
|
+
|
|
73
|
+
& > * {
|
|
74
|
+
margin: 0;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&__page-controls {
|
|
79
|
+
width: 100%;
|
|
80
|
+
display: flex;
|
|
81
|
+
align-items: center;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.paginator {
|
|
85
|
+
margin-bottom: 0;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&__page-info {
|
|
89
|
+
[dir='ltr'] & {
|
|
90
|
+
margin-right: base(1);
|
|
91
|
+
margin-left: auto;
|
|
92
|
+
}
|
|
93
|
+
[dir='rtl'] & {
|
|
94
|
+
margin-left: base(1);
|
|
95
|
+
margin-right: auto;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
&__shimmer {
|
|
100
|
+
margin-top: base(1.75);
|
|
101
|
+
width: 100%;
|
|
102
|
+
> div {
|
|
103
|
+
margin-top: 8px;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@include mid-break {
|
|
108
|
+
margin-top: base(0.25);
|
|
109
|
+
|
|
110
|
+
&__wrap {
|
|
111
|
+
padding-top: 0;
|
|
112
|
+
padding-bottom: 0;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
&__header {
|
|
116
|
+
gap: base(0.5);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
&__sub-header {
|
|
120
|
+
margin-top: 0;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
&__search-input {
|
|
124
|
+
margin: 0;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// on mobile, extend the table all the way to the viewport edges
|
|
128
|
+
// this is to visually indicate overflowing content
|
|
129
|
+
.table {
|
|
130
|
+
display: flex;
|
|
131
|
+
width: calc(100% + calc(var(--gutter-h) * 2));
|
|
132
|
+
max-width: unset;
|
|
133
|
+
left: calc(var(--gutter-h) * -1);
|
|
134
|
+
position: relative;
|
|
135
|
+
padding-left: var(--gutter-h);
|
|
136
|
+
|
|
137
|
+
&::after {
|
|
138
|
+
content: '';
|
|
139
|
+
height: 1px;
|
|
140
|
+
padding-right: var(--gutter-h);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
&__page-controls {
|
|
145
|
+
flex-wrap: wrap;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
&__page-info {
|
|
149
|
+
margin-left: 0;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.paginator {
|
|
153
|
+
width: 100%;
|
|
154
|
+
margin-bottom: $baseline;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@include small-break {
|
|
159
|
+
margin-bottom: base(2.4);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -5,5 +5,5 @@ export type OnSaveContext = {
|
|
|
5
5
|
getDocPermissions?: boolean;
|
|
6
6
|
incrementVersionCount?: boolean;
|
|
7
7
|
};
|
|
8
|
-
export declare function DefaultEditView({ BeforeDocumentControls,
|
|
8
|
+
export declare function DefaultEditView({ BeforeDocumentControls, Description, EditMenuItems, LivePreview: CustomLivePreview, PreviewButton, PublishButton, SaveButton, SaveDraftButton, Status, UnpublishButton, Upload: CustomUpload, UploadControls, }: DocumentViewClientProps): React.JSX.Element;
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAIlE,OAAO,KAAsE,MAAM,OAAO,CAAA;AAqC1F,OAAO,cAAc,CAAA;AAKrB,MAAM,MAAM,aAAa,GAAG;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAKD,wBAAgB,eAAe,CAAC,EAC9B,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAIlE,OAAO,KAAsE,MAAM,OAAO,CAAA;AAqC1F,OAAO,cAAc,CAAA;AAKrB,MAAM,MAAM,aAAa,GAAG;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAKD,wBAAgB,eAAe,CAAC,EAC9B,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,MAAM,EACN,eAAe,EACf,MAAM,EAAE,YAAY,EACpB,cAAc,GACf,EAAE,uBAAuB,qBA0vBzB"}
|
package/dist/views/Edit/index.js
CHANGED
|
@@ -43,7 +43,6 @@ const PENDING_SUCCESS_TOAST_KEY = 'payload-pending-success-toast';
|
|
|
43
43
|
// This is solely to support custom edit views which get server-rendered
|
|
44
44
|
export function DefaultEditView({
|
|
45
45
|
BeforeDocumentControls,
|
|
46
|
-
BeforeDocumentMeta,
|
|
47
46
|
Description,
|
|
48
47
|
EditMenuItems,
|
|
49
48
|
LivePreview: CustomLivePreview,
|
|
@@ -179,6 +178,7 @@ export function DefaultEditView({
|
|
|
179
178
|
const hasCheckedForStaleDataRef = useRef(false);
|
|
180
179
|
const originalUpdatedAtRef = useRef(data?.updatedAt);
|
|
181
180
|
const saveCounterRef = useRef(0);
|
|
181
|
+
const isSavingRef = useRef(false);
|
|
182
182
|
const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds;
|
|
183
183
|
const isLockExpired = Date.now() > lockExpiryTime;
|
|
184
184
|
const preventLeaveWithoutSaving = !isReadOnlyForIncomingUser && (typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled);
|
|
@@ -259,6 +259,7 @@ export function DefaultEditView({
|
|
|
259
259
|
// This allows detecting if another user modifies the document after this save
|
|
260
260
|
originalUpdatedAtRef.current = updatedAt;
|
|
261
261
|
hasCheckedForStaleDataRef.current = false;
|
|
262
|
+
isSavingRef.current = false;
|
|
262
263
|
if (context?.incrementVersionCount !== false) {
|
|
263
264
|
incrementVersionCount();
|
|
264
265
|
}
|
|
@@ -356,9 +357,10 @@ export function DefaultEditView({
|
|
|
356
357
|
submitted
|
|
357
358
|
}) => {
|
|
358
359
|
const controller_0 = handleAbortRef(abortOnChangeRef);
|
|
359
|
-
// Capture save
|
|
360
|
+
// Capture save state before the async form-state request so we can detect
|
|
360
361
|
// if a save was triggered while this request was in-flight
|
|
361
362
|
const saveCounterAtStart = saveCounterRef.current;
|
|
363
|
+
const isSavingAtStart = isSavingRef.current;
|
|
362
364
|
// Sync originalUpdatedAt with current data if it's NEWER (e.g., after router.refresh())
|
|
363
365
|
if (data?.updatedAt && data.updatedAt > originalUpdatedAtRef.current) {
|
|
364
366
|
originalUpdatedAtRef.current = data.updatedAt;
|
|
@@ -409,9 +411,9 @@ export function DefaultEditView({
|
|
|
409
411
|
handleDocumentLocking(lockedState_0);
|
|
410
412
|
}
|
|
411
413
|
// Handle stale data detection.
|
|
412
|
-
// Skip if a save was
|
|
413
|
-
//
|
|
414
|
-
if (staleDataState?.isStale && saveCounterRef.current === saveCounterAtStart) {
|
|
414
|
+
// Skip if a save was in-flight when this request started, or if the save counter
|
|
415
|
+
// has advanced — either way the newer updatedAt is from our OWN save.
|
|
416
|
+
if (staleDataState?.isStale && !isSavingAtStart && saveCounterRef.current === saveCounterAtStart) {
|
|
415
417
|
setShowStaleDataModal(true);
|
|
416
418
|
}
|
|
417
419
|
abortOnChangeRef.current = null;
|
|
@@ -442,7 +444,7 @@ export function DefaultEditView({
|
|
|
442
444
|
}
|
|
443
445
|
}, [isInitializing]);
|
|
444
446
|
const shouldShowDocumentLockedModal = documentIsLocked && currentEditor && (typeof currentEditor === 'object' ? currentEditor.id !== user?.id : currentEditor !== user?.id) && !isReadOnlyForIncomingUser && !showTakeOverModal && !documentLockState.current?.hasShownLockedModal && !isLockExpired;
|
|
445
|
-
const isFolderCollection =
|
|
447
|
+
const isFolderCollection = config.folders && collectionSlug === config.folders?.slug;
|
|
446
448
|
return /*#__PURE__*/_jsx("main", {
|
|
447
449
|
className: [baseClass, (id || globalSlug) && `${baseClass}--is-editing`, globalSlug && `global-edit--${globalSlug}`, collectionSlug && `collection-edit--${collectionSlug}`, isLivePreviewing && previewWindowType === 'iframe' && `${baseClass}--is-live-previewing`].filter(Boolean).join(' '),
|
|
448
450
|
children: /*#__PURE__*/_jsx(OperationProvider, {
|
|
@@ -460,6 +462,7 @@ export function DefaultEditView({
|
|
|
460
462
|
onChange: [onChange],
|
|
461
463
|
onSubmit: () => {
|
|
462
464
|
saveCounterRef.current += 1;
|
|
465
|
+
isSavingRef.current = true;
|
|
463
466
|
},
|
|
464
467
|
onSuccess: onSave,
|
|
465
468
|
children: [isInDrawer && /*#__PURE__*/_jsx(DocumentDrawerHeader, {
|
|
@@ -524,7 +527,6 @@ export function DefaultEditView({
|
|
|
524
527
|
}), /*#__PURE__*/_jsx(DocumentControls, {
|
|
525
528
|
apiURL: apiURL,
|
|
526
529
|
BeforeDocumentControls: BeforeDocumentControls,
|
|
527
|
-
BeforeDocumentMeta: BeforeDocumentMeta,
|
|
528
530
|
customComponents: {
|
|
529
531
|
PreviewButton,
|
|
530
532
|
PublishButton,
|
|
@@ -534,7 +536,7 @@ export function DefaultEditView({
|
|
|
534
536
|
UnpublishButton
|
|
535
537
|
},
|
|
536
538
|
data: data,
|
|
537
|
-
disableActions: disableActions || isTrashed,
|
|
539
|
+
disableActions: disableActions || isFolderCollection || isTrashed,
|
|
538
540
|
disableCreate: disableCreate,
|
|
539
541
|
EditMenuItems: EditMenuItems,
|
|
540
542
|
hasPublishPermission: hasPublishPermission,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","hasAutosaveEnabled","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","toast","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentStaleData","DocumentTakeOver","LeaveWithoutSaving","LivePreviewWindow","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useLivePreviewContext","usePreviewURL","OperationProvider","useRouteCache","useRouteTransition","useServerFunctions","UploadControlsProvider","useUploadEdits","abortAndIgnore","handleAbortRef","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","PENDING_SUCCESS_TOAST_KEY","DefaultEditView","BeforeDocumentControls","BeforeDocumentMeta","Description","EditMenuItems","LivePreview","CustomLivePreview","PreviewButton","PublishButton","SaveButton","SaveDraftButton","Status","UnpublishButton","CustomUpload","UploadControls","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","data","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","documentLockState","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","isLocked","isTrashed","lastUpdateTime","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","setCurrentEditor","setData","setDocumentIsLocked","setLastUpdateTime","unlockDocument","updateDocumentEditor","clearDoc","drawerSlug","onDelete","onDuplicate","onRestore","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","serverURL","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","startRouteTransition","clearRouteCache","isLivePreviewEnabled","isLivePreviewing","previewWindowType","setURL","setLivePreviewURL","typeofLivePreviewURL","url","livePreviewURL","isPreviewEnabled","setPreviewURL","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","showStaleDataModal","setShowStaleDataModal","editSessionStartTime","setEditSessionStartTime","Date","now","hasCheckedForStaleDataRef","originalUpdatedAtRef","updatedAt","saveCounterRef","lockExpiryTime","isLockExpired","preventLeaveWithoutSaving","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","nextHrefRef","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","hasShownLockedModal","lastEditedAt","getTime","handleStaleDataReload","refresh","handlePrevent","nextHref","handleLeaveConfirm","lockUser","isLockOwnedByCurrentUser","nextPath","URL","pathname","isInternalView","some","path","includes","err","console","error","json","ctx","context","formState","controller","document","doc","result","toISOString","message","window","sessionStorage","setItem","redirectRoute","push","docPreferences","previewURL","state","renderAllFields","returnLivePreviewURL","returnLockStatus","returnPreviewURL","schemaPath","join","signal","skipValidation","file","onChange","prevFormState","submitted","saveCounterAtStart","currentTime","timeSinceLastUpdate","updateLastEdited","checkForStaleData","originalUpdatedAt","staleDataState","isStale","abortOnChange","abortOnSave","pendingMessage","getItem","removeItem","success","shouldShowDocumentLockedModal","isFolderCollection","hierarchy","allowHasMany","_jsx","className","filter","_jsxs","disabled","disableSuccessStatus","disableValidationOnSubmit","isDocumentForm","method","onSubmit","onSuccess","AfterHeader","showDocumentID","isActive","onReadOnly","onTakeOver","documentLockStateRef","isWithinDoc","onReload","onConfirm","onPrevent","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields","forceSidebarWrap","_Fragment"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientUser, DocumentViewClientProps } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL, hasAutosaveEnabled } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { FormOnSuccess } from '../../forms/Form/types.js'\nimport type { LockedState } from '../../utilities/buildFormState.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentStaleData } from '../../elements/DocumentStaleData/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { LivePreviewWindow } from '../../elements/LivePreview/Window/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext, usePreviewURL } from '../../providers/LivePreview/context.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\nconst PENDING_SUCCESS_TOAST_KEY = 'payload-pending-success-toast'\n\nexport type OnSaveContext = {\n getDocPermissions?: boolean\n incrementVersionCount?: boolean\n}\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport function DefaultEditView({\n BeforeDocumentControls,\n BeforeDocumentMeta,\n Description,\n EditMenuItems,\n LivePreview: CustomLivePreview,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Status,\n UnpublishButton,\n Upload: CustomUpload,\n UploadControls,\n}: DocumentViewClientProps) {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n data,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n documentLockState,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n isLocked,\n isTrashed,\n lastUpdateTime,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n setCurrentEditor,\n setData,\n setDocumentIsLocked,\n setLastUpdateTime,\n unlockDocument,\n updateDocumentEditor,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onRestore,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { clearRouteCache } = useRouteCache()\n const {\n isLivePreviewEnabled,\n isLivePreviewing,\n previewWindowType,\n setURL: setLivePreviewURL,\n typeofLivePreviewURL,\n url: livePreviewURL,\n } = useLivePreviewContext()\n const { isPreviewEnabled, setPreviewURL } = usePreviewURL()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const autosaveEnabled = hasAutosaveEnabled(docConfig)\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n const [showStaleDataModal, setShowStaleDataModal] = useState(false)\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const hasCheckedForStaleDataRef = useRef(false)\n const originalUpdatedAtRef = useRef(data?.updatedAt)\n const saveCounterRef = useRef(0)\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n const isLockExpired = Date.now() > lockExpiryTime\n\n const preventLeaveWithoutSaving =\n !isReadOnlyForIncomingUser &&\n (typeof disableLeaveWithoutSaving !== 'undefined'\n ? !disableLeaveWithoutSaving\n : !autosaveEnabled)\n\n const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug])\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const nextHrefRef = React.useRef<null | string>(null)\n\n const handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\n const previousOwnerID =\n typeof documentLockState.current?.user === 'object'\n ? documentLockState.current?.user?.id\n : documentLockState.current?.user\n\n if (lockedState && lockedState.user) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockState.current || lockedUserID !== previousOwnerID) {\n if (previousOwnerID === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockState.current.hasShownLockedModal = true\n }\n\n documentLockState.current = {\n hasShownLockedModal: documentLockState.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n setCurrentEditor(lockedState.user as ClientUser)\n }\n\n // Update lastUpdateTime when lock state changes\n if (lockedState.lastEditedAt) {\n setLastUpdateTime(new Date(lockedState.lastEditedAt).getTime())\n }\n }\n },\n [documentLockState, setCurrentEditor, setDocumentIsLocked, setLastUpdateTime, user?.id],\n )\n\n const handleStaleDataReload = useCallback(() => {\n // Reset modal state so it can appear again if needed\n setShowStaleDataModal(false)\n\n // Refresh to get the latest data\n router.refresh()\n }, [router])\n\n const handlePrevent = useCallback((nextHref: null | string) => {\n nextHrefRef.current = nextHref\n }, [])\n\n const handleLeaveConfirm = useCallback(async () => {\n const lockUser = documentLockState.current?.user\n\n const isLockOwnedByCurrentUser =\n typeof lockUser === 'object' ? lockUser?.id === user?.id : lockUser === user?.id\n\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Check where user is trying to go\n const nextPath = nextHrefRef.current ? new URL(nextHrefRef.current).pathname : ''\n const isInternalView = ['/preview', '/api', '/versions'].some((path) =>\n nextPath.includes(path),\n )\n\n // Remove the lock if the user is navigating away from the document view they have locked\n if (isLockOwnedByCurrentUser && !isInternalView) {\n try {\n await unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n } catch (err) {\n console.error('Failed to unlock before leave', err) // eslint-disable-line no-console\n }\n }\n }\n }, [\n collectionSlug,\n documentIsLocked,\n documentLockState,\n globalSlug,\n id,\n isLockingEnabled,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n user?.id,\n ])\n\n const onSave: FormOnSuccess<any, OnSaveContext> = useCallback(\n async (json, ctx) => {\n const { context, formState } = ctx || {}\n\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n const updatedAt = document?.updatedAt || new Date().toISOString()\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n setLastUpdateTime(new Date(updatedAt).getTime())\n\n // Update stale data check refs after successful save\n // This allows detecting if another user modifies the document after this save\n originalUpdatedAtRef.current = updatedAt\n hasCheckedForStaleDataRef.current = false\n\n if (context?.incrementVersionCount !== false) {\n incrementVersionCount()\n }\n\n if (typeof setData === 'function') {\n void setData(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...(json as Record<string, unknown>),\n context,\n operation,\n // @ts-expect-error todo: this is not right, should be under `doc`?\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2 && redirectAfterCreate !== false) {\n // Store success message to show after redirect\n if (json.message && typeof window !== 'undefined') {\n window.sessionStorage.setItem(PENDING_SUCCESS_TOAST_KEY, json.message)\n }\n\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n\n if (context?.getDocPermissions !== false) {\n await getDocPermissions(json)\n }\n\n if (id || globalSlug) {\n const docPreferences = await getDocPreferences()\n\n const { livePreviewURL, previewURL, state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n formState,\n globalSlug,\n operation,\n renderAllFields: false,\n returnLivePreviewURL: isLivePreviewEnabled && typeofLivePreviewURL === 'function',\n returnLockStatus: false,\n returnPreviewURL: isPreviewEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: true,\n })\n\n // For upload collections, clear the file field from the returned state\n // to prevent the File object from persisting in form state after save\n if (upload && state) {\n delete state.file\n }\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (isLivePreviewEnabled && typeofLivePreviewURL === 'function') {\n setLivePreviewURL(livePreviewURL)\n }\n\n if (isPreviewEnabled) {\n setPreviewURL(previewURL)\n }\n\n reportUpdate({\n id,\n doc: document,\n drawerSlug,\n entitySlug,\n operation: 'update',\n updatedAt,\n })\n\n abortOnSaveRef.current = null\n\n return state\n } else {\n reportUpdate({\n id,\n doc: document,\n drawerSlug,\n entitySlug,\n operation: 'create',\n updatedAt,\n })\n }\n },\n [\n user,\n collectionSlug,\n userSlug,\n id,\n setLastUpdateTime,\n setData,\n onSaveFromContext,\n isEditing,\n depth,\n redirectAfterCreate,\n globalSlug,\n refreshCookieAsync,\n incrementVersionCount,\n adminRoute,\n locale,\n startRouteTransition,\n router,\n resetUploadEdits,\n getDocPermissions,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n isLivePreviewEnabled,\n typeofLivePreviewURL,\n isPreviewEnabled,\n schemaPathSegments,\n upload,\n isLockingEnabled,\n reportUpdate,\n drawerSlug,\n entitySlug,\n setDocumentIsLocked,\n setLivePreviewURL,\n setPreviewURL,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n // Capture save counter before the async form-state request so we can detect\n // if a save was triggered while this request was in-flight\n const saveCounterAtStart = saveCounterRef.current\n\n // Sync originalUpdatedAt with current data if it's NEWER (e.g., after router.refresh())\n if (data?.updatedAt && data.updatedAt > originalUpdatedAtRef.current) {\n originalUpdatedAtRef.current = data.updatedAt\n // Reset check flag so we can detect new stale data\n hasCheckedForStaleDataRef.current = false\n }\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n // Check for stale data on first edit only\n // Skip this check entirely for autosave-enabled collections/globals to prevent\n // false positives from the user's own autosaves\n const checkForStaleData =\n !hasCheckedForStaleDataRef.current &&\n originalUpdatedAtRef.current &&\n operation === 'update' &&\n !autosaveEnabled\n\n if (checkForStaleData) {\n hasCheckedForStaleDataRef.current = true\n }\n\n const docPreferences = await getDocPreferences()\n\n const result = await getFormState({\n id,\n checkForStaleData,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n originalUpdatedAt: checkForStaleData ? originalUpdatedAtRef.current : undefined,\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: !submitted,\n updateLastEdited,\n })\n\n if (!result) {\n return\n }\n\n const { lockedState, staleDataState, state } = result\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n // Handle stale data detection.\n // Skip if a save was triggered after this request was initiated — the newer\n // updatedAt the server sees is from our OWN save, not an external modification.\n if (staleDataState?.isStale && saveCounterRef.current === saveCounterAtStart) {\n setShowStaleDataModal(true)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n data?.updatedAt,\n editSessionStartTime,\n isLockingEnabled,\n getDocPreferences,\n getFormState,\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n operation,\n schemaPathSegments,\n handleDocumentLocking,\n autosaveEnabled,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n setShowTakeOverModal(false)\n }\n }, [])\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\n }\n }, [])\n\n // Show pending success toast after redirect from create\n useEffect(() => {\n if (!isInitializing && typeof window !== 'undefined') {\n const pendingMessage = window.sessionStorage.getItem(PENDING_SUCCESS_TOAST_KEY)\n\n if (pendingMessage) {\n window.sessionStorage.removeItem(PENDING_SUCCESS_TOAST_KEY)\n toast.success(pendingMessage)\n }\n }\n }, [isInitializing])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n !documentLockState.current?.hasShownLockedModal &&\n !isLockExpired\n\n const isFolderCollection = Boolean(\n collectionConfig?.hierarchy &&\n typeof collectionConfig.hierarchy === 'object' &&\n collectionConfig.hierarchy.allowHasMany === false,\n )\n\n return (\n <main\n className={[\n baseClass,\n (id || globalSlug) && `${baseClass}--is-editing`,\n globalSlug && `global-edit--${globalSlug}`,\n collectionSlug && `collection-edit--${collectionSlug}`,\n isLivePreviewing && previewWindowType === 'iframe' && `${baseClass}--is-live-previewing`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission || isTrashed}\n disableSuccessStatus={!isEditing && depth < 2 && redirectAfterCreate !== false}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isDocumentForm={true}\n isInitializing={isInitializing}\n key={`${isLocked}`}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSubmit={() => {\n saveCounterRef.current += 1\n }}\n onSuccess={onSave}\n >\n {isInDrawer && (\n <DocumentDrawerHeader\n AfterHeader={Description}\n drawerSlug={drawerSlug}\n showDocumentID={!isFolderCollection}\n />\n )}\n {isLockingEnabled && shouldShowDocumentLockedModal && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router, serverURL })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver({\n id,\n clearRouteCache,\n collectionSlug,\n documentLockStateRef: documentLockState,\n globalSlug,\n isLockingEnabled,\n isWithinDoc: false,\n setCurrentEditor,\n updateDocumentEditor,\n user,\n })\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router, serverURL })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {showStaleDataModal && (\n <DocumentStaleData isActive={showStaleDataModal} onReload={handleStaleDataReload} />\n )}\n {preventLeaveWithoutSaving && (\n <LeaveWithoutSaving onConfirm={handleLeaveConfirm} onPrevent={handlePrevent} />\n )}\n {!isInDrawer && (\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n isTrashed={isTrashed}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n BeforeDocumentControls={BeforeDocumentControls}\n BeforeDocumentMeta={BeforeDocumentMeta}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Status,\n UnpublishButton,\n }}\n data={data}\n disableActions={disableActions || isTrashed}\n disableCreate={disableCreate}\n EditMenuItems={EditMenuItems}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n isInDrawer={isInDrawer}\n isTrashed={isTrashed}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onRestore={onRestore}\n onSave={onSave}\n onTakeOver={() =>\n handleTakeOver({\n id,\n clearRouteCache,\n collectionSlug,\n documentLockStateRef: documentLockState,\n globalSlug,\n isLockingEnabled,\n isWithinDoc: true,\n setCurrentEditor,\n setIsReadOnlyForIncomingUser,\n updateDocumentEditor,\n user,\n })\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n redirectAfterRestore={redirectAfterRestore}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <div\n className={[\n `${baseClass}__main-wrapper`,\n previewWindowType === 'popup' && `${baseClass}--detached`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n // eslint-disable-next-line react-compiler/react-compiler\n useAPIKey={auth.useAPIKey}\n username={data?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <UploadControlsProvider>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n UploadControls={UploadControls}\n />\n )}\n </UploadControlsProvider>\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n forceSidebarWrap={isLivePreviewing}\n isTrashed={isTrashed}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission || isTrashed}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </div>\n {isLivePreviewEnabled && !isInDrawer && livePreviewURL && (\n <>\n {CustomLivePreview || (\n <LivePreviewWindow collectionSlug={collectionSlug} globalSlug={globalSlug} />\n )}\n </>\n )}\n </div>\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","hasAutosaveEnabled","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","toast","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentStaleData","DocumentTakeOver","LeaveWithoutSaving","LivePreviewWindow","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","useLivePreviewContext","usePreviewURL","OperationProvider","useRouteCache","useRouteTransition","useServerFunctions","UploadControlsProvider","useUploadEdits","abortAndIgnore","handleAbortRef","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","PENDING_SUCCESS_TOAST_KEY","DefaultEditView","BeforeDocumentControls","Description","EditMenuItems","LivePreview","CustomLivePreview","PreviewButton","PublishButton","SaveButton","SaveDraftButton","Status","UnpublishButton","CustomUpload","UploadControls","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","data","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","documentLockState","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","isLocked","isTrashed","lastUpdateTime","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","setCurrentEditor","setData","setDocumentIsLocked","setLastUpdateTime","unlockDocument","updateDocumentEditor","clearDoc","drawerSlug","onDelete","onDuplicate","onRestore","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","serverURL","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","startRouteTransition","clearRouteCache","isLivePreviewEnabled","isLivePreviewing","previewWindowType","setURL","setLivePreviewURL","typeofLivePreviewURL","url","livePreviewURL","isPreviewEnabled","setPreviewURL","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","showStaleDataModal","setShowStaleDataModal","editSessionStartTime","setEditSessionStartTime","Date","now","hasCheckedForStaleDataRef","originalUpdatedAtRef","updatedAt","saveCounterRef","isSavingRef","lockExpiryTime","isLockExpired","preventLeaveWithoutSaving","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","nextHrefRef","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","hasShownLockedModal","lastEditedAt","getTime","handleStaleDataReload","refresh","handlePrevent","nextHref","handleLeaveConfirm","lockUser","isLockOwnedByCurrentUser","nextPath","URL","pathname","isInternalView","some","path","includes","err","console","error","json","ctx","context","formState","controller","document","doc","result","toISOString","message","window","sessionStorage","setItem","redirectRoute","push","docPreferences","previewURL","state","renderAllFields","returnLivePreviewURL","returnLockStatus","returnPreviewURL","schemaPath","join","signal","skipValidation","file","onChange","prevFormState","submitted","saveCounterAtStart","isSavingAtStart","currentTime","timeSinceLastUpdate","updateLastEdited","checkForStaleData","originalUpdatedAt","staleDataState","isStale","abortOnChange","abortOnSave","pendingMessage","getItem","removeItem","success","shouldShowDocumentLockedModal","isFolderCollection","folders","_jsx","className","filter","_jsxs","disabled","disableSuccessStatus","disableValidationOnSubmit","isDocumentForm","method","onSubmit","onSuccess","AfterHeader","showDocumentID","isActive","onReadOnly","onTakeOver","documentLockStateRef","isWithinDoc","onReload","onConfirm","onPrevent","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields","forceSidebarWrap","_Fragment"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientUser, DocumentViewClientProps } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL, hasAutosaveEnabled } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { FormOnSuccess } from '../../forms/Form/types.js'\nimport type { LockedState } from '../../utilities/buildFormState.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentStaleData } from '../../elements/DocumentStaleData/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { LivePreviewWindow } from '../../elements/LivePreview/Window/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext, usePreviewURL } from '../../providers/LivePreview/context.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\nconst PENDING_SUCCESS_TOAST_KEY = 'payload-pending-success-toast'\n\nexport type OnSaveContext = {\n getDocPermissions?: boolean\n incrementVersionCount?: boolean\n}\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport function DefaultEditView({\n BeforeDocumentControls,\n Description,\n EditMenuItems,\n LivePreview: CustomLivePreview,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Status,\n UnpublishButton,\n Upload: CustomUpload,\n UploadControls,\n}: DocumentViewClientProps) {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n data,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n documentLockState,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n isLocked,\n isTrashed,\n lastUpdateTime,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n setCurrentEditor,\n setData,\n setDocumentIsLocked,\n setLastUpdateTime,\n unlockDocument,\n updateDocumentEditor,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onRestore,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { clearRouteCache } = useRouteCache()\n const {\n isLivePreviewEnabled,\n isLivePreviewing,\n previewWindowType,\n setURL: setLivePreviewURL,\n typeofLivePreviewURL,\n url: livePreviewURL,\n } = useLivePreviewContext()\n const { isPreviewEnabled, setPreviewURL } = usePreviewURL()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const autosaveEnabled = hasAutosaveEnabled(docConfig)\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n const [showStaleDataModal, setShowStaleDataModal] = useState(false)\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const hasCheckedForStaleDataRef = useRef(false)\n const originalUpdatedAtRef = useRef(data?.updatedAt)\n const saveCounterRef = useRef(0)\n const isSavingRef = useRef(false)\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n const isLockExpired = Date.now() > lockExpiryTime\n\n const preventLeaveWithoutSaving =\n !isReadOnlyForIncomingUser &&\n (typeof disableLeaveWithoutSaving !== 'undefined'\n ? !disableLeaveWithoutSaving\n : !autosaveEnabled)\n\n const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug])\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const nextHrefRef = React.useRef<null | string>(null)\n\n const handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\n const previousOwnerID =\n typeof documentLockState.current?.user === 'object'\n ? documentLockState.current?.user?.id\n : documentLockState.current?.user\n\n if (lockedState && lockedState.user) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockState.current || lockedUserID !== previousOwnerID) {\n if (previousOwnerID === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockState.current.hasShownLockedModal = true\n }\n\n documentLockState.current = {\n hasShownLockedModal: documentLockState.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n setCurrentEditor(lockedState.user as ClientUser)\n }\n\n // Update lastUpdateTime when lock state changes\n if (lockedState.lastEditedAt) {\n setLastUpdateTime(new Date(lockedState.lastEditedAt).getTime())\n }\n }\n },\n [documentLockState, setCurrentEditor, setDocumentIsLocked, setLastUpdateTime, user?.id],\n )\n\n const handleStaleDataReload = useCallback(() => {\n // Reset modal state so it can appear again if needed\n setShowStaleDataModal(false)\n\n // Refresh to get the latest data\n router.refresh()\n }, [router])\n\n const handlePrevent = useCallback((nextHref: null | string) => {\n nextHrefRef.current = nextHref\n }, [])\n\n const handleLeaveConfirm = useCallback(async () => {\n const lockUser = documentLockState.current?.user\n\n const isLockOwnedByCurrentUser =\n typeof lockUser === 'object' ? lockUser?.id === user?.id : lockUser === user?.id\n\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Check where user is trying to go\n const nextPath = nextHrefRef.current ? new URL(nextHrefRef.current).pathname : ''\n const isInternalView = ['/preview', '/api', '/versions'].some((path) =>\n nextPath.includes(path),\n )\n\n // Remove the lock if the user is navigating away from the document view they have locked\n if (isLockOwnedByCurrentUser && !isInternalView) {\n try {\n await unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n } catch (err) {\n console.error('Failed to unlock before leave', err) // eslint-disable-line no-console\n }\n }\n }\n }, [\n collectionSlug,\n documentIsLocked,\n documentLockState,\n globalSlug,\n id,\n isLockingEnabled,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n user?.id,\n ])\n\n const onSave: FormOnSuccess<any, OnSaveContext> = useCallback(\n async (json, ctx) => {\n const { context, formState } = ctx || {}\n\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n const updatedAt = document?.updatedAt || new Date().toISOString()\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n setLastUpdateTime(new Date(updatedAt).getTime())\n\n // Update stale data check refs after successful save\n // This allows detecting if another user modifies the document after this save\n originalUpdatedAtRef.current = updatedAt\n hasCheckedForStaleDataRef.current = false\n isSavingRef.current = false\n\n if (context?.incrementVersionCount !== false) {\n incrementVersionCount()\n }\n\n if (typeof setData === 'function') {\n void setData(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...(json as Record<string, unknown>),\n context,\n operation,\n // @ts-expect-error todo: this is not right, should be under `doc`?\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2 && redirectAfterCreate !== false) {\n // Store success message to show after redirect\n if (json.message && typeof window !== 'undefined') {\n window.sessionStorage.setItem(PENDING_SUCCESS_TOAST_KEY, json.message)\n }\n\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n\n if (context?.getDocPermissions !== false) {\n await getDocPermissions(json)\n }\n\n if (id || globalSlug) {\n const docPreferences = await getDocPreferences()\n\n const { livePreviewURL, previewURL, state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n formState,\n globalSlug,\n operation,\n renderAllFields: false,\n returnLivePreviewURL: isLivePreviewEnabled && typeofLivePreviewURL === 'function',\n returnLockStatus: false,\n returnPreviewURL: isPreviewEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: true,\n })\n\n // For upload collections, clear the file field from the returned state\n // to prevent the File object from persisting in form state after save\n if (upload && state) {\n delete state.file\n }\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n if (isLivePreviewEnabled && typeofLivePreviewURL === 'function') {\n setLivePreviewURL(livePreviewURL)\n }\n\n if (isPreviewEnabled) {\n setPreviewURL(previewURL)\n }\n\n reportUpdate({\n id,\n doc: document,\n drawerSlug,\n entitySlug,\n operation: 'update',\n updatedAt,\n })\n\n abortOnSaveRef.current = null\n\n return state\n } else {\n reportUpdate({\n id,\n doc: document,\n drawerSlug,\n entitySlug,\n operation: 'create',\n updatedAt,\n })\n }\n },\n [\n user,\n collectionSlug,\n userSlug,\n id,\n setLastUpdateTime,\n setData,\n onSaveFromContext,\n isEditing,\n depth,\n redirectAfterCreate,\n globalSlug,\n refreshCookieAsync,\n incrementVersionCount,\n adminRoute,\n locale,\n startRouteTransition,\n router,\n resetUploadEdits,\n getDocPermissions,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n isLivePreviewEnabled,\n typeofLivePreviewURL,\n isPreviewEnabled,\n schemaPathSegments,\n upload,\n isLockingEnabled,\n reportUpdate,\n drawerSlug,\n entitySlug,\n setDocumentIsLocked,\n setLivePreviewURL,\n setPreviewURL,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n // Capture save state before the async form-state request so we can detect\n // if a save was triggered while this request was in-flight\n const saveCounterAtStart = saveCounterRef.current\n const isSavingAtStart = isSavingRef.current\n\n // Sync originalUpdatedAt with current data if it's NEWER (e.g., after router.refresh())\n if (data?.updatedAt && data.updatedAt > originalUpdatedAtRef.current) {\n originalUpdatedAtRef.current = data.updatedAt\n // Reset check flag so we can detect new stale data\n hasCheckedForStaleDataRef.current = false\n }\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n // Check for stale data on first edit only\n // Skip this check entirely for autosave-enabled collections/globals to prevent\n // false positives from the user's own autosaves\n const checkForStaleData =\n !hasCheckedForStaleDataRef.current &&\n originalUpdatedAtRef.current &&\n operation === 'update' &&\n !autosaveEnabled\n\n if (checkForStaleData) {\n hasCheckedForStaleDataRef.current = true\n }\n\n const docPreferences = await getDocPreferences()\n\n const result = await getFormState({\n id,\n checkForStaleData,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n originalUpdatedAt: checkForStaleData ? originalUpdatedAtRef.current : undefined,\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: !submitted,\n updateLastEdited,\n })\n\n if (!result) {\n return\n }\n\n const { lockedState, staleDataState, state } = result\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n // Handle stale data detection.\n // Skip if a save was in-flight when this request started, or if the save counter\n // has advanced — either way the newer updatedAt is from our OWN save.\n if (\n staleDataState?.isStale &&\n !isSavingAtStart &&\n saveCounterRef.current === saveCounterAtStart\n ) {\n setShowStaleDataModal(true)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n data?.updatedAt,\n editSessionStartTime,\n isLockingEnabled,\n getDocPreferences,\n getFormState,\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n operation,\n schemaPathSegments,\n handleDocumentLocking,\n autosaveEnabled,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n setShowTakeOverModal(false)\n }\n }, [])\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\n }\n }, [])\n\n // Show pending success toast after redirect from create\n useEffect(() => {\n if (!isInitializing && typeof window !== 'undefined') {\n const pendingMessage = window.sessionStorage.getItem(PENDING_SUCCESS_TOAST_KEY)\n\n if (pendingMessage) {\n window.sessionStorage.removeItem(PENDING_SUCCESS_TOAST_KEY)\n toast.success(pendingMessage)\n }\n }\n }, [isInitializing])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n !documentLockState.current?.hasShownLockedModal &&\n !isLockExpired\n\n const isFolderCollection = config.folders && collectionSlug === config.folders?.slug\n\n return (\n <main\n className={[\n baseClass,\n (id || globalSlug) && `${baseClass}--is-editing`,\n globalSlug && `global-edit--${globalSlug}`,\n collectionSlug && `collection-edit--${collectionSlug}`,\n isLivePreviewing && previewWindowType === 'iframe' && `${baseClass}--is-live-previewing`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission || isTrashed}\n disableSuccessStatus={!isEditing && depth < 2 && redirectAfterCreate !== false}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isDocumentForm={true}\n isInitializing={isInitializing}\n key={`${isLocked}`}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSubmit={() => {\n saveCounterRef.current += 1\n isSavingRef.current = true\n }}\n onSuccess={onSave}\n >\n {isInDrawer && (\n <DocumentDrawerHeader\n AfterHeader={Description}\n drawerSlug={drawerSlug}\n showDocumentID={!isFolderCollection}\n />\n )}\n {isLockingEnabled && shouldShowDocumentLockedModal && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router, serverURL })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver({\n id,\n clearRouteCache,\n collectionSlug,\n documentLockStateRef: documentLockState,\n globalSlug,\n isLockingEnabled,\n isWithinDoc: false,\n setCurrentEditor,\n updateDocumentEditor,\n user,\n })\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router, serverURL })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {showStaleDataModal && (\n <DocumentStaleData isActive={showStaleDataModal} onReload={handleStaleDataReload} />\n )}\n {preventLeaveWithoutSaving && (\n <LeaveWithoutSaving onConfirm={handleLeaveConfirm} onPrevent={handlePrevent} />\n )}\n {!isInDrawer && (\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n isTrashed={isTrashed}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n BeforeDocumentControls={BeforeDocumentControls}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Status,\n UnpublishButton,\n }}\n data={data}\n disableActions={disableActions || isFolderCollection || isTrashed}\n disableCreate={disableCreate}\n EditMenuItems={EditMenuItems}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n isInDrawer={isInDrawer}\n isTrashed={isTrashed}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onRestore={onRestore}\n onSave={onSave}\n onTakeOver={() =>\n handleTakeOver({\n id,\n clearRouteCache,\n collectionSlug,\n documentLockStateRef: documentLockState,\n globalSlug,\n isLockingEnabled,\n isWithinDoc: true,\n setCurrentEditor,\n setIsReadOnlyForIncomingUser,\n updateDocumentEditor,\n user,\n })\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n redirectAfterRestore={redirectAfterRestore}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <div\n className={[\n `${baseClass}__main-wrapper`,\n previewWindowType === 'popup' && `${baseClass}--detached`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div\n className={[\n `${baseClass}__main`,\n previewWindowType === 'popup' && `${baseClass}__main--popup-open`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={data?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n // eslint-disable-next-line react-compiler/react-compiler\n useAPIKey={auth.useAPIKey}\n username={data?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n <UploadControlsProvider>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n UploadControls={UploadControls}\n />\n )}\n </UploadControlsProvider>\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n forceSidebarWrap={isLivePreviewing}\n isTrashed={isTrashed}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission || isTrashed}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </div>\n {isLivePreviewEnabled && !isInDrawer && livePreviewURL && (\n <>\n {CustomLivePreview || (\n <LivePreviewWindow collectionSlug={collectionSlug} globalSlug={globalSlug} />\n )}\n </>\n )}\n </div>\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAKlD,OAAO,KAA8B,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAKlD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAyBlD,OAAO,cAAc,CAAA;AAIrB,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,qBAyQzD"}
|
package/dist/views/List/index.js
CHANGED
|
@@ -21,15 +21,12 @@ import { RelationshipProvider } from '../../elements/Table/RelationshipProvider/
|
|
|
21
21
|
import { ViewDescription } from '../../elements/ViewDescription/index.js';
|
|
22
22
|
import { useControllableState } from '../../hooks/useControllableState.js';
|
|
23
23
|
import { useConfig } from '../../providers/Config/index.js';
|
|
24
|
-
import { DocumentSelectionProvider } from '../../providers/DocumentSelection/index.js';
|
|
25
24
|
import { useListQuery } from '../../providers/ListQuery/index.js';
|
|
26
25
|
import { SelectionProvider } from '../../providers/Selection/index.js';
|
|
27
26
|
import { TableColumnsProvider } from '../../providers/TableColumns/index.js';
|
|
28
27
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
29
28
|
import { useWindowInfo } from '../../providers/WindowInfo/index.js';
|
|
30
29
|
import { ListSelection } from '../../views/List/ListSelection/index.js';
|
|
31
|
-
import { DocumentListSelection } from '../HierarchyList/DocumentListSelection/index.js';
|
|
32
|
-
import { HierarchyTable } from '../HierarchyList/HierarchyTable/index.js';
|
|
33
30
|
import { CollectionListHeader } from './ListHeader/index.js';
|
|
34
31
|
import './index.scss';
|
|
35
32
|
const baseClass = 'collection-list';
|
|
@@ -50,7 +47,6 @@ export function DefaultListView(props) {
|
|
|
50
47
|
hasCreatePermission: hasCreatePermissionFromProps,
|
|
51
48
|
hasDeletePermission,
|
|
52
49
|
hasTrashPermission,
|
|
53
|
-
hierarchyData,
|
|
54
50
|
listMenuItems,
|
|
55
51
|
newDocumentURL,
|
|
56
52
|
queryPreset,
|
|
@@ -103,7 +99,6 @@ export function DefaultListView(props) {
|
|
|
103
99
|
const {
|
|
104
100
|
i18n
|
|
105
101
|
} = useTranslation();
|
|
106
|
-
const collectionLabel = getTranslation(labels?.plural, i18n);
|
|
107
102
|
const {
|
|
108
103
|
setStepNav
|
|
109
104
|
} = useStepNav();
|
|
@@ -132,8 +127,8 @@ export function DefaultListView(props) {
|
|
|
132
127
|
useEffect(() => {
|
|
133
128
|
if (!isInDrawer) {
|
|
134
129
|
const baseLabel = {
|
|
135
|
-
label:
|
|
136
|
-
url:
|
|
130
|
+
label: getTranslation(labels?.plural, i18n),
|
|
131
|
+
url: isTrashEnabled && viewType === 'trash' ? formatAdminURL({
|
|
137
132
|
adminRoute,
|
|
138
133
|
path: `/collections/${collectionSlug}`
|
|
139
134
|
}) : undefined
|
|
@@ -141,24 +136,10 @@ export function DefaultListView(props) {
|
|
|
141
136
|
const trashLabel = {
|
|
142
137
|
label: i18n.t('general:trash')
|
|
143
138
|
};
|
|
144
|
-
|
|
145
|
-
// Add hierarchy breadcrumbs
|
|
146
|
-
if (hierarchyData?.breadcrumbs) {
|
|
147
|
-
const hierarchyBreadcrumbs = hierarchyData.breadcrumbs.map((crumb, index) => {
|
|
148
|
-
const isLast = index === hierarchyData.breadcrumbs.length - 1;
|
|
149
|
-
return {
|
|
150
|
-
label: crumb.title,
|
|
151
|
-
url: isLast ? undefined : formatAdminURL({
|
|
152
|
-
adminRoute,
|
|
153
|
-
path: `/collections/${collectionSlug}?parent=${crumb.id}`
|
|
154
|
-
})
|
|
155
|
-
};
|
|
156
|
-
});
|
|
157
|
-
navItems = [...navItems, ...hierarchyBreadcrumbs];
|
|
158
|
-
}
|
|
139
|
+
const navItems = isTrashEnabled && viewType === 'trash' ? [baseLabel, trashLabel] : [baseLabel];
|
|
159
140
|
setStepNav(navItems);
|
|
160
141
|
}
|
|
161
|
-
}, [adminRoute, setStepNav, serverURL, labels, isInDrawer, isTrashEnabled, viewType, i18n, collectionSlug
|
|
142
|
+
}, [adminRoute, setStepNav, serverURL, labels, isInDrawer, isTrashEnabled, viewType, i18n, collectionSlug]);
|
|
162
143
|
return /*#__PURE__*/_jsxs(Fragment, {
|
|
163
144
|
children: [/*#__PURE__*/_jsx(TableColumnsProvider, {
|
|
164
145
|
collectionSlug: collectionSlug,
|
|
@@ -208,37 +189,12 @@ export function DefaultListView(props) {
|
|
|
208
189
|
queryPresetPermissions: queryPresetPermissions,
|
|
209
190
|
renderedFilters: renderedFilters,
|
|
210
191
|
resolvedFilterOptions: resolvedFilterOptions
|
|
211
|
-
}), BeforeListTable,
|
|
212
|
-
collectionData: {
|
|
213
|
-
[collectionSlug]: {
|
|
214
|
-
docs: hierarchyData.childrenData.docs
|
|
215
|
-
},
|
|
216
|
-
...Object.fromEntries(Object.entries(hierarchyData.relatedDocumentsByCollection).map(([slug, related]) => [slug, {
|
|
217
|
-
docs: related.result.docs
|
|
218
|
-
}]))
|
|
219
|
-
},
|
|
220
|
-
children: [/*#__PURE__*/_jsx(HierarchyTable, {
|
|
221
|
-
childrenData: hierarchyData.childrenData,
|
|
222
|
-
collectionSlug: collectionSlug,
|
|
223
|
-
hierarchyLabel: collectionLabel,
|
|
224
|
-
parentId: hierarchyData.parentId,
|
|
225
|
-
relatedGroups: Object.entries(hierarchyData.relatedDocumentsByCollection).map(([slug_0, related_0]) => ({
|
|
226
|
-
collectionSlug: slug_0,
|
|
227
|
-
data: related_0.result,
|
|
228
|
-
hasMany: related_0.hasMany,
|
|
229
|
-
label: related_0.label
|
|
230
|
-
})),
|
|
231
|
-
useAsTitle: collectionConfig?.admin?.useAsTitle || 'id'
|
|
232
|
-
}, hierarchyData.parentId), /*#__PURE__*/_jsx(DocumentListSelection, {
|
|
233
|
-
disableBulkDelete: disableBulkDelete,
|
|
234
|
-
disableBulkEdit: disableBulkEdit
|
|
235
|
-
})]
|
|
236
|
-
}) : docs?.length > 0 ? /*#__PURE__*/_jsx("div", {
|
|
192
|
+
}), BeforeListTable, docs?.length > 0 && /*#__PURE__*/_jsx("div", {
|
|
237
193
|
className: `${baseClass}__tables`,
|
|
238
194
|
children: /*#__PURE__*/_jsx(RelationshipProvider, {
|
|
239
195
|
children: Table
|
|
240
196
|
})
|
|
241
|
-
})
|
|
197
|
+
}), docs?.length === 0 && /*#__PURE__*/_jsx(NoListResults, {
|
|
242
198
|
Actions: hasCreatePermission && newDocumentURL && viewType !== 'trash' ? [isInDrawer ? /*#__PURE__*/_jsx(Button, {
|
|
243
199
|
el: "button",
|
|
244
200
|
onClick: () => openModal(createNewDrawerSlug),
|
|
@@ -270,7 +226,7 @@ export function DefaultListView(props) {
|
|
|
270
226
|
collectionConfig: collectionConfig,
|
|
271
227
|
disableBulkDelete: disableBulkDelete,
|
|
272
228
|
disableBulkEdit: disableBulkEdit,
|
|
273
|
-
label:
|
|
229
|
+
label: getTranslation(collectionConfig.labels.plural, i18n),
|
|
274
230
|
showSelectAllAcrossPages: !isGroupingBy
|
|
275
231
|
}), /*#__PURE__*/_jsx("div", {
|
|
276
232
|
className: `${baseClass}__list-selection-actions`,
|