diff --git a/src/main/events/catalogue/repacks/get-magnet-health.ts b/src/main/events/catalogue/repacks/get-magnet-health.ts index 20679869..86b1466c 100644 --- a/src/main/events/catalogue/repacks/get-magnet-health.ts +++ b/src/main/events/catalogue/repacks/get-magnet-health.ts @@ -1,10 +1,13 @@ -import { webTorrentData } from "@main/services/web-torrent-data" -import { registerEvent } from "../../register-event" +import { webTorrentData } from "@main/services/web-torrent-data"; +import { registerEvent } from "../../register-event"; -const getMagnetHealth = async (_event: Electron.IpcMainInvokeEvent, magnet: string) => { - return webTorrentData.getSeedersAndPeers(magnet) -} +const getMagnetHealth = async ( + _event: Electron.IpcMainInvokeEvent, + magnet: string +) => { + return webTorrentData.getSeedersAndPeers(magnet); +}; registerEvent(getMagnetHealth, { - name: 'getMagnetHealth' -}) + name: "getMagnetHealth", +}); diff --git a/src/main/events/index.ts b/src/main/events/index.ts index c36195c9..4e49dd1b 100644 --- a/src/main/events/index.ts +++ b/src/main/events/index.ts @@ -7,7 +7,7 @@ import "./catalogue/get-games"; import "./catalogue/get-how-long-to-beat"; import "./catalogue/get-random-game"; import "./catalogue/search-games"; -import "./catalogue/repacks/get-magnet-health" +import "./catalogue/repacks/get-magnet-health"; import "./hardware/get-disk-free-space"; import "./library/add-game-to-library"; import "./library/close-game"; diff --git a/src/preload/index.d.ts b/src/preload/index.d.ts index 2ed7ef39..487ac3d1 100644 --- a/src/preload/index.d.ts +++ b/src/preload/index.d.ts @@ -102,5 +102,6 @@ contextBridge.exposeInMainWorld("electron", { showOpenDialog: (options: Electron.OpenDialogOptions) => ipcRenderer.invoke("showOpenDialog", options), platform: process.platform, - getMagnetHealth: (magnet: string) => ipcRenderer.invoke("getMagnetHealth", magnet), + getMagnetHealth: (magnet: string) => + ipcRenderer.invoke("getMagnetHealth", magnet), }); diff --git a/src/preload/index.ts b/src/preload/index.ts index 778c2065..2ba23e61 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -112,5 +112,6 @@ contextBridge.exposeInMainWorld("electron", { showOpenDialog: (options: Electron.OpenDialogOptions) => ipcRenderer.invoke("showOpenDialog", options), platform: process.platform, - getMagnetHealth: (magnet: string) => ipcRenderer.invoke("getMagnetHealth", magnet), + getMagnetHealth: (magnet: string) => + ipcRenderer.invoke("getMagnetHealth", magnet), }); diff --git a/src/renderer/src/components/tooltip/tooltip.css.ts b/src/renderer/src/components/tooltip/tooltip.css.ts index 6615e51d..e478380b 100644 --- a/src/renderer/src/components/tooltip/tooltip.css.ts +++ b/src/renderer/src/components/tooltip/tooltip.css.ts @@ -1,36 +1,36 @@ import { style } from "@vanilla-extract/css"; export const tooltipStyle = style({ - position: 'relative', - display: 'flex', - cursor: 'pointer', - alignItems: 'center' + position: "relative", + display: "flex", + cursor: "pointer", + alignItems: "center", }); export const tooltipTextStyle = style({ - visibility: 'hidden', - backgroundColor: '#555', - color: '#fff', - textAlign: 'center', - borderRadius: '6px', - padding: '5px 5px', - position: 'absolute', - zIndex: '1', - bottom: '125%', - left: 'max(0%, min(100%, 50%))', - transform: 'translateX(-50%)', - ':after': { + visibility: "hidden", + backgroundColor: "#555", + color: "#fff", + textAlign: "center", + borderRadius: "6px", + padding: "5px 5px", + position: "absolute", + zIndex: "1", + bottom: "125%", + left: "max(0%, min(100%, 50%))", + transform: "translateX(-50%)", + ":after": { content: '""', - position: 'absolute', - top: '100%', - left: '50%', - marginLeft: '-5px', - borderWidth: '5px', - borderStyle: 'solid', - borderColor: '#555 transparent transparent transparent', + position: "absolute", + top: "100%", + left: "50%", + marginLeft: "-5px", + borderWidth: "5px", + borderStyle: "solid", + borderColor: "#555 transparent transparent transparent", }, }); export const tooltipVisible = style({ - visibility: 'visible', + visibility: "visible", }); diff --git a/src/renderer/src/components/tooltip/tooltip.tsx b/src/renderer/src/components/tooltip/tooltip.tsx index 75b0061e..50d74f4c 100644 --- a/src/renderer/src/components/tooltip/tooltip.tsx +++ b/src/renderer/src/components/tooltip/tooltip.tsx @@ -1,5 +1,5 @@ -import { useState } from 'react'; -import * as styles from './tooltip.css' +import { useState } from "react"; +import * as styles from "./tooltip.css"; interface TooltipProps { children: React.ReactNode; @@ -11,12 +11,16 @@ export function Tooltip({ children, tooltipText }: Readonly) { return (
setIsVisible(true)} - onMouseLeave={() => setIsVisible(false)} - > - {children} - {tooltipText} -
+ className={styles.tooltipStyle} + onMouseEnter={() => setIsVisible(true)} + onMouseLeave={() => setIsVisible(false)} + > + {children} + + {tooltipText} + + ); } diff --git a/src/renderer/src/declaration.d.ts b/src/renderer/src/declaration.d.ts index d18a23b7..cd2c10db 100644 --- a/src/renderer/src/declaration.d.ts +++ b/src/renderer/src/declaration.d.ts @@ -88,7 +88,9 @@ declare global { options: Electron.OpenDialogOptions ) => Promise; platform: NodeJS.Platform; - getMagnetHealth: (magnet: string) => Promise<{ seeders: number; peers: number }>; + getMagnetHealth: ( + magnet: string + ) => Promise<{ seeders: number; peers: number }>; } interface Window { diff --git a/src/renderer/src/helpers/searcher.ts b/src/renderer/src/helpers/searcher.ts index d4a81a95..52d0cd52 100644 --- a/src/renderer/src/helpers/searcher.ts +++ b/src/renderer/src/helpers/searcher.ts @@ -1,14 +1,18 @@ export const isMultiplayerRepack = (title: string) => { const toLower = title.toLowerCase(); - return toLower.includes("multiplayer") || toLower.includes("onlinefix") || toLower.includes("online fix") -} + return ( + toLower.includes("multiplayer") || + toLower.includes("onlinefix") || + toLower.includes("online fix") + ); +}; export const supportMultiLanguage = (title: string) => { const multiFollowedByDigitsRegex = /multi\d+/; return multiFollowedByDigitsRegex.test(title.toLowerCase()); -} +}; // const languageCode = 'en'; // const displayNames = new Intl.DisplayNames([languageCode], { type: 'language' }); @@ -16,15 +20,16 @@ export const supportMultiLanguage = (title: string) => { // console.log(englishLanguage); // Output: "English" - export const getRepackLanguageBasedOnRepacker = (repacker: string) => { const languageCodes = { - xatab: 'ru', - } + xatab: "ru", + }; - const languageCode = languageCodes[repacker.toLowerCase()] || 'en'; + const languageCode = languageCodes[repacker.toLowerCase()] || "en"; - const displayNames = new Intl.DisplayNames([languageCode], { type: 'language' }); + const displayNames = new Intl.DisplayNames([languageCode], { + type: "language", + }); return displayNames.of(languageCode); -} +}; diff --git a/src/renderer/src/pages/game-details/repacks-modal.css.ts b/src/renderer/src/pages/game-details/repacks-modal.css.ts index 827fc237..472ba934 100644 --- a/src/renderer/src/pages/game-details/repacks-modal.css.ts +++ b/src/renderer/src/pages/game-details/repacks-modal.css.ts @@ -22,4 +22,3 @@ export const tagsContainer = style({ gap: `${SPACING_UNIT}px`, flexWrap: "wrap", }); - diff --git a/src/renderer/src/pages/game-details/repacks-modal.tsx b/src/renderer/src/pages/game-details/repacks-modal.tsx index 352d5900..55ea440b 100644 --- a/src/renderer/src/pages/game-details/repacks-modal.tsx +++ b/src/renderer/src/pages/game-details/repacks-modal.tsx @@ -16,7 +16,7 @@ import { supportMultiLanguage, } from "@renderer/helpers/searcher"; import { Tag } from "@renderer/components/tag/tag"; -import {getRepackLanguageBasedOnRepacker} from '../../helpers/searcher'; +import { getRepackLanguageBasedOnRepacker } from "../../helpers/searcher"; export interface RepacksModalProps { visible: boolean; @@ -112,15 +112,15 @@ export function RepacksModal({ {" - " + getRepackLanguageBasedOnRepacker(repack.repacker)}

- +
{supportMultiLanguage(repack.title) && ( - {t('multi_language')} + {t("multi_language")} + )} + {isMultiplayerRepack(repack.title) && ( + {t("multiplayer")} )} - {isMultiplayerRepack(repack.title) && {t('multiplayer')}}
))} diff --git a/src/renderer/src/pages/game-details/seeders-and-peers/seeders-and-peers.tsx b/src/renderer/src/pages/game-details/seeders-and-peers/seeders-and-peers.tsx index e8cc31f2..ba33abfe 100644 --- a/src/renderer/src/pages/game-details/seeders-and-peers/seeders-and-peers.tsx +++ b/src/renderer/src/pages/game-details/seeders-and-peers/seeders-and-peers.tsx @@ -34,7 +34,7 @@ export function SeedersAndPeers({ repack }: Readonly) { {magnetData?.seeders} diff --git a/src/renderer/src/pages/game-details/seeders-and-peers/useMagnetHealth.tsx b/src/renderer/src/pages/game-details/seeders-and-peers/useMagnetHealth.tsx index cb87b9d8..6ea55a27 100644 --- a/src/renderer/src/pages/game-details/seeders-and-peers/useMagnetHealth.tsx +++ b/src/renderer/src/pages/game-details/seeders-and-peers/useMagnetHealth.tsx @@ -44,7 +44,6 @@ export function useMagnetHealth(magnet: string) { ); }, [magnet]); - useEffect(() => { function invalidateCache() { const TWO_MINUTES = 2 * 60 * 1000;