diff --git a/frontend/src/components/Gallery/Skeleton.vue b/frontend/src/components/Gallery/Skeleton.vue
index 43ebf1a94..782d20eb9 100644
--- a/frontend/src/components/Gallery/Skeleton.vue
+++ b/frontend/src/components/Gallery/Skeleton.vue
@@ -1,10 +1,26 @@
@@ -12,7 +28,7 @@ const { currentView } = storeToRefs(galleryViewStore);
-
+
diff --git a/frontend/src/components/Home/RecentSkeletonLoader.vue b/frontend/src/components/Home/RecentSkeletonLoader.vue
index 20a8648fa..9a0a87af4 100644
--- a/frontend/src/components/Home/RecentSkeletonLoader.vue
+++ b/frontend/src/components/Home/RecentSkeletonLoader.vue
@@ -1,6 +1,8 @@
@@ -9,7 +11,7 @@ defineProps<{ title: string }>();
();
:lg="views[0]['size-lg']"
:xl="views[0]['size-xl']"
>
-
+
diff --git a/frontend/src/components/common/Game/Card/Base.vue b/frontend/src/components/common/Game/Card/Base.vue
index 8bc992e5e..a3cd5c573 100644
--- a/frontend/src/components/common/Game/Card/Base.vue
+++ b/frontend/src/components/common/Game/Card/Base.vue
@@ -6,6 +6,7 @@ import Sources from "@/components/common/Game/Card/Sources.vue";
import storePlatforms from "@/stores/platforms";
import PlatformIcon from "@/components/common/Platform/Icon.vue";
import MissingFromFSIcon from "@/components/common/MissingFromFSIcon.vue";
+import Skeleton from "@/components/common/Game/Card/Skeleton.vue";
import storeCollections from "@/stores/collections";
import storeGalleryView from "@/stores/galleryView";
import { ROUTES } from "@/plugins/router";
@@ -356,7 +357,15 @@ onBeforeUnmount(() => {
eager
:src="smallCover || fallbackCoverImage"
:aspect-ratio="computedAspectRatio"
- >
+ >
+
+
+
+
diff --git a/frontend/src/components/common/Game/Card/Skeleton.vue b/frontend/src/components/common/Game/Card/Skeleton.vue
new file mode 100644
index 000000000..6b072d428
--- /dev/null
+++ b/frontend/src/components/common/Game/Card/Skeleton.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
diff --git a/frontend/src/services/api/rom.ts b/frontend/src/services/api/rom.ts
index 9e3cb0a35..e554f1faf 100644
--- a/frontend/src/services/api/rom.ts
+++ b/frontend/src/services/api/rom.ts
@@ -150,12 +150,15 @@ async function getRoms({
});
}
+export const RECENT_ROMS_LIMIT = 15;
+export const RECENT_PLAYED_ROMS_LIMIT = 15;
+
async function getRecentRoms(): Promise<{ data: GetRomsResponse }> {
return api.get("/roms", {
params: {
order_by: "id",
order_dir: "desc",
- limit: 15,
+ limit: RECENT_ROMS_LIMIT,
with_char_index: false,
},
});
@@ -166,7 +169,7 @@ async function getRecentPlayedRoms(): Promise<{ data: GetRomsResponse }> {
params: {
order_by: "last_played",
order_dir: "desc",
- limit: 15,
+ limit: RECENT_PLAYED_ROMS_LIMIT,
with_char_index: false,
},
});
diff --git a/frontend/src/views/Gallery/Collection/BaseCollection.vue b/frontend/src/views/Gallery/Collection/BaseCollection.vue
index 89df5fb65..fd69c4a79 100644
--- a/frontend/src/views/Gallery/Collection/BaseCollection.vue
+++ b/frontend/src/views/Gallery/Collection/BaseCollection.vue
@@ -234,8 +234,10 @@ onBeforeUnmount(() => {
-
-
+
+
diff --git a/frontend/src/views/Gallery/Platform.vue b/frontend/src/views/Gallery/Platform.vue
index 3bed14851..ce851f305 100644
--- a/frontend/src/views/Gallery/Platform.vue
+++ b/frontend/src/views/Gallery/Platform.vue
@@ -17,7 +17,7 @@ import type { Emitter } from "mitt";
import { isNull, throttle } from "lodash";
import { storeToRefs } from "pinia";
import { inject, onBeforeUnmount, onMounted, ref, watch } from "vue";
-import { onBeforeRouteUpdate, useRoute, useRouter } from "vue-router";
+import { onBeforeRouteUpdate, useRoute } from "vue-router";
const route = useRoute();
const galleryViewStore = storeGalleryView();
@@ -36,7 +36,6 @@ const {
fetchTotalRoms,
} = storeToRefs(romsStore);
const noPlatformError = ref(false);
-const router = useRouter();
const emitter = inject>("emitter");
const isHovering = ref(false);
const hoveringRomId = ref();
@@ -238,8 +237,13 @@ onBeforeUnmount(() => {
-
-
+
+
@@ -263,7 +267,6 @@ onBeforeUnmount(() => {
}"
>