feat: adding uuid library

This commit is contained in:
Chubby Granny Chaser
2025-10-13 18:05:48 +01:00
parent 25758a540f
commit 53d81018e9
8 changed files with 28 additions and 15 deletions

View File

@@ -27,6 +27,7 @@ import { downloadSourcesWorker } from "./workers";
import { downloadSourcesTable } from "./dexie";
import { useSubscription } from "./hooks/use-subscription";
import { HydraCloudModal } from "./pages/shared-modals/hydra-cloud/hydra-cloud-modal";
import { generateUUID } from "./helpers";
import { injectCustomCss, removeCustomCss } from "./helpers";
import "./app.scss";
@@ -212,7 +213,7 @@ export function App() {
useEffect(() => {
updateRepacks();
const id = `${Date.now()}-${Math.random()}`;
const id = generateUUID();
const channel = new BroadcastChannel(`download_sources:sync:${id}`);
channel.onmessage = async (event: MessageEvent<number>) => {

View File

@@ -1,6 +1,7 @@
import type { GameShop } from "@types";
import Color from "color";
import { v4 as uuidv4 } from "uuid";
import { THEME_WEB_STORE_URL } from "./constants";
export const formatDownloadProgress = (
@@ -112,3 +113,11 @@ export const formatNumber = (num: number): string => {
maximumFractionDigits: 1,
}).format(num);
};
/**
* Generates a UUID v4
* @returns A random UUID string
*/
export const generateUUID = (): string => {
return uuidv4();
};

View File

@@ -9,6 +9,7 @@ import { useForm } from "react-hook-form";
import * as yup from "yup";
import { yupResolver } from "@hookform/resolvers/yup";
import { useCallback } from "react";
import { generateUUID } from "@renderer/helpers";
import "./modals.scss";
@@ -79,7 +80,7 @@ export function AddThemeModal({
const onSubmit = useCallback(
async (values: FormValues) => {
const theme: Theme = {
id: `${Date.now()}-${Math.random()}`,
id: generateUUID(),
name: values.name,
isActive: false,
author: userDetails?.id,

View File

@@ -3,7 +3,11 @@ import { Modal } from "@renderer/components/modal/modal";
import { useTranslation } from "react-i18next";
import "./modals.scss";
import { Theme } from "@types";
import { injectCustomCss, removeCustomCss } from "@renderer/helpers";
import {
injectCustomCss,
removeCustomCss,
generateUUID,
} from "@renderer/helpers";
import { useToast } from "@renderer/hooks";
import { THEME_WEB_STORE_URL } from "@renderer/constants";
import { logger } from "@renderer/logger";
@@ -30,7 +34,7 @@ export const ImportThemeModal = ({
const handleImportTheme = async () => {
const theme: Theme = {
id: `${Date.now()}-${Math.random()}`,
id: generateUUID(),
name: themeName,
isActive: false,
author: authorId,

View File

@@ -23,6 +23,7 @@ import { downloadSourcesTable } from "@renderer/dexie";
import { downloadSourcesWorker } from "@renderer/workers";
import { useNavigate } from "react-router-dom";
import { setFilters, clearFilters } from "@renderer/features";
import { generateUUID } from "@renderer/helpers";
import "./settings-download-sources.scss";
export function SettingsDownloadSources() {
@@ -95,7 +96,7 @@ export function SettingsDownloadSources() {
const handleRemoveAllDownloadSources = () => {
setIsRemovingDownloadSource(true);
const id = `${Date.now()}-${Math.random()}`;
const id = generateUUID();
const channel = new BroadcastChannel(`download_sources:delete_all:${id}`);
downloadSourcesWorker.postMessage(["DELETE_ALL_DOWNLOAD_SOURCES", id]);
@@ -120,7 +121,7 @@ export function SettingsDownloadSources() {
const syncDownloadSources = async () => {
setIsSyncingDownloadSources(true);
const id = `${Date.now()}-${Math.random()}`;
const id = generateUUID();
const channel = new BroadcastChannel(`download_sources:sync:${id}`);
downloadSourcesWorker.postMessage(["SYNC_DOWNLOAD_SOURCES", id]);