feat: add donations feature with one-time payments - M6 (refs #55)

This commit is contained in:
Eric Gullickson
2026-01-18 16:51:20 -06:00
parent 6c1a100eb9
commit 56da99de36
14 changed files with 815 additions and 4 deletions

View File

@@ -91,3 +91,27 @@ export const useDowngrade = () => {
},
});
};
export const useCreateDonation = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (amount: number) => subscriptionApi.createDonation(amount),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['donations'] });
},
onError: (error: unknown) => {
const err = error as { response?: { data?: { error?: string } } };
toast.error(err.response?.data?.error || 'Donation failed');
},
});
};
export const useDonations = () => {
const { isAuthenticated, isLoading } = useAuth0();
return useQuery({
queryKey: ['donations'],
queryFn: () => subscriptionApi.getDonations(),
enabled: isAuthenticated && !isLoading,
staleTime: 5 * 60 * 1000,
});
};