Skip to content

Commit 5a75881

Browse files
fix(ui): only and files/folders to the grid/list if they were added to the current folder (#12525)
1 parent 64443d8 commit 5a75881

File tree

5 files changed

+37
-7
lines changed

5 files changed

+37
-7
lines changed

packages/ui/src/elements/FolderView/CurrentFolderActions/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export function CurrentFolderActions({ className }: Props) {
3939
const { i18n, t } = useTranslation()
4040

4141
const deleteCurrentFolder = React.useCallback(async () => {
42-
await fetch(`${serverURL}${routes.api}/${folderCollectionSlug}/${folderID}`, {
42+
await fetch(`${serverURL}${routes.api}/${folderCollectionSlug}/${folderID}?depth=0`, {
4343
credentials: 'include',
4444
method: 'DELETE',
4545
})

packages/ui/src/elements/FolderView/Drawers/MoveToFolder/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,7 @@ function Content({
267267
<Button
268268
buttonStyle="pill"
269269
className={`${baseClass}__add-folder-button`}
270+
margin={false}
270271
onClick={() => {
271272
openModal(newFolderDrawerSlug)
272273
}}

packages/ui/src/elements/FolderView/Drawers/NewFolder/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export const NewFolderDrawer = ({ drawerSlug, onNewFolderSuccess }: Props) => {
3030
return (
3131
<Drawer gutter={false} Header={null} slug={drawerSlug}>
3232
<Form
33-
action={`${serverURL}${routes.api}/${folderCollectionSlug}`}
33+
action={`${serverURL}${routes.api}/${folderCollectionSlug}?depth=0`}
3434
handleResponse={async (res, successToast, errorToast) => {
3535
try {
3636
const { doc } = await res.json()

packages/ui/src/elements/FolderView/Drawers/RenameFolder/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export function RenameFolderDrawer(props: Props) {
3939
return (
4040
<Drawer gutter={false} Header={null} slug={drawerSlug}>
4141
<Form
42-
action={`${serverURL}${routes.api}/${folderCollectionSlug}/${folderToRename.value.id}`}
42+
action={`${serverURL}${routes.api}/${folderCollectionSlug}/${folderToRename.value.id}?depth=0`}
4343
initialState={{
4444
name: {
4545
initialValue: folderName,

packages/ui/src/providers/Folders/index.tsx

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ export function FolderProvider({
195195
sort,
196196
subfolders: subfoldersFromProps = [],
197197
}: FolderProviderProps) {
198+
const parentFolderContext = useFolder()
198199
const { config, getEntityConfig } = useConfig()
199200
const folderFieldName = config.folders.fieldName
200201
const { routes, serverURL } = config
@@ -806,8 +807,36 @@ export function FolderProvider({
806807
* Does NOT handle the request to the server.
807808
* Used when a document needs to be added to the current state.
808809
*/
809-
const addItems = React.useCallback(
810-
(items: FolderOrDocument[]) => {
810+
const addItems: FolderContextValue['addItems'] = React.useCallback(
811+
(itemsToAdd) => {
812+
const { items, parentItems } = itemsToAdd.reduce(
813+
(acc, item) => {
814+
const destinationFolderID = item.value.folderID || null
815+
if (
816+
(item.value.folderID && item.value.folderID === activeFolderID) ||
817+
(!activeFolderID && !item.value.folderID)
818+
) {
819+
acc.items.push(item)
820+
}
821+
822+
if (
823+
parentFolderContext &&
824+
((parentFolderContext.folderID &&
825+
destinationFolderID === parentFolderContext.folderID) ||
826+
(!parentFolderContext.folderID && !item.value.folderID))
827+
) {
828+
acc.parentItems.push(item)
829+
}
830+
831+
return acc
832+
},
833+
{ items: [], parentItems: [] },
834+
)
835+
836+
if (parentItems.length) {
837+
parentFolderContext.addItems(parentItems)
838+
}
839+
811840
if (!items.length) {
812841
return
813842
}
@@ -845,7 +874,7 @@ export function FolderProvider({
845874
setAllSubfolders(sortedAllSubfolders)
846875
}
847876
},
848-
[documents, separateItems, sortItems, subfolders],
877+
[activeFolderID, documents, separateItems, sortItems, subfolders],
849878
)
850879

851880
/**
@@ -867,7 +896,7 @@ export function FolderProvider({
867896

868897
if (movingCurrentFolder) {
869898
const req = await fetch(
870-
`${serverURL}${routes.api}/${folderCollectionSlug}/${activeFolderID}`,
899+
`${serverURL}${routes.api}/${folderCollectionSlug}/${activeFolderID}?depth=0`,
871900
{
872901
body: JSON.stringify({ [folderFieldName]: toFolderID || null }),
873902
credentials: 'include',

0 commit comments

Comments
 (0)