This commit is contained in:
ct
2025-07-04 03:10:37 +08:00
parent 239b74fd5a
commit 21b56b6cf0
6 changed files with 411 additions and 141 deletions

View File

@@ -20,6 +20,11 @@ const useMediaStore = create(
currentCaption: 'I am chicken rice',
watermarked: true,
keywords: [],
isLoadingAIHints: false,
isGeneratingMeme: false,
setCurrentTab: (tab) => {
set({ currentTab: tab });
},
@@ -42,6 +47,29 @@ const useMediaStore = create(
set({ selectedBackground: null });
},
// Fetch AI hints
fetchAIHints: async () => {
set({ isLoadingAIHints: true });
try {
const response = await axiosInstance.post(route('api.ai_hints'));
set({
keywords: response.data.success?.data?.keywords || [],
});
return response.data;
} catch (error) {
console.error(route('api.ai_hints'));
console.error('Error fetching AI hints:', error);
toast.error('Failed to fetch AI hints');
} finally {
set({ isLoadingAIHints: false });
}
},
// Clear keywords
clearKeywords: () => {
set({ keywords: [] });
},
init: async () => {
try {
const response = await axiosInstance.post(route('api.app.init'));
@@ -62,6 +90,31 @@ const useMediaStore = create(
}
},
generateMeme: async (prompt) => {
set({ isGeneratingMeme: true });
try {
const response = await axiosInstance.post(route('api.user.generate_meme', { prompt: prompt }));
if (response?.data?.success?.data?.generate) {
set({
currentCaption: response.data.success.data.generate.caption,
selectedMeme: response.data.success.data.generate.meme,
selectedBackground: response.data.success.data.generate.background,
});
} else {
throw 'Invalid API response';
}
return response.data;
} catch (error) {
console.error(route('api.app.generate_meme'));
console.error('Error generating meme:', error);
toast.error('Failed to generate meme');
} finally {
set({ isGeneratingMeme: false });
}
},
// Fetch memes (overlays)
fetchMemes: async () => {
set({ isFetchingMemes: true });