From 2224b00c5759893757a4e168b2bfa807cf12ca1e Mon Sep 17 00:00:00 2001 From: Hoaper Date: Mon, 19 May 2025 22:33:32 +0500 Subject: [PATCH 1/7] Added playable button feauture that shows only games I could play now --- package.json | 3 ++- src/locales/de/translation.json | 3 ++- src/locales/en/translation.json | 3 ++- src/locales/es/translation.json | 3 ++- src/locales/fr/translation.json | 3 ++- src/locales/it/translation.json | 3 ++- src/locales/pl/translation.json | 3 ++- src/locales/ru/translation.json | 3 ++- src/locales/uk/translation.json | 5 +++-- .../src/components/sidebar/sidebar.scss | 20 +++++++++++++++++++ .../src/components/sidebar/sidebar.tsx | 16 +++++++++++++-- 11 files changed, 53 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index a802c6d1..6dca982a 100644 --- a/package.json +++ b/package.json @@ -122,5 +122,6 @@ "typescript": "^5.3.3", "vite": "^5.0.12", "vite-plugin-svgr": "^4.2.0" - } + }, + "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json index dad29fa8..b0215161 100644 --- a/src/locales/de/translation.json +++ b/src/locales/de/translation.json @@ -21,7 +21,8 @@ "queued": "{{title}} (In Warteschlange)", "game_has_no_executable": "Spiel hat keine ausführbare Datei gewählt", "sign_in": "Anmelden", - "favorites": "Favoriten" + "favorites": "Favoriten", + "playable_button_title": "Nur Spiele anzeigen, die Sie jetzt spielen können" }, "header": { "search": "Spiele suchen", diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 93e18f17..71c2081b 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -27,7 +27,8 @@ "sign_in": "Sign in", "friends": "Friends", "need_help": "Need help?", - "favorites": "Favorites" + "favorites": "Favorites", + "playable_button_title": "Show only games you could play now" }, "header": { "search": "Search games", diff --git a/src/locales/es/translation.json b/src/locales/es/translation.json index 716f7b33..f91a9809 100644 --- a/src/locales/es/translation.json +++ b/src/locales/es/translation.json @@ -27,7 +27,8 @@ "sign_in": "Iniciar sesión", "friends": "Amigos", "need_help": "¿Necesitas ayuda?", - "favorites": "Favoritos" + "favorites": "Favoritos", + "playable_button_title": "Mostrar solo juegos que puedes jugar ahora" }, "header": { "search": "Buscar juegos", diff --git a/src/locales/fr/translation.json b/src/locales/fr/translation.json index aab6e019..e959f98a 100644 --- a/src/locales/fr/translation.json +++ b/src/locales/fr/translation.json @@ -27,7 +27,8 @@ "sign_in": "Se connecter", "friends": "Amis", "need_help": "Besoin d'aide ?", - "favorites": "Favoris" + "favorites": "Favoris", + "playable_button_title": "Afficher uniquement les jeux que vous pouvez jouer maintenant" }, "header": { "search": "Rechercher", diff --git a/src/locales/it/translation.json b/src/locales/it/translation.json index 5e69a733..b23d1244 100644 --- a/src/locales/it/translation.json +++ b/src/locales/it/translation.json @@ -15,7 +15,8 @@ "downloading": "{{title}} ({{percentage}} - Download…)", "filter": "Filtra libreria", "home": "Home", - "favorites": "Preferiti" + "favorites": "Preferiti", + "playable_button_title": "Mostra solo i giochi che puoi giocare ora" }, "header": { "search": "Cerca", diff --git a/src/locales/pl/translation.json b/src/locales/pl/translation.json index 1d55099e..9a9dbe2c 100644 --- a/src/locales/pl/translation.json +++ b/src/locales/pl/translation.json @@ -15,7 +15,8 @@ "downloading": "{{title}} ({{percentage}} - Pobieranie…)", "filter": "Filtruj biblioteke", "home": "Główna", - "favorites": "Ulubione" + "favorites": "Ulubione", + "playable_button_title": "Pokaż tylko gry, w które możesz grać teraz" }, "header": { "search": "Szukaj", diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index 00b7e5af..b71face0 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -27,7 +27,8 @@ "sign_in": "Войти", "friends": "Друзья", "need_help": "Нужна помощь?", - "favorites": "Избранное" + "favorites": "Избранное", + "playable_button_title": "Показать только игры, в которые можно играть сейчас" }, "header": { "search": "Поиск", diff --git a/src/locales/uk/translation.json b/src/locales/uk/translation.json index bed8a167..bd6b7dce 100644 --- a/src/locales/uk/translation.json +++ b/src/locales/uk/translation.json @@ -25,9 +25,10 @@ "game_has_no_executable": "Не було вибрано файл для запуску гри", "queued": "{{title}} в черзі", "sign_in": "Увійти", - "favorites": "Улюблені", + "favorites": "Избранное", "friends": "Друзі", - "need_help": "Потрібна допомога?" + "need_help": "Потрібна допомога?", + "playable_button_title": "Показать только игры, в которые можно играть сейчас" }, "header": { "search": "Пошук", diff --git a/src/renderer/src/components/sidebar/sidebar.scss b/src/renderer/src/components/sidebar/sidebar.scss index b626835f..a44c0753 100644 --- a/src/renderer/src/components/sidebar/sidebar.scss +++ b/src/renderer/src/components/sidebar/sidebar.scss @@ -143,3 +143,23 @@ border-radius: 50%; } } + +.sidebar__play-button { + background: none; + border: none; + color: white; + cursor: pointer; + padding: 0; + + &:active { + color: gray; + } + + &--active { + color: #16b195; + } + + svg { + display: block; + } +} diff --git a/src/renderer/src/components/sidebar/sidebar.tsx b/src/renderer/src/components/sidebar/sidebar.tsx index f9c8c47a..f217e62c 100644 --- a/src/renderer/src/components/sidebar/sidebar.tsx +++ b/src/renderer/src/components/sidebar/sidebar.tsx @@ -21,7 +21,7 @@ import { buildGameDetailsPath } from "@renderer/helpers"; import { SidebarProfile } from "./sidebar-profile"; import { sortBy } from "lodash-es"; import cn from "classnames"; -import { CommentDiscussionIcon } from "@primer/octicons-react"; +import { CommentDiscussionIcon, PlayIcon } from "@primer/octicons-react"; import { SidebarGameItem } from "./sidebar-game-item"; import { setFriendRequestCount } from "@renderer/features/user-details-slice"; import { useDispatch } from "react-redux"; @@ -60,6 +60,12 @@ export function Sidebar() { const { showWarningToast } = useToast(); + const [showPlayableOnly, setShowPlayableOnly] = useState(false); + + const handlePlayButtonClick = () => { + setShowPlayableOnly(!showPlayableOnly); + }; + useEffect(() => { updateLibrary(); }, [lastPacket?.gameId, updateLibrary]); @@ -242,7 +248,12 @@ export function Sidebar() { )}
- {t("my_library")} +
+ {t("my_library")} + +
{filteredLibrary .filter((game) => !game.favorite) + .filter((game) => !showPlayableOnly || Boolean(game.executablePath)) .map((game) => ( Date: Mon, 19 May 2025 22:36:01 +0500 Subject: [PATCH 2/7] package.json updated to merge --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 6dca982a..a802c6d1 100644 --- a/package.json +++ b/package.json @@ -122,6 +122,5 @@ "typescript": "^5.3.3", "vite": "^5.0.12", "vite-plugin-svgr": "^4.2.0" - }, - "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" + } } From 7c2a847024b1580efa93416ab09777eeb582da12 Mon Sep 17 00:00:00 2001 From: Hoaper Date: Mon, 19 May 2025 22:38:36 +0500 Subject: [PATCH 3/7] playable button --- .../src/components/sidebar/sidebar.tsx | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/renderer/src/components/sidebar/sidebar.tsx b/src/renderer/src/components/sidebar/sidebar.tsx index f217e62c..ae41d39d 100644 --- a/src/renderer/src/components/sidebar/sidebar.tsx +++ b/src/renderer/src/components/sidebar/sidebar.tsx @@ -248,9 +248,22 @@ export function Sidebar() { )}
-
- {t("my_library")} -
@@ -265,7 +278,9 @@ export function Sidebar() {
    {filteredLibrary .filter((game) => !game.favorite) - .filter((game) => !showPlayableOnly || Boolean(game.executablePath)) + .filter( + (game) => !showPlayableOnly || Boolean(game.executablePath) + ) .map((game) => ( Date: Mon, 19 May 2025 22:39:04 +0500 Subject: [PATCH 4/7] updated to merge --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index a802c6d1..6dca982a 100644 --- a/package.json +++ b/package.json @@ -122,5 +122,6 @@ "typescript": "^5.3.3", "vite": "^5.0.12", "vite-plugin-svgr": "^4.2.0" - } + }, + "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } From 5f7b6158a28084e9db42b7afb974a02c0faf1fe8 Mon Sep 17 00:00:00 2001 From: Hoaper Date: Mon, 19 May 2025 22:50:39 +0500 Subject: [PATCH 5/7] Removed unused package.json propetry --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 4305828a..27958b3f 100644 --- a/package.json +++ b/package.json @@ -122,6 +122,5 @@ "typescript": "^5.3.3", "vite": "^5.0.12", "vite-plugin-svgr": "^4.2.0" - }, - "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" + } } From 4ac8f1f2460b40721efa1f86cc91768d91c2e109 Mon Sep 17 00:00:00 2001 From: Hoaper Date: Wed, 21 May 2025 22:41:27 +0500 Subject: [PATCH 6/7] Working on suggestions of greptile-apps bot --- package.json | 3 +- src/locales/de/translation.json | 2 +- src/locales/en/translation.json | 2 +- src/locales/pl/translation.json | 2 +- src/locales/uk/translation.json | 4 +- .../src/components/sidebar/sidebar.scss | 38 +++++++++++-------- .../src/components/sidebar/sidebar.tsx | 23 ++++------- src/renderer/src/scss/globals.scss | 3 ++ 8 files changed, 40 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 27958b3f..4305828a 100644 --- a/package.json +++ b/package.json @@ -122,5 +122,6 @@ "typescript": "^5.3.3", "vite": "^5.0.12", "vite-plugin-svgr": "^4.2.0" - } + }, + "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json index b0215161..2b1fb9f3 100644 --- a/src/locales/de/translation.json +++ b/src/locales/de/translation.json @@ -22,7 +22,7 @@ "game_has_no_executable": "Spiel hat keine ausführbare Datei gewählt", "sign_in": "Anmelden", "favorites": "Favoriten", - "playable_button_title": "Nur Spiele anzeigen, die Sie jetzt spielen können" + "playable_button_title": "Nur Spiele anzeigen, die du jetzt spielen kannst" }, "header": { "search": "Spiele suchen", diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index bd4e2a0a..ee4254e2 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -28,7 +28,7 @@ "friends": "Friends", "need_help": "Need help?", "favorites": "Favorites", - "playable_button_title": "Show only games you could play now" + "playable_button_title": "Show only games you can play now" }, "header": { "search": "Search games", diff --git a/src/locales/pl/translation.json b/src/locales/pl/translation.json index 9a9dbe2c..86751b0e 100644 --- a/src/locales/pl/translation.json +++ b/src/locales/pl/translation.json @@ -13,7 +13,7 @@ "downloading_metadata": "{{title}} (Pobieranie metadata…)", "paused": "{{title}} (Zatrzymano)", "downloading": "{{title}} ({{percentage}} - Pobieranie…)", - "filter": "Filtruj biblioteke", + "filter": "Filtruj bibliotekę", "home": "Główna", "favorites": "Ulubione", "playable_button_title": "Pokaż tylko gry, w które możesz grać teraz" diff --git a/src/locales/uk/translation.json b/src/locales/uk/translation.json index bd6b7dce..48a3972d 100644 --- a/src/locales/uk/translation.json +++ b/src/locales/uk/translation.json @@ -25,10 +25,10 @@ "game_has_no_executable": "Не було вибрано файл для запуску гри", "queued": "{{title}} в черзі", "sign_in": "Увійти", - "favorites": "Избранное", + "favorites": "Улюблені", "friends": "Друзі", "need_help": "Потрібна допомога?", - "playable_button_title": "Показать только игры, в которые можно играть сейчас" + "playable_button_title": "Показати лише ігри, які можна грати зараз" }, "header": { "search": "Пошук", diff --git a/src/renderer/src/components/sidebar/sidebar.scss b/src/renderer/src/components/sidebar/sidebar.scss index a44c0753..0d291f22 100644 --- a/src/renderer/src/components/sidebar/sidebar.scss +++ b/src/renderer/src/components/sidebar/sidebar.scss @@ -98,6 +98,12 @@ background-size: cover; } + &__section-header { + display: flex; + justify-content: space-between; + align-items: center; + } + &__section-title { text-transform: uppercase; font-weight: bold; @@ -133,7 +139,7 @@ } &__help-button-icon { - background: linear-gradient(0deg, #16b195 50%, #3e62c0 100%); + background: linear-gradient(0deg, globals.$brand-teal 50%, globals.$brand-blue 100%); width: 24px; height: 24px; display: flex; @@ -142,24 +148,24 @@ color: #fff; border-radius: 50%; } -} -.sidebar__play-button { - background: none; - border: none; - color: white; - cursor: pointer; - padding: 0; + &__play-button { + background: none; + border: none; + color: globals.$muted-color; + cursor: pointer; + padding: 0; - &:active { - color: gray; - } + &:active { + color: rgba(255, 255, 255, 0.5); + } - &--active { - color: #16b195; - } + &--active { + color: globals.$brand-teal; + } - svg { - display: block; + svg { + display: block; + } } } diff --git a/src/renderer/src/components/sidebar/sidebar.tsx b/src/renderer/src/components/sidebar/sidebar.tsx index ae41d39d..d0f099bc 100644 --- a/src/renderer/src/components/sidebar/sidebar.tsx +++ b/src/renderer/src/components/sidebar/sidebar.tsx @@ -32,6 +32,8 @@ const SIDEBAR_MAX_WIDTH = 450; const initialSidebarWidth = window.localStorage.getItem("sidebarWidth"); +const isGamePlayable = (game: LibraryGame) => Boolean(game.executablePath); + export function Sidebar() { const filterRef = useRef(null); @@ -248,20 +250,13 @@ export function Sidebar() { )}
    -
    - - {t("my_library")} - +
    + {t("my_library")}