# All files / src/TableShelf TableShelf.tsx

100% Statements 34/34
100% Branches 0/0
100% Functions 6/6
100% Lines 28/28

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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    943x
    3x

    3x

    3x
    2x
    2x

    3x
    2x
    2x

    3x
    2x
    2x

    3x
    2x
    2x

    3x
    5x
    5x

    3x
    5x
    5x

    3x

    3x

    3x

    3x

    3x

    3x

    3x

     import React from 'react'
    import { addSubcomponents } from '../_utils/addSubcomponents'
    import { DivAttributes, Props } from '../_utils/types'
    import {
      StyledBodyCell,
      StyledBodyRow,
      StyledHead,
      StyledHeadCell,
      StyledShelf,
    } from './TableShelf.styles'

    export const Shelf = React.forwardRef<HTMLDivElement, DivAttributes & Props>(
      function Shelf({ children, ...props }, ref) {
        return (
          <StyledShelf ref={ref} {...props}>
            {children}
          </StyledShelf>
        )
      }
    )

    export const Head = React.forwardRef<HTMLDivElement, DivAttributes & Props>(
      function Head({ children, ...props }, ref) {
        return (
          <StyledHead ref={ref}>
            <StyledBodyRow {...props}>{children}</StyledBodyRow>
          </StyledHead>
        )
      }
    )

    export const HeadCell = React.forwardRef<HTMLDivElement, DivAttributes & Props>(
      function HeadCell({ children, ...props }, ref) {
        return (
          <StyledHeadCell ref={ref} {...props}>
            {children}
          </StyledHeadCell>
        )
      }
    )

    export const Body = React.forwardRef<HTMLDivElement, DivAttributes & Props>(
      function Body({ children, ...props }, ref) {
        return (
          <div ref={ref} {...props}>
            {children}
          </div>
        )
      }
    )

    export const BodyCell = React.forwardRef<HTMLDivElement, DivAttributes & Props>(
      function BodyCell({ children, ...props }, ref) {
        return (
          <StyledBodyCell ref={ref} {...props}>
            {children}
          </StyledBodyCell>
        )
      }
    )

    export const BodyRow = React.forwardRef<HTMLDivElement, DivAttributes & Props>(
      function BodyRow({ children, ...props }, ref) {
        return (
          <StyledBodyRow ref={ref} {...props}>
            {children}
          </StyledBodyRow>
        )
      }
    )

    Shelf.displayName = 'Shelf'

    Body.displayName = 'Shelf.Body'

    BodyCell.displayName = 'Shelf.BodyCell'

    BodyRow.displayName = 'Shelf.BodyRow'

    Head.displayName = 'Shelf.Head'

    HeadCell.displayName = 'Shelf.HeadCell'

    export const TableShelf = addSubcomponents(
      {
        Body,
        BodyCell,
        BodyRow,
        Head,
        HeadCell,
      },
      Shelf
    )