mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-21 11:42:05 +00:00
addons hooks adapted to changes in core
This commit is contained in:
parent
c82a4563df
commit
5ee47cf7d2
2 changed files with 41 additions and 35 deletions
|
|
@ -21,16 +21,16 @@ const mapAddonsStateWithCtx = (addons, ctx) => {
|
||||||
...addons.catalog_resource,
|
...addons.catalog_resource,
|
||||||
content: {
|
content: {
|
||||||
...addons.catalog_resource.content,
|
...addons.catalog_resource.content,
|
||||||
content: addons.catalog_resource.content.content.map((descriptor) => ({
|
content: addons.catalog_resource.content.content.map((addon) => ({
|
||||||
transportUrl: descriptor.transportUrl,
|
transportUrl: addon.transportUrl,
|
||||||
installed: ctx.content.addons.some((addon) => addon.transportUrl === descriptor.transportUrl),
|
installed: ctx.profile.addons.some(({ transportUrl }) => transportUrl === addon.transportUrl),
|
||||||
manifest: {
|
manifest: {
|
||||||
id: descriptor.manifest.id,
|
id: addon.manifest.id,
|
||||||
name: descriptor.manifest.name,
|
name: addon.manifest.name,
|
||||||
version: descriptor.manifest.version,
|
version: addon.manifest.version,
|
||||||
logo: descriptor.manifest.logo,
|
logo: addon.manifest.logo,
|
||||||
description: descriptor.manifest.description,
|
description: addon.manifest.description,
|
||||||
types: descriptor.manifest.types
|
types: addon.manifest.types
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
@ -45,8 +45,10 @@ const onNewAddonsState = (addons) => {
|
||||||
return {
|
return {
|
||||||
action: 'Load',
|
action: 'Load',
|
||||||
args: {
|
args: {
|
||||||
load: 'CatalogFiltered',
|
model: 'CatalogFiltered',
|
||||||
args: addons.selectable.catalogs[0].load_request
|
args: {
|
||||||
|
request: addons.selectable.catalogs[0].request
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -59,14 +61,16 @@ const useAddons = (urlParams) => {
|
||||||
return {
|
return {
|
||||||
action: 'Load',
|
action: 'Load',
|
||||||
args: {
|
args: {
|
||||||
load: 'CatalogFiltered',
|
model: 'CatalogFiltered',
|
||||||
args: {
|
args: {
|
||||||
base: urlParams.transportUrl,
|
request: {
|
||||||
path: {
|
base: urlParams.transportUrl,
|
||||||
resource: 'addon_catalog',
|
path: {
|
||||||
type_name: urlParams.type,
|
resource: 'addon_catalog',
|
||||||
id: urlParams.catalogId,
|
type_name: urlParams.type,
|
||||||
extra: []
|
id: urlParams.catalogId,
|
||||||
|
extra: []
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -77,8 +81,10 @@ const useAddons = (urlParams) => {
|
||||||
return {
|
return {
|
||||||
action: 'Load',
|
action: 'Load',
|
||||||
args: {
|
args: {
|
||||||
load: 'CatalogFiltered',
|
model: 'CatalogFiltered',
|
||||||
args: addons.selectable.catalogs[0].load_request
|
args: {
|
||||||
|
request: addons.selectable.catalogs[0].request
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
const React = require('react');
|
const React = require('react');
|
||||||
|
|
||||||
const navigateWithLoadRequest = (load_request) => {
|
const navigateWithRequest = (request) => {
|
||||||
const transportUrl = encodeURIComponent(load_request.base);
|
const transportUrl = encodeURIComponent(request.base);
|
||||||
const catalogId = encodeURIComponent(load_request.path.id);
|
const catalogId = encodeURIComponent(request.path.id);
|
||||||
const type = encodeURIComponent(load_request.path.type_name);
|
const type = encodeURIComponent(request.path.type_name);
|
||||||
window.location.replace(`#/addons/${transportUrl}/${catalogId}/${type}`);
|
window.location.replace(`#/addons/${transportUrl}/${catalogId}/${type}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -18,35 +18,35 @@ const mapSelectableInputs = (addons) => {
|
||||||
const catalogSelect = {
|
const catalogSelect = {
|
||||||
title: 'Select catalog',
|
title: 'Select catalog',
|
||||||
options: addons.selectable.catalogs
|
options: addons.selectable.catalogs
|
||||||
.map(({ name, load_request }) => ({
|
.map(({ name, request }) => ({
|
||||||
value: JSON.stringify(load_request),
|
value: JSON.stringify(request),
|
||||||
label: name
|
label: name
|
||||||
})),
|
})),
|
||||||
selected: addons.selectable.catalogs
|
selected: addons.selectable.catalogs
|
||||||
.filter(({ load_request: { path: { id } } }) => {
|
.filter(({ request: { path: { id } } }) => {
|
||||||
return addons.catalog_resource !== null &&
|
return addons.catalog_resource !== null &&
|
||||||
addons.catalog_resource.request.path.id === id;
|
addons.catalog_resource.request.path.id === id;
|
||||||
})
|
})
|
||||||
.map(({ load_request }) => JSON.stringify(load_request)),
|
.map(({ request }) => JSON.stringify(request)),
|
||||||
onSelect: (event) => {
|
onSelect: (event) => {
|
||||||
navigateWithLoadRequest(JSON.parse(event.value));
|
navigateWithRequest(JSON.parse(event.value));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const typeSelect = {
|
const typeSelect = {
|
||||||
title: 'Select type',
|
title: 'Select type',
|
||||||
options: addons.selectable.types
|
options: addons.selectable.types
|
||||||
.map(({ name, load_request }) => ({
|
.map(({ name, request }) => ({
|
||||||
value: JSON.stringify(load_request),
|
value: JSON.stringify(request),
|
||||||
label: name
|
label: name
|
||||||
})),
|
})),
|
||||||
selected: addons.selectable.types
|
selected: addons.selectable.types
|
||||||
.filter(({ load_request }) => {
|
.filter(({ request }) => {
|
||||||
return addons.catalog_resource !== null &&
|
return addons.catalog_resource !== null &&
|
||||||
equalWithouExtra(addons.catalog_resource.request, load_request);
|
equalWithouExtra(addons.catalog_resource.request, request);
|
||||||
})
|
})
|
||||||
.map(({ load_request }) => JSON.stringify(load_request)),
|
.map(({ request }) => JSON.stringify(request)),
|
||||||
onSelect: (event) => {
|
onSelect: (event) => {
|
||||||
navigateWithLoadRequest(JSON.parse(event.value));
|
navigateWithRequest(JSON.parse(event.value));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return [catalogSelect, typeSelect];
|
return [catalogSelect, typeSelect];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue