@transkripid/flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS - Transkrip.id fork
3 lines (2 loc) • 2 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("react/compiler-runtime"),S=require("react"),T=require("../helpers/is-client.js"),v=require("./use-watch-localstorage-value.js"),_=require("../theme-store/index.js"),E="light",L="flowbite-theme-mode",g="flowbite-theme-mode-sync",w=()=>{const e=k.c(18);let c;e[0]===Symbol.for("react.memo_cache_sentinel")?(c=D(_.getThemeMode()),e[0]=c):c=e[0];const[t,s]=S.useState(c);let l;e[1]!==t?(l=()=>{p(t),b(t)},e[1]=t,e[2]=l):l=e[2];let i;e[3]===Symbol.for("react.memo_cache_sentinel")?(i=[],e[3]=i):i=e[3],S.useEffect(l,i),v.useWatchLocalStorageValue({key:L,onChange(o){if(o)return n(o)}});let r;e[4]===Symbol.for("react.memo_cache_sentinel")?(r=o=>s(o),e[4]=r):r=e[4],q(r);const n=o=>{s(o),p(o),b(o),document.dispatchEvent(new CustomEvent(g,{detail:o}))};let a;e[5]!==n||e[6]!==t?(a=()=>{let o=t;o==="auto"&&(o=y(o)),o=o==="dark"?"light":"dark",n(o)},e[5]=n,e[6]=t,e[7]=a):a=e[7];const M=a;let m;e[8]!==n?(m=()=>{const o=_.getThemeMode()??E;n(o)},e[8]=n,e[9]=m):m=e[9];const f=m;let d;e[10]!==t?(d=y(t),e[10]=t,e[11]=d):d=e[11];const h=n;let u;return e[12]!==f||e[13]!==t||e[14]!==d||e[15]!==h||e[16]!==M?(u={mode:t,computedMode:d,setMode:h,toggleMode:M,clearMode:f},e[12]=f,e[13]=t,e[14]=d,e[15]=h,e[16]=M,e[17]=u):u=e[17],u},q=e=>{const c=k.c(3);let t;c[0]!==e?(t=()=>{const l=function(r){const n=r.detail;e(n)};return document.addEventListener(g,l),()=>document.removeEventListener(g,l)},c[0]=e,c[1]=t):t=c[1];let s;c[2]===Symbol.for("react.memo_cache_sentinel")?(s=[],c[2]=s):s=c[2],S.useEffect(t,s)},p=e=>localStorage.setItem(L,e),b=e=>{y(e)==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark")},D=e=>T.isClient()?localStorage.getItem(L)??e??E:E,y=e=>e==="auto"?I():e,I=()=>{var e;return(e=window.matchMedia)!=null&&e.call(window,"(prefers-color-scheme: dark)").matches?"dark":"light"};exports.useThemeMode=w;
//# sourceMappingURL=use-theme-mode.js.map