mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-04 19:59:49 +00:00
useMetaExtensions tabs wrapped in memo
This commit is contained in:
parent
ca90487cd8
commit
2d069ec6a6
1 changed files with 18 additions and 16 deletions
|
|
@ -3,22 +3,24 @@
|
|||
const React = require('react');
|
||||
|
||||
const useMetaExtensions = (metaResources) => {
|
||||
const tabs = metaResources.filter((metaResource) => metaResource.content.type === 'Ready' && metaResource.content.content.metaExtensions.length > 0 && metaResource.addon !== null)
|
||||
.map((metaResource) => {
|
||||
return metaResource.content.content.metaExtensions.map((metaExtension) => {
|
||||
const tab = {
|
||||
id: metaExtension.url,
|
||||
label: metaResource.addon.manifest.name,
|
||||
logo: metaResource.addon.manifest.logo,
|
||||
icon: 'ic_addons',
|
||||
metaExtension: metaExtension,
|
||||
onClick: () => { setSelected(tab); }
|
||||
};
|
||||
return tab;
|
||||
});
|
||||
})
|
||||
.flat(2)
|
||||
.filter((tab, index, tabs) => tabs.findIndex((_tab) => _tab.id === tab.id) === index);
|
||||
const tabs = React.useMemo(() => {
|
||||
return metaResources.filter((metaResource) => metaResource.content.type === 'Ready' && metaResource.content.content.metaExtensions.length > 0 && metaResource.addon !== null)
|
||||
.map((metaResource) => {
|
||||
return metaResource.content.content.metaExtensions.map((metaExtension) => {
|
||||
const tab = {
|
||||
id: metaExtension.url,
|
||||
label: metaResource.addon.manifest.name,
|
||||
logo: metaResource.addon.manifest.logo,
|
||||
icon: 'ic_addons',
|
||||
metaExtension: metaExtension,
|
||||
onClick: () => { setSelected(tab); }
|
||||
};
|
||||
return tab;
|
||||
});
|
||||
})
|
||||
.flat(2)
|
||||
.filter((tab, index, tabs) => tabs.findIndex((_tab) => _tab.id === tab.id) === index);
|
||||
}, [metaResources]);
|
||||
const [selected, setSelected] = React.useState(null);
|
||||
const clearSelected = React.useCallback(() => {
|
||||
setSelected(null);
|
||||
|
|
|
|||
Loading…
Reference in a new issue