@tanstack/react-router-devtools 0.0.1-alpha.2 → 0.0.1-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"Explorer.js","sources":["../../../../../src/Explorer.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { displayValue, styled } from './utils'\n\nexport const Entry = styled('div', {\n fontFamily: 'Menlo, monospace',\n fontSize: '.7rem',\n lineHeight: '1.7',\n outline: 'none',\n wordBreak: 'break-word',\n})\n\nexport const Label = styled('span', {\n color: 'white',\n})\n\nexport const LabelButton = styled('button', {\n cursor: 'pointer',\n color: 'white',\n})\n\nexport const ExpandButton = styled('button', {\n cursor: 'pointer',\n color: 'inherit',\n font: 'inherit',\n outline: 'inherit',\n background: 'transparent',\n border: 'none',\n padding: 0,\n})\n\nexport const Value = styled('span', (_props, theme) => ({\n color: theme.danger,\n}))\n\nexport const SubEntries = styled('div', {\n marginLeft: '.1em',\n paddingLeft: '1em',\n borderLeft: '2px solid rgba(0,0,0,.15)',\n})\n\nexport const Info = styled('span', {\n color: 'grey',\n fontSize: '.7em',\n})\n\ntype ExpanderProps = {\n expanded: boolean\n style?: React.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => (\n <span\n style={{\n display: 'inline-block',\n transition: 'all .1s ease',\n transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,\n ...style,\n }}\n >\n ▶\n </span>\n)\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n HandleEntry: HandleEntryComponent\n label?: React.ReactNode\n value: unknown\n subEntries: Entry[]\n subEntryPages: Entry[][]\n type: string\n expanded: boolean\n toggleExpanded: () => void\n pageSize: number\n renderer?: Renderer\n}\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T>(array: T[], size: number): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\ntype Renderer = (props: RendererProps) => JSX.Element\n\nexport const DefaultRenderer: Renderer = ({\n HandleEntry,\n label,\n value,\n subEntries = [],\n subEntryPages = [],\n type,\n expanded = false,\n toggleExpanded,\n pageSize,\n renderer,\n}) => {\n const [expandedPages, setExpandedPages] = React.useState<number[]>([])\n const [valueSnapshot, setValueSnapshot] = React.useState(undefined)\n\n const refreshValueSnapshot = () => {\n setValueSnapshot((value as () => any)())\n }\n\n return (\n <Entry key={label}>\n {subEntryPages.length ? (\n <>\n <ExpandButton onClick={() => toggleExpanded()}>\n <Expander expanded={expanded} /> {label}{' '}\n <Info>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries.length} {subEntries.length > 1 ? `items` : `item`}\n </Info>\n </ExpandButton>\n {expanded ? (\n subEntryPages.length === 1 ? (\n <SubEntries>\n {subEntries.map((entry) => (\n <HandleEntry key={entry.label} entry={entry} />\n ))}\n </SubEntries>\n ) : (\n <SubEntries>\n {subEntryPages.map((entries, index) => (\n <div key={index}>\n <Entry>\n <LabelButton\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander expanded={expanded} /> [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </LabelButton>\n {expandedPages.includes(index) ? (\n <SubEntries>\n {entries.map((entry) => (\n <HandleEntry key={entry.label} entry={entry} />\n ))}\n </SubEntries>\n ) : null}\n </Entry>\n </div>\n ))}\n </SubEntries>\n )\n ) : null}\n </>\n ) : type === 'function' ? (\n <>\n <Explorer\n renderer={renderer}\n label={\n <button\n onClick={refreshValueSnapshot}\n style={{\n appearance: 'none',\n border: '0',\n background: 'transparent',\n }}\n >\n <Label>{label}</Label> 🔄{' '}\n </button>\n }\n value={valueSnapshot}\n defaultExpanded={{}}\n />\n </>\n ) : (\n <>\n <Label>{label}:</Label> <Value>{displayValue(value)}</Value>\n </>\n )}\n </Entry>\n )\n}\n\ntype HandleEntryComponent = (props: { entry: Entry }) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n renderer?: Renderer\n defaultExpanded?: true | Record<string, boolean>\n}\n\ntype Property = {\n defaultExpanded?: boolean | Record<string, boolean>\n label: string\n value: unknown\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer({\n value,\n defaultExpanded,\n renderer = DefaultRenderer,\n pageSize = 100,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = React.useState(Boolean(defaultExpanded))\n const toggleExpanded = React.useCallback(() => setExpanded((old) => !old), [])\n\n let type: string = typeof value\n let subEntries: Property[] = []\n\n const makeProperty = (sub: { label: string; value: unknown }): Property => {\n const subDefaultExpanded =\n defaultExpanded === true\n ? { [sub.label]: true }\n : defaultExpanded?.[sub.label]\n return {\n ...sub,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value)) {\n type = 'array'\n subEntries = value.map((d, i) =>\n makeProperty({\n label: i.toString(),\n value: d,\n }),\n )\n } else if (\n value !== null &&\n typeof value === 'object' &&\n isIterable(value) &&\n typeof value[Symbol.iterator] === 'function'\n ) {\n type = 'Iterable'\n subEntries = Array.from(value, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value === 'object' && value !== null) {\n type = 'object'\n subEntries = Object.entries(value).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n const subEntryPages = chunkArray(subEntries, pageSize)\n\n return renderer({\n HandleEntry: ({ entry }) => (\n <Explorer value={value} renderer={renderer} {...rest} {...entry} />\n ),\n type,\n subEntries,\n subEntryPages,\n value,\n expanded,\n toggleExpanded,\n pageSize,\n ...rest,\n })\n}\n"],"names":["Entry","styled","fontFamily","fontSize","lineHeight","outline","wordBreak","Label","color","LabelButton","cursor","ExpandButton","font","background","border","padding","Value","_props","theme","danger","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","style","React","_extends","display","transition","transform","chunkArray","array","size","i","result","length","push","slice","DefaultRenderer","HandleEntry","label","value","subEntries","subEntryPages","type","toggleExpanded","pageSize","renderer","expandedPages","setExpandedPages","useState","valueSnapshot","setValueSnapshot","undefined","refreshValueSnapshot","String","toLowerCase","map","entry","entries","index","old","includes","filter","d","appearance","displayValue","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","rest","_objectWithoutPropertiesLoose","setExpanded","Boolean","useCallback","makeProperty","sub","subDefaultExpanded","Array","isArray","toString","from","val","Object","key"],"mappings":"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"}
1
+ {"version":3,"file":"Explorer.js","sources":["../../../../../src/Explorer.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { displayValue, styled } from './utils'\n\nexport const Entry = styled('div', {\n fontFamily: 'Menlo, monospace',\n fontSize: '.7rem',\n lineHeight: '1.7',\n outline: 'none',\n wordBreak: 'break-word',\n})\n\nexport const Label = styled('span', {\n color: 'white',\n})\n\nexport const LabelButton = styled('button', {\n cursor: 'pointer',\n color: 'white',\n})\n\nexport const ExpandButton = styled('button', {\n cursor: 'pointer',\n color: 'inherit',\n font: 'inherit',\n outline: 'inherit',\n background: 'transparent',\n border: 'none',\n padding: 0,\n})\n\nexport const Value = styled('span', (_props, theme) => ({\n color: theme.danger,\n}))\n\nexport const SubEntries = styled('div', {\n marginLeft: '.1em',\n paddingLeft: '1em',\n borderLeft: '2px solid rgba(0,0,0,.15)',\n})\n\nexport const Info = styled('span', {\n color: 'grey',\n fontSize: '.7em',\n})\n\ntype ExpanderProps = {\n expanded: boolean\n style?: React.CSSProperties\n}\n\nexport const Expander = ({ expanded, style = {} }: ExpanderProps) => (\n <span\n style={{\n display: 'inline-block',\n transition: 'all .1s ease',\n transform: `rotate(${expanded ? 90 : 0}deg) ${style.transform || ''}`,\n ...style,\n }}\n >\n ▶\n </span>\n)\n\ntype Entry = {\n label: string\n}\n\ntype RendererProps = {\n HandleEntry: HandleEntryComponent\n label?: React.ReactNode\n value: unknown\n subEntries: Entry[]\n subEntryPages: Entry[][]\n type: string\n expanded: boolean\n toggleExpanded: () => void\n pageSize: number\n renderer?: Renderer\n}\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nexport function chunkArray<T>(array: T[], size: number): T[][] {\n if (size < 1) return []\n let i = 0\n const result: T[][] = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\ntype Renderer = (props: RendererProps) => JSX.Element\n\nexport const DefaultRenderer: Renderer = ({\n HandleEntry,\n label,\n value,\n subEntries = [],\n subEntryPages = [],\n type,\n expanded = false,\n toggleExpanded,\n pageSize,\n renderer,\n}) => {\n const [expandedPages, setExpandedPages] = React.useState<number[]>([])\n const [valueSnapshot, setValueSnapshot] = React.useState(undefined)\n\n const refreshValueSnapshot = () => {\n setValueSnapshot((value as () => any)())\n }\n\n return (\n <Entry key={label as string}>\n {subEntryPages.length ? (\n <>\n <ExpandButton onClick={() => toggleExpanded()}>\n <Expander expanded={expanded} /> {label}{' '}\n <Info>\n {String(type).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries.length} {subEntries.length > 1 ? `items` : `item`}\n </Info>\n </ExpandButton>\n {expanded ? (\n subEntryPages.length === 1 ? (\n <SubEntries>\n {subEntries.map((entry) => (\n <HandleEntry key={entry.label} entry={entry} />\n ))}\n </SubEntries>\n ) : (\n <SubEntries>\n {subEntryPages.map((entries, index) => (\n <div key={index}>\n <Entry>\n <LabelButton\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n >\n <Expander expanded={expanded} /> [{index * pageSize} ...{' '}\n {index * pageSize + pageSize - 1}]\n </LabelButton>\n {expandedPages.includes(index) ? (\n <SubEntries>\n {entries.map((entry) => (\n <HandleEntry key={entry.label} entry={entry} />\n ))}\n </SubEntries>\n ) : null}\n </Entry>\n </div>\n ))}\n </SubEntries>\n )\n ) : null}\n </>\n ) : type === 'function' ? (\n <>\n <Explorer\n renderer={renderer}\n label={\n <button\n onClick={refreshValueSnapshot}\n style={{\n appearance: 'none',\n border: '0',\n background: 'transparent',\n }}\n >\n <Label>{label}</Label> 🔄{' '}\n </button>\n }\n value={valueSnapshot}\n defaultExpanded={{}}\n />\n </>\n ) : (\n <>\n <Label>{label}:</Label> <Value>{displayValue(value)}</Value>\n </>\n )}\n </Entry>\n )\n}\n\ntype HandleEntryComponent = (props: { entry: Entry }) => JSX.Element\n\ntype ExplorerProps = Partial<RendererProps> & {\n renderer?: Renderer\n defaultExpanded?: true | Record<string, boolean>\n}\n\ntype Property = {\n defaultExpanded?: boolean | Record<string, boolean>\n label: string\n value: unknown\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer({\n value,\n defaultExpanded,\n renderer = DefaultRenderer,\n pageSize = 100,\n ...rest\n}: ExplorerProps) {\n const [expanded, setExpanded] = React.useState(Boolean(defaultExpanded))\n const toggleExpanded = React.useCallback(() => setExpanded((old) => !old), [])\n\n let type: string = typeof value\n let subEntries: Property[] = []\n\n const makeProperty = (sub: { label: string; value: unknown }): Property => {\n const subDefaultExpanded =\n defaultExpanded === true\n ? { [sub.label]: true }\n : defaultExpanded?.[sub.label]\n return {\n ...sub,\n defaultExpanded: subDefaultExpanded,\n }\n }\n\n if (Array.isArray(value)) {\n type = 'array'\n subEntries = value.map((d, i) =>\n makeProperty({\n label: i.toString(),\n value: d,\n }),\n )\n } else if (\n value !== null &&\n typeof value === 'object' &&\n isIterable(value) &&\n typeof value[Symbol.iterator] === 'function'\n ) {\n type = 'Iterable'\n subEntries = Array.from(value, (val, i) =>\n makeProperty({\n label: i.toString(),\n value: val,\n }),\n )\n } else if (typeof value === 'object' && value !== null) {\n type = 'object'\n subEntries = Object.entries(value).map(([key, val]) =>\n makeProperty({\n label: key,\n value: val,\n }),\n )\n }\n\n const subEntryPages = chunkArray(subEntries, pageSize)\n\n return renderer({\n HandleEntry: ({ entry }) => (\n <Explorer value={value} renderer={renderer} {...rest} {...entry} />\n ),\n type,\n subEntries,\n subEntryPages,\n value,\n expanded,\n toggleExpanded,\n pageSize,\n ...rest,\n })\n}\n"],"names":["Entry","styled","fontFamily","fontSize","lineHeight","outline","wordBreak","Label","color","LabelButton","cursor","ExpandButton","font","background","border","padding","Value","_props","theme","danger","SubEntries","marginLeft","paddingLeft","borderLeft","Info","Expander","expanded","style","React","_extends","display","transition","transform","chunkArray","array","size","i","result","length","push","slice","DefaultRenderer","HandleEntry","label","value","subEntries","subEntryPages","type","toggleExpanded","pageSize","renderer","expandedPages","setExpandedPages","useState","valueSnapshot","setValueSnapshot","undefined","refreshValueSnapshot","String","toLowerCase","map","entry","entries","index","old","includes","filter","d","appearance","displayValue","isIterable","x","Symbol","iterator","Explorer","defaultExpanded","rest","_objectWithoutPropertiesLoose","setExpanded","Boolean","useCallback","makeProperty","sub","subDefaultExpanded","Array","isArray","toString","from","val","Object","key"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAIaA,KAAK,GAAGC,YAAM,CAAC,KAAD,EAAQ;AACjCC,EAAAA,UAAU,EAAE,kBADqB;AAEjCC,EAAAA,QAAQ,EAAE,OAFuB;AAGjCC,EAAAA,UAAU,EAAE,KAHqB;AAIjCC,EAAAA,OAAO,EAAE,MAJwB;AAKjCC,EAAAA,SAAS,EAAE,YAAA;AALsB,CAAR,EAApB;MAQMC,KAAK,GAAGN,YAAM,CAAC,MAAD,EAAS;AAClCO,EAAAA,KAAK,EAAE,OAAA;AAD2B,CAAT,EAApB;MAIMC,WAAW,GAAGR,YAAM,CAAC,QAAD,EAAW;AAC1CS,EAAAA,MAAM,EAAE,SADkC;AAE1CF,EAAAA,KAAK,EAAE,OAAA;AAFmC,CAAX,EAA1B;MAKMG,YAAY,GAAGV,YAAM,CAAC,QAAD,EAAW;AAC3CS,EAAAA,MAAM,EAAE,SADmC;AAE3CF,EAAAA,KAAK,EAAE,SAFoC;AAG3CI,EAAAA,IAAI,EAAE,SAHqC;AAI3CP,EAAAA,OAAO,EAAE,SAJkC;AAK3CQ,EAAAA,UAAU,EAAE,aAL+B;AAM3CC,EAAAA,MAAM,EAAE,MANmC;AAO3CC,EAAAA,OAAO,EAAE,CAAA;AAPkC,CAAX,EAA3B;AAUA,MAAMC,KAAK,GAAGf,YAAM,CAAC,MAAD,EAAS,CAACgB,MAAD,EAASC,KAAT,MAAoB;EACtDV,KAAK,EAAEU,KAAK,CAACC,MAAAA;AADyC,CAApB,CAAT,EAApB;MAIMC,UAAU,GAAGnB,YAAM,CAAC,KAAD,EAAQ;AACtCoB,EAAAA,UAAU,EAAE,MAD0B;AAEtCC,EAAAA,WAAW,EAAE,KAFyB;AAGtCC,EAAAA,UAAU,EAAE,2BAAA;AAH0B,CAAR,EAAzB;MAMMC,IAAI,GAAGvB,YAAM,CAAC,MAAD,EAAS;AACjCO,EAAAA,KAAK,EAAE,MAD0B;AAEjCL,EAAAA,QAAQ,EAAE,MAAA;AAFuB,CAAT,EAAnB;AAUA,MAAMsB,QAAQ,GAAG,IAAA,IAAA;EAAA,IAAC;IAAEC,QAAF;AAAYC,IAAAA,KAAK,GAAG,EAAA;GAArB,GAAA,IAAA,CAAA;EAAA,oBACtBC,gBAAA,CAAA,aAAA,CAAA,MAAA,EAAA;IACE,KAAK,EAAAC,oCAAA,CAAA;AACHC,MAAAA,OAAO,EAAE,cADN;AAEHC,MAAAA,UAAU,EAAE,cAFT;MAGHC,SAAS,EAAA,SAAA,IAAYN,QAAQ,GAAG,EAAH,GAAQ,CAA5B,CAAA,GAAA,OAAA,IAAqCC,KAAK,CAACK,SAAN,IAAmB,EAAxD,CAAA;AAHN,KAAA,EAIAL,KAJA,CAAA;GAFe,EAAA,QAAA,CAAA,CAAA;AAAA,EAAjB;;AA8BP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,UAAT,CAAuBC,KAAvB,EAAmCC,IAAnC,EAAwD;AAC7D,EAAA,IAAIA,IAAI,GAAG,CAAX,EAAc,OAAO,EAAP,CAAA;EACd,IAAIC,CAAC,GAAG,CAAR,CAAA;EACA,MAAMC,MAAa,GAAG,EAAtB,CAAA;;AACA,EAAA,OAAOD,CAAC,GAAGF,KAAK,CAACI,MAAjB,EAAyB;AACvBD,IAAAA,MAAM,CAACE,IAAP,CAAYL,KAAK,CAACM,KAAN,CAAYJ,CAAZ,EAAeA,CAAC,GAAGD,IAAnB,CAAZ,CAAA,CAAA;IACAC,CAAC,GAAGA,CAAC,GAAGD,IAAR,CAAA;AACD,GAAA;;AACD,EAAA,OAAOE,MAAP,CAAA;AACD,CAAA;AAIM,MAAMI,eAAyB,GAAG,KAWnC,IAAA;EAAA,IAXoC;IACxCC,WADwC;IAExCC,KAFwC;IAGxCC,KAHwC;AAIxCC,IAAAA,UAAU,GAAG,EAJ2B;AAKxCC,IAAAA,aAAa,GAAG,EALwB;IAMxCC,IANwC;AAOxCrB,IAAAA,QAAQ,GAAG,KAP6B;IAQxCsB,cARwC;IASxCC,QATwC;AAUxCC,IAAAA,QAAAA;GACI,GAAA,KAAA,CAAA;EACJ,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,CAAA,GAAoCxB,gBAAK,CAACyB,QAAN,CAAyB,EAAzB,CAA1C,CAAA;EACA,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,CAAA,GAAoC3B,gBAAK,CAACyB,QAAN,CAAeG,SAAf,CAA1C,CAAA;;EAEA,MAAMC,oBAAoB,GAAG,MAAM;IACjCF,gBAAgB,CAAEX,KAAD,EAAD,CAAhB,CAAA;GADF,CAAA;;AAIA,EAAA,oBACEhB,+BAAC,KAAD,EAAA;AAAO,IAAA,GAAG,EAAEe,KAAAA;AAAZ,GAAA,EACGG,aAAa,CAACR,MAAd,gBACCV,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,eACEA,+BAAC,YAAD,EAAA;IAAc,OAAO,EAAE,MAAMoB,cAAc,EAAA;AAA3C,GAAA,eACEpB,+BAAC,QAAD,EAAA;AAAU,IAAA,QAAQ,EAAEF,QAAAA;GADtB,CAAA,EAAA,GAAA,EACoCiB,KADpC,EAC2C,GAD3C,eAEEf,+BAAC,IAAD,EAAA,IAAA,EACG8B,MAAM,CAACX,IAAD,CAAN,CAAaY,WAAb,EAAA,KAA+B,UAA/B,GAA4C,aAA5C,GAA4D,EAD/D,EAEGd,UAAU,CAACP,MAFd,EAEuBO,GAAAA,EAAAA,UAAU,CAACP,MAAX,GAAoB,CAApB,GAAA,OAAA,GAAA,MAFvB,CAFF,CADF,EAQGZ,QAAQ,GACPoB,aAAa,CAACR,MAAd,KAAyB,CAAzB,gBACEV,gBAAA,CAAA,aAAA,CAAC,UAAD,EAAA,IAAA,EACGiB,UAAU,CAACe,GAAX,CAAgBC,KAAD,iBACdjC,gBAAA,CAAA,aAAA,CAAC,WAAD,EAAA;IAAa,GAAG,EAAEiC,KAAK,CAAClB,KAAxB;AAA+B,IAAA,KAAK,EAAEkB,KAAAA;AAAtC,GAAA,CADD,CADH,CADF,gBAOEjC,gBAAA,CAAA,aAAA,CAAC,UAAD,EACGkB,IAAAA,EAAAA,aAAa,CAACc,GAAd,CAAkB,CAACE,OAAD,EAAUC,KAAV,kBACjBnC,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,GAAG,EAAEmC,KAAAA;AAAV,GAAA,eACEnC,gBAAC,CAAA,aAAA,CAAA,KAAD,EACE,IAAA,eAAAA,gBAAA,CAAA,aAAA,CAAC,WAAD,EAAA;AACE,IAAA,OAAO,EAAE,MACPwB,gBAAgB,CAAEY,GAAD,IACfA,GAAG,CAACC,QAAJ,CAAaF,KAAb,CAAA,GACIC,GAAG,CAACE,MAAJ,CAAYC,CAAD,IAAOA,CAAC,KAAKJ,KAAxB,CADJ,GAEI,CAAC,GAAGC,GAAJ,EAASD,KAAT,CAHU,CAAA;AAFpB,GAAA,eASEnC,+BAAC,QAAD,EAAA;AAAU,IAAA,QAAQ,EAAEF,QAAAA;AAApB,GAAA,CATF,EASqCqC,IAAAA,EAAAA,KAAK,GAAGd,QAT7C,UAS2D,GAT3D,EAUGc,KAAK,GAAGd,QAAR,GAAmBA,QAAnB,GAA8B,CAVjC,EADF,GAAA,CAAA,EAaGE,aAAa,CAACc,QAAd,CAAuBF,KAAvB,CAAA,gBACCnC,+BAAC,UAAD,EAAA,IAAA,EACGkC,OAAO,CAACF,GAAR,CAAaC,KAAD,iBACXjC,+BAAC,WAAD,EAAA;IAAa,GAAG,EAAEiC,KAAK,CAAClB,KAAxB;AAA+B,IAAA,KAAK,EAAEkB,KAAAA;AAAtC,GAAA,CADD,CADH,CADD,GAMG,IAnBN,CADF,CADD,CADH,CARK,GAoCL,IA5CN,CADD,GA+CGd,IAAI,KAAK,UAAT,gBACFnB,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,eACEA,+BAAC,QAAD,EAAA;AACE,IAAA,QAAQ,EAAEsB,QADZ;AAEE,IAAA,KAAK,eACHtB,gBAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AACE,MAAA,OAAO,EAAE6B,oBADX;AAEE,MAAA,KAAK,EAAE;AACLW,QAAAA,UAAU,EAAE,MADP;AAELtD,QAAAA,MAAM,EAAE,GAFH;AAGLD,QAAAA,UAAU,EAAE,aAAA;AAHP,OAAA;AAFT,KAAA,eAQEe,+BAAC,KAAD,EAAA,IAAA,EAAQe,KAAR,CARF,EAAA,eAAA,EAQ4B,GAR5B,CAHJ;AAcE,IAAA,KAAK,EAAEW,aAdT;AAeE,IAAA,eAAe,EAAE,EAAA;AAfnB,GAAA,CADF,CADE,gBAqBF1B,gBAAA,CAAA,aAAA,CAAAA,gBAAA,CAAA,QAAA,EAAA,IAAA,eACEA,+BAAC,KAAD,EAAA,IAAA,EAAQe,KAAR,EADF,GAAA,CAAA,EAAA,GAAA,eAC0Bf,gBAAC,CAAA,aAAA,CAAA,KAAD,QAAQyC,kBAAY,CAACzB,KAAD,CAApB,CAD1B,CArEJ,CADF,CAAA;AA4ED,EA/FM;;AA8GP,SAAS0B,UAAT,CAAoBC,CAApB,EAAoD;AAClD,EAAA,OAAOC,MAAM,CAACC,QAAP,IAAmBF,CAA1B,CAAA;AACD,CAAA;;AAEc,SAASG,QAAT,CAMG,KAAA,EAAA;EAAA,IANe;IAC/B9B,KAD+B;IAE/B+B,eAF+B;AAG/BzB,IAAAA,QAAQ,GAAGT,eAHoB;AAI/BQ,IAAAA,QAAQ,GAAG,GAAA;GAEK,GAAA,KAAA;AAAA,MADb2B,IACa,GAAAC,sDAAA,CAAA,KAAA,EAAA,SAAA,CAAA,CAAA;;AAChB,EAAA,MAAM,CAACnD,QAAD,EAAWoD,WAAX,CAA0BlD,GAAAA,gBAAK,CAACyB,QAAN,CAAe0B,OAAO,CAACJ,eAAD,CAAtB,CAAhC,CAAA;AACA,EAAA,MAAM3B,cAAc,GAAGpB,gBAAK,CAACoD,WAAN,CAAkB,MAAMF,WAAW,CAAEd,GAAD,IAAS,CAACA,GAAX,CAAnC,EAAoD,EAApD,CAAvB,CAAA;EAEA,IAAIjB,IAAY,GAAG,OAAOH,KAA1B,CAAA;EACA,IAAIC,UAAsB,GAAG,EAA7B,CAAA;;EAEA,MAAMoC,YAAY,GAAIC,GAAD,IAAsD;AACzE,IAAA,MAAMC,kBAAkB,GACtBR,eAAe,KAAK,IAApB,GACI;MAAE,CAACO,GAAG,CAACvC,KAAL,GAAa,IAAA;KADnB,GAEIgC,eAFJ,IAEIA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAGO,GAAG,CAACvC,KAAP,CAHrB,CAAA;AAIA,IAAA,OAAAd,oCAAA,CAAA,EAAA,EACKqD,GADL,EAAA;AAEEP,MAAAA,eAAe,EAAEQ,kBAAAA;AAFnB,KAAA,CAAA,CAAA;GALF,CAAA;;AAWA,EAAA,IAAIC,KAAK,CAACC,OAAN,CAAczC,KAAd,CAAJ,EAA0B;AACxBG,IAAAA,IAAI,GAAG,OAAP,CAAA;IACAF,UAAU,GAAGD,KAAK,CAACgB,GAAN,CAAU,CAACO,CAAD,EAAI/B,CAAJ,KACrB6C,YAAY,CAAC;AACXtC,MAAAA,KAAK,EAAEP,CAAC,CAACkD,QAAF,EADI;AAEX1C,MAAAA,KAAK,EAAEuB,CAAAA;AAFI,KAAD,CADD,CAAb,CAAA;GAFF,MAQO,IACLvB,KAAK,KAAK,IAAV,IACA,OAAOA,KAAP,KAAiB,QADjB,IAEA0B,UAAU,CAAC1B,KAAD,CAFV,IAGA,OAAOA,KAAK,CAAC4B,MAAM,CAACC,QAAR,CAAZ,KAAkC,UAJ7B,EAKL;AACA1B,IAAAA,IAAI,GAAG,UAAP,CAAA;AACAF,IAAAA,UAAU,GAAGuC,KAAK,CAACG,IAAN,CAAW3C,KAAX,EAAkB,CAAC4C,GAAD,EAAMpD,CAAN,KAC7B6C,YAAY,CAAC;AACXtC,MAAAA,KAAK,EAAEP,CAAC,CAACkD,QAAF,EADI;AAEX1C,MAAAA,KAAK,EAAE4C,GAAAA;AAFI,KAAD,CADD,CAAb,CAAA;GAPK,MAaA,IAAI,OAAO5C,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,KAAK,IAA3C,EAAiD;AACtDG,IAAAA,IAAI,GAAG,QAAP,CAAA;IACAF,UAAU,GAAG4C,MAAM,CAAC3B,OAAP,CAAelB,KAAf,CAAA,CAAsBgB,GAAtB,CAA0B,KAAA,IAAA;AAAA,MAAA,IAAC,CAAC8B,GAAD,EAAMF,GAAN,CAAD,GAAA,KAAA,CAAA;AAAA,MAAA,OACrCP,YAAY,CAAC;AACXtC,QAAAA,KAAK,EAAE+C,GADI;AAEX9C,QAAAA,KAAK,EAAE4C,GAAAA;AAFI,OAAD,CADyB,CAAA;AAAA,KAA1B,CAAb,CAAA;AAMD,GAAA;;AAED,EAAA,MAAM1C,aAAa,GAAGb,UAAU,CAACY,UAAD,EAAaI,QAAb,CAAhC,CAAA;AAEA,EAAA,OAAOC,QAAQ,CAAArB,oCAAA,CAAA;AACba,IAAAA,WAAW,EAAE,KAAA,IAAA;MAAA,IAAC;AAAEmB,QAAAA,KAAAA;OAAH,GAAA,KAAA,CAAA;AAAA,MAAA,oBACXjC,+BAAC,QAAD,EAAAC,oCAAA,CAAA;AAAU,QAAA,KAAK,EAAEe,KAAjB;AAAwB,QAAA,QAAQ,EAAEM,QAAAA;OAAc0B,EAAAA,IAAhD,EAA0Df,KAA1D,CADW,CAAA,CAAA;KADA;IAIbd,IAJa;IAKbF,UALa;IAMbC,aANa;IAObF,KAPa;IAQblB,QARa;IASbsB,cATa;AAUbC,IAAAA,QAAAA;AAVa,GAAA,EAWV2B,IAXU,CAAf,CAAA,CAAA;AAaD;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalStorage.js","sources":["../../../../../src/useLocalStorage.ts"],"sourcesContent":["import React from 'react'\n\nconst getItem = (key: string): unknown => {\n try {\n const itemValue = localStorage.getItem(key)\n if (typeof itemValue === 'string') {\n return JSON.parse(itemValue)\n }\n return undefined\n } catch {\n return undefined\n }\n}\n\nexport default function useLocalStorage<T>(\n key: string,\n defaultValue: T | undefined\n): [T | undefined, (newVal: T | ((prevVal: T) => T)) => void] {\n const [value, setValue] = React.useState<T>()\n\n React.useEffect(() => {\n const initialValue = getItem(key) as T | undefined\n\n if (typeof initialValue === 'undefined' || initialValue === null) {\n setValue(\n typeof defaultValue === 'function' ? defaultValue() : defaultValue\n )\n } else {\n setValue(initialValue)\n }\n }, [defaultValue, key])\n\n const setter = React.useCallback(\n updater => {\n setValue(old => {\n let newVal = updater\n\n if (typeof updater == 'function') {\n newVal = updater(old)\n }\n try {\n localStorage.setItem(key, JSON.stringify(newVal))\n } catch {}\n\n return newVal\n })\n },\n [key]\n )\n\n return [value, setter]\n}\n"],"names":["getItem","key","itemValue","localStorage","JSON","parse","undefined","useLocalStorage","defaultValue","value","setValue","React","useState","useEffect","initialValue","setter","useCallback","updater","old","newVal","setItem","stringify"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,OAAO,GAAIC,GAAD,IAA0B;EACxC,IAAI;AACF,IAAA,MAAMC,SAAS,GAAGC,YAAY,CAACH,OAAb,CAAqBC,GAArB,CAAlB,CAAA;;AACA,IAAA,IAAI,OAAOC,SAAP,KAAqB,QAAzB,EAAmC;AACjC,MAAA,OAAOE,IAAI,CAACC,KAAL,CAAWH,SAAX,CAAP,CAAA;AACD,KAAA;;AACD,IAAA,OAAOI,SAAP,CAAA;AACD,GAND,CAME,OAAM,OAAA,EAAA;AACN,IAAA,OAAOA,SAAP,CAAA;AACD,GAAA;AACF,CAVD,CAAA;;AAYe,SAASC,eAAT,CACbN,GADa,EAEbO,YAFa,EAG+C;EAC5D,MAAM,CAACC,KAAD,EAAQC,QAAR,IAAoBC,yBAAK,CAACC,QAAN,EAA1B,CAAA;EAEAD,yBAAK,CAACE,SAAN,CAAgB,MAAM;AACpB,IAAA,MAAMC,YAAY,GAAGd,OAAO,CAACC,GAAD,CAA5B,CAAA;;IAEA,IAAI,OAAOa,YAAP,KAAwB,WAAxB,IAAuCA,YAAY,KAAK,IAA5D,EAAkE;MAChEJ,QAAQ,CACN,OAAOF,YAAP,KAAwB,UAAxB,GAAqCA,YAAY,EAAjD,GAAsDA,YADhD,CAAR,CAAA;AAGD,KAJD,MAIO;MACLE,QAAQ,CAACI,YAAD,CAAR,CAAA;AACD,KAAA;AACF,GAVD,EAUG,CAACN,YAAD,EAAeP,GAAf,CAVH,CAAA,CAAA;AAYA,EAAA,MAAMc,MAAM,GAAGJ,yBAAK,CAACK,WAAN,CACbC,OAAO,IAAI;IACTP,QAAQ,CAACQ,GAAG,IAAI;MACd,IAAIC,MAAM,GAAGF,OAAb,CAAA;;AAEA,MAAA,IAAI,OAAOA,OAAP,IAAkB,UAAtB,EAAkC;AAChCE,QAAAA,MAAM,GAAGF,OAAO,CAACC,GAAD,CAAhB,CAAA;AACD,OAAA;;MACD,IAAI;QACFf,YAAY,CAACiB,OAAb,CAAqBnB,GAArB,EAA0BG,IAAI,CAACiB,SAAL,CAAeF,MAAf,CAA1B,CAAA,CAAA;OADF,CAEE,iBAAM,EAAE;;AAEV,MAAA,OAAOA,MAAP,CAAA;AACD,KAXO,CAAR,CAAA;AAYD,GAdY,EAeb,CAAClB,GAAD,CAfa,CAAf,CAAA;AAkBA,EAAA,OAAO,CAACQ,KAAD,EAAQM,MAAR,CAAP,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"useLocalStorage.js","sources":["../../../../../src/useLocalStorage.ts"],"sourcesContent":["import React from 'react'\n\nconst getItem = (key: string): unknown => {\n try {\n const itemValue = localStorage.getItem(key)\n if (typeof itemValue === 'string') {\n return JSON.parse(itemValue)\n }\n return undefined\n } catch {\n return undefined\n }\n}\n\nexport default function useLocalStorage<T>(\n key: string,\n defaultValue: T | undefined,\n): [T | undefined, (newVal: T | ((prevVal: T) => T)) => void] {\n const [value, setValue] = React.useState<T>()\n\n React.useEffect(() => {\n const initialValue = getItem(key) as T | undefined\n\n if (typeof initialValue === 'undefined' || initialValue === null) {\n setValue(\n typeof defaultValue === 'function' ? defaultValue() : defaultValue,\n )\n } else {\n setValue(initialValue)\n }\n }, [defaultValue, key])\n\n const setter = React.useCallback(\n (updater: any) => {\n setValue((old) => {\n let newVal = updater\n\n if (typeof updater == 'function') {\n newVal = updater(old)\n }\n try {\n localStorage.setItem(key, JSON.stringify(newVal))\n } catch {}\n\n return newVal\n })\n },\n [key],\n )\n\n return [value, setter]\n}\n"],"names":["getItem","key","itemValue","localStorage","JSON","parse","undefined","useLocalStorage","defaultValue","value","setValue","React","useState","useEffect","initialValue","setter","useCallback","updater","old","newVal","setItem","stringify"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEA,MAAMA,OAAO,GAAIC,GAAD,IAA0B;EACxC,IAAI;AACF,IAAA,MAAMC,SAAS,GAAGC,YAAY,CAACH,OAAb,CAAqBC,GAArB,CAAlB,CAAA;;AACA,IAAA,IAAI,OAAOC,SAAP,KAAqB,QAAzB,EAAmC;AACjC,MAAA,OAAOE,IAAI,CAACC,KAAL,CAAWH,SAAX,CAAP,CAAA;AACD,KAAA;;AACD,IAAA,OAAOI,SAAP,CAAA;AACD,GAND,CAME,OAAM,OAAA,EAAA;AACN,IAAA,OAAOA,SAAP,CAAA;AACD,GAAA;AACF,CAVD,CAAA;;AAYe,SAASC,eAAT,CACbN,GADa,EAEbO,YAFa,EAG+C;EAC5D,MAAM,CAACC,KAAD,EAAQC,QAAR,IAAoBC,yBAAK,CAACC,QAAN,EAA1B,CAAA;EAEAD,yBAAK,CAACE,SAAN,CAAgB,MAAM;AACpB,IAAA,MAAMC,YAAY,GAAGd,OAAO,CAACC,GAAD,CAA5B,CAAA;;IAEA,IAAI,OAAOa,YAAP,KAAwB,WAAxB,IAAuCA,YAAY,KAAK,IAA5D,EAAkE;MAChEJ,QAAQ,CACN,OAAOF,YAAP,KAAwB,UAAxB,GAAqCA,YAAY,EAAjD,GAAsDA,YADhD,CAAR,CAAA;AAGD,KAJD,MAIO;MACLE,QAAQ,CAACI,YAAD,CAAR,CAAA;AACD,KAAA;AACF,GAVD,EAUG,CAACN,YAAD,EAAeP,GAAf,CAVH,CAAA,CAAA;AAYA,EAAA,MAAMc,MAAM,GAAGJ,yBAAK,CAACK,WAAN,CACZC,OAAD,IAAkB;IAChBP,QAAQ,CAAEQ,GAAD,IAAS;MAChB,IAAIC,MAAM,GAAGF,OAAb,CAAA;;AAEA,MAAA,IAAI,OAAOA,OAAP,IAAkB,UAAtB,EAAkC;AAChCE,QAAAA,MAAM,GAAGF,OAAO,CAACC,GAAD,CAAhB,CAAA;AACD,OAAA;;MACD,IAAI;QACFf,YAAY,CAACiB,OAAb,CAAqBnB,GAArB,EAA0BG,IAAI,CAACiB,SAAL,CAAeF,MAAf,CAA1B,CAAA,CAAA;OADF,CAEE,iBAAM,EAAE;;AAEV,MAAA,OAAOA,MAAP,CAAA;AACD,KAXO,CAAR,CAAA;AAYD,GAdY,EAeb,CAAClB,GAAD,CAfa,CAAf,CAAA;AAkBA,EAAA,OAAO,CAACQ,KAAD,EAAQM,MAAR,CAAP,CAAA;AACD;;;;"}
@@ -24,6 +24,8 @@ function useMediaQuery(query) {
24
24
  if (typeof window !== 'undefined') {
25
25
  return window.matchMedia && window.matchMedia(query).matches;
26
26
  }
27
+
28
+ return;
27
29
  }); // Watch for changes
28
30
 
29
31
  React__default["default"].useEffect(() => {
@@ -49,6 +51,8 @@ function useMediaQuery(query) {
49
51
  matcher.removeListener(onChange);
50
52
  };
51
53
  }
54
+
55
+ return;
52
56
  }, [isMatch, query, setIsMatch]);
53
57
  return isMatch;
54
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaQuery.js","sources":["../../../../../src/useMediaQuery.ts"],"sourcesContent":["import React from 'react'\n\nexport default function useMediaQuery(query: string): boolean | undefined {\n // Keep track of the preference in state, start with the current match\n const [isMatch, setIsMatch] = React.useState(() => {\n if (typeof window !== 'undefined') {\n return window.matchMedia && window.matchMedia(query).matches\n }\n })\n\n // Watch for changes\n React.useEffect(() => {\n if (typeof window !== 'undefined') {\n if (!window.matchMedia) {\n return\n }\n\n // Create a matcher\n const matcher = window.matchMedia(query)\n\n // Create our handler\n const onChange = ({ matches }: { matches: boolean }) =>\n setIsMatch(matches)\n\n // Listen for changes\n matcher.addListener(onChange)\n\n return () => {\n // Stop listening for changes\n matcher.removeListener(onChange)\n }\n }\n }, [isMatch, query, setIsMatch])\n\n return isMatch\n}\n"],"names":["useMediaQuery","query","isMatch","setIsMatch","React","useState","window","matchMedia","matches","useEffect","matcher","onChange","addListener","removeListener"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEe,SAASA,aAAT,CAAuBC,KAAvB,EAA2D;AACxE;EACA,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwBC,yBAAK,CAACC,QAAN,CAAe,MAAM;AACjD,IAAA,IAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;MACjC,OAAOA,MAAM,CAACC,UAAP,IAAqBD,MAAM,CAACC,UAAP,CAAkBN,KAAlB,CAAA,CAAyBO,OAArD,CAAA;AACD,KAAA;GAH2B,CAA9B,CAFwE;;EASxEJ,yBAAK,CAACK,SAAN,CAAgB,MAAM;AACpB,IAAA,IAAI,OAAOH,MAAP,KAAkB,WAAtB,EAAmC;AACjC,MAAA,IAAI,CAACA,MAAM,CAACC,UAAZ,EAAwB;AACtB,QAAA,OAAA;AACD,OAHgC;;;MAMjC,MAAMG,OAAO,GAAGJ,MAAM,CAACC,UAAP,CAAkBN,KAAlB,CAAhB,CANiC;;AASjC,MAAA,MAAMU,QAAQ,GAAG,IAAA,IAAA;QAAA,IAAC;AAAEH,UAAAA,OAAAA;SAAH,GAAA,IAAA,CAAA;QAAA,OACfL,UAAU,CAACK,OAAD,CADK,CAAA;AAAA,OAAjB,CATiC;;;MAajCE,OAAO,CAACE,WAAR,CAAoBD,QAApB,CAAA,CAAA;AAEA,MAAA,OAAO,MAAM;AACX;QACAD,OAAO,CAACG,cAAR,CAAuBF,QAAvB,CAAA,CAAA;OAFF,CAAA;AAID,KAAA;AACF,GArBD,EAqBG,CAACT,OAAD,EAAUD,KAAV,EAAiBE,UAAjB,CArBH,CAAA,CAAA;AAuBA,EAAA,OAAOD,OAAP,CAAA;AACD;;;;"}
1
+ {"version":3,"file":"useMediaQuery.js","sources":["../../../../../src/useMediaQuery.ts"],"sourcesContent":["import React from 'react'\n\nexport default function useMediaQuery(query: string): boolean | undefined {\n // Keep track of the preference in state, start with the current match\n const [isMatch, setIsMatch] = React.useState(() => {\n if (typeof window !== 'undefined') {\n return window.matchMedia && window.matchMedia(query).matches\n }\n return\n })\n\n // Watch for changes\n React.useEffect(() => {\n if (typeof window !== 'undefined') {\n if (!window.matchMedia) {\n return\n }\n\n // Create a matcher\n const matcher = window.matchMedia(query)\n\n // Create our handler\n const onChange = ({ matches }: { matches: boolean }) =>\n setIsMatch(matches)\n\n // Listen for changes\n matcher.addListener(onChange)\n\n return () => {\n // Stop listening for changes\n matcher.removeListener(onChange)\n }\n }\n\n return\n }, [isMatch, query, setIsMatch])\n\n return isMatch\n}\n"],"names":["useMediaQuery","query","isMatch","setIsMatch","React","useState","window","matchMedia","matches","useEffect","matcher","onChange","addListener","removeListener"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEe,SAASA,aAAT,CAAuBC,KAAvB,EAA2D;AACxE;EACA,MAAM,CAACC,OAAD,EAAUC,UAAV,IAAwBC,yBAAK,CAACC,QAAN,CAAe,MAAM;AACjD,IAAA,IAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;MACjC,OAAOA,MAAM,CAACC,UAAP,IAAqBD,MAAM,CAACC,UAAP,CAAkBN,KAAlB,CAAA,CAAyBO,OAArD,CAAA;AACD,KAAA;;AACD,IAAA,OAAA;GAJ4B,CAA9B,CAFwE;;EAUxEJ,yBAAK,CAACK,SAAN,CAAgB,MAAM;AACpB,IAAA,IAAI,OAAOH,MAAP,KAAkB,WAAtB,EAAmC;AACjC,MAAA,IAAI,CAACA,MAAM,CAACC,UAAZ,EAAwB;AACtB,QAAA,OAAA;AACD,OAHgC;;;MAMjC,MAAMG,OAAO,GAAGJ,MAAM,CAACC,UAAP,CAAkBN,KAAlB,CAAhB,CANiC;;AASjC,MAAA,MAAMU,QAAQ,GAAG,IAAA,IAAA;QAAA,IAAC;AAAEH,UAAAA,OAAAA;SAAH,GAAA,IAAA,CAAA;QAAA,OACfL,UAAU,CAACK,OAAD,CADK,CAAA;AAAA,OAAjB,CATiC;;;MAajCE,OAAO,CAACE,WAAR,CAAoBD,QAApB,CAAA,CAAA;AAEA,MAAA,OAAO,MAAM;AACX;QACAD,OAAO,CAACG,cAAR,CAAuBF,QAAvB,CAAA,CAAA;OAFF,CAAA;AAID,KAAA;;AAED,IAAA,OAAA;AACD,GAvBD,EAuBG,CAACT,OAAD,EAAUD,KAAV,EAAiBE,UAAjB,CAvBH,CAAA,CAAA;AAyBA,EAAA,OAAOD,OAAP,CAAA;AACD;;;;"}
@@ -956,6 +956,8 @@ function useMediaQuery(query) {
956
956
  if (typeof window !== 'undefined') {
957
957
  return window.matchMedia && window.matchMedia(query).matches;
958
958
  }
959
+
960
+ return;
959
961
  }); // Watch for changes
960
962
 
961
963
  React__default.useEffect(() => {
@@ -981,6 +983,8 @@ function useMediaQuery(query) {
981
983
  matcher.removeListener(onChange);
982
984
  };
983
985
  }
986
+
987
+ return;
984
988
  }, [isMatch, query, setIsMatch]);
985
989
  return isMatch;
986
990
  }