feat: add generateId() utility for non-secure context compatibility

This commit is contained in:
Siddharth Kumar Sah
2026-04-04 16:21:43 +08:00
parent 2fc42ebd14
commit f61ab9f85c
2 changed files with 24 additions and 0 deletions
+9
View File
@@ -4,3 +4,12 @@ import { twMerge } from "tailwind-merge";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
export function generateId(): string {
const bytes = new Uint8Array(16);
crypto.getRandomValues(bytes);
bytes[6] = (bytes[6] & 0x0f) | 0x40;
bytes[8] = (bytes[8] & 0x3f) | 0x80;
const hex = Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
}