diff --git a/src/services/aiService.js b/src/services/aiService.js index bc7c969..974ceae 100644 --- a/src/services/aiService.js +++ b/src/services/aiService.js @@ -52,9 +52,10 @@ export const aiService = { }, // Get generations history - async getGenerations(limit, offset, characterId) { + async getGenerations(limit, offset, characterId, onlyLiked = false) { const params = { limit, offset } if (characterId) params.character_id = characterId + if (onlyLiked) params.only_liked = true const response = await api.get('/generations', { params }) return response.data }, diff --git a/src/services/ideaService.js b/src/services/ideaService.js index f036c15..bb5f706 100644 --- a/src/services/ideaService.js +++ b/src/services/ideaService.js @@ -8,5 +8,9 @@ export const ideaService = { deleteIdea: (id) => api.delete(`/ideas/${id}`), addGenerationToIdea: (ideaId, generationId) => api.post(`/ideas/${ideaId}/generations/${generationId}`), removeGenerationFromIdea: (ideaId, generationId) => api.delete(`/ideas/${ideaId}/generations/${generationId}`), - getIdeaGenerations: (ideaId, limit = 10, offset = 0) => api.get(`/ideas/${ideaId}/generations`, { params: { limit, offset } }) + getIdeaGenerations: (ideaId, limit = 10, offset = 0, onlyLiked = false) => { + const params = { limit, offset }; + if (onlyLiked) params.only_liked = true; + return api.get(`/ideas/${ideaId}/generations`, { params }); + } }; diff --git a/src/stores/ideas.js b/src/stores/ideas.js index 70c98c5..b329974 100644 --- a/src/stores/ideas.js +++ b/src/stores/ideas.js @@ -133,9 +133,9 @@ export const useIdeaStore = defineStore('ideas', () => { } // Assuming getIdeaGenerations is separate from getIdea - async function fetchIdeaGenerations(ideaId, limit = 100, offset = 0) { + async function fetchIdeaGenerations(ideaId, limit = 100, offset = 0, onlyLiked = false) { try { - const response = await ideaService.getIdeaGenerations(ideaId, limit, offset); + const response = await ideaService.getIdeaGenerations(ideaId, limit, offset, onlyLiked); return response; } catch (err) { console.error('Error fetching idea generations:', err); diff --git a/src/views/FlexibleGenerationView.vue b/src/views/FlexibleGenerationView.vue index 0f92e21..92047e1 100644 --- a/src/views/FlexibleGenerationView.vue +++ b/src/views/FlexibleGenerationView.vue @@ -201,6 +201,7 @@ watch(isSettingsVisible, (val) => { const activeOverlayId = ref(null) // For mobile tap-to-show overlay const filterCharacter = ref(null) // Character filter for gallery +const onlyLiked = ref(false) // Options const qualityOptions = ref([ @@ -287,6 +288,13 @@ watch(filterCharacter, async () => { await refreshHistory() }) +watch(onlyLiked, async () => { + historyGenerations.value = [] + historyTotal.value = 0 + historyFirst.value = 0 + await refreshHistory() +}) + // --- Data Loading --- const loadData = async () => { @@ -364,7 +372,7 @@ const loadData = async () => { const refreshHistory = async () => { try { - const response = await aiService.getGenerations(historyRows.value, 0, filterCharacter.value?.id || filterCharacter.value?._id) + const response = await aiService.getGenerations(historyRows.value, 0, filterCharacter.value?.id || filterCharacter.value?._id, onlyLiked.value) if (response && response.generations) { // Update existing items and add new ones at the top const newGenerations = [] @@ -525,7 +533,7 @@ const loadMoreHistory = async () => { try { const nextOffset = historyGenerations.value.length - const response = await aiService.getGenerations(historyRows.value, nextOffset, filterCharacter.value?.id) + const response = await aiService.getGenerations(historyRows.value, nextOffset, filterCharacter.value?.id, onlyLiked.value) if (response && response.generations) { const newGenerations = response.generations.filter(gen => @@ -880,6 +888,11 @@ const confirmAddToAlbum = async () => { + +