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 () => {
+
+
+