mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-03-11 21:27:05 +00:00
core models serialized with camelCase field names
This commit is contained in:
parent
8500615c79
commit
073be58307
12 changed files with 58 additions and 61 deletions
|
|
@ -19,7 +19,7 @@ const LibItem = ({ id, ...props }) => {
|
|||
case 'play':
|
||||
return props.deepLinks && typeof props.deepLinks.player === 'string';
|
||||
case 'details':
|
||||
return props.deepLinks && (typeof props.deepLinks.meta_details_videos === 'string' || typeof props.deepLinks.meta_details_streams === 'string');
|
||||
return props.deepLinks && (typeof props.deepLinks.metaDetailsVideos === 'string' || typeof props.deepLinks.metaDetailsStreams === 'string');
|
||||
case 'dismiss':
|
||||
return typeof id === 'string' && props.progress !== null && !isNaN(props.progress);
|
||||
}
|
||||
|
|
@ -41,10 +41,10 @@ const LibItem = ({ id, ...props }) => {
|
|||
}
|
||||
case 'details': {
|
||||
if (props.deepLinks) {
|
||||
if (typeof props.deepLinks.meta_details_videos === 'string') {
|
||||
window.location = props.deepLinks.meta_details_videos;
|
||||
} else if (typeof props.deepLinks.meta_details_streams === 'string') {
|
||||
window.location = props.deepLinks.meta_details_streams;
|
||||
if (typeof props.deepLinks.metaDetailsVideos === 'string') {
|
||||
window.location = props.deepLinks.metaDetailsVideos;
|
||||
} else if (typeof props.deepLinks.metaDetailsStreams === 'string') {
|
||||
window.location = props.deepLinks.metaDetailsStreams;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -79,8 +79,8 @@ LibItem.propTypes = {
|
|||
id: PropTypes.string,
|
||||
progress: PropTypes.number,
|
||||
deepLinks: PropTypes.shape({
|
||||
meta_details_videos: PropTypes.string,
|
||||
meta_details_streams: PropTypes.string,
|
||||
metaDetailsVideos: PropTypes.string,
|
||||
metaDetailsStreams: PropTypes.string,
|
||||
player: PropTypes.string
|
||||
}),
|
||||
optionOnSelect: PropTypes.func
|
||||
|
|
|
|||
|
|
@ -32,11 +32,11 @@ const MetaItem = React.memo(({ className, type, name, poster, posterShape, playI
|
|||
typeof deepLinks.player === 'string' ?
|
||||
deepLinks.player
|
||||
:
|
||||
typeof deepLinks.meta_details_streams === 'string' ?
|
||||
deepLinks.meta_details_streams
|
||||
typeof deepLinks.metaDetailsStreams === 'string' ?
|
||||
deepLinks.metaDetailsStreams
|
||||
:
|
||||
typeof deepLinks.meta_details_videos === 'string' ?
|
||||
deepLinks.meta_details_videos
|
||||
typeof deepLinks.metaDetailsVideos === 'string' ?
|
||||
deepLinks.metaDetailsVideos
|
||||
:
|
||||
null
|
||||
:
|
||||
|
|
@ -143,8 +143,8 @@ MetaItem.propTypes = {
|
|||
progress: PropTypes.number,
|
||||
options: PropTypes.array,
|
||||
deepLinks: PropTypes.shape({
|
||||
meta_details_videos: PropTypes.string,
|
||||
meta_details_streams: PropTypes.string,
|
||||
metaDetailsVideos: PropTypes.string,
|
||||
metaDetailsStreams: PropTypes.string,
|
||||
player: PropTypes.string
|
||||
}),
|
||||
dataset: PropTypes.object,
|
||||
|
|
|
|||
|
|
@ -14,11 +14,11 @@ const Board = () => {
|
|||
<MainNavBars className={styles['board-container']} route={'board'}>
|
||||
<div className={styles['board-content']}>
|
||||
{
|
||||
continueWatchingPreview.library_items.length > 0 ?
|
||||
continueWatchingPreview.libraryItems.length > 0 ?
|
||||
<MetaRow
|
||||
className={classnames(styles['board-row'], styles['continue-watching-row'])}
|
||||
title={'Continue Watching'}
|
||||
items={continueWatchingPreview.library_items}
|
||||
items={continueWatchingPreview.libraryItems}
|
||||
itemComponent={LibItem}
|
||||
deepLinks={continueWatchingPreview.deepLinks}
|
||||
/>
|
||||
|
|
@ -26,7 +26,7 @@ const Board = () => {
|
|||
null
|
||||
}
|
||||
{board.catalogs.map((catalog, index) => {
|
||||
const title = `${catalog.addon_name} - ${catalog.request.path.id} ${catalog.request.path.type}`;
|
||||
const title = `${catalog.addonName} - ${catalog.request.path.id} ${catalog.request.path.type}`;
|
||||
switch (catalog.content.type) {
|
||||
case 'Ready': {
|
||||
const posterShape = catalog.content.content.length > 0 ?
|
||||
|
|
|
|||
|
|
@ -20,12 +20,11 @@ const map = (board) => ({
|
|||
name: metaItem.name,
|
||||
poster: metaItem.poster,
|
||||
posterShape: metaItems[0].posterShape,
|
||||
deepLinks: metaItem.deep_links
|
||||
deepLinks: metaItem.deepLinks
|
||||
}))
|
||||
}
|
||||
:
|
||||
catalog.content,
|
||||
deepLinks: catalog.deep_links
|
||||
}))
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ const React = require('react');
|
|||
const { useServices } = require('stremio/services');
|
||||
const { useModelState } = require('stremio/common');
|
||||
|
||||
const map = (continue_watching_preview) => ({
|
||||
...continue_watching_preview,
|
||||
library_items: continue_watching_preview.library_items.map((libItem) => ({
|
||||
const map = (continueWatchingPreview) => ({
|
||||
...continueWatchingPreview,
|
||||
libraryItems: continueWatchingPreview.libraryItems.map((libItem) => ({
|
||||
id: libItem._id,
|
||||
type: libItem.type,
|
||||
name: libItem.name,
|
||||
|
|
@ -17,9 +17,8 @@ const map = (continue_watching_preview) => ({
|
|||
:
|
||||
null,
|
||||
playIcon: true,
|
||||
deepLinks: libItem.deep_links
|
||||
})),
|
||||
deepLinks: continue_watching_preview.deep_links
|
||||
deepLinks: libItem.deepLinks
|
||||
}))
|
||||
});
|
||||
|
||||
const useContinueWatchingPreview = () => {
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ const Discover = ({ urlParams, queryParams }) => {
|
|||
<div className={styles['discover-content']}>
|
||||
<div className={styles['catalog-container']}>
|
||||
{
|
||||
discover.default_request ?
|
||||
discover.defaultRequest ?
|
||||
<div className={styles['selectable-inputs-container']}>
|
||||
{selectInputs.map(({ title, options, selected, renderLabelText, onSelect }, index) => (
|
||||
<Multiselect
|
||||
|
|
@ -82,7 +82,7 @@ const Discover = ({ urlParams, queryParams }) => {
|
|||
null
|
||||
}
|
||||
{
|
||||
discover.catalog !== null && typeof discover.catalog.addon_name !== 'string' ?
|
||||
discover.catalog !== null && typeof discover.catalog.addonName !== 'string' ?
|
||||
<div className={styles['missing-addon-warning-container']}>
|
||||
<div className={styles['warning-label']}>Addon is not installed. Install now?</div>
|
||||
<Button className={styles['install-button']} title={'Install addon'} onClick={openAddonModal}>
|
||||
|
|
@ -172,7 +172,7 @@ const Discover = ({ urlParams, queryParams }) => {
|
|||
}
|
||||
</div>
|
||||
{
|
||||
inputsModalOpen && discover.default_request ?
|
||||
inputsModalOpen && discover.defaultRequest ?
|
||||
<ModalDialog title={'Catalog filters'} className={styles['selectable-inputs-modal-container']} onCloseRequest={closeInputsModal}>
|
||||
{selectInputs.map(({ title, isRequired, options, selected, renderLabelText, onSelect }, index) => (
|
||||
<div key={index} className={styles['selectable-input-container']}>
|
||||
|
|
|
|||
|
|
@ -11,11 +11,11 @@ const init = () => ({
|
|||
types: [],
|
||||
catalogs: [],
|
||||
extra: [],
|
||||
prev_page: null,
|
||||
next_page: null
|
||||
prevPage: null,
|
||||
nextPage: null
|
||||
},
|
||||
catalog: null,
|
||||
default_request: null,
|
||||
defaultRequest: null,
|
||||
page: 1,
|
||||
});
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ const map = (discover) => ({
|
|||
released: new Date(typeof metaItem.released === 'string' ? metaItem.released : NaN),
|
||||
description: metaItem.description,
|
||||
trailerStreams: metaItem.trailerStreams,
|
||||
deepLinks: metaItem.deep_links
|
||||
deepLinks: metaItem.deepLinks
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
|
@ -71,13 +71,13 @@ const useDiscover = (urlParams, queryParams) => {
|
|||
}
|
||||
} else {
|
||||
const discover = core.transport.getState('discover');
|
||||
if (discover.default_request !== null) {
|
||||
if (discover.defaultRequest !== null) {
|
||||
return {
|
||||
action: 'Load',
|
||||
args: {
|
||||
model: 'CatalogWithFilters',
|
||||
args: {
|
||||
request: discover.default_request
|
||||
request: discover.defaultRequest
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@ const mapSelectableInputs = (discover) => {
|
|||
const typeSelect = {
|
||||
title: 'Select type',
|
||||
options: discover.selectable.types
|
||||
.map(({ type, deep_links }) => ({
|
||||
value: deep_links.discover,
|
||||
.map(({ type, deepLinks }) => ({
|
||||
value: deepLinks.discover,
|
||||
label: type
|
||||
})),
|
||||
selected: discover.selectable.types
|
||||
.filter(({ selected }) => selected)
|
||||
.map(({ deep_links }) => deep_links.discover),
|
||||
.map(({ deepLinks }) => deepLinks.discover),
|
||||
onSelect: (event) => {
|
||||
window.location = event.value;
|
||||
}
|
||||
|
|
@ -20,28 +20,28 @@ const mapSelectableInputs = (discover) => {
|
|||
const catalogSelect = {
|
||||
title: 'Select catalog',
|
||||
options: discover.selectable.catalogs
|
||||
.map(({ catalog, addon_name, deep_links }) => ({
|
||||
value: deep_links.discover,
|
||||
.map(({ catalog, addonName, deepLinks }) => ({
|
||||
value: deepLinks.discover,
|
||||
label: catalog,
|
||||
title: `${catalog} (${addon_name})`
|
||||
title: `${catalog} (${addonName})`
|
||||
})),
|
||||
selected: discover.selectable.catalogs
|
||||
.filter(({ selected }) => selected)
|
||||
.map(({ deep_links }) => deep_links.discover),
|
||||
.map(({ deepLinks }) => deepLinks.discover),
|
||||
onSelect: (event) => {
|
||||
window.location = event.value;
|
||||
}
|
||||
};
|
||||
const extraSelects = discover.selectable.extra.map(({ name, is_required, options }) => ({
|
||||
const extraSelects = discover.selectable.extra.map(({ name, isRequired, options }) => ({
|
||||
title: `Select ${name}`,
|
||||
isRequired: is_required,
|
||||
options: options.map(({ value, deep_links }) => ({
|
||||
isRequired: isRequired,
|
||||
options: options.map(({ value, deepLinks }) => ({
|
||||
label: typeof value === 'string' ? value : 'None',
|
||||
value: deep_links.discover
|
||||
value: deepLinks.discover
|
||||
})),
|
||||
selected: options
|
||||
.filter(({ selected }) => selected)
|
||||
.map(({ deep_links }) => deep_links.discover),
|
||||
.map(({ deepLinks }) => deepLinks.discover),
|
||||
renderLabelText: options.some(({ selected, value }) => selected && value === null) ?
|
||||
() => `Select ${name}`
|
||||
:
|
||||
|
|
@ -50,15 +50,15 @@ const mapSelectableInputs = (discover) => {
|
|||
window.location = event.value;
|
||||
}
|
||||
}));
|
||||
const paginationInput = discover.selectable.prev_page || discover.selectable.next_page ?
|
||||
const paginationInput = discover.selectable.prevPage || discover.selectable.nextPage ?
|
||||
{
|
||||
label: discover.page.toString(),
|
||||
onSelect: (event) => {
|
||||
if (event.value === 'prev' && discover.selectable.prev_page) {
|
||||
window.location = discover.selectable.prev_page.deep_links.discover;
|
||||
if (event.value === 'prev' && discover.selectable.prevPage) {
|
||||
window.location = discover.selectable.prevPage.deepLinks.discover;
|
||||
}
|
||||
if (event.value === 'next' && discover.selectable.next_page) {
|
||||
window.location = discover.selectable.next_page.deep_links.discover;
|
||||
if (event.value === 'next' && discover.selectable.nextPage) {
|
||||
window.location = discover.selectable.nextPage.deepLinks.discover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ const map = (library) => ({
|
|||
libItem.state.timeOffset / libItem.state.duration
|
||||
:
|
||||
null,
|
||||
deepLinks: libItem.deep_links
|
||||
deepLinks: libItem.deepLinks
|
||||
}))
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@ const mapSelectableInputs = (library) => {
|
|||
const typeSelect = {
|
||||
title: 'Select type',
|
||||
options: library.selectable.types
|
||||
.map(({ type, deep_links }) => ({
|
||||
value: deep_links.library,
|
||||
.map(({ type, deepLinks }) => ({
|
||||
value: deepLinks.library,
|
||||
label: type === null ? 'All' : type
|
||||
})),
|
||||
selected: library.selectable.types
|
||||
.filter(({ selected }) => selected)
|
||||
.map(({ deep_links }) => deep_links.library),
|
||||
.map(({ deepLinks }) => deepLinks.library),
|
||||
onSelect: (event) => {
|
||||
window.location = event.value;
|
||||
}
|
||||
|
|
@ -20,13 +20,13 @@ const mapSelectableInputs = (library) => {
|
|||
const sortSelect = {
|
||||
title: 'Select sort',
|
||||
options: library.selectable.sorts
|
||||
.map(({ sort, deep_links }) => ({
|
||||
value: deep_links.library,
|
||||
.map(({ sort, deepLinks }) => ({
|
||||
value: deepLinks.library,
|
||||
label: sort
|
||||
})),
|
||||
selected: library.selectable.sorts
|
||||
.filter(({ selected }) => selected)
|
||||
.map(({ deep_links }) => deep_links.library),
|
||||
.map(({ deepLinks }) => deepLinks.library),
|
||||
onSelect: (event) => {
|
||||
window.location = event.value;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ const Search = ({ queryParams }) => {
|
|||
</div>
|
||||
:
|
||||
search.catalogs.map((catalog, index) => {
|
||||
const title = `${catalog.addon_name} - ${catalog.request.path.id} ${catalog.request.path.type}`;
|
||||
const title = `${catalog.addonName} - ${catalog.request.path.id} ${catalog.request.path.type}`;
|
||||
switch (catalog.content.type) {
|
||||
case 'Ready': {
|
||||
const posterShape = catalog.content.content.length > 0 ?
|
||||
|
|
|
|||
|
|
@ -20,12 +20,11 @@ const map = (search) => ({
|
|||
name: metaItem.name,
|
||||
poster: metaItem.poster,
|
||||
posterShape: metaItems[0].posterShape,
|
||||
deepLinks: metaItem.deep_links
|
||||
deepLinks: metaItem.deepLinks
|
||||
}))
|
||||
}
|
||||
:
|
||||
catalog.content,
|
||||
deepLinks: catalog.deep_links
|
||||
catalog.content
|
||||
}))
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue