fix(auth): lock — функция-заглушка вместо строки 'no-lock' (без Web Locks API клиент падал)
This commit is contained in:
parent
8fa05f1746
commit
8e99bd1f32
|
|
@ -23,6 +23,14 @@ export const hasSupabaseConfig = Boolean(supabaseUrl && supabaseAnonKey);
|
||||||
const STORAGE_KEY = "supersam-auth";
|
const STORAGE_KEY = "supersam-auth";
|
||||||
const KEY_KEY = "supersam-ak";
|
const KEY_KEY = "supersam-ak";
|
||||||
|
|
||||||
|
// Web Locks API есть не везде (старые Safari/WebView, тестовая среда jsdom).
|
||||||
|
// supabase-js ждёт именно функцию лока, поэтому подставляем простой "лок без лока".
|
||||||
|
const memoryLock = (_name, _acquireTimeout, fn) => fn();
|
||||||
|
const hasWebLocks = () =>
|
||||||
|
typeof navigator !== "undefined" &&
|
||||||
|
Boolean(navigator.locks) &&
|
||||||
|
typeof navigator.locks.request === "function";
|
||||||
|
|
||||||
function _getKey() {
|
function _getKey() {
|
||||||
let key = localStorage.getItem(KEY_KEY);
|
let key = localStorage.getItem(KEY_KEY);
|
||||||
if (!key) {
|
if (!key) {
|
||||||
|
|
@ -114,13 +122,8 @@ export const supabase = hasSupabaseConfig
|
||||||
storage: secureStorage,
|
storage: secureStorage,
|
||||||
autoRefreshToken: true,
|
autoRefreshToken: true,
|
||||||
detectSessionInUrl: false,
|
detectSessionInUrl: false,
|
||||||
// navigator.locks есть не везде (jsdom/старые окружения): тогда фиксированный lock
|
// lock: без Web Locks API используем функцию-заглушку (иначе auth падает)
|
||||||
lock:
|
lock: hasWebLocks() ? undefined : memoryLock,
|
||||||
typeof navigator !== "undefined" &&
|
|
||||||
navigator.locks &&
|
|
||||||
typeof navigator.locks.request === "function"
|
|
||||||
? undefined
|
|
||||||
: "no-lock",
|
|
||||||
},
|
},
|
||||||
global: {
|
global: {
|
||||||
headers: { "x-application-name": "supersam" },
|
headers: { "x-application-name": "supersam" },
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue