Guest User

Untitled

a guest
Jun 9th, 2020
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { Component } from 'react';
  2. import { ActivityIndicator, StyleSheet, View } from 'react-native';
  3. import { useFocusEffect } from '@react-navigation/native';
  4.  
  5. import Firebase from './../../Firebase';
  6. import LokalFlatList from '../../components/LokalFlatList';
  7.  
  8. function UpdateLokalListe(refresh) {
  9.     useFocusEffect(
  10.         React.useCallback(() => {
  11.             refresh();
  12.         })
  13.     );
  14.     return null;
  15. }
  16.  
  17. export default class LokaleBearbeitenScreen extends Component {
  18.     state = {
  19.         lokale: [],
  20.         isLoading: true,
  21.     };
  22.  
  23.     _retrieveData = async () => {
  24.         let lokale = [];
  25.         let query = await Firebase.db.collection('lokale').get();
  26.         query.forEach((lokal) => {
  27.             lokale.push({
  28.                 id: lokal.id,
  29.                 name: lokal.data().name,
  30.                 logoURL: lokal.data().logoURL,
  31.                 titelbildURL: lokal.data().titelbildURL,
  32.             });
  33.         });
  34.         this.setState({ lokale, isLoading: false });
  35.     };
  36.  
  37.     _refresh = () => {
  38.         alert('refresh');
  39.         this.setState({ isLoading: true });
  40.         this._retrieveData();
  41.     };
  42.  
  43.     componentDidMount() {
  44.         Firebase.init();
  45.         this._retrieveData();
  46.     }
  47.  
  48.     render() {
  49.         const { navigation } = this.props;
  50.         const { lokale } = this.state;
  51.  
  52.         if (this.state.isLoading) {
  53.             return (
  54.                 <View style={styles.container}>
  55.                     <ActivityIndicator size="large" color="orange" />
  56.                 </View>
  57.             );
  58.         }
  59.  
  60.         return (
  61.             <>
  62.                 <UpdateLokalListe refresh={this._refresh} />
  63.  
  64.                 <LokalFlatList
  65.                     lokale={lokale}
  66.                     onPress={(item) => {
  67.                         navigation.navigate('LokalBearbeiten', {
  68.                             lokal: item,
  69.                         });
  70.                     }}
  71.                     onRefresh={this._refresh}
  72.                     refreshing={this.state.isLoading}
  73.                 />
  74.             </>
  75.         );
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment