Skip to content

Commit 492d920

Browse files
authored
fix(ui): upload has many no rows error (#7804)
1 parent f754edc commit 492d920

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

packages/ui/src/fields/Upload/HasMany/index.scss

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@
3434
flex-direction: column;
3535
gap: 0.25rem;
3636
}
37+
38+
&__no-data {
39+
background: var(--theme-elevation-50);
40+
padding: 0.5rem 0.75rem;
41+
border-radius: 3px;
42+
}
3743
}
3844

3945
html[data-theme='light'] {

packages/ui/src/fields/Upload/HasMany/index.tsx

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,6 @@ export const UploadComponentHasMany: React.FC<UploadFieldPropsWithContext<string
110110
}
111111

112112
void fetchFile()
113-
} else {
114-
setFileDocs([])
115113
}
116114
}, [value, relationTo, api, serverURL, i18n, code])
117115

@@ -157,7 +155,8 @@ export const UploadComponentHasMany: React.FC<UploadFieldPropsWithContext<string
157155
(acc, [key, value]) => (value ? [...acc, key] : acc),
158156
[] as string[],
159157
)
160-
setValue([...value, ...selectedIDs])
158+
if (value?.length) setValue([...value, ...selectedIDs])
159+
else setValue(selectedIDs)
161160
},
162161
[setValue, value],
163162
)
@@ -167,8 +166,12 @@ export const UploadComponentHasMany: React.FC<UploadFieldPropsWithContext<string
167166
<div className={[baseClass].join(' ')}>
168167
<FieldLabel Label={Label} field={field} label={label} />
169168

170-
<div className={[baseClass].join(' ')}>
171-
<div>
169+
<div>
170+
{missingFiles || !value?.length ? (
171+
<div className={[`${baseClass}__no-data`].join(' ')}>
172+
{t('version:noRowsFound', { label: relationTo })}
173+
</div>
174+
) : (
172175
<DraggableSortable
173176
className={`${baseClass}__draggable-rows`}
174177
ids={value}
@@ -197,7 +200,7 @@ export const UploadComponentHasMany: React.FC<UploadFieldPropsWithContext<string
197200
)
198201
})}
199202
</DraggableSortable>
200-
</div>
203+
)}
201204
</div>
202205

203206
<div className={[`${baseClass}__controls`].join(' ')}>
@@ -248,7 +251,8 @@ export const UploadComponentHasMany: React.FC<UploadFieldPropsWithContext<string
248251
enableRowSelections
249252
onBulkSelect={onBulkSelect}
250253
onSelect={(selection) => {
251-
setValue([...value, selection.docID])
254+
if (value?.length) setValue([...value, selection.docID])
255+
else setValue([selection.docID])
252256
}}
253257
/>
254258
</Fragment>

test/fields/collections/RichText/e2e.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,8 @@ describe('Rich Text', () => {
268268
await page.locator('.list-drawer__select-collection-wrap .rs__control').click()
269269

270270
const menu = page.locator('.list-drawer__select-collection-wrap .rs__menu')
271-
await expect(menu).not.toContainText('Uploads')
271+
const regex = /\bUploads\b/
272+
await expect(menu).not.toContainText(regex)
272273
})
273274

274275
// TODO: Flaky test in CI. Flake: https://github.com/payloadcms/payload/actions/runs/8914532814/job/24482407114

0 commit comments

Comments
 (0)