This commit is contained in:
ct
2025-07-04 12:53:08 +08:00
parent 81c38dd9e3
commit b5ac848ba2
6 changed files with 298 additions and 32 deletions

View File

@@ -93,28 +93,44 @@ const useMediaStore = create(
generateMeme: async (prompt) => {
set({ isGeneratingMeme: true });
try {
const response = await axiosInstance.post(route('api.user.generate_meme', { prompt: prompt }));
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,
});
if (response?.data?.success?.data?.job_id) {
return response.data;
} 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 });
throw error;
}
},
checkMemeJobStatus: async (jobId) => {
try {
const response = await axiosInstance.post(route('api.user.check_meme_job_status'), { job_id: jobId });
return response.data;
} catch (error) {
console.error('Error checking job status:', error);
throw error;
}
},
updateMemeResult: (result) => {
set({
currentCaption: result.generate.caption,
selectedMeme: result.generate.meme,
selectedBackground: result.generate.background,
isGeneratingMeme: false,
});
},
setGeneratingMeme: (isGenerating) => {
set({ isGeneratingMeme: isGenerating });
},
// Fetch memes (overlays)
fetchMemes: async () => {
set({ isFetchingMemes: true });
@@ -175,6 +191,7 @@ const useMediaStore = create(
isFetchingBackgrounds: false,
selectedMeme: null,
selectedBackground: null,
isGeneratingMeme: false,
});
},
})),