# All files / src/form SelectValue.tsx

0% Statements 0/39
0% Branches 0/1
0% Functions 0/1
0% Lines 0/39

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

     import { cnb } from "cnbuilder";
    import { type ReactElement } from "react";
    import { bem } from "../utils/bem.js";
    import { type OptionProps } from "./Option.js";

    const styles = bem("rmd-select-value");

    /**
     * @remarks \@since 6.0.0
     */
    export interface SelectValueProps extends Partial<OptionProps> {
      disableAddon: boolean;
    }

    /**
     * **Server Component**
     *
     * This component is used to render the current option.
     *
     * @remarks \@since 6.0.0
     * @internal
     */
    export function SelectValue(props: SelectValueProps): ReactElement {
      const { leftAddon, disableAddon, children: propChildren } = props;

      let children = propChildren;
      // when the children are a string or number, wrap it in additional span so
      // that overflow can be ellipsis-ed
      if (typeof children === "string" || typeof children === "number") {
        children = <span className={styles("v")}>{children}</span>;
      }

      return (
        <div className={cnb(styles())}>
          {!disableAddon && leftAddon}
          {children}
        </div>
      );
    }