add client self-service ai activity plans on goals screen
This commit is contained in:
1 parent
0825bb3d65
commit
a65b3cac08
5 files changed
+426
-2
No files matched your search
@@ -10,6 +10,7 @@ import { useUser, useAuth } from "@clerk/clerk-expo";
|
||||
import {
|
||||
getRecommendations,
|
||||
generateRecommendation,
|
||||
generateSelfRecommendation,
|
||||
type Recommendation,
|
||||
type GenerateRecommendationRequest,
|
||||
} from "../api/recommendations";
|
||||
@@ -23,6 +24,7 @@ interface RecommendationsContextValue {
|
||||
generateNewRecommendation: (
|
||||
data: GenerateRecommendationRequest,
|
||||
) => Promise<Recommendation>;
|
||||
generateSelfPlan: () => Promise<Recommendation>;
|
||||
clearCache: () => void;
|
||||
}
|
||||
|
||||
@@ -107,6 +109,18 @@ export function RecommendationsProvider({
|
||||
[user?.id, getToken],
|
||||
);
|
||||
|
||||
const generateSelfPlan = useCallback(async (): Promise<Recommendation> => {
|
||||
if (!user?.id) throw new Error("User not authenticated");
|
||||
|
||||
const token = await getToken();
|
||||
const recommendation = await generateSelfRecommendation(token);
|
||||
|
||||
setRecommendations((prev) => [recommendation, ...prev]);
|
||||
setLastFetchTime(Date.now());
|
||||
|
||||
return recommendation;
|
||||
}, [user?.id, getToken]);
|
||||
|
||||
const clearCache = useCallback(() => {
|
||||
setRecommendations([]);
|
||||
setLoading(false);
|
||||
@@ -133,6 +147,7 @@ export function RecommendationsProvider({
|
||||
error,
|
||||
refetchRecommendations,
|
||||
generateNewRecommendation,
|
||||
generateSelfPlan,
|
||||
clearCache,
|
||||
}}
|
||||
>
|
||||
|
||||
Reference in new issue
Block a user