// Copyright 2022 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import classNames from 'classnames'; import React, { useMemo } from 'react'; import uuid from 'uuid'; import { getClassNamesFor } from '../util/getClassNamesFor'; import { CircleCheckbox } from './CircleCheckbox'; export type Props = { title: string | JSX.Element; subtitle?: string | JSX.Element; leading?: string | JSX.Element; trailing?: string | JSX.Element; moduleClassName?: string; onClick?: () => void; onContextMenu?: (ev: React.MouseEvent) => void; // show hover highlight, // defaults to true if onClick is defined clickable?: boolean; // defaults to 2 subtitleMaxLines?: 1 | 2 | 3; // defaults to false disabled?: boolean; // defaults to item variant?: 'item' | 'panelrow'; // defaults to div rootElement?: 'div' | 'button'; testId?: string; }; /** * A single row that typically contains some text and leading/trailing icons/widgets * * Mostly intended for items on a list: conversations, contacts, groups, options, etc * where all items have the same height. * * If wrapping with