This commit is contained in:
ammarahm-ed
2020-01-24 23:13:09 +05:00
parent 5c9b94c04e
commit 7ff66aa4b3
22 changed files with 183 additions and 184 deletions

View File

@@ -21,7 +21,8 @@ import {
SIZE,
WEIGHT,
} from '../../common/common';
import {ACTIONS, useTracked} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import {
moveNoteEvent,
_recieveEvent,

View File

@@ -11,7 +11,7 @@ import {FlatList, TextInput} from 'react-native-gesture-handler';
import Icon from 'react-native-vector-icons/Feather';
import {db, DDS} from '../../../App';
import {opacity, ph, pv, SIZE, WEIGHT} from '../../common/common';
import {ACTIONS} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import {getElevation, ToastEvent} from '../../utils/utils';
import {updateEvent} from '../DialogManager';

View File

@@ -9,7 +9,7 @@ import {
import Icon from 'react-native-vector-icons/Feather';
import {db, DDS} from '../../../App';
import {opacity, ph, pv, SIZE, WEIGHT} from '../../common/common';
import {ACTIONS} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import NavigationService from '../../services/NavigationService';
import {getElevation, ToastEvent} from '../../utils/utils';
import {dialogActions, updateEvent} from '../DialogManager';

View File

@@ -346,6 +346,7 @@ export class DialogManager extends Component {
DDS.isTab
? {
borderRadius: 10,
backgroundColor: colors.bg,
}
: null
}

View File

@@ -1,7 +1,6 @@
import React, {useState, useEffect} from 'react';
import {
ActivityIndicator,
FlatList,
KeyboardAvoidingView,
Platform,
ScrollView,
@@ -21,9 +20,9 @@ import {
SIZE,
WEIGHT,
} from '../../common/common';
import {useTracked, ACTIONS} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import {AnimatedSafeAreaView} from '../../views/Home';
import {VaultDialog} from '../VaultDialog';
import {db} from '../../../App';
import {w} from '../../utils/utils';

View File

@@ -2,10 +2,7 @@ import React from 'react';
import {Modal, DeviceEventEmitter, View, TouchableOpacity} from 'react-native';
import {createAppContainer} from 'react-navigation';
import {createStackNavigator} from 'react-navigation-stack';
import {ACTIONS} from '../../provider';
import Folders from '../../views/Folders';
import Notebook from '../../views/Notebook';
import Notes from '../../views/Notes';
import {ACTIONS} from '../../provider/actions';
import {updateEvent} from '../DialogManager';
import * as Animatable from 'react-native-animatable';
import Login from '../../views/Login';

View File

@@ -21,7 +21,8 @@ import {
SIZE,
WEIGHT,
} from '../../common/common';
import {ACTIONS, useTracked} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import NavigationService from '../../services/NavigationService';
import {AnimatedSafeAreaView} from '../../views/Home';
import {DDS} from '../../../App';

View File

@@ -1,18 +1,7 @@
import React, {Component} from 'react';
import {
Modal,
Text,
TouchableOpacity,
View,
DeviceEventEmitter,
} from 'react-native';
import Icon from 'react-native-vector-icons/Feather';
import {db} from '../../../App';
import {opacity, ph, pv, SIZE, WEIGHT} from '../../common/common';
import {ACTIONS} from '../../provider';
import NavigationService from '../../services/NavigationService';
import {getElevation, ToastEvent, w} from '../../utils/utils';
import {dialogActions, updateEvent} from '../DialogManager';
import {Modal, TouchableOpacity, View, DeviceEventEmitter} from 'react-native';
import {ACTIONS} from '../../provider/actions';
import {getElevation, w} from '../../utils/utils';
import * as Animatable from 'react-native-animatable';
import {Menu} from '../Menu';

View File

@@ -2,7 +2,7 @@ import React from 'react';
import {Modal, DeviceEventEmitter, View, TouchableOpacity} from 'react-native';
import {createAppContainer} from 'react-navigation';
import {createStackNavigator} from 'react-navigation-stack';
import {ACTIONS} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import Folders from '../../views/Folders';
import Notebook from '../../views/Notebook';
import Notes from '../../views/Notes';

View File

@@ -1,7 +1,8 @@
import React, {useEffect} from 'react';
import {FlatList, Platform, SectionList, Text, View} from 'react-native';
import {SIZE, WEIGHT} from '../../common/common';
import {ACTIONS, useTracked} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import {slideLeft, slideRight} from '../../utils/animations';
import {w} from '../../utils/utils';
import {NotesPlaceHolder} from '../ListPlaceholders';

View File

@@ -10,7 +10,8 @@ import {
import * as Animatable from 'react-native-animatable';
import Icon from 'react-native-vector-icons/Feather';
import {SIZE, WEIGHT} from '../../common/common';
import {ACTIONS, useTracked} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import {w} from '../../utils/utils';
export const AnimatedSafeAreaView = Animatable.createAnimatableComponent(

View File

@@ -3,7 +3,8 @@ import {View, TouchableOpacity} from 'react-native';
import {SIZE} from '../../common/common';
import Icon from 'react-native-vector-icons/Feather';
import {w} from '../../utils/utils';
import {useTracked, ACTIONS} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
const SelectionWrapper = ({children, item, currentEditingNote}) => {
const [state, dispatch] = useTracked();

View File

@@ -0,0 +1,15 @@
export const ACTIONS = {
NOTES: 'note',
NOTEBOOKS: 'notebook',
TRASH: 'trash',
TAGS: 'tags',
PINNED: 'pinned',
FAVORITES: 'favorites',
SELECTION_MODE: 'selectionMode',
SELECTED_ITEMS: 'selectedItemsList',
THEME: 'theme',
MODAL_NAVIGATOR: 'modalNavigator',
CLEAR_SELECTION: 'clearSelection',
LOGIN_NAVIGATOR: 'loginNavigator',
CURRENT_EDITING_NOTE: 'currentEditingNote',
};

View File

@@ -0,0 +1,35 @@
export const defaultState = {
isMenuOpen: {
current: false,
},
selectionMode: false,
selectedItemsList: [],
notes: [],
notebooks: [],
trash: [],
favorites: [],
pinned: [],
tags: [],
colors: {
night: false,
bg: 'white',
fg: '#0560FF',
navbg: '#f6fbfc',
nav: '#f0f0f0',
pri: 'black',
sec: 'white',
accent: '#0560FF',
shade: '#0560FF12',
normal: 'black',
icon: 'gray',
errorBg: '#FFD2D2',
errorText: '#D8000C',
successBg: '#DFF2BF',
successText: '#4F8A10',
warningBg: '#FEEFB3',
warningText: '#9F6000',
},
preventDefaultMargins: false,
isLoginNavigator: false,
currenEditingNote: null,
};

View File

@@ -1,154 +1,7 @@
import {useReducer} from 'react';
import {db} from '../../App';
import {createContainer} from 'react-tracked';
import {SideMenuEvent} from '../utils/utils';
const defaultState = {
isMenuOpen: {
current: false,
},
selectionMode: false,
selectedItemsList: [],
notes: [],
notebooks: [],
trash: [],
favorites: [],
pinned: [],
tags: [],
colors: {
night: false,
bg: 'white',
fg: '#0560FF',
navbg: '#f6fbfc',
nav: '#f0f0f0',
pri: 'black',
sec: 'white',
accent: '#0560FF',
shade: '#0560FF12',
normal: 'black',
icon: 'gray',
errorBg: '#FFD2D2',
errorText: '#D8000C',
successBg: '#DFF2BF',
successText: '#4F8A10',
warningBg: '#FEEFB3',
warningText: '#9F6000',
},
preventDefaultMargins: false,
isLoginNavigator: false,
currenEditingNote: null,
};
export const ACTIONS = {
NOTES: 'note',
NOTEBOOKS: 'notebook',
TRASH: 'trash',
TAGS: 'tags',
PINNED: 'pinned',
FAVORITES: 'favorites',
SELECTION_MODE: 'selectionMode',
SELECTED_ITEMS: 'selectedItemsList',
THEME: 'theme',
MODAL_NAVIGATOR: 'modalNavigator',
CLEAR_SELECTION: 'clearSelection',
LOGIN_NAVIGATOR: 'loginNavigator',
CURRENT_EDITING_NOTE: 'currentEditingNote',
};
const reducer = (state, action) => {
switch (action.type) {
case ACTIONS.NOTES:
let notes = db.groupNotes();
return {
...state,
notes: notes,
};
case ACTIONS.THEME: {
return {
...state,
colors: {...action.colors},
};
}
case ACTIONS.NOTEBOOKS: {
let notebooks = [...db.getNotebooks()];
return {
...state,
notebooks: notebooks,
};
}
case ACTIONS.PINNED: {
let pinned = [...db.getPinned()];
return {
...state,
pinned: pinned,
};
}
case ACTIONS.TAGS: {
return {
...state,
};
}
case ACTIONS.FAVORITES: {
let favorites = [...db.getFavorites()];
return {
...state,
favorites: [...favorites],
};
}
case ACTIONS.SELECTION_MODE: {
if (action.enabled) {
SideMenuEvent.disable();
} else {
SideMenuEvent.enable();
}
return {
...state,
selectionMode: action.enabled,
selectedItemsList: [],
};
}
case ACTIONS.SELECTED_ITEMS: {
let selectedItems = [...state.selectedItemsList];
if (selectedItems.includes(action.item)) {
selectedItems.splice(selectedItems.indexOf(action.item), 1);
} else {
selectedItems.push(action.item);
}
console.log(action.item, selectedItems);
return {
...state,
selectedItemsList: selectedItems,
};
}
case ACTIONS.CLEAR_SELECTION: {
return {
...state,
selectedItemsList: [],
};
}
case ACTIONS.MODAL_NAVIGATOR: {
return {
...state,
preventDefaultMargins: action.enabled,
};
}
case ACTIONS.LOGIN_NAVIGATOR: {
return {
...state,
isLoginNavigator: action.enabled,
};
}
case ACTIONS.CURRENT_EDITING_NOTE: {
return {
...state,
currentEditingNote: action.dateCreated,
};
}
default:
throw new Error('unknown action type');
}
};
import {reducer} from './reducer';
import {defaultState} from './defaultState';
const useValue = () => useReducer(reducer, defaultState);

View File

@@ -0,0 +1,99 @@
import {db} from '../../App';
import {SideMenuEvent} from '../utils/utils';
import {ACTIONS} from './actions';
export const reducer = (state, action) => {
switch (action.type) {
case ACTIONS.NOTES:
let notes = db.groupNotes();
return {
...state,
notes: notes,
};
case ACTIONS.THEME: {
return {
...state,
colors: {...action.colors},
};
}
case ACTIONS.NOTEBOOKS: {
let notebooks = [...db.getNotebooks()];
return {
...state,
notebooks: notebooks,
};
}
case ACTIONS.PINNED: {
let pinned = [...db.getPinned()];
return {
...state,
pinned: pinned,
};
}
case ACTIONS.TAGS: {
return {
...state,
};
}
case ACTIONS.FAVORITES: {
let favorites = [...db.getFavorites()];
return {
...state,
favorites: [...favorites],
};
}
case ACTIONS.SELECTION_MODE: {
if (action.enabled) {
SideMenuEvent.disable();
} else {
SideMenuEvent.enable();
}
return {
...state,
selectionMode: action.enabled,
selectedItemsList: [],
};
}
case ACTIONS.SELECTED_ITEMS: {
let selectedItems = [...state.selectedItemsList];
if (selectedItems.includes(action.item)) {
selectedItems.splice(selectedItems.indexOf(action.item), 1);
} else {
selectedItems.push(action.item);
}
console.log(action.item, selectedItems);
return {
...state,
selectedItemsList: selectedItems,
};
}
case ACTIONS.CLEAR_SELECTION: {
return {
...state,
selectedItemsList: [],
};
}
case ACTIONS.MODAL_NAVIGATOR: {
return {
...state,
preventDefaultMargins: action.enabled,
};
}
case ACTIONS.LOGIN_NAVIGATOR: {
return {
...state,
isLoginNavigator: action.enabled,
};
}
case ACTIONS.CURRENT_EDITING_NOTE: {
return {
...state,
currentEditingNote: action.dateCreated,
};
}
default:
throw new Error('unknown action type');
}
};

View File

@@ -24,7 +24,8 @@ import {
_unSubscribeEvent,
TEMPLATE_EXIT_FULLSCREEN,
} from '../../components/DialogManager';
import {useTracked, ACTIONS} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import {SideMenuEvent, w, h} from '../../utils/utils';
import {AnimatedSafeAreaView} from '../Home';

View File

@@ -9,7 +9,8 @@ import {NotebookItem} from '../../components/NotebookItem';
import NoteItem from '../../components/NoteItem';
import {Search} from '../../components/SearchInput';
import SelectionWrapper from '../../components/SelectionWrapper';
import {ACTIONS, useTracked} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
export const Favorites = ({navigation}) => {
// Global State

View File

@@ -11,7 +11,8 @@ import {NotebookItem} from '../../components/NotebookItem';
import {Search} from '../../components/SearchInput';
import SelectionHeader from '../../components/SelectionHeader';
import SelectionWrapper from '../../components/SelectionWrapper';
import {ACTIONS, useTracked} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import {slideLeft, slideRight} from '../../utils/animations';
import {w} from '../../utils/utils';
import {AddNotebookEvent} from '../../components/DialogManager';

View File

@@ -7,7 +7,8 @@ import {Header} from '../../components/header';
import {NotesList} from '../../components/NotesList';
import {Search} from '../../components/SearchInput';
import SelectionHeader from '../../components/SelectionHeader';
import {ACTIONS, useTracked} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import NavigationService from '../../services/NavigationService';
import {SideMenuEvent, ToastEvent} from '../../utils/utils';
import {useIsFocused} from 'react-navigation-hooks';

View File

@@ -22,7 +22,8 @@ import {
} from '../../common/common';
import Container from '../../components/Container';
import {Header} from '../../components/header';
import {useTracked, ACTIONS} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import NavigationService from '../../services/NavigationService';
export const Settings = ({navigation}) => {
const [state, dispatch] = useTracked();

View File

@@ -11,7 +11,8 @@ import {TrashPlaceHolder} from '../../components/ListPlaceholders';
import {NotebookItem} from '../../components/NotebookItem';
import NoteItem from '../../components/NoteItem';
import SelectionHeader from '../../components/SelectionHeader';
import {ACTIONS, useTracked} from '../../provider';
import {useTracked} from '../../provider';
import {ACTIONS} from '../../provider/actions';
import {w} from '../../utils/utils';
export const Trash = ({navigation}) => {