From b6c8508e189096739a91bca23384aa66307a52c7 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Tue, 2 Sep 2025 10:12:38 -0400 Subject: [PATCH 1/4] fix batocera psx bind --- examples/config.batocera-retrobat.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/config.batocera-retrobat.yml b/examples/config.batocera-retrobat.yml index 52a9630df..0c125064c 100644 --- a/examples/config.batocera-retrobat.yml +++ b/examples/config.batocera-retrobat.yml @@ -113,7 +113,7 @@ system: ps4: ps4 psp: psp psvita: psvita - psx: ps + psx: psx pv1000: casio-pv-1000 samcoupe: sam-coupe satellaview: satellaview From cc8f574e004b6ea1c697ef0f9cb0e52c28106395 Mon Sep 17 00:00:00 2001 From: Georges-Antoine Assi Date: Tue, 2 Sep 2025 23:39:01 -0400 Subject: [PATCH 2/4] Replace usage of localStorage with vuewuse useLocalStorage --- frontend/src/RomM.vue | 8 +- frontend/src/components/Home/Collections.vue | 15 +-- .../src/components/Home/ContinuePlaying.vue | 17 +-- frontend/src/components/Home/Platforms.vue | 15 +-- .../src/components/Home/PlatformsSkeleton.vue | 6 +- frontend/src/components/Home/RecentAdded.vue | 15 +-- .../Settings/UserInterface/Interface.vue | 105 ++++-------------- .../UserInterface/LanguageSelector.vue | 6 +- .../Settings/UserInterface/Theme.vue | 7 +- .../src/components/common/Game/Card/Base.vue | 12 +- .../src/components/common/Game/Card/Flags.vue | 13 +-- .../components/common/Game/Card/Skeleton.vue | 7 +- frontend/src/components/common/Game/Table.vue | 5 +- .../common/Navigation/CollectionsDrawer.vue | 10 +- .../common/Navigation/MainAppBar.vue | 11 +- .../common/Navigation/PlatformsDrawer.vue | 20 ++-- .../components/common/NewVersionDialog.vue | 6 +- frontend/src/console/utils/sfx.ts | 15 +-- frontend/src/console/views/Play.vue | 48 +++++--- frontend/src/layouts/Main.vue | 20 ++-- frontend/src/plugins/vuetify.ts | 10 +- frontend/src/stores/consoleTheme.ts | 9 +- frontend/src/stores/galleryView.ts | 7 +- frontend/src/stores/navigation.ts | 8 +- frontend/src/stores/roms.ts | 7 +- .../Gallery/Collection/BaseCollection.vue | 11 +- frontend/src/views/Gallery/Platform.vue | 6 +- frontend/src/views/Gallery/Search.vue | 6 +- frontend/src/views/Home.vue | 29 +++-- frontend/src/views/Player/EmulatorJS/Base.vue | 5 +- .../src/views/Player/EmulatorJS/Player.vue | 1 + frontend/src/views/Player/RuffleRS/Base.vue | 6 +- frontend/src/views/Scan.vue | 16 +-- 33 files changed, 182 insertions(+), 300 deletions(-) diff --git a/frontend/src/RomM.vue b/frontend/src/RomM.vue index 7665bacd1..a57c28e34 100644 --- a/frontend/src/RomM.vue +++ b/frontend/src/RomM.vue @@ -1,7 +1,7 @@ diff --git a/frontend/src/components/Home/RecentAdded.vue b/frontend/src/components/Home/RecentAdded.vue index 4bfde3f16..771b3e2cf 100644 --- a/frontend/src/components/Home/RecentAdded.vue +++ b/frontend/src/components/Home/RecentAdded.vue @@ -3,6 +3,7 @@ import GameCard from "@/components/common/Game/Card/Base.vue"; import RSection from "@/components/common/RSection.vue"; import storeRoms from "@/stores/roms"; import { views } from "@/utils"; +import { useLocalStorage } from "@vueuse/core"; import { isNull } from "lodash"; import { storeToRefs } from "pinia"; import { ref } from "vue"; @@ -11,14 +12,8 @@ import { useI18n } from "vue-i18n"; const { t } = useI18n(); const romsStore = storeRoms(); const { recentRoms } = storeToRefs(romsStore); -const storedGridRecentRoms = localStorage.getItem("settings.gridRecentRoms"); -const gridRecentRoms = ref( - isNull(storedGridRecentRoms) ? false : storedGridRecentRoms === "true", -); -const storedEnable3DEffect = localStorage.getItem("settings.enable3DEffect"); -const enable3DEffect = ref( - isNull(storedEnable3DEffect) ? false : storedEnable3DEffect === "true", -); +const gridRecentRoms = useLocalStorage("settings.gridRecentRoms", false); +const enable3DEffect = useLocalStorage("settings.enable3DEffect", false); const isHovering = ref(false); const hoveringRomId = ref(); const openedMenu = ref(false); @@ -26,10 +21,6 @@ const openedMenuRomId = ref(); function toggleGridRecentRoms() { gridRecentRoms.value = !gridRecentRoms.value; - localStorage.setItem( - "settings.gridRecentRoms", - gridRecentRoms.value.toString(), - ); } function onHover(emitData: { isHovering: boolean; id: number }) { diff --git a/frontend/src/components/Settings/UserInterface/Interface.vue b/frontend/src/components/Settings/UserInterface/Interface.vue index ffede7d11..3ce7a183a 100644 --- a/frontend/src/components/Settings/UserInterface/Interface.vue +++ b/frontend/src/components/Settings/UserInterface/Interface.vue @@ -2,8 +2,9 @@ import InterfaceOption from "@/components/Settings/UserInterface/InterfaceOption.vue"; import RSection from "@/components/common/RSection.vue"; import storeCollections from "@/stores/collections"; +import { useLocalStorage } from "@vueuse/core"; import { isNull } from "lodash"; -import { computed, ref } from "vue"; +import { computed } from "vue"; import { useI18n } from "vue-i18n"; import { useDisplay } from "vuetify"; @@ -11,89 +12,40 @@ const { t } = useI18n(); const { smAndDown } = useDisplay(); const collectionsStore = storeCollections(); -// Initialize refs from localStorage - // Home -const storedShowStats = localStorage.getItem("settings.showStats"); -const showStatsRef = ref( - isNull(storedShowStats) ? true : storedShowStats === "true", -); -const storedShowRecentRoms = localStorage.getItem("settings.showRecentRoms"); -const showRecentRomsRef = ref( - isNull(storedShowRecentRoms) ? true : storedShowRecentRoms === "true", -); - -const storedShowContinuePlaying = localStorage.getItem( +const showStatsRef = useLocalStorage("settings.showStats", true); +const showRecentRomsRef = useLocalStorage("settings.showRecentRoms", true); +const showContinuePlayingRef = useLocalStorage( "settings.showContinuePlaying", + true, ); -const showContinuePlayingRef = ref( - isNull(storedShowContinuePlaying) - ? true - : storedShowContinuePlaying === "true", -); -const storedShowPlatforms = localStorage.getItem("settings.showPlatforms"); -const showPlatformsRef = ref( - isNull(storedShowPlatforms) ? true : storedShowPlatforms === "true", -); -const storedShowCollections = localStorage.getItem("settings.showCollections"); -const showCollectionsRef = ref( - isNull(storedShowCollections) ? true : storedShowCollections === "true", -); +const showPlatformsRef = useLocalStorage("settings.showPlatforms", true); +const showCollectionsRef = useLocalStorage("settings.showCollections", true); // Virtual collections -const storedShowVirtualCollections = localStorage.getItem( +const showVirtualCollectionsRef = useLocalStorage( "settings.showVirtualCollections", + true, ); -const showVirtualCollectionsRef = ref( - isNull(storedShowVirtualCollections) - ? true - : storedShowVirtualCollections === "true", -); -const storedVirtualCollectionType = localStorage.getItem( +const virtualCollectionTypeRef = useLocalStorage( "settings.virtualCollectionType", -); -const virtualCollectionTypeRef = ref( - isNull(storedVirtualCollectionType) - ? "collection" - : storedVirtualCollectionType, + "collection", ); // Platforms drawer -const storedPlatformsGroupBy = localStorage.getItem( +const platformsGroupByRef = useLocalStorage( "settings.platformsGroupBy", -); -const platformsGroupByRef = ref( - isNull(storedPlatformsGroupBy) || storedPlatformsGroupBy === "null" - ? null - : storedPlatformsGroupBy, + null, ); // Gallery -const storedGroupRoms = localStorage.getItem("settings.groupRoms"); -const groupRomsRef = ref( - isNull(storedGroupRoms) ? true : storedGroupRoms === "true", -); -const storedSiblings = localStorage.getItem("settings.showSiblings"); -const siblingsRef = ref( - isNull(storedSiblings) ? true : storedSiblings === "true", -); -const storedRegions = localStorage.getItem("settings.showRegions"); -const regionsRef = ref(isNull(storedRegions) ? true : storedRegions === "true"); -const storedLanguages = localStorage.getItem("settings.showLanguages"); -const languagesRef = ref( - isNull(storedLanguages) ? true : storedLanguages === "true", -); -const storedStatus = localStorage.getItem("settings.showStatus"); -const statusRef = ref(isNull(storedStatus) ? true : storedStatus === "true"); - -const storedActionBar = localStorage.getItem("settings.showActionBar"); -const actionBarRef = ref( - isNull(storedActionBar) ? false : storedActionBar === "true", -); -const stored3DEffect = localStorage.getItem("settings.enable3DEffect"); -const enable3DEffectRef = ref( - isNull(stored3DEffect) ? false : stored3DEffect === "true", -); +const groupRomsRef = useLocalStorage("settings.groupRoms", true); +const siblingsRef = useLocalStorage("settings.showSiblings", true); +const regionsRef = useLocalStorage("settings.showRegions", true); +const languagesRef = useLocalStorage("settings.showLanguages", true); +const statusRef = useLocalStorage("settings.showStatus", true); +const actionBarRef = useLocalStorage("settings.showActionBar", false); +const enable3DEffectRef = useLocalStorage("settings.enable3DEffect", false); const homeOptions = computed(() => [ { @@ -211,72 +163,57 @@ const galleryOptions = computed(() => [ const setPlatformDrawerGroupBy = (value: string) => { platformsGroupByRef.value = value; - localStorage.setItem("settings.platformsGroupBy", value); }; const toggleShowContinuePlaying = (value: boolean) => { showContinuePlayingRef.value = value; - localStorage.setItem("settings.showContinuePlaying", value.toString()); }; const toggleShowPlatforms = (value: boolean) => { showPlatformsRef.value = value; - localStorage.setItem("settings.showPlatforms", value.toString()); }; const toggleShowCollections = (value: boolean) => { showCollectionsRef.value = value; - localStorage.setItem("settings.showCollections", value.toString()); }; const toggleShowVirtualCollections = (value: boolean) => { showVirtualCollectionsRef.value = value; - localStorage.setItem("settings.showVirtualCollections", value.toString()); }; const setVirtualCollectionType = async (value: string) => { virtualCollectionTypeRef.value = value; - localStorage.setItem("settings.virtualCollectionType", value); collectionsStore.fetchVirtualCollections(value); }; const toggleShowStats = (value: boolean) => { showStatsRef.value = value; - localStorage.setItem("settings.showStats", value.toString()); }; const toggleShowRecentRoms = (value: boolean) => { showRecentRomsRef.value = value; - localStorage.setItem("settings.showRecentRoms", value.toString()); }; const toggleGroupRoms = (value: boolean) => { groupRomsRef.value = value; - localStorage.setItem("settings.groupRoms", value.toString()); }; const toggleSiblings = (value: boolean) => { siblingsRef.value = value; - localStorage.setItem("settings.showSiblings", value.toString()); }; const toggleRegions = (value: boolean) => { regionsRef.value = value; - localStorage.setItem("settings.showRegions", value.toString()); }; const toggleLanguages = (value: boolean) => { languagesRef.value = value; - localStorage.setItem("settings.showLanguages", value.toString()); }; const toggleStatus = (value: boolean) => { statusRef.value = value; - localStorage.setItem("settings.showStatus", value.toString()); }; const toggleActionBar = (value: boolean) => { actionBarRef.value = value; - localStorage.setItem("settings.showActionBar", value.toString()); }; const toggle3DEffect = (value: boolean) => { enable3DEffectRef.value = value; - localStorage.setItem("settings.enable3DEffect", value.toString()); };