chore(react/note_icon): reintroduce read-only

This commit is contained in:
Elian Doran
2025-08-21 15:14:19 +03:00
parent b213453062
commit b1449eebf3
3 changed files with 6 additions and 9 deletions

View File

@@ -26,13 +26,7 @@ export default class NoteIconWidget extends NoteContextAwareWidget {
}
});
}
async refreshWithNote(note: FNote) {
this.$icon.removeClass().addClass(`${note.getIcon()} note-icon`);
this.$icon.prop("disabled", !!(this.noteContext?.viewScope?.viewMode !== "default"));
this.dropdown.hide();
}
async entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) {
if (this.noteId && loadResults.isNoteReloaded(this.noteId)) {
this.refresh();

View File

@@ -25,7 +25,7 @@ let fullIconData: {
let iconToCountCache!: Promise<IconToCountCache> | null;
export default function NoteIcon() {
const { note } = useNoteContext();
const { note, viewScope } = useNoteContext();
const [ icon, setIcon ] = useState("bx bx-empty");
const refreshIcon = useCallback(() => {
@@ -43,6 +43,7 @@ export default function NoteIcon() {
dropdownContainerStyle={{ width: "610px" }}
buttonClassName={`note-icon ${icon}`}
hideToggleArrow
disabled={viewScope?.viewMode !== "default"}
>
<NoteIconList />
</Dropdown>

View File

@@ -12,9 +12,10 @@ interface DropdownProps {
title?: string;
dropdownContainerStyle?: CSSProperties;
hideToggleArrow?: boolean;
disabled?: boolean;
}
export default function Dropdown({ className, buttonClassName, isStatic, children, title, dropdownContainerStyle, hideToggleArrow }: DropdownProps) {
export default function Dropdown({ className, buttonClassName, isStatic, children, title, dropdownContainerStyle, hideToggleArrow, disabled }: DropdownProps) {
const dropdownRef = useRef<HTMLDivElement | null>(null);
const triggerRef = useRef<HTMLButtonElement | null>(null);
@@ -63,6 +64,7 @@ export default function Dropdown({ className, buttonClassName, isStatic, childre
aria-expanded="false"
title={title}
id={ariaId}
disabled={disabled}
/>
<div