Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 0 additions & 39 deletions SparkyFitnessFrontend/src/api/Diary/dailyProgressService.ts

This file was deleted.

2 changes: 1 addition & 1 deletion SparkyFitnessFrontend/src/api/keys/admin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ export const settingsKeys = {

export const userKeys = {
all: ['users'] as const,

list: (filters: { searchTerm: string; sortBy: string; sortOrder: string }) =>
[...userKeys.all, filters] as const,
profile: (userId: string) => [...userKeys.all, 'profile', userId] as const,
avatar: (url: string) => [...userKeys.all, 'profile', 'avatar', url] as const,
};

export const aiServiceKeys = {
Expand Down
2 changes: 2 additions & 0 deletions SparkyFitnessFrontend/src/api/keys/checkin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ export const checkInKeys = {
[...checkInKeys.all, 'mostRecent', type] as const,
customEntries: (categoryId: string, userId?: string) =>
[...checkInKeys.all, 'customEntries', categoryId, userId] as const,
rawStressData: (userId: string, categoryId: string) =>
[...checkInKeys.all, 'rawStressData', userId, categoryId] as const,
};

export const moodKeys = {
Expand Down
5 changes: 2 additions & 3 deletions SparkyFitnessFrontend/src/api/keys/diary.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,7 @@ export const mealTypeKeys = {

export const dailyProgressKeys = {
all: ['dailyProgress'] as const,
goals: (date: string) => [...dailyProgressKeys.all, 'goals', date] as const,
steps: (date: string) => [...dailyProgressKeys.all, 'steps', date] as const,
exercises: (date: string) =>
[...dailyProgressKeys.all, 'exercises', date] as const,
measurements: {
mostRecent: (type: string) =>
[...dailyProgressKeys.all, 'measurements', 'recent', type] as const,
Expand All @@ -20,6 +17,8 @@ export const dailyProgressKeys = {
export const foodEntryKeys = {
all: ['foodEntries'] as const,
byDate: (date: string) => [...foodEntryKeys.all, 'date', date] as const,
foodIntake: (date: string) =>
[...foodEntryKeys.all, 'foodIntake', date] as const,
};

export const foodEntryMealKeys = {
Expand Down
2 changes: 2 additions & 0 deletions SparkyFitnessFrontend/src/api/keys/exercises.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ export const exerciseEntryKeys = {
entryId,
providerName,
] as const,
dailyStats: (date: string) =>
[...exerciseEntryKeys.all, 'dailyStats', date] as const,
};
export const suggestedExercisesKeys = {
all: ['exercises', 'suggested'] as const,
Expand Down
3 changes: 2 additions & 1 deletion SparkyFitnessFrontend/src/api/keys/meals.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ export const providerKeys = {
};

export const mealPlanKeys = {
all: (userId: string) => [userId, 'mealplan'] as const,
all: ['mealPlans'] as const,
byUser: (userId: string) => [...mealPlanKeys.all, userId] as const,
};

export const customNutrientsKeys = {
Expand Down
10 changes: 0 additions & 10 deletions SparkyFitnessFrontend/src/api/keys/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@ export const externalProviderKeys = {
lists: () => [...externalProviderKeys.all, 'list'] as const,
};

export const customCategoryKeys = {
all: ['customCategories'] as const,
lists: () => [...customCategoryKeys.all, 'list'] as const,
};

export const familyAccessKeys = {
all: ['familyAccess'] as const,
lists: () => [...familyAccessKeys.all, 'list'] as const,
Expand All @@ -31,11 +26,6 @@ export const apiKeyKeys = {
lists: () => [...apiKeyKeys.all, 'list'] as const,
};

export const profileKeys = {
all: ['profile'] as const,
avatar: (url: string) => [...profileKeys.all, 'avatar', url] as const,
};

export const preferencesKeys = {
all: ['preferences'] as const,
user: () => [...preferencesKeys.all, 'user'] as const,
Expand Down
10 changes: 7 additions & 3 deletions SparkyFitnessFrontend/src/hooks/CheckIn/useCheckIn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {
getMostRecentMeasurement,
} from '@/api/CheckIn/checkInService';
import { checkInKeys } from '@/api/keys/checkin';
import { dailyProgressKeys } from '@/api/keys/diary';

export const useCustomCategories = (userId?: string) => {
return useQuery({
Expand Down Expand Up @@ -102,7 +103,8 @@ export const useDeleteCustomMeasurementMutation = () => {
return useMutation({
mutationFn: (id: string) => deleteCustomMeasurement(id),
onSuccess: () => {
return queryClient.invalidateQueries({ queryKey: checkInKeys.all });
queryClient.invalidateQueries({ queryKey: checkInKeys.all });
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
},
meta: {
errorMessage: t(
Expand All @@ -123,7 +125,8 @@ export const useUpdateCheckInMeasurementFieldMutation = () => {
return useMutation({
mutationFn: updateCheckInMeasurementField,
onSuccess: () => {
return queryClient.invalidateQueries({ queryKey: checkInKeys.all });
queryClient.invalidateQueries({ queryKey: checkInKeys.all });
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
},
meta: {
errorMessage: t(
Expand All @@ -144,7 +147,8 @@ export const useSaveCheckInMeasurementsMutation = () => {
return useMutation({
mutationFn: saveCheckInMeasurements,
onSuccess: () => {
return queryClient.invalidateQueries({ queryKey: checkInKeys.all });
queryClient.invalidateQueries({ queryKey: checkInKeys.all });
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
},
meta: {
errorMessage: t(
Expand Down
38 changes: 12 additions & 26 deletions SparkyFitnessFrontend/src/hooks/Diary/useDailyProgress.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,17 @@ import {
convertStepsToCalories,
} from '@/utils/nutritionCalculations';
import { getExerciseEntriesForDate } from '@/api/Exercises/exerciseEntryService';
import {
getCheckInMeasurementsForDate,
getFoodEntriesForDate,
getGoalsForDate,
} from '@/api/Diary/dailyProgressService';
import { userManagementService } from '@/api/Admin/userManagementService';
import { getMostRecentMeasurement } from '@/api/CheckIn/checkInService';
import {
getMostRecentMeasurement,
loadExistingCheckInMeasurements,
} from '@/api/CheckIn/checkInService';
import { adaptiveTdeeService } from '@/api/Settings/adaptiveTdeeService';
import { calculateBmr, BmrAlgorithm } from '@/services/bmrService';
import { GroupedExerciseEntry } from '@/types/exercises';
import { userKeys } from '@/api/keys/admin';
import { exerciseEntryKeys } from '@/api/keys/exercises';
import { loadFoodEntries } from '@/api/Diary/foodEntryService';

export const useAdaptiveTdee = (date: string) => {
return useQuery({
Expand All @@ -28,26 +29,11 @@ export const useAdaptiveTdee = (date: string) => {
});
};

export const useDailyGoals = (date: string) => {
const { t } = useTranslation();
return useQuery({
queryKey: dailyProgressKeys.goals(date),
queryFn: () => getGoalsForDate(date),
enabled: !!date,
meta: {
errorMessage: t(
'dailyProgress.goalsLoadError',
'Failed to load daily goals.'
),
},
});
};

export const useDailyFoodIntake = (date: string) => {
const { t } = useTranslation();
return useQuery({
queryKey: foodEntryKeys.byDate(date),
queryFn: () => getFoodEntriesForDate(date),
queryKey: foodEntryKeys.foodIntake(date),
queryFn: () => loadFoodEntries(date),
enabled: !!date,
select: (entries: FoodEntry[]) => {
const totals = entries.reduce(
Expand Down Expand Up @@ -86,7 +72,7 @@ export const useDailyFoodIntake = (date: string) => {
export const useDailyExerciseStats = (date: string) => {
const { t } = useTranslation();
return useQuery({
queryKey: dailyProgressKeys.exercises(date),
queryKey: exerciseEntryKeys.dailyStats(date),
queryFn: () => getExerciseEntriesForDate(date),
enabled: !!date,
select: (data: GroupedExerciseEntry[]) => {
Expand Down Expand Up @@ -129,7 +115,7 @@ export const useDailyExerciseStats = (date: string) => {
export const useDailySteps = (date: string) => {
return useQuery({
queryKey: dailyProgressKeys.steps(date),
queryFn: () => getCheckInMeasurementsForDate(date),
queryFn: () => loadExistingCheckInMeasurements(date),
enabled: !!date,
select: (data) => {
const steps = data?.steps || 0;
Expand Down Expand Up @@ -176,7 +162,7 @@ export const useCalculatedBMR = () => {
const { bmrAlgorithm, includeBmrInNetCalories } = usePreferences();

const { data: userProfile } = useQuery({
queryKey: ['user', 'profile', user?.id],
queryKey: userKeys.profile(user?.id),
queryFn: () => userManagementService.getUserProfile(user!.id),
enabled: !!user?.id,
});
Expand Down
22 changes: 17 additions & 5 deletions SparkyFitnessFrontend/src/hooks/Diary/useFoodEntries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@ import {
} from '@/api/Diary/foodEntryService';

import { goalKeys } from '@/api/keys/goals';
import { foodEntryKeys, foodEntryMealKeys } from '@/api/keys/diary';
import {
dailyProgressKeys,
foodEntryKeys,
foodEntryMealKeys,
} from '@/api/keys/diary';
import i18n from '@/i18n';

export const useFoodEntries = (date: string) => {
Expand Down Expand Up @@ -81,10 +85,10 @@ export const useCreateFoodEntryMutation = () => {

return useMutation({
mutationFn: createFoodEntry,
onSuccess: (_, variables) => {
queryClient.invalidateQueries({
queryKey: foodEntryKeys.byDate(variables.entry_date),
});
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: foodEntryMealKeys.all });
queryClient.invalidateQueries({ queryKey: foodEntryKeys.all });
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
},
meta: {
successMessage: t('diary.addSuccess', 'Food added successfully.'),
Expand All @@ -102,6 +106,8 @@ export const useUpdateFoodEntryMutation = () => {
updateFoodEntry(id, data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: foodEntryKeys.all });
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
queryClient.invalidateQueries({ queryKey: foodEntryMealKeys.all });
},
meta: {
successMessage: t('diary.updateSuccess', 'Entry updated.'),
Expand All @@ -118,6 +124,7 @@ export const useDeleteFoodEntryMutation = () => {
mutationFn: removeFoodEntry,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: foodEntryKeys.all });
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
},
meta: {
successMessage: t('diary.deleteSuccess', 'Entry deleted.'),
Expand Down Expand Up @@ -147,6 +154,7 @@ export const useCopyFoodEntriesMutation = () => {
queryClient.invalidateQueries({
queryKey: foodEntryKeys.byDate(variables.targetDate),
});
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
},
meta: {
successMessage: t('diary.copySuccess', 'Entries copied successfully.'),
Expand All @@ -171,6 +179,7 @@ export const useCopyFoodEntriesFromYesterdayMutation = () => {
queryClient.invalidateQueries({
queryKey: foodEntryKeys.byDate(variables.targetDate),
});
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
},
meta: {
successMessage: t('diary.copySuccess', 'Entries copied from yesterday.'),
Expand All @@ -192,6 +201,7 @@ export const useCreateFoodEntryMealMutation = () => {
queryClient.invalidateQueries({
queryKey: foodEntryKeys.byDate(variables.entry_date),
});
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
},
meta: {
successMessage: t('diary.mealAddSuccess', 'Meal added successfully.'),
Expand All @@ -210,6 +220,7 @@ export const useUpdateFoodEntryMealMutation = () => {
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: foodEntryMealKeys.all });
queryClient.invalidateQueries({ queryKey: foodEntryKeys.all });
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
},
meta: {
successMessage: t(
Expand All @@ -230,6 +241,7 @@ export const useDeleteFoodEntryMealMutation = () => {
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: foodEntryMealKeys.all });
queryClient.invalidateQueries({ queryKey: foodEntryKeys.all });
queryClient.invalidateQueries({ queryKey: dailyProgressKeys.all });
},
meta: {
successMessage: t('diary.mealDeleteSuccess', 'Meal deleted.'),
Expand Down
15 changes: 12 additions & 3 deletions SparkyFitnessFrontend/src/hooks/Exercises/useExerciseEntries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ export const useCreateExerciseEntryMutation = () => {

return useMutation({
mutationFn: createExerciseEntry,
onSuccess: (_, variables) => {
onSuccess: () => {
queryClient.invalidateQueries({
queryKey: exerciseEntryKeys.byDate(variables.entry_date),
queryKey: exerciseEntryKeys.all,
});
queryClient.invalidateQueries({
queryKey: exerciseEntryKeys.history(variables.exercise_id),
queryKey: dailyProgressKeys.all,
});
},
meta: {
Expand Down Expand Up @@ -94,6 +94,9 @@ export const useDeleteExerciseEntryMutation = () => {
mutationFn: deleteExerciseEntry,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: exerciseEntryKeys.all });
queryClient.invalidateQueries({
queryKey: dailyProgressKeys.all,
});
},
meta: {
successMessage: t(
Expand Down Expand Up @@ -124,6 +127,9 @@ export const useLogWorkoutPresetMutation = () => {
queryClient.invalidateQueries({
queryKey: exerciseEntryKeys.byDate(variables.date),
});
queryClient.invalidateQueries({
queryKey: dailyProgressKeys.all,
});
},
meta: {
successMessage: t(
Expand All @@ -146,6 +152,9 @@ export const useDeleteExercisePresetEntryMutation = () => {
mutationFn: deleteExercisePresetEntry,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: exerciseEntryKeys.all });
queryClient.invalidateQueries({
queryKey: dailyProgressKeys.all,
});
},
meta: {
successMessage: t(
Expand Down
Loading