import React, {useContext, useEffect, useState} from 'react'; import {FlatList, StyleSheet, View} from 'react-native'; import {AnimatedFAB, List, Searchbar} from 'react-native-paper'; import {DatabaseContext} from './App'; import EditPlan from './EditPlan'; import {Plan} from './plan'; import PlanItem from './PlanItem'; export default function Plans() { const [search, setSearch] = useState(''); const [plans, setPlans] = useState([]); const [refreshing, setRefresing] = useState(false); const [plan, setPlan] = useState(); const [showEdit, setShowEdit] = useState(false); const db = useContext(DatabaseContext); const selectPlans = ` SELECT * from plans WHERE days LIKE ? OR workouts LIKE ? `; const getPlans = ({search}: {search: string}) => db.executeSql(selectPlans, [`%${search}%`, `%${search}%`]); const refresh = async () => { const [plansResult] = await getPlans({search}); setPlans(plansResult.rows.raw()); }; useEffect(() => { refresh(); }, [search]); const renderItem = ({item}: {item: Plan}) => ( ); return ( set.id.toString()} refreshing={refreshing} onRefresh={() => { setRefresing(true); refresh().finally(() => setRefresing(false)); }} ListEmptyComponent={ } /> { setPlan(undefined); setShowEdit(true); }} /> ); } const styles = StyleSheet.create({ container: { flexGrow: 1, padding: 10, }, progress: { marginTop: 10, }, });