diff --git a/apps/mobile/App.js b/apps/mobile/App.js index 4e52d8a12..e40790227 100644 --- a/apps/mobile/App.js +++ b/apps/mobile/App.js @@ -29,12 +29,10 @@ const App = () => { : require('./index.mobile'); const _onOrientationChange = (o) => { - console.log(o, 'orientation'); let smallTab = DDS.isSmallTab; DDS.setNewValues(); DDS.checkSmallTab(o); if (smallTab === DDS.isSmallTab) { - console.log('nothing changed'); return; } @@ -92,14 +90,11 @@ const App = () => { dispatch({type: Actions.ALL}); }, resetApp = () => { note = getNote(); - console.log(note, 'NOTE BEFORE RELOAD'); setInit(false); Initialize().then(async () => { setInit(true); await sleep(300); - console.log(note, 'NOTE ON RELOAD'); if (note && note.id) { - console.log(note); eSendEvent(eOnLoadNote, note); if (DDS.isPhone || DDS.isSmallTab) { openEditorAnimation(); @@ -147,7 +142,6 @@ const App = () => { user = await db.user.get(); } catch (e) { error = e; - console.log(e, "ERROR IN DB") } finally { if (user) { dispatch({type: Actions.USER, user: user}); diff --git a/apps/mobile/loading.js b/apps/mobile/loading.js index b2db88d8e..fc1ee48a6 100755 --- a/apps/mobile/loading.js +++ b/apps/mobile/loading.js @@ -1,7 +1,5 @@ import React from 'react'; import * as Animatable from 'react-native-animatable'; -import {DialogManager} from './src/components/DialogManager'; -import {Toast} from './src/components/Toast'; import {useTracked} from './src/provider'; import {dWidth} from './src/utils'; import {SIZE, WEIGHT} from "./src/utils/SizeUtils"; diff --git a/apps/mobile/src/components/ActionSheetComponent/index.js b/apps/mobile/src/components/ActionSheetComponent/index.js index 098d3c0e7..d2fb7a4ea 100644 --- a/apps/mobile/src/components/ActionSheetComponent/index.js +++ b/apps/mobile/src/components/ActionSheetComponent/index.js @@ -13,7 +13,7 @@ import Share from 'react-native-share'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; import {useTracked} from '../../provider'; import {Actions} from '../../provider/Actions'; -import {eSendEvent, openVault, ToastEvent} from '../../services/EventManager'; +import {eSendEvent, openVault, sendNoteEditedEvent, ToastEvent} from '../../services/EventManager'; import { eOnNoteEdited, eOpenLoginDialog, @@ -37,6 +37,7 @@ import {opacity, ph, pv, SIZE, WEIGHT} from "../../utils/SizeUtils"; import {db} from "../../utils/DB"; import {DDS} from "../../services/DeviceDetection"; import {MMKV} from "../../utils/MMKV"; +import id from "notes-core/utils/id"; const w = Dimensions.get('window').width; const h = Dimensions.get('window').height; @@ -115,7 +116,6 @@ export const ActionSheetComponent = ({ if (event.nativeEvent.key === 'Backspace') { if (backPressCount === 0 && !tagToAdd) { backPressCount = 1; - return; } if (backPressCount === 1 && !tagToAdd) { @@ -136,17 +136,15 @@ export const ActionSheetComponent = ({ }); } } else if (event.nativeEvent.key === ' ') { - _onSubmit(); + await _onSubmit(); tagsInputRef.current?.setNativeProps({ text: '', }); - return; } else if (event.nativeEvent.key === ',') { - _onSubmit(); + await _onSubmit(); tagsInputRef.current?.setNativeProps({ text: '', }); - return; } }; @@ -341,7 +339,7 @@ export const ActionSheetComponent = ({ await db.notebooks.notebook(note.id).favorite(); } dispatch({type: Actions.FAVORITES}); - eSendEvent(eOnNoteEdited , {id: note.id, noEdit: true}); + sendNoteEditedEvent(note.id, false,true) localRefresh(item.type,true); }, close: false, @@ -365,7 +363,7 @@ export const ActionSheetComponent = ({ db.vault .add(note.id) .then(() => { - eSendEvent(eOnNoteEdited , {id: note.id, noEdit: true}); + sendNoteEditedEvent(note.id, false,true) close(); }) .catch(async (e) => { @@ -398,10 +396,10 @@ export const ActionSheetComponent = ({ await db.notes .note(note.id) .untag(oldProps.tags[oldProps.tags.indexOf(tag)]); - eSendEvent(eOnNoteEdited , {id: note.id, noEdit: true}); + sendNoteEditedEvent(note.id, false,true) dispatch({type: Actions.TAGS}); } catch (e) { - eSendEvent(eOnNoteEdited , {id: note.id, noEdit: true}); + sendNoteEditedEvent(note.id, false,true) } }} style={{ @@ -454,7 +452,7 @@ export const ActionSheetComponent = ({ await db.notes.note(note.id).color(color.name); } dispatch({type: Actions.COLORS}); - eSendEvent(eOnNoteEdited , {id: note.id, noEdit: true}); + sendNoteEditedEvent(note.id, false,true) localRefresh(note.type,true); }} customStyle={{ diff --git a/apps/mobile/src/components/RestoreDialog/index.js b/apps/mobile/src/components/RestoreDialog/index.js index 21652318a..f0e711f66 100644 --- a/apps/mobile/src/components/RestoreDialog/index.js +++ b/apps/mobile/src/components/RestoreDialog/index.js @@ -107,11 +107,11 @@ const RestoreDialog = () => { { customStyle={{ width: 40, height: 40, - position: 'absolute', - textAlignVertical: 'center', + textAlignVertical: 'center', left: 0, }} color={colors.heading} @@ -134,16 +133,13 @@ const RestoreDialog = () => { }}> Choose a Backup + + - - Phone Storage/Notesnook/backups/ - + { - if (data.id !== note.id) { + if (data.id !== note.id || data.closed) { if (editing) { setEditing(false); } return; } - if (editing !== true && !data.noEdit) { + if (!editing && !data.noEdit) { setEditing(true); } + let newNote = db.notes.note(data.id).data; - if (data.closed) { - setEditing(false); + if (!data.noEdit && newNote.title === note.title && newNote.headline === note.headline) { + return; } - setNote(db.notes.note(data.id).data); + setNote(newNote); } useEffect(() => { diff --git a/apps/mobile/src/services/EventManager.js b/apps/mobile/src/services/EventManager.js index eb1686401..c93afe92d 100644 --- a/apps/mobile/src/services/EventManager.js +++ b/apps/mobile/src/services/EventManager.js @@ -1,5 +1,5 @@ import {DeviceEventEmitter} from 'react-native'; -import {eHideToast, eOpenVaultDialog, eShowToast} from '../utils/Events'; +import {eHideToast, eOnNoteEdited, eOpenVaultDialog, eShowToast} from '../utils/Events'; export const eSubscribeEvent = (eventName, action) => { DeviceEventEmitter.addListener(eventName, action); @@ -32,6 +32,12 @@ export const openVault = ( deleteNote, }); }; + +export function sendNoteEditedEvent(id="",closed=false,noEdit=false) { + eSendEvent(eOnNoteEdited , {id,closed, noEdit}); +} + + export const ToastEvent = { show: ( message, diff --git a/apps/mobile/src/views/Editor/Functions.js b/apps/mobile/src/views/Editor/Functions.js index 8e657f7b6..90c13f1da 100644 --- a/apps/mobile/src/views/Editor/Functions.js +++ b/apps/mobile/src/views/Editor/Functions.js @@ -2,7 +2,7 @@ import {createRef} from 'react'; import {Linking, Platform} from 'react-native'; import {updateEvent} from '../../components/DialogManager/recievers'; import {Actions} from '../../provider/Actions'; -import {eSendEvent} from '../../services/EventManager'; +import {eSendEvent, sendNoteEditedEvent} from '../../services/EventManager'; import {eOnNoteEdited, refreshNotesPage} from '../../utils/Events'; import {editing} from '../../utils'; import {sleep, timeConverter} from "../../utils/TimeUtils"; @@ -120,7 +120,7 @@ export async function loadNote(item) { } else { await setNote(item); canSave = false; - eSendEvent(eOnNoteEdited , {id: item.id}); + sendNoteEditedEvent(item.id) await loadNoteInEditor(); } noteEdited = false; @@ -170,7 +170,7 @@ export async function clearEditor() { await saveNote("clearEditor"); } if (note && note.id) { - eSendEvent(eOnNoteEdited , {id: note.id, closed: true}); + sendNoteEditedEvent(note.id,true) } saveCounter = 0; post('reset'); @@ -261,15 +261,17 @@ export async function saveNote(caller) { }, id: id, }); - await setNoteInEditorAfterSaving(id, rId); - if (saveCounter < 3) { + if (!id) { updateEvent({ type: Actions.NOTES, }); eSendEvent(refreshNotesPage); } - eSendEvent(eOnNoteEdited, {id: rId}); + sendNoteEditedEvent(rId) + + await setNoteInEditorAfterSaving(id, rId); + if (id) { await addToCollection(id); diff --git a/apps/mobile/src/views/Home/index.js b/apps/mobile/src/views/Home/index.js index 53452d560..9de2dda65 100755 --- a/apps/mobile/src/views/Home/index.js +++ b/apps/mobile/src/views/Home/index.js @@ -1,6 +1,4 @@ import React, {useCallback, useEffect} from 'react'; -import {Dimensions} from 'react-native'; -import Orientation from 'react-native-orientation'; import {ContainerBottomButton} from '../../components/Container/ContainerBottomButton'; import {Placeholder} from '../../components/ListPlaceholders'; import SimpleList from '../../components/SimpleList'; @@ -12,7 +10,7 @@ import {eOnLoadNote, eScrollEvent} from '../../utils/Events'; import {openEditorAnimation} from '../../utils/Animations'; import {DDS} from "../../services/DeviceDetection"; -export const Home = ({route, navigation}) => { +export const Home = ({navigation}) => { const [state, dispatch] = useTracked(); const {notes} = state;