diff --git a/apps/client/src/widgets/note_icon.tsx b/apps/client/src/widgets/note_icon.tsx index 31ca7e65b4..b3d15d6889 100644 --- a/apps/client/src/widgets/note_icon.tsx +++ b/apps/client/src/widgets/note_icon.tsx @@ -13,7 +13,7 @@ import { CellComponentProps, Grid } from "react-window"; import FNote from "../entities/fnote"; import attributes from "../services/attributes"; import server from "../services/server"; -import { isDesktop, isMobile } from "../services/utils"; +import { isDesktop, isLaunchBarConfig, isMobile } from "../services/utils"; import ActionButton from "./react/ActionButton"; import Dropdown from "./react/Dropdown"; import { FormDropdownDivider, FormListItem } from "./react/FormList"; @@ -42,8 +42,13 @@ export default function NoteIcon() { setIcon(note?.getIcon()); }, [ note, iconClass, workspaceIconClass ]); + const isDisabled = viewScope?.viewMode !== "default" + || (note?.noteId && isLaunchBarConfig(note.noteId)) + || note?.noteId?.startsWith("_help_") + || note?.noteId?.startsWith("_options"); + if (isMobile()) { - return ; + return ; } return ( @@ -55,16 +60,17 @@ export default function NoteIcon() { dropdownOptions={{ autoClose: "outside" }} buttonClassName={`note-icon tn-focusable-button ${icon ?? "bx bx-empty"}`} hideToggleArrow - disabled={viewScope?.viewMode !== "default"} + disabled={isDisabled} > { note && dropdownRef?.current?.hide()} columnCount={12} /> } ); } -function MobileNoteIconSwitcher({ note, icon }: { +function MobileNoteIconSwitcher({ note, icon, disabled }: { note: FNote | null | undefined; icon: string | null | undefined; + disabled?: boolean; }) { const [ modalShown, setModalShown ] = useState(false); const { windowWidth } = useWindowSize(); @@ -76,6 +82,7 @@ function MobileNoteIconSwitcher({ note, icon }: { icon={icon ?? "bx bx-empty"} text={t("note_icon.change_note_icon")} onClick={() => setModalShown(true)} + disabled={disabled} /> {createPortal((