Discover adapted to changes in core

This commit is contained in:
nklhrstv 2020-02-13 14:30:47 +02:00
parent 2d8ebccc26
commit 42846d7392
3 changed files with 36 additions and 36 deletions

View file

@ -74,7 +74,7 @@ const Discover = ({ urlParams, queryParams }) => {
}
</div>
{
discover.catalog_resource != null && !state.ctx.content.addons.some((addon) => addon.transportUrl === discover.catalog_resource.request.base) ?
discover.catalog_resource !== null && !state.ctx.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>
<Button className={styles['install-button']} title={'Install addon'} onClick={openAddonModal}>

View file

@ -17,9 +17,9 @@ const mapDiscoverState = (discover) => {
const selectable = discover.selectable;
const catalog_resource = discover.catalog_resource !== null && discover.catalog_resource.content.type === 'Ready' ?
{
...discover.catalog_resource,
request: discover.catalog_resource.request,
content: {
...discover.catalog_resource.content,
type: discover.catalog_resource.content.type,
content: discover.catalog_resource.content.content.map((metaItem) => ({
type: metaItem.type,
name: metaItem.name,
@ -47,8 +47,10 @@ const onNewDiscoverState = (discover) => {
return {
action: 'Load',
args: {
load: 'CatalogFiltered',
args: discover.selectable.types[0].load_request
model: 'CatalogWithFilters',
args: {
request: discover.selectable.types[0].request
}
}
};
}
@ -61,14 +63,16 @@ const useDiscover = (urlParams, queryParams) => {
return {
action: 'Load',
args: {
load: 'CatalogFiltered',
model: 'CatalogWithFilters',
args: {
base: urlParams.transportUrl,
path: {
resource: 'catalog',
type_name: urlParams.type,
id: urlParams.catalogId,
extra: Array.from(queryParams.entries())
request: {
base: urlParams.transportUrl,
path: {
resource: 'catalog',
type_name: urlParams.type,
id: urlParams.catalogId,
extra: Array.from(queryParams.entries())
}
}
}
}
@ -79,8 +83,10 @@ const useDiscover = (urlParams, queryParams) => {
return {
action: 'Load',
args: {
load: 'CatalogFiltered',
args: discover.selectable.types[0].load_request
model: 'CatalogWithFilters',
args: {
request: discover.selectable.types[0].request
}
}
};
} else {

View file

@ -8,11 +8,11 @@ const SKIP_EXTRA = {
isRequired: false
};
const navigateWithLoadRequest = (load_request) => {
const transportUrl = encodeURIComponent(load_request.base);
const type = encodeURIComponent(load_request.path.type_name);
const catalogId = encodeURIComponent(load_request.path.id);
const extra = new URLSearchParams(load_request.path.extra).toString();
const navigateWithLoadRequest = (request) => {
const transportUrl = encodeURIComponent(request.base);
const type = encodeURIComponent(request.path.type_name);
const catalogId = encodeURIComponent(request.path.id);
const extra = new URLSearchParams(request.path.extra).toString();
window.location.replace(`#/discover/${transportUrl}/${type}/${catalogId}?${extra}`);
};
@ -52,13 +52,6 @@ const getNextExtra = (prevExtra, extraProp, extraValue) => {
}, []);
};
const equalWithouExtra = (request1, request2) => {
return request1.base === request2.base &&
request1.path.resource === request2.path.resource &&
request1.path.type_name === request2.path.type_name &&
request1.path.id === request2.path.id;
};
const mapSelectableInputs = (discover) => {
const selectedCatalogRequest = discover.catalog_resource !== null ?
discover.catalog_resource.request
@ -85,15 +78,15 @@ const mapSelectableInputs = (discover) => {
const typeSelect = {
title: 'Select type',
options: discover.selectable.types
.map(({ name, load_request }) => ({
value: JSON.stringify(load_request),
.map(({ name, request }) => ({
value: JSON.stringify(request),
label: name
})),
selected: discover.selectable.types
.filter(({ load_request: { path: { type_name } } }) => {
return type_name === selectedCatalogRequest.path.type_name;
.filter(({ request }) => {
return selectedCatalogRequest.path.type_name === request.path.type_name;
})
.map(({ load_request }) => JSON.stringify(load_request)),
.map(({ request }) => JSON.stringify(request)),
onSelect: (event) => {
navigateWithLoadRequest(JSON.parse(event.value));
}
@ -101,15 +94,16 @@ const mapSelectableInputs = (discover) => {
const catalogSelect = {
title: 'Select catalog',
options: discover.selectable.catalogs
.map(({ name, load_request }) => ({
value: JSON.stringify(load_request),
.map(({ name, request }) => ({
value: JSON.stringify(request),
label: name
})),
selected: discover.selectable.catalogs
.filter(({ load_request }) => {
return equalWithouExtra(load_request, selectedCatalogRequest);
.filter(({ request }) => {
return selectedCatalogRequest.base === request.base &&
selectedCatalogRequest.path.id === request.path.id;
})
.map(({ load_request }) => JSON.stringify(load_request)),
.map(({ request }) => JSON.stringify(request)),
onSelect: (event) => {
navigateWithLoadRequest(JSON.parse(event.value));
}