# All files / src/_utils placement.ts

100% Statements 4/4
100% Branches 4/4
100% Functions 1/1
100% Lines 3/3

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

    59x
    193x

    193x

     import { OverlayPlacement } from '../Overlay/useOverlay'

    export type Placement =
      | 'bottom'
      | 'bottom-left'
      | 'bottom-right'
      | 'center'
      | 'left'
      | 'left-bottom'
      | 'left-top'
      | 'right'
      | 'right-bottom'
      | 'right-top'
      | 'top'
      | 'top-left'
      | 'top-right'
    export const getPlacement = (p: Placement): OverlayPlacement => {
      const jointPlacements: Partial<Record<Placement, OverlayPlacement>> = {
        'right-top': 'right-start',
        'right-bottom': 'right-end',
        'left-top': 'left-start',
        'left-bottom': 'left-end',
        'bottom-left': 'bottom-start',
        'bottom-right': 'bottom-end',
        'top-left': 'top-start',
        'top-right': 'top-end',
      }

      return jointPlacements[p] ?? (p as OverlayPlacement)
    }