Skip to content

Commit

Permalink
Added reload on home page
Browse files Browse the repository at this point in the history
  • Loading branch information
ChrisWoolson committed Dec 4, 2024
1 parent 3509b5b commit b628506
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 7 deletions.
6 changes: 3 additions & 3 deletions project/.expo/types/router.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ export * from 'expo-router';
declare module 'expo-router' {
export namespace ExpoRouter {
export interface __routes<T extends string | object = string> {
hrefInputParams: { pathname: Router.RelativePathString, params?: Router.UnknownInputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownInputParams } | { pathname: `/_sitemap`; params?: Router.UnknownInputParams; } | { pathname: `${'/(auth)'}/Register` | `/Register`; params?: Router.UnknownInputParams; } | { pathname: `${'/(auth)'}/SignIn` | `/SignIn`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Home` | `/Home`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Search` | `/Search`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Stats` | `/Stats`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Workout` | `/Workout`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile/edit` | `/Profile/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile` | `/Profile`; params?: Router.UnknownInputParams; } | { pathname: `/+not-found`, params: Router.UnknownInputParams & { } };
hrefOutputParams: { pathname: Router.RelativePathString, params?: Router.UnknownOutputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownOutputParams } | { pathname: `/_sitemap`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(auth)'}/Register` | `/Register`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(auth)'}/SignIn` | `/SignIn`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Home` | `/Home`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Search` | `/Search`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Stats` | `/Stats`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Workout` | `/Workout`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Profile/edit` | `/Profile/edit`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Profile` | `/Profile`; params?: Router.UnknownOutputParams; } | { pathname: `/+not-found`, params: Router.UnknownOutputParams & { } };
href: Router.RelativePathString | Router.ExternalPathString | `/_sitemap${`?${string}` | `#${string}` | ''}` | `${'/(auth)'}/Register${`?${string}` | `#${string}` | ''}` | `/Register${`?${string}` | `#${string}` | ''}` | `${'/(auth)'}/SignIn${`?${string}` | `#${string}` | ''}` | `/SignIn${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Home${`?${string}` | `#${string}` | ''}` | `/Home${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Search${`?${string}` | `#${string}` | ''}` | `/Search${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Stats${`?${string}` | `#${string}` | ''}` | `/Stats${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Workout${`?${string}` | `#${string}` | ''}` | `/Workout${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Profile/edit${`?${string}` | `#${string}` | ''}` | `/Profile/edit${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Profile${`?${string}` | `#${string}` | ''}` | `/Profile${`?${string}` | `#${string}` | ''}` | { pathname: Router.RelativePathString, params?: Router.UnknownInputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownInputParams } | { pathname: `/_sitemap`; params?: Router.UnknownInputParams; } | { pathname: `${'/(auth)'}/Register` | `/Register`; params?: Router.UnknownInputParams; } | { pathname: `${'/(auth)'}/SignIn` | `/SignIn`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Home` | `/Home`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Search` | `/Search`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Stats` | `/Stats`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Workout` | `/Workout`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile/edit` | `/Profile/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile` | `/Profile`; params?: Router.UnknownInputParams; } | `/+not-found` | { pathname: `/+not-found`, params: Router.UnknownInputParams & { } };
hrefInputParams: { pathname: Router.RelativePathString, params?: Router.UnknownInputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownInputParams } | { pathname: `/_sitemap`; params?: Router.UnknownInputParams; } | { pathname: `${'/(auth)'}/Register` | `/Register`; params?: Router.UnknownInputParams; } | { pathname: `${'/(auth)'}/SignIn` | `/SignIn`; params?: Router.UnknownInputParams; } | { pathname: `${'/(auth)'}/UserInfo` | `/UserInfo`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Home` | `/Home`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Search` | `/Search`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Stats` | `/Stats`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Workout` | `/Workout`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile/edit` | `/Profile/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile/followers` | `/Profile/followers`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile/following` | `/Profile/following`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile` | `/Profile`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile/requests` | `/Profile/requests`; params?: Router.UnknownInputParams; } | { pathname: `/+not-found`, params: Router.UnknownInputParams & { } };
hrefOutputParams: { pathname: Router.RelativePathString, params?: Router.UnknownOutputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownOutputParams } | { pathname: `/_sitemap`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(auth)'}/Register` | `/Register`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(auth)'}/SignIn` | `/SignIn`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(auth)'}/UserInfo` | `/UserInfo`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Home` | `/Home`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Search` | `/Search`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Stats` | `/Stats`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Workout` | `/Workout`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Profile/edit` | `/Profile/edit`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Profile/followers` | `/Profile/followers`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Profile/following` | `/Profile/following`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Profile` | `/Profile`; params?: Router.UnknownOutputParams; } | { pathname: `${'/(tabs)'}/Profile/requests` | `/Profile/requests`; params?: Router.UnknownOutputParams; } | { pathname: `/+not-found`, params: Router.UnknownOutputParams & { } };
href: Router.RelativePathString | Router.ExternalPathString | `/_sitemap${`?${string}` | `#${string}` | ''}` | `${'/(auth)'}/Register${`?${string}` | `#${string}` | ''}` | `/Register${`?${string}` | `#${string}` | ''}` | `${'/(auth)'}/SignIn${`?${string}` | `#${string}` | ''}` | `/SignIn${`?${string}` | `#${string}` | ''}` | `${'/(auth)'}/UserInfo${`?${string}` | `#${string}` | ''}` | `/UserInfo${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Home${`?${string}` | `#${string}` | ''}` | `/Home${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Search${`?${string}` | `#${string}` | ''}` | `/Search${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Stats${`?${string}` | `#${string}` | ''}` | `/Stats${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Workout${`?${string}` | `#${string}` | ''}` | `/Workout${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Profile/edit${`?${string}` | `#${string}` | ''}` | `/Profile/edit${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Profile/followers${`?${string}` | `#${string}` | ''}` | `/Profile/followers${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Profile/following${`?${string}` | `#${string}` | ''}` | `/Profile/following${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Profile${`?${string}` | `#${string}` | ''}` | `/Profile${`?${string}` | `#${string}` | ''}` | `${'/(tabs)'}/Profile/requests${`?${string}` | `#${string}` | ''}` | `/Profile/requests${`?${string}` | `#${string}` | ''}` | { pathname: Router.RelativePathString, params?: Router.UnknownInputParams } | { pathname: Router.ExternalPathString, params?: Router.UnknownInputParams } | { pathname: `/_sitemap`; params?: Router.UnknownInputParams; } | { pathname: `${'/(auth)'}/Register` | `/Register`; params?: Router.UnknownInputParams; } | { pathname: `${'/(auth)'}/SignIn` | `/SignIn`; params?: Router.UnknownInputParams; } | { pathname: `${'/(auth)'}/UserInfo` | `/UserInfo`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Home` | `/Home`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Search` | `/Search`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Stats` | `/Stats`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Workout` | `/Workout`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile/edit` | `/Profile/edit`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile/followers` | `/Profile/followers`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile/following` | `/Profile/following`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile` | `/Profile`; params?: Router.UnknownInputParams; } | { pathname: `${'/(tabs)'}/Profile/requests` | `/Profile/requests`; params?: Router.UnknownInputParams; } | `/+not-found` | { pathname: `/+not-found`, params: Router.UnknownInputParams & { } };
}
}
}
23 changes: 20 additions & 3 deletions project/app/(tabs)/Home.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
Modal,
Dimensions,
StatusBar,
RefreshControl,
} from "react-native";
import { SafeAreaView } from "react-native-safe-area-context";
import { ActivityIndicator } from "react-native";
Expand All @@ -37,14 +38,17 @@ interface NavbarProps {

const Home = () => {
const [posts, setPosts] = useState<WorkoutLog[]>([]);
const [refreshing, setRefreshing] = useState(false);
const [newPost, setNewPost] = useState({
exercise: "",
duration: "",
});
const [modalVisible, setModalVisible] = useState(false);

useEffect(() => {
const loadPosts = async () => {
loadPosts();
}, []);
const loadPosts = async () => {
try {
const recentWorkouts = await getAllUsersRecentWorkouts();
const postsArray = Object.values(recentWorkouts as WorkoutLog[]);
Expand All @@ -54,8 +58,13 @@ const Home = () => {
console.error("Failed to load posts", error);
}
};
loadPosts();
}, []);

const handleRefresh = async () => {
setRefreshing(true); // Start the refreshing animation

await loadPosts()
setRefreshing(false); // Stop the refreshing animation
};

useEffect(() => {
const savePosts = async () => {
Expand Down Expand Up @@ -190,6 +199,14 @@ const Home = () => {
renderItem={renderPost}
keyExtractor={(item) => uuid()}
style={[styles.workoutList, { paddingTop: 10 }]}
refreshControl={
<RefreshControl
refreshing={refreshing}
onRefresh={handleRefresh}
colors={["#ffd33d"]} // Customize spinner color (Android)
tintColor="#ffd33d" // Customize spinner color (iOS)
/>
}
/>
) : (
<View style={styles.loadingContainer}>
Expand Down
1 change: 0 additions & 1 deletion project/serviceFiles/postsDatabaseService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@ export const getWorkouts = async (userId: string): Promise<WorkoutLog[]> => {
})), // Ensures exercises are mapped correctly
userId: doc.data().userId,
} as WorkoutLog));
console.log("Fetched workouts:", JSON.stringify(workouts, null, 2)); // Debug log delete later
return workouts; //delete later
} catch (e) {
console.error("Error getting workouts", e);
Expand Down

0 comments on commit b628506

Please # to comment.