refactor: extract render into methods (#81)

This commit is contained in:
Sammy Teillet
2023-04-26 17:38:05 +02:00
committed by GitHub
parent 04051e737f
commit 884080a9da

View File

@ -53,17 +53,7 @@ export function FilterDropdownButton({
setSelectedFilterOperand(filterOperands[0]); setSelectedFilterOperand(filterOperands[0]);
}, []); }, []);
return ( const renderSelectOptionItems = filterOperands.map((filterOperand, index) => (
<DropdownButton
label="Filter"
isActive={filters.length > 0}
isUnfolded={isUnfolded}
setIsUnfolded={setIsUnfolded}
resetState={resetState}
>
{selectedFilter
? isOptionUnfolded
? filterOperands.map((filterOperand, index) => (
<DropdownButton.StyledDropdownItem <DropdownButton.StyledDropdownItem
key={`select-filter-operand-${index}`} key={`select-filter-operand-${index}`}
onClick={() => { onClick={() => {
@ -73,8 +63,24 @@ export function FilterDropdownButton({
> >
{filterOperand.label} {filterOperand.label}
</DropdownButton.StyledDropdownItem> </DropdownButton.StyledDropdownItem>
)) ));
: [
const renderSelectFilterITems = availableFilters.map((filter, index) => (
<DropdownButton.StyledDropdownItem
key={`select-filter-${index}`}
onClick={() => {
setSelectedFilter(filter);
}}
>
<DropdownButton.StyledIcon>
{filter.icon && <FontAwesomeIcon icon={filter.icon} />}
</DropdownButton.StyledIcon>
{filter.label}
</DropdownButton.StyledDropdownItem>
));
function renderFilterDropdown(selectedFilter: FilterType) {
return [
<DropdownButton.StyledDropdownTopOption <DropdownButton.StyledDropdownTopOption
key={'selected-filter'} key={'selected-filter'}
onClick={() => setSelectedFilter(undefined)} onClick={() => setSelectedFilter(undefined)}
@ -115,20 +121,22 @@ export function FilterDropdownButton({
{value} {value}
</DropdownButton.StyledDropdownItem> </DropdownButton.StyledDropdownItem>
)), )),
] ];
: availableFilters.map((filter, index) => ( }
<DropdownButton.StyledDropdownItem
key={`select-filter-${index}`} return (
onClick={() => { <DropdownButton
setSelectedFilter(filter); label="Filter"
}} isActive={filters.length > 0}
isUnfolded={isUnfolded}
setIsUnfolded={setIsUnfolded}
resetState={resetState}
> >
<DropdownButton.StyledIcon> {selectedFilter
{filter.icon && <FontAwesomeIcon icon={filter.icon} />} ? isOptionUnfolded
</DropdownButton.StyledIcon> ? renderSelectOptionItems
{filter.label} : renderFilterDropdown(selectedFilter)
</DropdownButton.StyledDropdownItem> : renderSelectFilterITems}
))}
</DropdownButton> </DropdownButton>
); );
} }