From 0a4f91c1e096d44b0f4ff0f10a799c128d7bb56a Mon Sep 17 00:00:00 2001 From: Vinicius Souza Date: Fri, 1 Nov 2024 11:24:08 -0300 Subject: [PATCH] feat: fetch exercises for selected group --- src/screens/Home.tsx | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/screens/Home.tsx b/src/screens/Home.tsx index 7e784f4..d3b29d2 100644 --- a/src/screens/Home.tsx +++ b/src/screens/Home.tsx @@ -1,6 +1,6 @@ -import { useEffect, useState } from 'react'; +import { useCallback, useEffect, useState } from 'react'; import { FlatList } from 'react-native'; -import { useNavigation } from '@react-navigation/native'; +import { useFocusEffect, useNavigation } from '@react-navigation/native'; import { Heading, HStack, Text, useToast, VStack } from '@gluestack-ui/themed'; import { AppNavigatorRoutesProps } from '@routes/app.routes'; @@ -31,10 +31,29 @@ export function Home() { setGroups(response.data); } catch (error) { const isAppError = error instanceof AppError; - const title = isAppError ? error.message : 'Não foi possível carregar os grupos musculares'; + const title = isAppError ? error.message : 'Não foi possível carregar os grupos musculares.'; toast.show({ placement: 'top', - render: ({ id }) => toast.close(id)} />, + render: ({ id }) => ( + toast.close(id)} /> + ), + }); + } + } + + async function fetchExercisesForGroup(group: string) { + try { + const response = await api.get(`/exercises/bygroup/${selectedGroup}`); + console.debug(response.data); + // setGroups(response.data); + } catch (error) { + const isAppError = error instanceof AppError; + const title = isAppError ? error.message : 'Não foi possível carregar os exercícios.'; + toast.show({ + placement: 'top', + render: ({ id }) => ( + toast.close(id)} /> + ), }); } } @@ -43,6 +62,12 @@ export function Home() { fetchGroups(); }); + useFocusEffect( + useCallback(() => { + fetchExercisesForGroup(selectedGroup); + }, [selectedGroup]), + ); + return (