From ce7a5582925a401c384b4637d427275e8ce11a30 Mon Sep 17 00:00:00 2001 From: solderq35 Date: Wed, 13 Mar 2024 21:49:57 -0700 Subject: [PATCH] refresh pulldown --- app/content/drill/index.js | 21 +++++++++++++++++++-- app/content/profile/index.js | 21 +++++++++++++++++++-- app/content/team/index.js | 19 ++++++++++++++++++- yarn.lock | 2 +- 4 files changed, 57 insertions(+), 6 deletions(-) diff --git a/app/content/drill/index.js b/app/content/drill/index.js index ee694946..061395ed 100644 --- a/app/content/drill/index.js +++ b/app/content/drill/index.js @@ -1,8 +1,10 @@ import { Link, useNavigation } from "expo-router"; -import { ScrollView, StyleSheet } from "react-native"; +import { useCallback, useState } from "react"; +import { RefreshControl, ScrollView, StyleSheet } from "react-native"; import { Appbar, List, PaperProvider } from "react-native-paper"; import { SafeAreaView } from "react-native-safe-area-context"; +import { router } from "expo-router"; import ErrorComponent from "~/components/errorComponent"; import Loading from "~/components/loading"; import { useDrillInfo } from "~/hooks/useDrillInfo"; @@ -16,6 +18,16 @@ export default function Index() { isLoading: drillInfoIsLoading, } = useDrillInfo(); + const [refreshing, setRefreshing] = useState(false); + + const onRefresh = useCallback(() => { + setRefreshing(true); + setTimeout(() => { + router.replace("content/drill/"); + setRefreshing(false); + }, 500); + }, []); + if (drillInfoIsLoading) { return ; } @@ -31,7 +43,12 @@ export default function Index() { - + + } + > {Object.values(drillInfo).map((drill) => ( { + setRefreshing(true); + setTimeout(() => { + router.replace("content/profile/"); + setRefreshing(false); + }, 500); + }, []); + // ref const bottomSheetModalRef = useRef(null); @@ -247,7 +259,12 @@ function Index(props) { - + + } + > diff --git a/app/content/team/index.js b/app/content/team/index.js index 283365a1..59b03b9f 100644 --- a/app/content/team/index.js +++ b/app/content/team/index.js @@ -3,11 +3,12 @@ import { BottomSheetModalProvider, } from "@gorhom/bottom-sheet"; import { router } from "expo-router"; -import React, { useCallback, useMemo, useRef } from "react"; +import React, { useCallback, useMemo, useRef, useState } from "react"; import { Image, Keyboard, Pressable, + RefreshControl, TouchableWithoutFeedback, View, } from "react-native"; @@ -51,6 +52,16 @@ function Index() { //console.log("handleSheetChanges", index); }, []); + const [refreshing, setRefreshing] = useState(false); + + const onRefresh = useCallback(() => { + setRefreshing(true); + setTimeout(() => { + router.replace("content/team/"); + setRefreshing(false); + }, 500); + }, []); + if (userIsLoading) return ; if (userError) return ; @@ -93,6 +104,12 @@ function Index() { keyboardShouldPersistTaps="handled" showsVerticalScrollIndicator={false} stickyHeaderIndices={[3]} + refreshControl={ + + } >