feat: enhance game scanning notifications and UI updates

This commit is contained in:
Moyasee
2026-01-19 17:57:49 +02:00
parent 049a989e85
commit fbbb2520e0
6 changed files with 56 additions and 8 deletions

View File

@@ -61,22 +61,25 @@
cursor: pointer;
transition: all ease 0.2s;
padding: globals.$spacing-unit;
display: flex;
align-items: center;
justify-content: center;
&:hover {
color: #dadbe1;
}
&--scanning {
&--scanning svg {
animation: spin 2s linear infinite;
}
}
@keyframes spin {
from {
transform: rotate(-0deg);
transform: rotate(0deg);
}
to {
transform: rotate(-360deg);
transform: rotate(360deg);
}
}

View File

@@ -1,6 +1,6 @@
import { useTranslation } from "react-i18next";
import { useEffect, useId, useMemo, useRef, useState } from "react";
import { useLocation, useNavigate } from "react-router-dom";
import { useLocation, useNavigate, useSearchParams } from "react-router-dom";
import {
ArrowLeftIcon,
SearchIcon,
@@ -40,6 +40,7 @@ export function Header() {
const navigate = useNavigate();
const location = useLocation();
const [searchParams, setSearchParams] = useSearchParams();
const { headerTitle, draggingDisabled } = useAppSelector(
(state) => state.window
@@ -268,6 +269,14 @@ export function Header() {
return () => window.removeEventListener("resize", handleResize);
}, [isDropdownVisible]);
useEffect(() => {
if (searchParams.get("openScanModal") === "true") {
setShowScanModal(true);
searchParams.delete("openScanModal");
setSearchParams(searchParams, { replace: true });
}
}, [searchParams, setSearchParams]);
return (
<>
<header

View File

@@ -58,6 +58,8 @@ export function LocalNotificationItem({
return <SyncIcon size={24} />;
case "ACHIEVEMENT_UNLOCKED":
return <TrophyIcon size={24} />;
case "SCAN_GAMES_COMPLETE":
return <SyncIcon size={24} />;
default:
return <DownloadIcon size={24} />;
}