/* Copyright 2024 New Vector Ltd. Copyright 2021-2023 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ import React from "react"; import classNames from "classnames"; import { _t } from "../../../languageHandler"; import ContextMenu, { alwaysAboveRightOf, ChevronFace, useContextMenu } from "../../structures/ContextMenu"; import AccessibleButton from "../elements/AccessibleButton"; import StyledCheckbox from "../elements/StyledCheckbox"; import { MetaSpace } from "../../../stores/spaces"; import { useSettingValue } from "../../../hooks/useSettings"; import { onMetaSpaceChangeFactory } from "../settings/tabs/user/SidebarUserSettingsTab"; import defaultDispatcher from "../../../dispatcher/dispatcher"; import { Action } from "../../../dispatcher/actions"; import { UserTab } from "../dialogs/UserTab"; import QuickThemeSwitcher from "./QuickThemeSwitcher"; import { Icon as PinUprightIcon } from "../../../../res/img/element-icons/room/pin-upright.svg"; import { Icon as EllipsisIcon } from "../../../../res/img/element-icons/room/ellipsis.svg"; import { Icon as MembersIcon } from "../../../../res/img/element-icons/room/members.svg"; import { Icon as FavoriteIcon } from "../../../../res/img/element-icons/roomlist/favorite.svg"; import Modal from "../../../Modal"; import DevtoolsDialog from "../dialogs/DevtoolsDialog"; import { SdkContextClass } from "../../../contexts/SDKContext"; const QuickSettingsButton: React.FC<{ isPanelCollapsed: boolean; }> = ({ isPanelCollapsed = false }) => { const [menuDisplayed, handle, openMenu, closeMenu] = useContextMenu(); const { [MetaSpace.Favourites]: favouritesEnabled, [MetaSpace.People]: peopleEnabled } = useSettingValue>("Spaces.enabledMetaSpaces"); const currentRoomId = SdkContextClass.instance.roomViewStore.getRoomId(); const developerModeEnabled = useSettingValue("developerMode"); let contextMenu: JSX.Element | undefined; if (menuDisplayed && handle.current) { contextMenu = (

{_t("quick_settings|title")}

{ closeMenu(); defaultDispatcher.dispatch({ action: Action.ViewUserSettings }); }} kind="primary_outline" > {_t("quick_settings|all_settings")} {currentRoomId && developerModeEnabled && ( { closeMenu(); Modal.createDialog( DevtoolsDialog, { roomId: currentRoomId, }, "mx_DevtoolsDialog_wrapper", ); }} kind="danger_outline" > {_t("devtools|title")} )}

{_t("quick_settings|metaspace_section")}

{_t("common|favourites")} {_t("common|people")} { closeMenu(); defaultDispatcher.dispatch({ action: Action.ViewUserSettings, initialTabId: UserTab.Sidebar, }); }} > {_t("quick_settings|sidebar_settings")}
); } return ( <> {!isPanelCollapsed ? _t("common|settings") : null} {contextMenu} ); }; export default QuickSettingsButton;