mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-03-11 21:27:05 +00:00
Discover adapted to changes in core
This commit is contained in:
parent
2d8ebccc26
commit
42846d7392
3 changed files with 36 additions and 36 deletions
|
|
@ -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}>
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue