From 6f20bb6be9b76f635938b52b43c954be7a747a91 Mon Sep 17 00:00:00 2001 From: ethanfox Date: Sun, 18 Aug 2024 18:30:01 -0500 Subject: [PATCH] Added art detail attributes --- src/components/Gallery.vue | 14 +++++++- src/router/index.ts | 6 ++++ src/views/ArtDetail.vue | 68 ++++++++++++++++++++++++++++++++++++++ src/views/HomeView.vue | 61 ++++++++++++++++++++++++---------- 4 files changed, 131 insertions(+), 18 deletions(-) create mode 100644 src/views/ArtDetail.vue diff --git a/src/components/Gallery.vue b/src/components/Gallery.vue index 432e2eea..a46a2598 100644 --- a/src/components/Gallery.vue +++ b/src/components/Gallery.vue @@ -5,7 +5,8 @@
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index f0def38c..e76986ee 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -2,7 +2,7 @@
@@ -63,10 +63,11 @@ export default { }; }, setup() { - const number = ref(1); + let number = ref(1); const loading = ref(true); const artworks = ref([]); const page = ref(1); + const uniqueArtworkIds = new Set(); const formattedNumber = computed(() => { if (number.value >= 100) { @@ -95,13 +96,25 @@ export default { }; onMounted(() => { - setTimeout(() => { - animateNumber(90, 2000); - }, 100); + const isFirstVisit = !localStorage.getItem("hasVisited"); - setTimeout(() => { - animateNumber(100, 1000); - }, 2100); + if (isFirstVisit) { + console.log("First visit"); + setTimeout(() => { + animateNumber(90, 2000); + }, 100); + + setTimeout(() => { + animateNumber(100, 1000); + }, 2100); + + setTimeout(() => { + localStorage.setItem("hasVisited", "true"); + fetchArtworks(); + }, 3000); + } else { + fetchArtworks(); + } }); const fetchArtworks = async () => { @@ -118,10 +131,18 @@ export default { } ); - const newArtworks = response.data.data.map((artwork) => ({ - ...artwork, - image_url: `https://www.artic.edu/iiif/2/${artwork.image_id}/full/843,/0/default.jpg`, - })); + const newArtworks = response.data.data + .filter( + (artwork) => !uniqueArtworkIds.has(artwork.id) && artwork.image_id + ) + .map((artwork) => { + uniqueArtworkIds.add(artwork.id); + return { + ...artwork, + image_url: `https://www.artic.edu/iiif/2/${artwork.image_id}/full/843,/0/default.jpg`, + }; + }); + artworks.value = newArtworks; page.value++; } catch (error) { @@ -146,10 +167,17 @@ export default { } ); - const newArtworks = response.data.data.map((artwork) => ({ - ...artwork, - image_url: `https://www.artic.edu/iiif/2/${artwork.image_id}/full/843,/0/default.jpg`, - })); + const newArtworks = response.data.data + .filter( + (artwork) => !uniqueArtworkIds.has(artwork.id) && artwork.image_id + ) + .map((artwork) => { + uniqueArtworkIds.add(artwork.id); + return { + ...artwork, + image_url: `https://www.artic.edu/iiif/2/${artwork.image_id}/full/843,/0/default.jpg`, + }; + }); artworks.value = [...artworks.value, ...newArtworks]; page.value++; @@ -169,7 +197,6 @@ export default { }, }; -