diff --git a/components/GameStatusButton.vue b/components/GameStatusButton.vue
index d9722d2..3646850 100644
--- a/components/GameStatusButton.vue
+++ b/components/GameStatusButton.vue
@@ -12,7 +12,8 @@
@@ -25,10 +26,11 @@
class="absolute right-0 z-50 mt-2 w-32 origin-top-right rounded-md bg-zinc-900 shadow-lg ring-1 ring-zinc-100/5 focus:outline-none">
@@ -63,14 +65,14 @@ const emit = defineEmits<{
const showDropdown = computed(() => props.status.type === GameStatusEnum.Installed || props.status.type === GameStatusEnum.SetupRequired);
const styles: { [key in GameStatusEnum]: string } = {
- [GameStatusEnum.Remote]: "bg-blue-600 text-white hover:bg-blue-500 focus-visible:outline-blue-600",
- [GameStatusEnum.Queued]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700",
- [GameStatusEnum.Downloading]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700",
- [GameStatusEnum.SetupRequired]: "bg-yellow-600 text-white hover:bg-yellow-500 focus-visible:outline-yellow-600",
- [GameStatusEnum.Installed]: "bg-green-600 text-white hover:bg-green-500 focus-visible:outline-green-600",
- [GameStatusEnum.Updating]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700",
- [GameStatusEnum.Uninstalling]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700",
- [GameStatusEnum.Running]: "bg-zinc-800 text-white focus-visible:outline-zinc-700"
+ [GameStatusEnum.Remote]: "bg-blue-600 text-white hover:bg-blue-500 focus-visible:outline-blue-600 hover:bg-blue-500",
+ [GameStatusEnum.Queued]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700 hover:bg-zinc-700",
+ [GameStatusEnum.Downloading]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700 hover:bg-zinc-700",
+ [GameStatusEnum.SetupRequired]: "bg-yellow-600 text-white hover:bg-yellow-500 focus-visible:outline-yellow-600 hover:bg-yellow-500",
+ [GameStatusEnum.Installed]: "bg-green-600 text-white hover:bg-green-500 focus-visible:outline-green-600 hover:bg-green-500",
+ [GameStatusEnum.Updating]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700 hover:bg-zinc-700",
+ [GameStatusEnum.Uninstalling]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700 hover:bg-zinc-700",
+ [GameStatusEnum.Running]: "bg-zinc-800 text-white hover:bg-zinc-700 focus-visible:outline-zinc-700 hover:bg-zinc-700"
};
const buttonNames: { [key in GameStatusEnum]: string } = {
diff --git a/components/LibrarySearch.vue b/components/LibrarySearch.vue
new file mode 100644
index 0000000..a73542e
--- /dev/null
+++ b/components/LibrarySearch.vue
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+
+
+
+
+ {{ nav.label }}
+
+
+ {{
+ games[nav.id].status.value.type === GameStatusEnum.Downloading ? 'Downloading' :
+ games[nav.id].status.value.type === GameStatusEnum.Running ? 'Running' :
+ games[nav.id].status.value.type ? 'Installed' : 'Not Installed'
+ }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/library.vue b/pages/library.vue
index 6c8f6d3..4524345 100644
--- a/pages/library.vue
+++ b/pages/library.vue
@@ -1,23 +1,10 @@
-
-
-
-
-
![]()
-
- {{ nav.label }}
-
-
-
-
+
+
+
@@ -26,64 +13,25 @@
-const rawGames: Ref
= ref([])
-
-async function calculateGames() {
- try {
- rawGames.value = await invoke("fetch_library");
- for (const game of rawGames.value) {
- if (games[game.id]) continue;
- games[game.id] = await useGame(game.id);
- }
- for (const game of rawGames.value) {
- if (icons[game.id]) continue;
- icons[game.id] = await useObject(game.mIconId);
- }
- }
- catch (e) {
- console.log(e)
- libraryDownloadError = true;
- return new Array();
- }
+
diff --git a/pages/library/[id]/index.vue b/pages/library/[id]/index.vue
index 539ec61..4d094ae 100644
--- a/pages/library/[id]/index.vue
+++ b/pages/library/[id]/index.vue
@@ -1,41 +1,169 @@
-
-
-
![]()
-
- {{ game.mName }}
-
-
+
![]()
+
+
-
-
-
-
-
installFlow()"
- @launch="() => launch()"
- @queue="() => queue()"
- @uninstall="() => uninstall()"
- @kill="() => kill()"
- :status="status"
- />
-
-
- Store
-
+
+
+
+ {{ game.mName }}
+
+
+
+
+ installFlow()"
+ @launch="() => launch()"
+ @queue="() => queue()"
+ @uninstall="() => uninstall()"
+ @kill="() => kill()"
+ :status="status"
+ />
+
+
+
+ Store
+
+
+
+
+
+
+
+
+
+
+
+
Installation
+
+
+
- Status
+ -
+
+ {{
+ status.type === GameStatusEnum.Installed ? 'Installed' :
+ status.type === GameStatusEnum.Running ? 'Running' :
+ status.type === GameStatusEnum.SetupRequired ? 'Setup Required' :
+ status.type === GameStatusEnum.Downloading ? 'Downloading' :
+ 'Not Installed'
+ }}
+
+
+
+
+
+
+
+
+
+
Game Images
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
No images available
+
Game screenshots will appear here when available
+
+
+
+
+
@@ -256,6 +384,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ currentImageIndex + 1 }} / {{ mediaUrls.length }}
+
+
+
+
+
+
+
diff --git a/pages/library/index.vue b/pages/library/index.vue
index dd245b6..e95d9dc 100644
--- a/pages/library/index.vue
+++ b/pages/library/index.vue
@@ -1,9 +1,24 @@
-
Library Failed to update
-
\ No newline at end of file
+
+
+
+
+
+
+
+
Select a game
+
Choose a game from your library to view details
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src-tauri/src/games/library.rs b/src-tauri/src/games/library.rs
index 1be4a1e..bfb4445 100644
--- a/src-tauri/src/games/library.rs
+++ b/src-tauri/src/games/library.rs
@@ -37,6 +37,7 @@ pub struct Game {
m_banner_id: String,
m_cover_id: String,
m_image_library: Vec
,
+ m_image_carousel: Vec,
}
#[derive(serde::Serialize, Clone)]
pub struct GameUpdateEvent {
diff --git a/types.ts b/types.ts
index e796234..e31cb4d 100644
--- a/types.ts
+++ b/types.ts
@@ -34,6 +34,7 @@ export type Game = {
mBannerId: string;
mCoverId: string;
mImageLibrary: string[];
+ mImageCarousel: string[];
};
export enum AppStatus {