From 5879b502cea5b01fa112681c81625372c76041af Mon Sep 17 00:00:00 2001 From: Vincent BRIDIER Date: Thu, 29 Dec 2022 12:44:26 +0100 Subject: [PATCH] save tmp clean + HomeBtns, Directories + PDF OK --- ComApp/src/App.js | 19 +++++-------- ComApp/src/App/Store/Reducers/AppReducer.js | 9 +++++++ ComApp/src/App/Store/Reducers/directories.js | 12 ++++++--- ComApp/src/App/Store/Reducers/documents.js | 5 +--- ComApp/src/App/Views/ContactScreen.js | 1 - ComApp/src/App/Views/DirectoriesScreen.js | 6 ++++- ComApp/src/App/Views/HomeScreen.js | 28 +++++++++++++++----- ComApp/src/App/Views/PDFScreen.js | 6 ++--- ComApp/src/App/Views/SearchScreen.js | 2 +- ComApp/src/App/Views/SyncScreen.js | 5 ---- 10 files changed, 57 insertions(+), 36 deletions(-) diff --git a/ComApp/src/App.js b/ComApp/src/App.js index a0b8c6e..8eb3684 100644 --- a/ComApp/src/App.js +++ b/ComApp/src/App.js @@ -18,23 +18,18 @@ import SyncController from './App/Controllers/SyncController'; // Views import InstallScreen from './App/Views/InstallScreen'; import LoginScreen from './App/Views/LoginScreen'; - +import SyncScreen from './App/Views/SyncScreen'; +import HomeScreen from './App/Views/HomeScreen'; +import DirectoriesScreen from './App/Views/DirectoriesScreen'; +import PDFScreen from './App/Views/PDFScreen'; import OnlyVideosScreen from './App/Views/OnlyVideosScreen'; import ContactScreen from './App/Views/ContactScreen'; import ContactDetailsScreen from './App/Views/ContactDetailsScreen'; +import SearchScreen from "./App/Views/SearchScreen"; +import MySpaceScreen from './App/Views/MySpaceScreen'; // END V2 -import SyncScreen from './App/Views/SyncScreen'; -import HomeScreen from './App/Views/HomeScreen'; - - -import DirectoriesScreen from './Views/Directories'; import VideoScreen from './Views/Video'; -import PDFScreen from './Views/PDF'; - - -import SearchScreen from "./Views/Search"; -import MySpaceScreen from './Views/MySpace'; // V2 //SplashScreen.preventAutoHideAsync(); //Keep @@ -252,7 +247,7 @@ class App extends React.Component { { - const folder = store.getState().directories.filter(tmp => tmp.id === 1); + const folder = store.getState().directories.treeview.filter(tmp => tmp.id === 1); navigation.navigation.navigate('DirectoriesScreen', { folder: folder }) }} style={{ marginRight: 15 }}> diff --git a/ComApp/src/App/Store/Reducers/AppReducer.js b/ComApp/src/App/Store/Reducers/AppReducer.js index b53541e..b2eb8ba 100644 --- a/ComApp/src/App/Store/Reducers/AppReducer.js +++ b/ComApp/src/App/Store/Reducers/AppReducer.js @@ -10,6 +10,7 @@ const initialState = { syncVersion: 0, currentOpenedDoc: {}, ShowIsActive: 0, + HomeBtns: {}, }; const reducer = (state = initialState, action) => { @@ -23,6 +24,14 @@ const reducer = (state = initialState, action) => { isSetup: saved === undefined ? false : saved.value === "true" ? true : false, ShowIsActive: ShowIsActive === undefined ? false : ShowIsActive.value }; + case 'INIT_HOME_BTNS': { + let HomeFolders = Setting.get('HomeFolders'); + let Btns = JSON.parse(HomeFolders.value); + return { + ...state, + HomeBtns: Btns + } + } case 'SET_ISSETUP': Setting.upsert({ key: 'isSetup', value: "true" }); saved = Setting.get('isSetup'); diff --git a/ComApp/src/App/Store/Reducers/directories.js b/ComApp/src/App/Store/Reducers/directories.js index 18b4896..35f40e4 100644 --- a/ComApp/src/App/Store/Reducers/directories.js +++ b/ComApp/src/App/Store/Reducers/directories.js @@ -7,15 +7,21 @@ const initialState = []; const reducer = (state = initialState, action) => { switch (action.type) { case INIT_DIRECTORIES: { - return [ + return { ...state, - Directory.getAll( + global: Directory.getAll( + action.user.role, + action.user.authorizedFolders, + false, + action.lang + ), + treeview: Directory.getAll( action.user.role, action.user.authorizedFolders, true, action.lang ) - ]; + } } default: { diff --git a/ComApp/src/App/Store/Reducers/documents.js b/ComApp/src/App/Store/Reducers/documents.js index bdffa12..09fef74 100644 --- a/ComApp/src/App/Store/Reducers/documents.js +++ b/ComApp/src/App/Store/Reducers/documents.js @@ -11,10 +11,7 @@ const reducer = (state = initialState, action) => { if (docs.length === 0) { return state } - return [ - ...state, - docs.filter(item => item.lang === action.lang) - ]; + return docs.filter(item => item.lang === action.lang); } default: { diff --git a/ComApp/src/App/Views/ContactScreen.js b/ComApp/src/App/Views/ContactScreen.js index 32b2ddd..9449517 100644 --- a/ComApp/src/App/Views/ContactScreen.js +++ b/ComApp/src/App/Views/ContactScreen.js @@ -213,7 +213,6 @@ class ContactScreen extends React.Component { } } this.setState({ contacts: this.state.contacts.sort(Helpers.compareValues(field, sort)), sortType: sort, sortField: field }); - //console.log(this.state.contacts[0].name) } HeaderItem() { diff --git a/ComApp/src/App/Views/DirectoriesScreen.js b/ComApp/src/App/Views/DirectoriesScreen.js index 8dcee02..7394e75 100644 --- a/ComApp/src/App/Views/DirectoriesScreen.js +++ b/ComApp/src/App/Views/DirectoriesScreen.js @@ -8,6 +8,7 @@ import { } from 'react-native'; // Redux import { connect } from 'react-redux'; +import { initDocuments } from '../Store/Actions/documents'; // Treeview import TreeView from 'react-native-animated-tree-view'; // Icon @@ -19,7 +20,9 @@ import styles from '../../Resources/Styles/DirectoriesStyle'; function mapStateToProps(state) { return { - documents: state.app.documents, + documents: state.documents, + directories: state.directories, + locale: state.locale.locale, }; } @@ -56,6 +59,7 @@ class DirectoriesScreen extends React.Component { rightImage={{ uri: Image.resolveAssetSource(arrowDown).uri }} containerStyle={styles.treeviewContainer} onClick={folder => { + console.log(folder, this.props.documents) this.setState({ documents: this.props.documents.filter( tmp => tmp.directory === folder.id, diff --git a/ComApp/src/App/Views/HomeScreen.js b/ComApp/src/App/Views/HomeScreen.js index 01940a2..0e1089b 100644 --- a/ComApp/src/App/Views/HomeScreen.js +++ b/ComApp/src/App/Views/HomeScreen.js @@ -16,6 +16,7 @@ import * as FileSystem from 'expo-file-system'; function mapStateToProps(state) { return { + btns: state.app.HomeBtns, directories: state.directories, locale: state.locale.locale, currentUser: state.app.currentUser @@ -25,6 +26,7 @@ function mapStateToProps(state) { const mapDispatchToProps = dispatch => { return { init: () => dispatch({ type: 'INIT' }), + initBtns: () => dispatch({ type: 'INIT_HOME_BTNS' }), initDirectories: (lang, user) => dispatch(initDirectories(lang, user)), initDocuments: (lang, directories) => dispatch(initDocuments(lang, directories)), initContact: currentUser => dispatch(initContact(currentUser)), @@ -35,8 +37,8 @@ class HomeScreen extends React.Component { componentDidMount() { this.props.init(); + this.props.initBtns(); this.props.initDirectories(this.props.locale.value, this.props.currentUser); - this.props.initDocuments(this.props.locale.value, this.props.directories); this.props.initContact(this.props.currentUser); } @@ -45,10 +47,7 @@ class HomeScreen extends React.Component { return ( - this.openFolder(2)} style={styles.button}> - - {i18n.t('global.videos')} - + {this.renderBtns()} this.props.navigation.navigate('OnlyVideosScreen')} style={styles.button}> {i18n.t('global.videos')} @@ -62,8 +61,25 @@ class HomeScreen extends React.Component { ); } + renderBtns() { + let locale = this.props.locale; + let objBtns = this.props.btns; + let array = Object.keys(objBtns).map(function (key) { return objBtns[key]; }); + return array.map((item, index) => { + let names = JSON.parse(item.name); + let name = (locale in names) ? names[locale] : names.fr; + return ( + this.openFolder(item.id)} style={styles.button}> + + {name} + + ) + }); + } + openFolder(id) { - const folder = this.props.directories.filter(tmp => tmp.id === id); + const folder = this.props.directories.treeview.filter(tmp => tmp.id === id); + this.props.initDocuments(this.props.locale, this.props.directories.global); this.props.navigation.navigate('DirectoriesScreen', { folder: folder }); } } diff --git a/ComApp/src/App/Views/PDFScreen.js b/ComApp/src/App/Views/PDFScreen.js index 3765ff8..93450da 100644 --- a/ComApp/src/App/Views/PDFScreen.js +++ b/ComApp/src/App/Views/PDFScreen.js @@ -19,16 +19,16 @@ class PDFScreen extends React.Component { { - console.log(`number of pages: ${numberOfPages}`); + //console.log(`number of pages: ${numberOfPages}`); }} onPageChanged={(page, numberOfPages) => { - console.log(`current page: ${page}`); + //console.log(`current page: ${page}`); }} onError={error => { console.log(error); }} onPressLink={uri => { - console.log(`Link presse: ${uri}`); + //console.log(`Link presse: ${uri}`); }} style={styles.pdf} /> diff --git a/ComApp/src/App/Views/SearchScreen.js b/ComApp/src/App/Views/SearchScreen.js index 8a05510..9e76caa 100644 --- a/ComApp/src/App/Views/SearchScreen.js +++ b/ComApp/src/App/Views/SearchScreen.js @@ -18,7 +18,7 @@ import styles from '../../Resources/Styles/SearchStyle'; function mapStateToProps(state) { return { - documents: state.app.documents, + documents: state.documents, }; } diff --git a/ComApp/src/App/Views/SyncScreen.js b/ComApp/src/App/Views/SyncScreen.js index 9fa8c37..87f07d6 100644 --- a/ComApp/src/App/Views/SyncScreen.js +++ b/ComApp/src/App/Views/SyncScreen.js @@ -3,7 +3,6 @@ import { View, Button, Alert, Text } from 'react-native'; // Redux import { connect } from 'react-redux'; import { initDirectories } from '../Store/Actions/directories'; -import { initDocuments } from '../Store/Actions/documents'; import { initContact } from '../Store/Actions/contacts'; // Style import styles from '../../Resources/Styles/SyncStyle'; @@ -20,10 +19,8 @@ import * as FileSystem from 'expo-file-system'; function mapStateToProps(state) { return { - documents: state.documents, syncVersion: state.app.syncVersion, currentUser: state.app.currentUser, - directories: state.directories, locale: state.locale.locale, }; } @@ -32,7 +29,6 @@ const mapDispatchToProps = dispatch => { return { init: () => dispatch({ type: 'INIT' }), initDirectories: (lang, user) => dispatch(initDirectories(lang, user)), - initDocuments: (lang, directories) => dispatch(initDocuments(lang, directories)), initContact: currentUser => dispatch(initContact(currentUser)), updateVersion: version => dispatch({ type: 'UPDATE_VERSION', @@ -298,7 +294,6 @@ class SyncScreen extends React.Component { finishSync(version) { this.props.init(); this.props.initDirectories(this.props.locale.value, this.props.currentUser); - this.props.initDocuments(this.props.locale.value, this.props.directories); this.props.initContact(this.props.currentUser); SyncController.updateVersion(version);