discover layout restructured

This commit is contained in:
nklhrstv 2020-03-29 14:23:03 +03:00
parent e1de328b4e
commit 474d3771af
2 changed files with 279 additions and 286 deletions

View file

@ -38,7 +38,7 @@ const Discover = ({ urlParams, queryParams }) => {
event.currentTarget.focus();
}
}, [discover.catalog_resource, selectedMetaItem]);
const avaliable = React.useMemo(() => {
const available = React.useMemo(() => {
return discover.selectable.types.length > 0 || discover.catalog_resource !== null;
}, [discover]);
React.useLayoutEffect(() => {
@ -52,13 +52,14 @@ const Discover = ({ urlParams, queryParams }) => {
return (
<MainNavBars className={styles['discover-container']} route={'discover'}>
<div className={styles['discover-content']}>
<div className={styles['catalog-container']}>
{
avaliable ?
available ?
<div className={styles['selectable-inputs-container']}>
{selectInputs.map((selectInput, index) => (
<Multiselect {...selectInput} key={index} className={styles['select-input-container']} />
))}
<Button className={styles['filter-container']} title={'More filters'} onClick={openInputsModal}>
<Button className={styles['filter-container']} title={'All filters'} onClick={openInputsModal}>
<Icon className={styles['filter-icon']} icon={'ic_filter'} />
</Button>
<div className={styles['spacing']} />
@ -75,7 +76,7 @@ const Discover = ({ urlParams, queryParams }) => {
{
discover.catalog_resource !== null && discover.catalog_resource.content.type === 'Ready' && !profile.addons.some((addon) => addon.transportUrl === discover.catalog_resource.request.base) ?
<div className={styles['missing-addon-warning-container']}>
<div className={styles['warning-info']}>This addon is not installed. Install now?</div>
<div className={styles['warning-label']}>Addon is not installed. Install now?</div>
<Button className={styles['install-button']} title={'Install addon'} onClick={openAddonModal}>
<div className={styles['label']}>Install</div>
</Button>
@ -83,35 +84,22 @@ const Discover = ({ urlParams, queryParams }) => {
:
null
}
<div className={styles['catalog-content-container']}>
{
discover.selectable.types.length === 0 && discover.catalog_resource === null ?
!available ?
<div className={styles['message-container']}>
<Image
className={styles['image']}
src={'/images/empty.png'}
alt={' '}
/>
<div className={styles['message-label']}>No catalogs avaliable.</div>
<Image className={styles['image']} src={'/images/empty.png'} alt={' '} />
<div className={styles['message-label']}>No catalogs available!</div>
</div>
:
discover.catalog_resource === null ?
<div className={styles['message-container']}>
<Image
className={styles['image']}
src={'/images/empty.png'}
alt={' '}
/>
<div className={styles['message-label']}>No catalog selected</div>
<Image className={styles['image']} src={'/images/empty.png'} alt={' '} />
<div className={styles['message-label']}>No catalog selected!</div>
</div>
:
discover.catalog_resource.content.type === 'Err' ?
<div className={styles['message-container']}>
<Image
className={styles['image']}
src={'/images/empty.png'}
alt={' '}
/>
<Image className={styles['image']} src={'/images/empty.png'} alt={' '} />
<div className={styles['message-label']}>
{`Error(${discover.catalog_resource.content.content.type})${typeof discover.catalog_resource.content.content.content === 'string' ? ` - ${discover.catalog_resource.content.content.content}` : ''}`}
</div>
@ -148,7 +136,7 @@ const Discover = ({ urlParams, queryParams }) => {
}
</div>
{
avaliable ?
available ?
selectedMetaItem !== null ?
<MetaPreview
className={styles['meta-preview-container']}

View file

@ -21,25 +21,25 @@
.discover-content {
width: 100%;
height: 100%;
display: grid;
grid-template-columns: 1fr 28rem;
grid-template-rows: auto auto 1fr;
grid-template-areas:
"selectable-inputs-area meta-preview-area"
"missing-addon-warning-container meta-preview-area"
"catalog-content-area meta-preview-area";
display: flex;
flex-direction: row;
.catalog-container {
flex: 1;
align-self: stretch;
display: flex;
flex-direction: column;
.selectable-inputs-container {
grid-area: selectable-inputs-area;
flex: none;
align-self: stretch;
display: flex;
flex-direction: row;
padding: 1.5rem;
overflow: visible;
.select-input-container {
flex-grow: 0;
flex-shrink: 1;
flex-basis: 15rem;
flex: 0 1 15rem;
height: 3.5rem;
&:not(:first-child) {
@ -70,10 +70,6 @@
margin-left: 1.5rem;
background-color: @color-background;
&:not(:nth-last-child(2)) {
margin-right: 1.5rem;
}
.filter-icon {
flex: none;
width: 1.4rem;
@ -89,6 +85,7 @@
.pagination-input-container {
flex: none;
height: 3.5rem;
margin-left: 1.5rem;
.pagination-prev-button-container, .pagination-next-button-container {
width: 3.5rem;
@ -107,17 +104,18 @@
}
.missing-addon-warning-container {
grid-area: missing-addon-warning-container;
flex: none;
align-self: stretch;
display: flex;
flex-direction: column;
align-items: center;
padding: 0 1.5rem 1.5rem 1.5rem;
.warning-info {
.warning-label {
flex: none;
max-height: 2.4em;
margin-bottom: 1rem;
font-size: 1.2rem;
font-size: 1.4rem;
text-align: center;
color: @color-surface-light5-90;
}
@ -142,12 +140,41 @@
}
}
.catalog-content-container {
grid-area: catalog-content-area;
.message-container {
flex: 0 1 auto;
align-self: stretch;
display: flex;
flex-direction: column;
align-items: center;
padding: 0 1.5rem;
overflow-y: auto;
&:first-child {
padding: 4rem;
}
.image {
flex: none;
width: 12rem;
height: 12rem;
margin-bottom: 1rem;
object-fit: contain;
object-position: center;
opacity: 0.9;
}
.message-label {
flex: none;
font-size: 2.5rem;
text-align: center;
color: @color-secondaryvariant2-light1-90;
}
}
.meta-items-container {
flex: 1;
align-self: stretch;
display: grid;
max-height: 100%;
grid-auto-rows: max-content;
align-items: center;
grid-gap: 0.5rem;
@ -178,35 +205,13 @@
}
}
}
.message-container {
display: flex;
flex-direction: column;
align-items: center;
padding: 4rem;
.image {
flex: none;
width: 12rem;
height: 12rem;
margin-bottom: 1rem;
object-fit: contain;
object-position: center;
opacity: 0.9;
}
.message-label {
flex: 0 1 auto;
font-size: 2.5rem;
text-align: center;
color: @color-secondaryvariant2-light1-90;
}
}
}
.meta-preview-container {
grid-area: meta-preview-area;
background-color: @color-background-dark5;
flex: none;
align-self: stretch;
width: 28rem;
background-color: @color-background-dark3;
}
}
}
@ -245,110 +250,110 @@
}
}
@media only screen and (min-width: @xxlarge) {
.discover-container {
.discover-content {
.catalog-content-container {
.meta-items-container {
grid-template-columns: repeat(10, 1fr);
}
}
}
}
}
// @media only screen and (min-width: @xxlarge) {
// .discover-container {
// .discover-content {
// .catalog-content-container {
// .meta-items-container {
// grid-template-columns: repeat(10, 1fr);
// }
// }
// }
// }
// }
@media only screen and (max-width: @xxlarge) {
.discover-container {
.discover-content {
.catalog-content-container {
.meta-items-container {
grid-template-columns: repeat(9, 1fr);
}
}
}
}
}
// @media only screen and (max-width: @xxlarge) {
// .discover-container {
// .discover-content {
// .catalog-content-container {
// .meta-items-container {
// grid-template-columns: repeat(9, 1fr);
// }
// }
// }
// }
// }
@media only screen and (max-width: @xlarge) {
.discover-container {
.discover-content {
.catalog-content-container {
.meta-items-container {
grid-template-columns: repeat(8, 1fr);
}
}
}
}
}
// @media only screen and (max-width: @xlarge) {
// .discover-container {
// .discover-content {
// .catalog-content-container {
// .meta-items-container {
// grid-template-columns: repeat(8, 1fr);
// }
// }
// }
// }
// }
@media only screen and (max-width: @large) {
.discover-container {
.discover-content {
.catalog-content-container {
.meta-items-container {
grid-template-columns: repeat(7, 1fr);
}
}
}
}
}
// @media only screen and (max-width: @large) {
// .discover-container {
// .discover-content {
// .catalog-content-container {
// .meta-items-container {
// grid-template-columns: repeat(7, 1fr);
// }
// }
// }
// }
// }
@media only screen and (max-width: @normal) {
.discover-container {
.discover-content {
.catalog-content-container {
.meta-items-container {
grid-template-columns: repeat(6, 1fr);
}
}
}
}
}
// @media only screen and (max-width: @normal) {
// .discover-container {
// .discover-content {
// .catalog-content-container {
// .meta-items-container {
// grid-template-columns: repeat(6, 1fr);
// }
// }
// }
// }
// }
@media only screen and (max-width: @medium) {
.discover-container {
.discover-content {
.catalog-content-container {
.meta-items-container {
grid-template-columns: repeat(5, 1fr);
}
}
}
}
}
// @media only screen and (max-width: @medium) {
// .discover-container {
// .discover-content {
// .catalog-content-container {
// .meta-items-container {
// grid-template-columns: repeat(5, 1fr);
// }
// }
// }
// }
// }
@media only screen and (max-width: @small) {
.discover-container {
.discover-content {
.catalog-content-container {
.meta-items-container {
grid-template-columns: repeat(4, 1fr);
}
}
}
}
}
// @media only screen and (max-width: @small) {
// .discover-container {
// .discover-content {
// .catalog-content-container {
// .meta-items-container {
// grid-template-columns: repeat(4, 1fr);
// }
// }
// }
// }
// }
@media only screen and (max-width: @xsmall) {
.discover-container {
.discover-content {
grid-template-columns: 1fr;
grid-template-rows: auto auto 1fr;
grid-template-areas:
"selectable-inputs-area"
"missing-addon-warning-container"
"catalog-content-area";
// @media only screen and (max-width: @xsmall) {
// .discover-container {
// .discover-content {
// grid-template-columns: 1fr;
// grid-template-rows: auto auto 1fr;
// grid-template-areas:
// "selectable-inputs-area"
// "missing-addon-warning-container"
// "catalog-content-area";
.catalog-content-container {
.meta-items-container {
grid-template-columns: repeat(5, 1fr);
margin-right: 0;
}
}
// .catalog-content-container {
// .meta-items-container {
// grid-template-columns: repeat(5, 1fr);
// margin-right: 0;
// }
// }
.meta-preview-container {
display: none;
}
}
}
}
// .meta-preview-container {
// display: none;
// }
// }
// }
// }