You've already forked joplin
							
							
				mirror of
				https://github.com/laurent22/joplin.git
				synced 2025-10-31 00:07:48 +02:00 
			
		
		
		
	This commit is contained in:
		| @@ -245,14 +245,14 @@ class NoteScreenComponent extends BaseScreenComponent<Props, State> implements B | ||||
| 			} | ||||
|  | ||||
| 			if (this.state.fromShare) { | ||||
| 				// effectively the same as NAV_BACK but NAV_BACK causes undesired behaviour in this case: | ||||
| 				// Note: In the past, NAV_BACK caused undesired behaviour in this case: | ||||
| 				// - share to Joplin from some other app | ||||
| 				// - open Joplin and open any note | ||||
| 				// - go back -- with NAV_BACK this causes the app to exit rather than just showing notes | ||||
| 				// This no longer seems to happen, but this case should be checked when adjusting navigation | ||||
| 				// history behavior. | ||||
| 				this.props.dispatch({ | ||||
| 					type: 'NAV_GO', | ||||
| 					routeName: 'Notes', | ||||
| 					folderId: this.state.note.parent_id, | ||||
| 					type: 'NAV_BACK', | ||||
| 				}); | ||||
|  | ||||
| 				ShareExtension.close(); | ||||
|   | ||||
| @@ -107,6 +107,7 @@ | ||||
|     "babel-loader": "9.1.3", | ||||
|     "babel-plugin-module-resolver": "4.1.0", | ||||
|     "babel-plugin-react-native-web": "0.19.12", | ||||
|     "fast-deep-equal": "3.1.3", | ||||
|     "fs-extra": "11.2.0", | ||||
|     "gulp": "4.0.2", | ||||
|     "jest": "29.7.0", | ||||
|   | ||||
| @@ -36,6 +36,7 @@ const DropdownAlert = require('react-native-dropdownalert').default; | ||||
| const AlarmServiceDriver = require('./services/AlarmServiceDriver').default; | ||||
| const SafeAreaView = require('./components/SafeAreaView'); | ||||
| const { connect, Provider } = require('react-redux'); | ||||
| import fastDeepEqual = require('fast-deep-equal'); | ||||
| import { Provider as PaperProvider, MD3DarkTheme, MD3LightTheme } from 'react-native-paper'; | ||||
| import BackButtonService from './services/BackButtonService'; | ||||
| import NavService from '@joplin/lib/services/NavService'; | ||||
| @@ -89,6 +90,8 @@ import JoplinCloudLoginScreen from './components/screens/JoplinCloudLoginScreen' | ||||
|  | ||||
| import SyncTargetNone from '@joplin/lib/SyncTargetNone'; | ||||
|  | ||||
|  | ||||
|  | ||||
| SyncTargetRegistry.addClass(SyncTargetNone); | ||||
| SyncTargetRegistry.addClass(SyncTargetOneDrive); | ||||
| SyncTargetRegistry.addClass(SyncTargetNextcloud); | ||||
| @@ -301,7 +304,18 @@ const appReducer = (state = appDefaultState, action: any) => { | ||||
| 				const currentRoute = state.route; | ||||
|  | ||||
| 				if (!historyGoingBack && historyCanGoBackTo(currentRoute)) { | ||||
| 					navHistory.push(currentRoute); | ||||
| 					const previousRoute = navHistory.length && navHistory[navHistory.length - 1]; | ||||
| 					const isDifferentRoute = !previousRoute || !fastDeepEqual(navHistory[navHistory.length - 1], currentRoute); | ||||
|  | ||||
| 					// Avoid multiple consecutive duplicate screens in the navigation history -- these can make | ||||
| 					// pressing "back" seem to have no effect. | ||||
| 					if (isDifferentRoute) { | ||||
| 						navHistory.push(currentRoute); | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				if (action.clearHistory) { | ||||
| 					navHistory.splice(0, navHistory.length); | ||||
| 				} | ||||
|  | ||||
| 				newState = { ...state }; | ||||
|   | ||||
| @@ -3,6 +3,7 @@ import shim from '@joplin/lib/shim'; | ||||
|  | ||||
| import Note from '@joplin/lib/models/Note'; | ||||
| import checkPermissions from './checkPermissions.js'; | ||||
| import NavService from '@joplin/lib/services/NavService'; | ||||
| const { ToastAndroid } = require('react-native'); | ||||
| const { PermissionsAndroid } = require('react-native'); | ||||
| const { Platform } = require('react-native'); | ||||
| @@ -27,27 +28,21 @@ export default async (sharedData: SharedData, folderId: string, dispatch: Functi | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	const newNote = await Note.save({ | ||||
| 		parent_id: folderId, | ||||
| 	}, { provisional: true }); | ||||
|  | ||||
| 	// This is a bit hacky, but the surest way to go to | ||||
| 	// the needed note. We go back one screen in case there's | ||||
| 	// already a note open - if we don't do this, the dispatch | ||||
| 	// below will do nothing (because routeName wouldn't change) | ||||
| 	// Then we wait a bit for the state to be set correctly, and | ||||
| 	// finally we go to the new note. | ||||
| 	dispatch({ type: 'NAV_BACK' }); | ||||
|  | ||||
| 	await NavService.go('Notes', { folderId, clearHistory: true }); | ||||
| 	dispatch({ type: 'SIDE_MENU_CLOSE' }); | ||||
|  | ||||
| 	const newNote = await Note.save({ | ||||
| 		parent_id: folderId, | ||||
| 	}, { provisional: true }); | ||||
|  | ||||
| 	shim.setTimeout(() => { | ||||
| 		dispatch({ | ||||
| 			type: 'NAV_GO', | ||||
| 			routeName: 'Note', | ||||
| 			noteId: newNote.id, | ||||
| 			sharedData: sharedData, | ||||
| 		}); | ||||
| 	shim.setTimeout(async () => { | ||||
| 		await NavService.go('Note', { noteId: newNote.id, sharedData }); | ||||
|  | ||||
| 		ShareExtension.close(); | ||||
| 	}, 5); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user