mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01:00 
			
		
		
		
	fix(react/note_title): not refreshing on protected session
This commit is contained in:
		
							parent
							
								
									be576176c5
								
							
						
					
					
						commit
						033e90f8b7
					
				@ -23,7 +23,7 @@ export default function NoteTitleWidget() {
 | 
			
		||||
            || isLaunchBarConfig(note.noteId)
 | 
			
		||||
            || viewScope?.viewMode !== "default";
 | 
			
		||||
        setReadOnly(isReadOnly);
 | 
			
		||||
    }, [ note?.noteId, note?.isProtected, viewScope?.viewMode ]);
 | 
			
		||||
    }, [ note, note?.noteId, note?.isProtected, viewScope?.viewMode ]);
 | 
			
		||||
 | 
			
		||||
    useEffect(() => {
 | 
			
		||||
        if (isReadOnly) {
 | 
			
		||||
 | 
			
		||||
@ -9,6 +9,7 @@ import Component from "../../components/component";
 | 
			
		||||
import NoteContext from "../../components/note_context";
 | 
			
		||||
import { ReactWrappedWidget } from "../basic_widget";
 | 
			
		||||
import FNote from "../../entities/fnote";
 | 
			
		||||
import froca from "../../services/froca";
 | 
			
		||||
 | 
			
		||||
type TriliumEventHandler<T extends EventNames> = (data: EventData<T>) => void;
 | 
			
		||||
const registeredHandlers: Map<Component, Map<EventNames, TriliumEventHandler<any>[]>> = new Map();
 | 
			
		||||
@ -233,6 +234,11 @@ export function useNoteContext() {
 | 
			
		||||
 | 
			
		||||
    const [ noteContext, setNoteContext ] = useState<NoteContext>();
 | 
			
		||||
    const [ notePath, setNotePath ] = useState<string | null | undefined>();
 | 
			
		||||
    const [ note, setNote ] = useState<FNote | null | undefined>(); 
 | 
			
		||||
 | 
			
		||||
    useEffect(() => {
 | 
			
		||||
        setNote(noteContext?.note);
 | 
			
		||||
    }, [ notePath ]);
 | 
			
		||||
 | 
			
		||||
    useTriliumEventBeta("activeContextChanged", ({ noteContext }) => {
 | 
			
		||||
        setNoteContext(noteContext);
 | 
			
		||||
@ -250,11 +256,14 @@ export function useNoteContext() {
 | 
			
		||||
        console.warn("Note switched", notePath);
 | 
			
		||||
        setNotePath(notePath);
 | 
			
		||||
    });
 | 
			
		||||
    useTriliumEventBeta("frocaReloaded", () => {
 | 
			
		||||
        setNote(noteContext?.note);
 | 
			
		||||
    });
 | 
			
		||||
    
 | 
			
		||||
    const parentComponent = useContext(ParentComponent) as ReactWrappedWidget;
 | 
			
		||||
 | 
			
		||||
    return {
 | 
			
		||||
        note: noteContext?.note,
 | 
			
		||||
        note: note,
 | 
			
		||||
        noteId: noteContext?.note?.noteId,
 | 
			
		||||
        notePath: noteContext?.notePath,
 | 
			
		||||
        hoistedNoteId: noteContext?.hoistedNoteId,
 | 
			
		||||
@ -280,16 +289,17 @@ export function useNoteProperty<T extends keyof FNote>(note: FNote | null | unde
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const [ value, setValue ] = useState<FNote[T]>(note[property]);
 | 
			
		||||
    const refreshValue = () => setValue(note[property]);
 | 
			
		||||
 | 
			
		||||
    // Watch for note changes.
 | 
			
		||||
    useEffect(() => setValue(note[property]), [ note[property] ]);
 | 
			
		||||
    useEffect(() => refreshValue(), [ note, note[property] ]);
 | 
			
		||||
 | 
			
		||||
    // Watch for external changes.
 | 
			
		||||
    useTriliumEventBeta("entitiesReloaded", ({ loadResults }) => {
 | 
			
		||||
        if (loadResults.isNoteReloaded(note.noteId, componentId)) {
 | 
			
		||||
            setValue(note[property]);
 | 
			
		||||
            refreshValue();
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    return value;
 | 
			
		||||
    return note[property];
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user