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 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() {
|
||||
let key = localStorage.getItem(KEY_KEY);
|
||||
if (!key) {
|
||||
|
|
@ -114,13 +122,8 @@ export const supabase = hasSupabaseConfig
|
|||
storage: secureStorage,
|
||||
autoRefreshToken: true,
|
||||
detectSessionInUrl: false,
|
||||
// navigator.locks есть не везде (jsdom/старые окружения): тогда фиксированный lock
|
||||
lock:
|
||||
typeof navigator !== "undefined" &&
|
||||
navigator.locks &&
|
||||
typeof navigator.locks.request === "function"
|
||||
? undefined
|
||||
: "no-lock",
|
||||
// lock: без Web Locks API используем функцию-заглушку (иначе auth падает)
|
||||
lock: hasWebLocks() ? undefined : memoryLock,
|
||||
},
|
||||
global: {
|
||||
headers: { "x-application-name": "supersam" },
|
||||
|
|
|
|||
Loading…
Reference in New Issue