Remove refreshing logic from Exercises and Home
Working with the SQLite DB should be so fast that these loaders will be pointless.
This commit is contained in:
parent
8d4c075677
commit
dd33c1144e
|
@ -10,11 +10,9 @@ export default function Exercises({
|
||||||
navigation,
|
navigation,
|
||||||
}: NativeStackScreenProps<RootStackParamList, 'Exercises'>) {
|
}: NativeStackScreenProps<RootStackParamList, 'Exercises'>) {
|
||||||
const [exercises, setExercises] = useState<Exercise[]>([]);
|
const [exercises, setExercises] = useState<Exercise[]>([]);
|
||||||
const [refreshing, setRefreshing] = useState(false);
|
|
||||||
const [search, setSearch] = useState('');
|
const [search, setSearch] = useState('');
|
||||||
|
|
||||||
const refresh = async () => {
|
const refresh = async () => {
|
||||||
setRefreshing(true);
|
|
||||||
const db = await getDb();
|
const db = await getDb();
|
||||||
const [result] = await db.executeSql(
|
const [result] = await db.executeSql(
|
||||||
`SELECT name, reps, unit, MAX(weight) AS weight
|
`SELECT name, reps, unit, MAX(weight) AS weight
|
||||||
|
@ -23,7 +21,6 @@ export default function Exercises({
|
||||||
GROUP BY name;`,
|
GROUP BY name;`,
|
||||||
[`%${search}%`],
|
[`%${search}%`],
|
||||||
);
|
);
|
||||||
setRefreshing(false);
|
|
||||||
if (!result) return setExercises([]);
|
if (!result) return setExercises([]);
|
||||||
setExercises(result.rows.raw());
|
setExercises(result.rows.raw());
|
||||||
};
|
};
|
||||||
|
@ -44,12 +41,7 @@ export default function Exercises({
|
||||||
return (
|
return (
|
||||||
<View style={styles.container}>
|
<View style={styles.container}>
|
||||||
<Searchbar placeholder="Search" value={search} onChangeText={setSearch} />
|
<Searchbar placeholder="Search" value={search} onChangeText={setSearch} />
|
||||||
<FlatList
|
<FlatList renderItem={renderItem} data={exercises} />
|
||||||
onRefresh={refresh}
|
|
||||||
refreshing={refreshing}
|
|
||||||
renderItem={renderItem}
|
|
||||||
data={exercises}
|
|
||||||
/>
|
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
9
Home.tsx
9
Home.tsx
|
@ -7,7 +7,7 @@ import {
|
||||||
StyleSheet,
|
StyleSheet,
|
||||||
View,
|
View,
|
||||||
} from 'react-native';
|
} from 'react-native';
|
||||||
import {List, Searchbar, TextInput} from 'react-native-paper';
|
import {List, Searchbar} from 'react-native-paper';
|
||||||
import Alarm from './Alarm';
|
import Alarm from './Alarm';
|
||||||
import {getDb} from './db';
|
import {getDb} from './db';
|
||||||
import EditSet from './EditSet';
|
import EditSet from './EditSet';
|
||||||
|
@ -20,18 +20,15 @@ export default function Home() {
|
||||||
const [sets, setSets] = useState<Set[]>();
|
const [sets, setSets] = useState<Set[]>();
|
||||||
const [id, setId] = useState<number>();
|
const [id, setId] = useState<number>();
|
||||||
const [offset, setOffset] = useState(0);
|
const [offset, setOffset] = useState(0);
|
||||||
const [refreshing, setRefreshing] = useState(false);
|
|
||||||
const [showEdit, setShowEdit] = useState(false);
|
const [showEdit, setShowEdit] = useState(false);
|
||||||
const [search, setSearch] = useState('');
|
const [search, setSearch] = useState('');
|
||||||
|
|
||||||
const refresh = async () => {
|
const refresh = async () => {
|
||||||
setRefreshing(true);
|
|
||||||
const db = await getDb();
|
const db = await getDb();
|
||||||
const [result] = await db.executeSql(
|
const [result] = await db.executeSql(
|
||||||
`SELECT * from sets WHERE name LIKE ? ORDER BY created DESC LIMIT ? OFFSET ?`,
|
`SELECT * from sets WHERE name LIKE ? ORDER BY created DESC LIMIT ? OFFSET ?`,
|
||||||
[`%${search}%`, limit, 0],
|
[`%${search}%`, limit, 0],
|
||||||
);
|
);
|
||||||
setRefreshing(false);
|
|
||||||
if (!result) return setSets([]);
|
if (!result) return setSets([]);
|
||||||
setSets(result.rows.raw());
|
setSets(result.rows.raw());
|
||||||
setOffset(0);
|
setOffset(0);
|
||||||
|
@ -68,13 +65,11 @@ export default function Home() {
|
||||||
|
|
||||||
const next = async () => {
|
const next = async () => {
|
||||||
const newOffset = offset + limit;
|
const newOffset = offset + limit;
|
||||||
setRefreshing(true);
|
|
||||||
const db = await getDb();
|
const db = await getDb();
|
||||||
const [result] = await db.executeSql(
|
const [result] = await db.executeSql(
|
||||||
`SELECT * from sets WHERE name LIKE ? LIMIT ? OFFSET ?`,
|
`SELECT * from sets WHERE name LIKE ? LIMIT ? OFFSET ?`,
|
||||||
[`%${search}%`, limit, newOffset],
|
[`%${search}%`, limit, newOffset],
|
||||||
);
|
);
|
||||||
setRefreshing(false);
|
|
||||||
if (!result) return;
|
if (!result) return;
|
||||||
if (!sets) return;
|
if (!sets) return;
|
||||||
setSets([...sets, ...result.rows.raw()]);
|
setSets([...sets, ...result.rows.raw()]);
|
||||||
|
@ -89,8 +84,6 @@ export default function Home() {
|
||||||
data={sets}
|
data={sets}
|
||||||
renderItem={renderItem}
|
renderItem={renderItem}
|
||||||
keyExtractor={set => set.id.toString()}
|
keyExtractor={set => set.id.toString()}
|
||||||
onRefresh={refresh}
|
|
||||||
refreshing={refreshing}
|
|
||||||
onScrollEndDrag={next}
|
onScrollEndDrag={next}
|
||||||
/>
|
/>
|
||||||
<View style={styles.bottom}>
|
<View style={styles.bottom}>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user