Skip to content

Commit

Permalink
Mobile: Fixes: #10677: Following a link to a previously open note wou…
Browse files Browse the repository at this point in the history
…ldn't work (#10750)
  • Loading branch information
pedr authored Jul 16, 2024
1 parent 64e4ebb commit 70bfb26
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions packages/app-mobile/components/screens/Note.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -574,18 +574,10 @@ class NoteScreenComponent extends BaseScreenComponent<Props, State> implements B

this.props.dispatch({
type: 'NAV_GO',
routeName: 'Notes',
folderId: this.state.note.parent_id,
routeName: 'Note',
noteId: noteId,
noteHash: noteHash,
});

shim.setTimeout(() => {
this.props.dispatch({
type: 'NAV_GO',
routeName: 'Note',
noteId: noteId,
noteHash: noteHash,
});
}, 5);
}
}

Expand Down Expand Up @@ -1688,6 +1680,16 @@ class NoteScreenComponent extends BaseScreenComponent<Props, State> implements B
}
}

// We added this change to reset the component state when the props.noteId is changed.
// NoteScreenComponent original implementation assumed that noteId would never change,
// which can cause some bugs where previously set state to another note would interfere
// how the new note should be rendered
const NoteScreenWrapper = (props: Props) => {
return (
<NoteScreenComponent key={props.noteId} {...props} />
);
};

const NoteScreen = connect((state: AppState) => {
return {
noteId: state.selectedNoteIds.length ? state.selectedNoteIds[0] : null,
Expand All @@ -1711,6 +1713,6 @@ const NoteScreen = connect((state: AppState) => {
// confusing.
useEditorBeta: !state.settings['editor.usePlainText'],
};
})(NoteScreenComponent);
})(NoteScreenWrapper);

export default NoteScreen;

0 comments on commit 70bfb26

Please sign in to comment.