client: allow the isNoteReadOnly hook operate on a note and context other of the current one

This commit is contained in:
Adorian Doran 2025-11-06 07:48:11 +02:00
parent 914fa3625f
commit 4fdb502a19
3 changed files with 5 additions and 6 deletions

View file

@ -101,7 +101,7 @@ function ToggleReadOnlyButton({ note, viewType, isDefaultViewMode }: FloatingBut
function EditButton({ note, noteContext, isDefaultViewMode }: FloatingButtonContext) {
const [animationClass, setAnimationClass] = useState("");
const {isReadOnly, enableEditing} = useIsNoteReadOnly();
const {isReadOnly, enableEditing} = useIsNoteReadOnly(note, noteContext);
// make the edit button stand out on the first display, otherwise
// it's difficult to notice that the note is readonly

View file

@ -707,9 +707,8 @@ export function useResizeObserver(ref: RefObject<HTMLElement>, callback: () => v
* Indicates that the current note is in read-only mode, while an editing mode is available,
* and provides a way to switch to editing mode.
*/
export function useIsNoteReadOnly() {
const {note, noteContext} = useNoteContext();
const [isReadOnly, setIsReadOnly] = useState(false);
export function useIsNoteReadOnly(note: FNote | null | undefined, noteContext: NoteContext | undefined) {
const [isReadOnly, setIsReadOnly] = useState<boolean | undefined>(undefined);
const enableEditing = useCallback(() => {
if (noteContext?.viewScope) {

View file

@ -4,8 +4,8 @@ import { useIsNoteReadOnly, useNoteContext, useTriliumEvent } from "./react/hook
import Button from "./react/Button";
export default function ReadOnlyNoteInfoBar(props: {zenModeOnly?: boolean}) {
const {isReadOnly, enableEditing} = useIsNoteReadOnly();
const {note} = useNoteContext();
const {note, noteContext} = useNoteContext();
const {isReadOnly, enableEditing} = useIsNoteReadOnly(note, noteContext);
return <div class={`read-only-note-info-bar-widget ${(isReadOnly) ? "visible" : ""} ${(props.zenModeOnly) ? "zen-mode-only" : ""}`}>
{isReadOnly && <>