added divider between FolderList/AssetList, fixed list UI for BrowseStep

This commit is contained in:
ronronscelestes 2022-06-02 19:38:26 +02:00
parent f97f7d7e8d
commit 76dcdb3239
4 changed files with 139 additions and 397 deletions

View File

@ -6,6 +6,7 @@ import { Button } from '@strapi/design-system/Button';
import { Flex } from '@strapi/design-system/Flex'; import { Flex } from '@strapi/design-system/Flex';
import { Stack } from '@strapi/design-system/Stack'; import { Stack } from '@strapi/design-system/Stack';
import { Box } from '@strapi/design-system/Box'; import { Box } from '@strapi/design-system/Box';
import { Divider } from '@strapi/design-system/Divider';
import { BaseCheckbox } from '@strapi/design-system/BaseCheckbox'; import { BaseCheckbox } from '@strapi/design-system/BaseCheckbox';
import { GridItem } from '@strapi/design-system/Grid'; import { GridItem } from '@strapi/design-system/Grid';
import { Typography } from '@strapi/design-system/Typography'; import { Typography } from '@strapi/design-system/Typography';
@ -72,6 +73,7 @@ export const BrowseStep = ({
); );
const isSearching = !!queryObject?._q; const isSearching = !!queryObject?._q;
const isFiltering = queryObject?.filters?.$and?.length > 0; const isFiltering = queryObject?.filters?.$and?.length > 0;
const isSearchingOrFiltering = isSearching || isFiltering;
return ( return (
<Stack spacing={4}> <Stack spacing={4}>
@ -119,12 +121,54 @@ export const BrowseStep = ({
</Box> </Box>
)} )}
{assets.length === 0 && folders.length === 0 && (
<Box paddingBottom={6}>
<EmptyAssets
size="S"
count={6}
action={
canCreate &&
!isFiltering &&
!isSearching && (
<Button variant="secondary" startIcon={<PlusIcon />} onClick={onAddAsset}>
{formatMessage({
id: getTrad('header.actions.add-assets'),
defaultMessage: 'Add new assets',
})}
</Button>
)
}
content={
// eslint-disable-next-line no-nested-ternary
isFiltering
? formatMessage({
id: getTrad('list.assets-empty.title-withSearch'),
defaultMessage: 'There are no assets with the applied filters',
})
: canCreate && !isSearching
? formatMessage({
id: getTrad('list.assets.empty'),
defaultMessage: 'Upload your first assets...',
})
: formatMessage({
id: getTrad('list.assets.empty.no-permissions'),
defaultMessage: 'The asset list is empty',
})
}
/>
</Box>
)}
{folders.length > 0 && ( {folders.length > 0 && (
<FolderList <FolderList
title={formatMessage({ title={
id: getTrad('list.folders.title'), (((isSearchingOrFiltering && assets.length > 0) || !isSearchingOrFiltering) &&
defaultMessage: 'Folders', formatMessage({
})} id: getTrad('list.folders.title'),
defaultMessage: 'Folders',
})) ||
''
}
> >
{folders.map(folder => { {folders.map(folder => {
return ( return (
@ -165,7 +209,13 @@ export const BrowseStep = ({
</FolderList> </FolderList>
)} )}
{assets.length > 0 ? ( {assets.length > 0 && folders.length > 0 && (
<Box paddingTop={2}>
<Divider />
</Box>
)}
{assets.length > 0 && (
<AssetList <AssetList
allowedTypes={allowedTypes} allowedTypes={allowedTypes}
size="S" size="S"
@ -173,47 +223,16 @@ export const BrowseStep = ({
onSelectAsset={onSelectAsset} onSelectAsset={onSelectAsset}
selectedAssets={selectedAssets} selectedAssets={selectedAssets}
onEditAsset={onEditAsset} onEditAsset={onEditAsset}
title={formatMessage({ title={
id: getTrad('list.assets.title'), ((!isSearchingOrFiltering || (isSearchingOrFiltering && folders.length > 0)) &&
defaultMessage: 'Assets', queryObject.page === 1 &&
})} formatMessage({
id: getTrad('list.assets.title'),
defaultMessage: 'Assets',
})) ||
''
}
/> />
) : (
<Box paddingBottom={6}>
<EmptyAssets
size="S"
count={6}
action={
canCreate &&
!isFiltering &&
!isSearching && (
<Button variant="secondary" startIcon={<PlusIcon />} onClick={onAddAsset}>
{formatMessage({
id: getTrad('header.actions.add-assets'),
defaultMessage: 'Add new assets',
})}
</Button>
)
}
content={
// eslint-disable-next-line no-nested-ternary
isFiltering
? formatMessage({
id: getTrad('list.assets-empty.title-withSearch'),
defaultMessage: 'There are no assets with the applied filters',
})
: canCreate && !isSearching
? formatMessage({
id: getTrad('list.assets.empty'),
defaultMessage: 'Upload your first assets...',
})
: formatMessage({
id: getTrad('list.assets.empty.no-permissions'),
defaultMessage: 'The asset list is empty',
})
}
/>
</Box>
)} )}
{pagination.pageCount > 0 && ( {pagination.pageCount > 0 && (

View File

@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`BrowseStep renders and match snapshot 1`] = ` exports[`BrowseStep renders and match snapshot 1`] = `
.c84 { .c73 {
border: 0; border: 0;
-webkit-clip: rect(0 0 0 0); -webkit-clip: rect(0 0 0 0);
clip: rect(0 0 0 0); clip: rect(0 0 0 0);
@ -158,88 +158,6 @@ exports[`BrowseStep renders and match snapshot 1`] = `
fill: #32324d; fill: #32324d;
} }
.c61 {
-webkit-align-items: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
padding: 8px 16px;
background: #4945ff;
border: 1px solid #4945ff;
border: 1px solid #d9d8ff;
background: #f0f0ff;
}
.c61 .c15 {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.c61 .c18 {
color: #ffffff;
}
.c61[aria-disabled='true'] {
border: 1px solid #dcdce4;
background: #eaeaef;
}
.c61[aria-disabled='true'] .c18 {
color: #666687;
}
.c61[aria-disabled='true'] svg > g,
.c61[aria-disabled='true'] svg path {
fill: #666687;
}
.c61[aria-disabled='true']:active {
border: 1px solid #dcdce4;
background: #eaeaef;
}
.c61[aria-disabled='true']:active .c18 {
color: #666687;
}
.c61[aria-disabled='true']:active svg > g,
.c61[aria-disabled='true']:active svg path {
fill: #666687;
}
.c61:hover {
background-color: #ffffff;
}
.c61:active {
background-color: #ffffff;
border: 1px solid #4945ff;
}
.c61:active .c18 {
color: #4945ff;
}
.c61:active svg > g,
.c61:active svg path {
fill: #4945ff;
}
.c61 .c18 {
color: #271fe0;
}
.c61 svg > g,
.c61 svg path {
fill: #271fe0;
}
.c36 { .c36 {
position: relative; position: relative;
overflow: hidden; overflow: hidden;
@ -327,7 +245,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
flex-direction: column; flex-direction: column;
} }
.c62 { .c51 {
-webkit-align-items: center; -webkit-align-items: center;
-webkit-box-align: center; -webkit-box-align: center;
-ms-flex-align: center; -ms-flex-align: center;
@ -357,10 +275,6 @@ exports[`BrowseStep renders and match snapshot 1`] = `
cursor: pointer; cursor: pointer;
} }
.c56 {
text-align: center;
}
.c0 { .c0 {
-webkit-align-items: stretch; -webkit-align-items: stretch;
-webkit-box-align: stretch; -webkit-box-align: stretch;
@ -398,15 +312,6 @@ exports[`BrowseStep renders and match snapshot 1`] = `
margin-top: 16px; margin-top: 16px;
} }
.c58 > * {
margin-top: 0;
margin-bottom: 0;
}
.c58 > * + * {
margin-top: 24px;
}
.c33 > * { .c33 > * {
margin-left: 0; margin-left: 0;
margin-right: 0; margin-right: 0;
@ -443,22 +348,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
max-width: 100%; max-width: 100%;
} }
.c51 { .c64 {
padding-bottom: 24px;
}
.c53 {
border-radius: 4px;
height: 138px;
}
.c55 {
position: absolute;
top: 64px;
width: 100%;
}
.c75 {
padding-left: 8px; padding-left: 8px;
} }
@ -502,20 +392,13 @@ exports[`BrowseStep renders and match snapshot 1`] = `
line-height: 1.33; line-height: 1.33;
} }
.c60 { .c65 {
color: #666687;
font-weight: 500;
font-size: 1rem;
line-height: 1.25;
}
.c76 {
color: #666687; color: #666687;
font-size: 0.875rem; font-size: 0.875rem;
line-height: 1.43; line-height: 1.43;
} }
.c82 { .c71 {
font-weight: 600; font-weight: 600;
color: #32324d; color: #32324d;
font-size: 0.75rem; font-size: 0.75rem;
@ -534,11 +417,6 @@ exports[`BrowseStep renders and match snapshot 1`] = `
width: 1px; width: 1px;
} }
.c59 {
width: 160px;
height: 88px;
}
.c23 { .c23 {
display: -webkit-box; display: -webkit-box;
display: -webkit-flex; display: -webkit-flex;
@ -637,7 +515,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
fill: #666687; fill: #666687;
} }
.c67 { .c56 {
position: absolute; position: absolute;
left: 0; left: 0;
right: 0; right: 0;
@ -648,24 +526,24 @@ exports[`BrowseStep renders and match snapshot 1`] = `
border: none; border: none;
} }
.c67:focus { .c56:focus {
outline: none; outline: none;
} }
.c67[aria-disabled='true'] { .c56[aria-disabled='true'] {
cursor: not-allowed; cursor: not-allowed;
} }
.c70 { .c59 {
padding-right: 16px; padding-right: 16px;
padding-left: 16px; padding-left: 16px;
} }
.c72 { .c61 {
padding-left: 12px; padding-left: 12px;
} }
.c63 { .c52 {
-webkit-align-items: stretch; -webkit-align-items: stretch;
-webkit-box-align: stretch; -webkit-box-align: stretch;
-ms-flex-align: stretch; -ms-flex-align: stretch;
@ -679,7 +557,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
flex-direction: column; flex-direction: column;
} }
.c65 { .c54 {
-webkit-align-items: center; -webkit-align-items: center;
-webkit-box-align: center; -webkit-box-align: center;
-ms-flex-align: center; -ms-flex-align: center;
@ -693,7 +571,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
flex-direction: row; flex-direction: row;
} }
.c68 { .c57 {
-webkit-align-items: center; -webkit-align-items: center;
-webkit-box-align: center; -webkit-box-align: center;
-ms-flex-align: center; -ms-flex-align: center;
@ -711,7 +589,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
justify-content: space-between; justify-content: space-between;
} }
.c71 { .c60 {
color: #32324d; color: #32324d;
display: block; display: block;
white-space: nowrap; white-space: nowrap;
@ -721,12 +599,12 @@ exports[`BrowseStep renders and match snapshot 1`] = `
line-height: 1.43; line-height: 1.43;
} }
.c64 > * { .c53 > * {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
} }
.c66 { .c55 {
position: relative; position: relative;
border: 1px solid #dcdce4; border: 1px solid #dcdce4;
padding-right: 12px; padding-right: 12px;
@ -742,28 +620,28 @@ exports[`BrowseStep renders and match snapshot 1`] = `
transition-duration: 0.2s; transition-duration: 0.2s;
} }
.c66:focus-within { .c55:focus-within {
border: 1px solid #4945ff; border: 1px solid #4945ff;
box-shadow: #4945ff 0px 0px 0px 2px; box-shadow: #4945ff 0px 0px 0px 2px;
} }
.c73 { .c62 {
background: transparent; background: transparent;
border: none; border: none;
position: relative; position: relative;
z-index: 1; z-index: 1;
} }
.c73 svg { .c62 svg {
height: 0.6875rem; height: 0.6875rem;
width: 0.6875rem; width: 0.6875rem;
} }
.c73 svg path { .c62 svg path {
fill: #666687; fill: #666687;
} }
.c74 { .c63 {
display: -webkit-box; display: -webkit-box;
display: -webkit-flex; display: -webkit-flex;
display: -ms-flexbox; display: -ms-flexbox;
@ -772,11 +650,11 @@ exports[`BrowseStep renders and match snapshot 1`] = `
border: none; border: none;
} }
.c74 svg { .c63 svg {
width: 0.375rem; width: 0.375rem;
} }
.c69 { .c58 {
width: 100%; width: 100%;
} }
@ -812,24 +690,6 @@ exports[`BrowseStep renders and match snapshot 1`] = `
top: 12px; top: 12px;
} }
.c54 {
background: linear-gradient( 180deg, rgba(234,234,239,0) 0%, #dcdce4 100% );
opacity: 0.33;
}
.c52 {
display: grid;
grid-template-columns: repeat(auto-fit,minmax(180px,1fr));
grid-gap: 16px;
}
.c57 {
-webkit-align-items: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.c9 { .c9 {
font-weight: 600; font-weight: 600;
color: #32324d; color: #32324d;
@ -1017,15 +877,15 @@ exports[`BrowseStep renders and match snapshot 1`] = `
user-select: none; user-select: none;
} }
.c77 > * + * { .c66 > * + * {
margin-left: 4px; margin-left: 4px;
} }
.c83 { .c72 {
line-height: revert; line-height: revert;
} }
.c78 { .c67 {
padding: 12px; padding: 12px;
border-radius: 4px; border-radius: 4px;
-webkit-text-decoration: none; -webkit-text-decoration: none;
@ -1038,7 +898,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
outline: none; outline: none;
} }
.c78:after { .c67:after {
-webkit-transition-property: all; -webkit-transition-property: all;
transition-property: all; transition-property: all;
-webkit-transition-duration: 0.2s; -webkit-transition-duration: 0.2s;
@ -1053,11 +913,11 @@ exports[`BrowseStep renders and match snapshot 1`] = `
border: 2px solid transparent; border: 2px solid transparent;
} }
.c78:focus-visible { .c67:focus-visible {
outline: none; outline: none;
} }
.c78:focus-visible:after { .c67:focus-visible:after {
border-radius: 8px; border-radius: 8px;
content: ''; content: '';
position: absolute; position: absolute;
@ -1068,7 +928,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
border: 2px solid #4945ff; border: 2px solid #4945ff;
} }
.c80 { .c69 {
padding: 12px; padding: 12px;
border-radius: 4px; border-radius: 4px;
box-shadow: 0px 1px 4px rgba(33,33,52,0.1); box-shadow: 0px 1px 4px rgba(33,33,52,0.1);
@ -1082,7 +942,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
outline: none; outline: none;
} }
.c80:after { .c69:after {
-webkit-transition-property: all; -webkit-transition-property: all;
transition-property: all; transition-property: all;
-webkit-transition-duration: 0.2s; -webkit-transition-duration: 0.2s;
@ -1097,11 +957,11 @@ exports[`BrowseStep renders and match snapshot 1`] = `
border: 2px solid transparent; border: 2px solid transparent;
} }
.c80:focus-visible { .c69:focus-visible {
outline: none; outline: none;
} }
.c80:focus-visible:after { .c69:focus-visible:after {
border-radius: 8px; border-radius: 8px;
content: ''; content: '';
position: absolute; position: absolute;
@ -1112,26 +972,26 @@ exports[`BrowseStep renders and match snapshot 1`] = `
border: 2px solid #4945ff; border: 2px solid #4945ff;
} }
.c81 { .c70 {
color: #271fe0; color: #271fe0;
background: #ffffff; background: #ffffff;
} }
.c81:hover { .c70:hover {
box-shadow: 0px 1px 4px rgba(33,33,52,0.1); box-shadow: 0px 1px 4px rgba(33,33,52,0.1);
} }
.c79 { .c68 {
font-size: 0.7rem; font-size: 0.7rem;
pointer-events: none; pointer-events: none;
} }
.c79 svg path { .c68 svg path {
fill: #c0c0cf; fill: #c0c0cf;
} }
.c79:focus svg path, .c68:focus svg path,
.c79:hover svg path { .c68:hover svg path {
fill: #c0c0cf; fill: #c0c0cf;
} }
@ -1471,163 +1331,16 @@ exports[`BrowseStep renders and match snapshot 1`] = `
</div> </div>
<div <div
class="c51" class="c51"
>
<div
class="c29"
>
<div
class="c52"
>
<div
class="c53 c54"
height="138px"
/>
<div
class="c53 c54"
height="138px"
/>
<div
class="c53 c54"
height="138px"
/>
<div
class="c53 c54"
height="138px"
/>
<div
class="c53 c54"
height="138px"
/>
<div
class="c53 c54"
height="138px"
/>
</div>
<div
class="c55"
width="100%"
>
<div
class="c56 c0 c1 c57"
spacing="4"
>
<div
class="c0 c58 c57"
spacing="6"
>
<svg
class="c59 "
fill="none"
height="88px"
viewBox="0 0 216 120"
width="160px"
xmlns="http://www.w3.org/2000/svg"
>
<g
clip-path="url(#EmptyDocuments_svg__clip0_1142_57509)"
opacity="0.84"
>
<path
clip-rule="evenodd"
d="M189.25 19.646a7.583 7.583 0 010 15.166h-43.333a7.583 7.583 0 010 15.167h23.833a7.583 7.583 0 010 15.167h-11.022c-5.28 0-9.561 3.395-9.561 7.583 0 1.956 1.063 3.782 3.19 5.48 2.017 1.608 4.824 1.817 7.064 3.096a7.583 7.583 0 01-3.754 14.174H65.75a7.583 7.583 0 010-15.166H23.5a7.583 7.583 0 110-15.167h43.333a7.583 7.583 0 100-15.167H39.75a7.583 7.583 0 110-15.166h43.333a7.583 7.583 0 010-15.167H189.25zm0 30.333a7.583 7.583 0 110 15.166 7.583 7.583 0 010-15.166z"
fill="#D9D8FF"
fill-opacity="0.8"
fill-rule="evenodd"
/>
<path
clip-rule="evenodd"
d="M132.561 19.646l10.077 73.496.906 7.374a4.334 4.334 0 01-3.773 4.829l-63.44 7.789a4.333 4.333 0 01-4.83-3.772l-9.767-79.547a2.166 2.166 0 011.91-2.417l5.262-.59 63.655-7.162zM73.162 26.33l4.97-.557-4.97.557z"
fill="#fff"
fill-rule="evenodd"
/>
<path
d="M73.162 26.33l4.97-.557m54.429-6.127l10.077 73.496.906 7.374a4.334 4.334 0 01-3.773 4.829l-63.44 7.789a4.333 4.333 0 01-4.83-3.772l-9.767-79.547a2.166 2.166 0 011.91-2.417l5.262-.59 63.655-7.162z"
stroke="#7B79FF"
stroke-width="2.5"
/>
<path
clip-rule="evenodd"
d="M129.818 24.27l9.122 66.608.82 6.682c.264 2.153-1.246 4.11-3.373 4.371l-56.812 6.976c-2.127.261-4.066-1.272-4.33-3.425l-8.83-71.908a2.167 2.167 0 011.887-2.415l7.028-.863"
fill="#F0F0FF"
fill-rule="evenodd"
/>
<path
clip-rule="evenodd"
d="M135.331 5.833H85.978a2.97 2.97 0 00-2.107.873A2.97 2.97 0 0083 8.813v82.333c0 .823.333 1.567.872 2.106a2.97 2.97 0 002.107.873h63.917a2.97 2.97 0 002.106-.873 2.97 2.97 0 00.873-2.106V23.367a2.98 2.98 0 00-.873-2.107L137.437 6.705a2.98 2.98 0 00-2.106-.872z"
fill="#fff"
fill-rule="evenodd"
stroke="#7B79FF"
stroke-width="2.5"
/>
<path
d="M135.811 7.082v12.564a3.25 3.25 0 003.25 3.25h8.595M94.644 78.146h28.167m-28.167-55.25h28.167-28.167zm0 13h46.584-46.584zm0 14.083h46.584-46.584zm0 14.084h46.584-46.584z"
stroke="#7B79FF"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2.5"
/>
</g>
<defs>
<clippath
id="EmptyDocuments_svg__clip0_1142_57509"
>
<path
d="M0 0h216v120H0z"
fill="#fff"
/>
</clippath>
</defs>
</svg>
<p
class="c60"
>
Upload your first assets...
</p>
</div>
<button
aria-disabled="false"
class="c13 c61"
type="button"
>
<div
aria-hidden="true"
class="c15 c16 c17"
>
<svg
fill="none"
height="1em"
viewBox="0 0 24 24"
width="1em"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M24 13.604a.3.3 0 01-.3.3h-9.795V23.7a.3.3 0 01-.3.3h-3.21a.3.3 0 01-.3-.3v-9.795H.3a.3.3 0 01-.3-.3v-3.21a.3.3 0 01.3-.3h9.795V.3a.3.3 0 01.3-.3h3.21a.3.3 0 01.3.3v9.795H23.7a.3.3 0 01.3.3v3.21z"
fill="#212134"
/>
</svg>
</div>
<span
class="c18 c19"
>
Add new assets
</span>
</button>
</div>
</div>
</div>
</div>
<div
class="c62"
> >
<div <div
class="c20" class="c20"
> >
<div> <div>
<div <div
class="c63 c64" class="c52 c53"
> >
<div <div
class="c65 c66" class="c54 c55"
> >
<button <button
aria-disabled="false" aria-disabled="false"
@ -1635,21 +1348,21 @@ exports[`BrowseStep renders and match snapshot 1`] = `
aria-haspopup="listbox" aria-haspopup="listbox"
aria-label="Entries per page" aria-label="Entries per page"
aria-labelledby="select-1-label select-1-content" aria-labelledby="select-1-label select-1-content"
class="c67" class="c56"
id="select-1" id="select-1"
type="button" type="button"
/> />
<div <div
class="c68 c69" class="c57 c58"
> >
<div <div
class="c65" class="c54"
> >
<div <div
class="c70" class="c59"
> >
<span <span
class="c71" class="c60"
id="select-1-content" id="select-1-content"
> >
10 10
@ -1657,11 +1370,11 @@ exports[`BrowseStep renders and match snapshot 1`] = `
</div> </div>
</div> </div>
<div <div
class="c65" class="c54"
> >
<button <button
aria-hidden="true" aria-hidden="true"
class="c72 c73 c74" class="c61 c62 c63"
tabindex="-1" tabindex="-1"
type="button" type="button"
> >
@ -1686,10 +1399,10 @@ exports[`BrowseStep renders and match snapshot 1`] = `
</div> </div>
</div> </div>
<div <div
class="c75" class="c64"
> >
<label <label
class="c76" class="c65"
for="page-size" for="page-size"
> >
Entries per page Entries per page
@ -1698,15 +1411,15 @@ exports[`BrowseStep renders and match snapshot 1`] = `
</div> </div>
<nav <nav
aria-label="pagination" aria-label="pagination"
class="sc-cKAQkk" class="sc-bxYNtK"
> >
<ul <ul
class="c20 c77" class="c20 c66"
> >
<li> <li>
<button <button
aria-disabled="true" aria-disabled="true"
class="c78 c79" class="c67 c68"
tabindex="-1" tabindex="-1"
type="button" type="button"
> >
@ -1732,7 +1445,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
</li> </li>
<li> <li>
<button <button
class="c80 c81" class="c69 c70"
type="button" type="button"
> >
<div <div
@ -1742,7 +1455,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
</div> </div>
<span <span
aria-hidden="true" aria-hidden="true"
class="c82 c83" class="c71 c72"
> >
1 1
</span> </span>
@ -1751,7 +1464,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
<li> <li>
<button <button
aria-disabled="true" aria-disabled="true"
class="c78 c79" class="c67 c68"
tabindex="-1" tabindex="-1"
type="button" type="button"
> >
@ -1780,7 +1493,7 @@ exports[`BrowseStep renders and match snapshot 1`] = `
</div> </div>
</div> </div>
<div <div
class="c84" class="c73"
> >
<p <p
aria-live="polite" aria-live="polite"

View File

@ -83,7 +83,7 @@ describe('BrowseStep', () => {
it('calls onAddAsset callback', () => { it('calls onAddAsset callback', () => {
const spy = jest.fn(); const spy = jest.fn();
const { getByText } = setup({ onAddAsset: spy }); const { getByText } = setup({ onAddAsset: spy, folders: [] });
fireEvent.click(getByText('Add new assets')); fireEvent.click(getByText('Add new assets'));
expect(spy).toHaveBeenCalled(); expect(spy).toHaveBeenCalled();

View File

@ -17,7 +17,7 @@ import { Main } from '@strapi/design-system/Main';
import { Button } from '@strapi/design-system/Button'; import { Button } from '@strapi/design-system/Button';
import Plus from '@strapi/icons/Plus'; import Plus from '@strapi/icons/Plus';
import { Box } from '@strapi/design-system/Box'; import { Box } from '@strapi/design-system/Box';
import { Stack } from '@strapi/design-system/Stack'; import { Divider } from '@strapi/design-system/Divider';
import { BaseCheckbox } from '@strapi/design-system/BaseCheckbox'; import { BaseCheckbox } from '@strapi/design-system/BaseCheckbox';
import { VisuallyHidden } from '@strapi/design-system/VisuallyHidden'; import { VisuallyHidden } from '@strapi/design-system/VisuallyHidden';
import { IconButton } from '@strapi/design-system/IconButton'; import { IconButton } from '@strapi/design-system/IconButton';
@ -226,13 +226,17 @@ export const MediaLibrary = () => {
)} )}
{canRead && ( {canRead && (
<Stack spacing={8}> <>
{folderCount > 0 && ( {folderCount > 0 && (
<FolderList <FolderList
title={formatMessage({ title={
id: getTrad('list.folders.title'), (((isFiltering && assetCount > 0) || !isFiltering) &&
defaultMessage: 'Folders', formatMessage({
})} id: getTrad('list.folders.title'),
defaultMessage: 'Folders',
})) ||
''
}
> >
{folders.map(folder => { {folders.map(folder => {
const selectedFolders = selected.filter(({ type }) => type === 'folder'); const selectedFolders = selected.filter(({ type }) => type === 'folder');
@ -311,6 +315,12 @@ export const MediaLibrary = () => {
</FolderList> </FolderList>
)} )}
{assetCount > 0 && folderCount > 0 && (
<Box paddingTop={6} paddingBottom={4}>
<Divider />
</Box>
)}
{assetCount > 0 && ( {assetCount > 0 && (
<> <>
<AssetList <AssetList
@ -334,7 +344,7 @@ export const MediaLibrary = () => {
)} )}
</> </>
)} )}
</Stack> </>
)} )}
</ContentLayout> </ContentLayout>
</Main> </Main>