import React, {useContext, useEffect, useState} from 'react'; import {FlatList, StyleSheet, View} from 'react-native'; import {List, Searchbar} from 'react-native-paper'; import {DatabaseContext} from './App'; import Exercise from './exercise'; export default function BestPage() { const [exercises, setExercises] = useState([]); const [search, setSearch] = useState(''); const [refreshing, setRefresing] = useState(false); const db = useContext(DatabaseContext); const refresh = async () => { const [result] = await db.executeSql( `SELECT name, MAX(reps) as reps, unit, MAX(weight) AS weight FROM sets WHERE name LIKE ? GROUP BY name;`, [`%${search}%`], ); if (!result) return setExercises([]); setExercises(result.rows.raw()); }; useEffect(() => { refresh(); }, [search]); const renderItem = ({item}: {item: Exercise}) => ( ); return ( } refreshing={refreshing} onRefresh={async () => { setRefresing(true); await refresh(); setRefresing(false); }} renderItem={renderItem} data={exercises} /> ); } const styles = StyleSheet.create({ container: { padding: 10, flexGrow: 1, paddingBottom: '10%', }, });