fix: add fallback for crypto.randomUUID() on older WebViews

crypto.randomUUID() is not available on older systems (macOS < 12.3,
Safari < 15.4). This caused "crypto.randomUUID is not a function"
error when adding providers.

- Add generateUUID() utility with getRandomValues() fallback
- Provide user-friendly error message if crypto API unavailable
This commit is contained in:
Jason
2025-12-04 17:01:17 +08:00
parent 420b5d4389
commit bf9228093b
2 changed files with 39 additions and 1 deletions
+2 -1
View File
@@ -4,6 +4,7 @@ import { toast } from "sonner";
import { providersApi, settingsApi, type AppId } from "@/lib/api";
import type { Provider, Settings } from "@/types";
import { extractErrorMessage } from "@/utils/errorUtils";
import { generateUUID } from "@/utils/uuid";
export const useAddProviderMutation = (appId: AppId) => {
const queryClient = useQueryClient();
@@ -13,7 +14,7 @@ export const useAddProviderMutation = (appId: AppId) => {
mutationFn: async (providerInput: Omit<Provider, "id">) => {
const newProvider: Provider = {
...providerInput,
id: crypto.randomUUID(),
id: generateUUID(),
createdAt: Date.now(),
};
await providersApi.add(newProvider, appId);