/* Copyright 2024 New Vector Ltd. Copyright 2020 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE files in the repository root for full details. */ import React, { ReactNode } from "react"; import classNames from "classnames"; import ContextMenu, { ChevronFace, IProps as IContextMenuProps, MenuItem, MenuItemCheckbox, MenuItemRadio, } from "../../structures/ContextMenu"; import { _t } from "../../../languageHandler"; interface IProps extends IContextMenuProps { className?: string; compact?: boolean; } interface IOptionListProps { first?: boolean; red?: boolean; label?: string; className?: string; children: ReactNode; } interface IOptionProps extends React.ComponentProps { iconClassName?: string; isDestructive?: boolean; } interface ICheckboxProps extends React.ComponentProps { iconClassName: string; words?: boolean; } interface IRadioProps extends React.ComponentProps { iconClassName?: string; } export const IconizedContextMenuRadio: React.FC = ({ label, iconClassName, active, className, ...props }) => { return ( {iconClassName && } {label} {active && } ); }; export const IconizedContextMenuCheckbox: React.FC = ({ label, iconClassName, active, className, words, ...props }) => { let marker: JSX.Element; if (words) { marker = ( {active ? _t("common|on") : _t("common|off")} ); } else { marker = ( ); } return ( {label} {marker} ); }; export const IconizedContextMenuOption: React.FC = ({ label, className, iconClassName, children, isDestructive, ...props }) => { return ( {iconClassName && } {label} {children} ); }; export const IconizedContextMenuOptionList: React.FC = ({ first, red, className, label, children, }) => { const classes = classNames("mx_IconizedContextMenu_optionList", className, { mx_IconizedContextMenu_optionList_notFirst: !first, mx_IconizedContextMenu_optionList_red: red, }); return (
{label && (
{label}
)} {children}
); }; const IconizedContextMenu: React.FC> = ({ className, children, compact, ...props }) => { const classes = classNames("mx_IconizedContextMenu", className, { mx_IconizedContextMenu_compact: compact, }); return (
    {children}
); }; export default IconizedContextMenu;