diff --git a/src/App.vue b/src/App.vue
index a53a38a..dc4a861 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,31 +1,31 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/components/lists/ItemsList.vue b/src/components/lists/ItemsList.vue
index daeca3b..6fa4eb0 100644
--- a/src/components/lists/ItemsList.vue
+++ b/src/components/lists/ItemsList.vue
@@ -1,10 +1,10 @@
-
+
- {{ item.title ? item.title : $('label_item_without_title') }}
+ {{ item.title ? item.title : $t('label_item_without_title') }}
diff --git a/src/pages/CollectionPage.vue b/src/pages/CollectionPage.vue
index 9b9cb76..121a850 100644
--- a/src/pages/CollectionPage.vue
+++ b/src/pages/CollectionPage.vue
@@ -1,5 +1,8 @@
+
+
+
isLoading.value = state;
const route = useRoute();
+ const collectionId = route.params.id + '';
+ const loadItemsByCollection = async () => {
+ await tainacanStore.fetchItemsByCollection(collectionId, { perPage: '24', orderBy: 'modified'});
+ }
+ const doRefresh = async (event: any) => {
+ await loadItemsByCollection();
+ if (event && event.target)
+ event.target.complete();
+ }
let tainacanStore = useTainacanStore();
@@ -40,14 +56,15 @@ export default {
isLoading,
tainacanStore,
setIsLoading,
- items: [],
- collectionId: route.params.id,
+ loadItemsByCollection,
+ doRefresh,
+ collectionId
}
},
async created() {
- this.setIsLoading(true)
- await this.tainacanStore.fetchItemsByCollection(this.collectionId)
- this.setIsLoading(false)
+ this.setIsLoading(true);
+ await this.loadItemsByCollection();
+ this.setIsLoading(false);
},
}
\ No newline at end of file
diff --git a/src/pages/CollectionsPage.vue b/src/pages/CollectionsPage.vue
index 80caa74..9d36372 100644
--- a/src/pages/CollectionsPage.vue
+++ b/src/pages/CollectionsPage.vue
@@ -5,16 +5,24 @@
:message="$t('label_loading')"
>
+
+
+
-
\ No newline at end of file
diff --git a/src/store/storeTainacan.ts b/src/store/storeTainacan.ts
index da888bc..9e97698 100644
--- a/src/store/storeTainacan.ts
+++ b/src/store/storeTainacan.ts
@@ -5,6 +5,10 @@ import { useWpStore } from "./storeWp";
const useTainacanStore = defineStore("tainacan", {
state() {
return {
+ homeCollections: [],
+ totalHomeCollections: 0,
+ homeItems: [],
+ totalHomeItems: 0,
collections: [],
totalCollections: 0,
collectionItems: [],
@@ -44,12 +48,32 @@ const useTainacanStore = defineStore("tainacan", {
}
},
+ async fetchHomeCollections() {
+ try {
+ const wpStore = useWpStore();
+
+ const endpoint = `${wpStore.userSiteUrl}/wp-json/tainacan/v2/collections?perpage=4&orderby=modified`;
+
+ const response = await axios.get(endpoint);
+
+ this.homeCollections = response.data;
+ this.totalHomeCollections = response.headers['x-wp-total'];
+
+ } catch (err) {
+ this.homeCollections = [];
+ this.totalHomeCollections = 0;
+ console.error("Erro no carregamento das coleções da home:", err);
+
+ return err;
+ }
+ },
+
async fetchItemsByCollection(collectionId: string, params: { perPage: string, orderBy: string }) {
try {
const wpStore = useWpStore();
this.collectionItems = [];
- let endpoint = `${wpStore.userSiteUrl}/wp-json/tainacan/v2/collection/${collectionId}/items?fetch_only=id,title,thumbnail`;
+ let endpoint = `${wpStore.userSiteUrl}/wp-json/tainacan/v2/collection/${collectionId}/items?fetch_only=id,title,thumbnail&perpage=12&orderby=modified`;
if (params && params.perPage)
endpoint += '&perpage=' + params.perPage;
@@ -71,16 +95,33 @@ const useTainacanStore = defineStore("tainacan", {
}
},
+ async fetchHomeItems() {
+ try {
+ const wpStore = useWpStore();
+
+ const endpoint = `${wpStore.userSiteUrl}/wp-json/tainacan/v2/items?fetch_only=id,title,thumbnail&perpage=12&orderby=modified`;
+
+ const response = await axios.get(endpoint);
+ this.homeItems = response.data.items;
+ this.totalHomeItems = response.headers['x-wp-total'];
+
+ } catch (err) {
+ this.homeItems = [];
+ this.totalHomeItems = 0;
+ console.error("Erro no carregamento dos items da home:", err);
+ return err;
+ }
+ },
+
async fetchItems(params: { perPage: string, orderBy: string }) {
try {
const wpStore = useWpStore();
- this.items = [];
let endpoint = `${wpStore.userSiteUrl}/wp-json/tainacan/v2/items?fetch_only=id,title,thumbnail`;
if (params && params.perPage)
endpoint += '&perpage=' + params.perPage;
-
+
if (params && params.orderBy)
endpoint += '&orderby=' + params.orderBy;