All files / src/utils/rendering nodesRenderers.tsx

100% Statements 5/5
91.66% Branches 11/12
100% Functions 3/3
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                              20x       97x   611x                               611x  
import { WithTooltipWrapper } from "@common/Menu/NewDropdownMenu";
import FadeUpWrapper from "@components/animation/FadeUpWrapper";
import { HiddenComponent } from "@containers/HiddenComponent";
import { Grid } from "@mui/material";
import React from "react";
 
type NodeItem = {
  node: React.ReactNode;
  sm?: number;
  md?: number;
  hidden?: boolean;
  delay?: (index: number) => number;
  hideTooltip?: boolean;
};
 
export const gridItemsRenderer = (
  items: NodeItem[],
  tooltipProps?: { show: boolean; message: string },
) => {
  return items.map(
    ({ node, hidden, sm, md, delay, hideTooltip = false }, index) => (
      <HiddenComponent key={index} hidden={hidden || false}>
        <Grid item xs={12} sm={sm || 12} md={md || sm || 12}>
          <WithTooltipWrapper
            hasTooltip={!!tooltipProps && !hideTooltip}
            tooltipProps={tooltipProps}
          >
            <FadeUpWrapper delay={delay ? delay(index) : defaultDelay(index)}>
              {node}
            </FadeUpWrapper>
          </WithTooltipWrapper>
        </Grid>
      </HiddenComponent>
    ),
  );
};
 
const defaultDelay = (index: number) => 50 + index * 50;