add activity indicator to period details modal and adjust styling to make it visible

This commit is contained in:
lynn-janzen007
2024-10-03 11:27:37 +02:00
parent 5bc6be7849
commit 26ec47bad2
2 changed files with 18 additions and 2 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ LoadingMoreView.propTypes = {
const styles = StyleSheet.create({ const styles = StyleSheet.create({
loadingContainer: { loadingContainer: {
height: '100%', height: 80,
backgroundColor: Colors.turquoiseLight, backgroundColor: Colors.turquoiseLight,
justifyContent: 'center', justifyContent: 'center',
}, },
+17 -1
View File
@@ -1,4 +1,4 @@
import React from 'react' import React, { useState, useEffect } from 'react'
import { FlatList, StyleSheet, View } from 'react-native' import { FlatList, StyleSheet, View } from 'react-native'
import PropTypes from 'prop-types' import PropTypes from 'prop-types'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
@@ -9,6 +9,7 @@ import AppText from '../common/app-text'
import cycleModule from '../../lib/cycle' import cycleModule from '../../lib/cycle'
import { Spacing, Typography, Colors } from '../../styles' import { Spacing, Typography, Colors } from '../../styles'
import { humanizeDate } from '../helpers/format-date' import { humanizeDate } from '../helpers/format-date'
import LoadingMoreView from '../chart/loading-more'
const Item = ({ data }) => { const Item = ({ data }) => {
const { t } = useTranslation(null, { keyPrefix: 'plurals' }) const { t } = useTranslation(null, { keyPrefix: 'plurals' })
@@ -39,21 +40,36 @@ Item.propTypes = {
const PeriodDetailsModal = ({ onClose }) => { const PeriodDetailsModal = ({ onClose }) => {
const renderItem = ({ item }) => <Item data={item} /> const renderItem = ({ item }) => <Item data={item} />
const data = cycleModule().getStats() const data = cycleModule().getStats()
const [endReached, setEndReached] = useState(false)
if (!data || data.length === 0) return false if (!data || data.length === 0) return false
// const ITEM_HEIGHT = 50;
// const getItemLayout = (data, index) => ({
// length: ITEM_HEIGHT,
// offset: ITEM_HEIGHT * index,
// index
// });
return ( return (
<AppModal onClose={onClose}> <AppModal onClose={onClose}>
<View> <View>
<FlatList <FlatList
data={data} data={data}
renderItem={renderItem} renderItem={renderItem}
// getItemLayout={getItemLayout}
keyExtractor={(item) => item.date} keyExtractor={(item) => item.date}
ItemSeparatorComponent={ItemDivider} ItemSeparatorComponent={ItemDivider}
ListHeaderComponent={FlatListHeader} ListHeaderComponent={FlatListHeader}
ListHeaderComponentStyle={styles.headerDivider} ListHeaderComponentStyle={styles.headerDivider}
stickyHeaderIndices={[0]} stickyHeaderIndices={[0]}
windowSize={4}
contentContainerStyle={styles.container} contentContainerStyle={styles.container}
onEndReached={() => setEndReached(true)}
onEndReachedThreshold={0.1}
ListFooterComponent={<LoadingMoreView end={endReached} />}
updateCellsBatchingPeriod={100}
/> />
</View> </View>
</AppModal> </AppModal>