From b987aaea25a7ca6e7cd6195bfc31199ae6ed3820 Mon Sep 17 00:00:00 2001 From: Sergio Betanzos Date: Tue, 22 Jun 2021 18:26:55 +0200 Subject: [PATCH] F OpenNebula/one#5422: Add feature to tabs --- .../src/client/components/Tabs/index.js | 18 +++++++++++------- src/fireedge/src/client/features/One/slice.js | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/fireedge/src/client/components/Tabs/index.js b/src/fireedge/src/client/components/Tabs/index.js index 9bbb330086..5d6f3d01b7 100644 --- a/src/fireedge/src/client/components/Tabs/index.js +++ b/src/fireedge/src/client/components/Tabs/index.js @@ -1,9 +1,9 @@ -import React, { useState, useMemo, memo } from 'react' +import React, { useState, useMemo } from 'react' import PropTypes from 'prop-types' import { Tabs as MTabs, Tab as MTab } from '@material-ui/core' -const Content = memo(({ name, renderContent, hidden }) => ( +const Content = ({ name, renderContent: Content, hidden }) => ( -), (prev, next) => prev.hidden === next.hidden) +) -const Tabs = ({ tabs = [] }) => { +const Tabs = ({ tabs = [], renderHiddenTabs = false }) => { const [tabSelected, setTab] = useState(0) const renderTabs = useMemo(() => ( @@ -38,7 +38,7 @@ const Tabs = ({ tabs = [] }) => { ), [tabSelected]) - const renderTabContent = useMemo(() => + const renderAllHiddenTabContents = useMemo(() => tabs.map((tabProps, idx) => { const { name, value = idx } = tabProps const hidden = tabSelected !== value @@ -49,7 +49,11 @@ const Tabs = ({ tabs = [] }) => { return ( <> {renderTabs} - {renderTabContent} + {renderHiddenTabs ? ( + renderAllHiddenTabContents + ) : ( + (value ?? idx) === tabSelected)} /> + )} ) } diff --git a/src/fireedge/src/client/features/One/slice.js b/src/fireedge/src/client/features/One/slice.js index 48dc616ad1..2ec7774319 100644 --- a/src/fireedge/src/client/features/One/slice.js +++ b/src/fireedge/src/client/features/One/slice.js @@ -1,4 +1,4 @@ -import { createSlice, isFulfilled } from '@reduxjs/toolkit' +import { createSlice } from '@reduxjs/toolkit' import { updateResourceList } from 'client/features/One/utils' import { eventUpdateResourceState } from 'client/features/One/socket/actions'