import cx from 'classnames';
import React from 'react';
import DisplayTitle from '../DisplayTitle/DisplayTitle';
import { ColorLamp, Colors } from '../types';
import styles from './Display.module.scss';

type Props = {
  children: React.ReactNode;

  /**
   * @deprecated use color props
   */
  status?: ColorLamp;

  noPaddingX?: boolean;
  noPaddingY?: boolean;
  noPadding?: boolean;

  sideSaber?: 'left' | 'right';

  color?: ColorLamp;
  title?: React.ReactElement<typeof DisplayTitle>;
  isVertical?: boolean;
};

function Display({
  children,
  isVertical,
  title,
  noPaddingX,
  noPaddingY,
  noPadding,
  sideSaber,
  color = Colors.GREEN,
  status,
}: Props) {
  const colorTemp = color || status;

  return (
    <div
      className={cx(styles.wrapper, styles[colorTemp], {
        [styles.vertical]: isVertical,
        [styles.noPaddingX]: noPaddingX || noPadding,
        [styles.noPaddingY]: noPaddingY || noPadding,
        [sideSaber ? styles[sideSaber] : undefined]: sideSaber,
      })}
    >
      {title && <header>{React.cloneElement(title, { inDisplay: true })}</header>}

      <div className={styles.inner}>{children}</div>
    </div>
  );
}

export default Display;

Synonyms

pussy-ts/src/components/containerGradient/Display/Display.tsx
pussy-landing/src/components/xp/containerGradient/Display/Display.tsx

Neighbours