UNPKG

@yamada-ui/react

Version:

React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion

45 lines (42 loc) 1.32 kB
"use client"; //#region src/core/system/storage-manager.ts const hasSupport = !!globalThis.document; function parseCookie(cookie, key) { return cookie.match(/* @__PURE__ */ new RegExp(`(^| )${key}=([^;]+)`))?.[2]; } function createStorageManager(storage, storageKey, defaultValue, cookie) { return { default(value) { const defaultStorageKey = `default-${storageKey}`; if (cookie) return parseCookie(cookie, defaultStorageKey) || value; if (storage === "localStorage") try { return localStorage.getItem(defaultStorageKey) || value; } catch { return value; } else { if (!hasSupport) return value; return parseCookie(document.cookie, defaultStorageKey) || value; } }, get(value = defaultValue) { if (cookie) return parseCookie(cookie, storageKey) || value; if (storage === "localStorage") try { return localStorage.getItem(storageKey) || value; } catch { return value; } else { if (!hasSupport) return value; return parseCookie(document.cookie, storageKey) || value; } }, set(value) { if (storage === "localStorage") localStorage.setItem(storageKey, value); else document.cookie = `${storageKey}=${value}; max-age=31536000; path=/`; } }; } //#endregion export { createStorageManager }; //# sourceMappingURL=storage-manager.js.map