Skip to content

Commit

Permalink
M #~: fix re-render row (OpenNebula#3278)
Browse files Browse the repository at this point in the history
  • Loading branch information
jloboescalona2 authored Oct 25, 2024
1 parent af002f2 commit 315896d
Showing 1 changed file with 41 additions and 20 deletions.
61 changes: 41 additions & 20 deletions src/fireedge/src/client/components/Tables/Enhanced/WrapperRow.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,39 @@ CardWrapper.propTypes = {

CardWrapper.displayName = 'CardWrapper'

const SwitchRowComponent = memo(
({ props, hasHeader, RowCardComponent, enabledFullScreen }) => {
const internalProps = { ...props }
let Component = ''

if (hasHeader) {
internalProps.enabledFullScreen = enabledFullScreen
Component = <RowStyle {...internalProps} />
} else {
Component = <RowCardComponent {...internalProps} />
if (enabledFullScreen) {
Component = (
<CardWrapper {...internalProps}>
<RowCardComponent {...internalProps} />
</CardWrapper>
)
}
}

return Component
},
(prev, next) => prev.RowCardComponent === next.RowCardComponent
)

SwitchRowComponent.propTypes = {
props: PropTypes.any,
RowCardComponent: PropTypes.any,
hasHeader: PropTypes.bool,
enabledFullScreen: PropTypes.bool,
}

SwitchRowComponent.displayName = 'SwitchRowComponent'

/**
* @param {ReactElement} RowCardComponent - Standard row component (Card).
* @param {boolean} enabledFullScreen - to check if the datatable is in full screen mode
Expand All @@ -172,26 +205,14 @@ const WrapperRow = (RowCardComponent, enabledFullScreen) => {
const header = data === 'list'

const component = memo(
(props) => {
const internalProps = { ...props }
let Component = ''

if (header) {
internalProps.enabledFullScreen = enabledFullScreen
Component = <RowStyle {...internalProps} />
} else {
Component = <RowCardComponent {...internalProps} />
if (enabledFullScreen) {
Component = (
<CardWrapper {...internalProps}>
<RowCardComponent {...internalProps} />
</CardWrapper>
)
}
}

return Component
},
(props) => (
<SwitchRowComponent
props={props}
hasHeader={header}
RowCardComponent={RowCardComponent}
enabledFullScreen={enabledFullScreen}
/>
),
(prev, next) => prev.className === next.className
)

Expand Down

0 comments on commit 315896d

Please sign in to comment.