@tanstack/react-query-devtools 5.0.0-alpha.3 → 5.0.0-alpha.30
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.
- package/build/lib/__tests__/devtools.test.d.ts +1 -1
- package/build/lib/__tests__/devtools.test.d.ts.map +1 -0
- package/build/lib/__tests__/utils.d.ts +1 -0
- package/build/lib/__tests__/utils.d.ts.map +1 -0
- package/build/lib/devtools.d.ts +11 -75
- package/build/lib/devtools.d.ts.map +1 -0
- package/build/lib/devtools.esm.js +52 -766
- package/build/lib/devtools.esm.js.map +1 -1
- package/build/lib/devtools.js +49 -783
- package/build/lib/devtools.js.map +1 -1
- package/build/lib/devtools.mjs +52 -766
- package/build/lib/devtools.mjs.map +1 -1
- package/build/lib/index.d.ts +1 -1
- package/build/lib/index.d.ts.map +1 -0
- package/build/lib/index.esm.js +10 -5
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.js +8 -4
- package/build/lib/index.js.map +1 -1
- package/build/lib/index.mjs +10 -5
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/index.prod.d.ts +1 -1
- package/build/lib/index.prod.esm.js +7886 -1302
- package/build/lib/index.prod.esm.js.map +1 -1
- package/build/lib/index.prod.js +7953 -1389
- package/build/lib/index.prod.js.map +1 -1
- package/build/lib/index.prod.mjs +7886 -1302
- package/build/lib/index.prod.mjs.map +1 -1
- package/build/umd/index.development.js +7010 -2089
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +5 -6
- package/src/__tests__/devtools.test.tsx +1 -860
- package/src/devtools.tsx +61 -1165
- package/src/index.ts +6 -6
- package/build/lib/Explorer.d.ts +0 -50
- package/build/lib/Explorer.esm.js +0 -253
- package/build/lib/Explorer.esm.js.map +0 -1
- package/build/lib/Explorer.js +0 -287
- package/build/lib/Explorer.js.map +0 -1
- package/build/lib/Explorer.mjs +0 -253
- package/build/lib/Explorer.mjs.map +0 -1
- package/build/lib/Logo.d.ts +0 -1
- package/build/lib/Logo.esm.js +0 -32
- package/build/lib/Logo.esm.js.map +0 -1
- package/build/lib/Logo.js +0 -55
- package/build/lib/Logo.js.map +0 -1
- package/build/lib/Logo.mjs +0 -32
- package/build/lib/Logo.mjs.map +0 -1
- package/build/lib/__tests__/Explorer.test.d.ts +0 -1
- package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js +0 -17
- package/build/lib/_virtual/_rollupPluginBabelHelpers.esm.js.map +0 -1
- package/build/lib/_virtual/_rollupPluginBabelHelpers.js +0 -19
- package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/lib/_virtual/_rollupPluginBabelHelpers.mjs +0 -17
- package/build/lib/_virtual/_rollupPluginBabelHelpers.mjs.map +0 -1
- package/build/lib/noop.d.ts +0 -2
- package/build/lib/screenreader.d.ts +0 -3
- package/build/lib/screenreader.esm.js +0 -17
- package/build/lib/screenreader.esm.js.map +0 -1
- package/build/lib/screenreader.js +0 -40
- package/build/lib/screenreader.js.map +0 -1
- package/build/lib/screenreader.mjs +0 -17
- package/build/lib/screenreader.mjs.map +0 -1
- package/build/lib/styledComponents.d.ts +0 -9
- package/build/lib/styledComponents.esm.js +0 -93
- package/build/lib/styledComponents.esm.js.map +0 -1
- package/build/lib/styledComponents.js +0 -102
- package/build/lib/styledComponents.js.map +0 -1
- package/build/lib/styledComponents.mjs +0 -93
- package/build/lib/styledComponents.mjs.map +0 -1
- package/build/lib/theme.d.ts +0 -36
- package/build/lib/theme.esm.js +0 -32
- package/build/lib/theme.esm.js.map +0 -1
- package/build/lib/theme.js +0 -55
- package/build/lib/theme.js.map +0 -1
- package/build/lib/theme.mjs +0 -32
- package/build/lib/theme.mjs.map +0 -1
- package/build/lib/useLocalStorage.d.ts +0 -1
- package/build/lib/useLocalStorage.esm.js +0 -40
- package/build/lib/useLocalStorage.esm.js.map +0 -1
- package/build/lib/useLocalStorage.js +0 -63
- package/build/lib/useLocalStorage.js.map +0 -1
- package/build/lib/useLocalStorage.mjs +0 -40
- package/build/lib/useLocalStorage.mjs.map +0 -1
- package/build/lib/useMediaQuery.d.ts +0 -1
- package/build/lib/useMediaQuery.esm.js +0 -36
- package/build/lib/useMediaQuery.esm.js.map +0 -1
- package/build/lib/useMediaQuery.js +0 -59
- package/build/lib/useMediaQuery.js.map +0 -1
- package/build/lib/useMediaQuery.mjs +0 -36
- package/build/lib/useMediaQuery.mjs.map +0 -1
- package/build/lib/utils.d.ts +0 -79
- package/build/lib/utils.esm.js +0 -184
- package/build/lib/utils.esm.js.map +0 -1
- package/build/lib/utils.js +0 -218
- package/build/lib/utils.js.map +0 -1
- package/build/lib/utils.mjs +0 -184
- package/build/lib/utils.mjs.map +0 -1
- package/src/Explorer.tsx +0 -385
- package/src/Logo.tsx +0 -32
- package/src/__tests__/Explorer.test.tsx +0 -149
- package/src/noop.ts +0 -7
- package/src/screenreader.tsx +0 -16
- package/src/styledComponents.ts +0 -108
- package/src/theme.tsx +0 -33
- package/src/useLocalStorage.ts +0 -52
- package/src/useMediaQuery.ts +0 -34
- package/src/utils.ts +0 -319
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.mjs","sources":["../../src/devtools.tsx"],"sourcesContent":["'use client'\nimport * as React from 'react'\nimport type {\n QueryCache,\n QueryClient,\n QueryKey as QueryKeyType,\n} from '@tanstack/react-query'\nimport {\n useQueryClient,\n onlineManager,\n notifyManager,\n} from '@tanstack/react-query'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport useLocalStorage from './useLocalStorage'\nimport {\n isVerticalSide,\n sortFns,\n useIsMounted,\n getSidePanelStyle,\n minPanelSize,\n getResizeHandleStyle,\n getSidedProp,\n defaultPanelSize,\n displayValue,\n} from './utils'\nimport type { Corner, Side } from './utils'\nimport {\n Panel,\n QueryKeys,\n QueryKey,\n Button,\n Code,\n Input,\n Select,\n ActiveQueryPanel,\n} from './styledComponents'\nimport ScreenReader from './screenreader'\nimport { ThemeProvider, defaultTheme as theme } from './theme'\nimport { getQueryStatusLabel, getQueryStatusColor } from './utils'\nimport Explorer from './Explorer'\nimport Logo from './Logo'\n\nexport interface DevtoolsOptions {\n /**\n * Set this true if you want the dev tools to default to being open\n */\n initialIsOpen?: boolean\n /**\n * Use this to add props to the panel. For example, you can add className, style (merge and override default style), etc.\n */\n panelProps?: React.ComponentPropsWithoutRef<'div'>\n /**\n * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n closeButtonProps?: React.ComponentPropsWithoutRef<'button'>\n /**\n * Use this to add props to the toggle button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n toggleButtonProps?: React.ComponentPropsWithoutRef<'button'>\n /**\n * The position of the React Query logo to open and close the devtools panel.\n * Defaults to 'bottom-left'.\n */\n position?: Corner\n /**\n * The position of the React Query devtools panel.\n * Defaults to 'bottom'.\n */\n panelPosition?: Side\n /**\n * Use this to render the devtools inside a different type of container element for a11y purposes.\n * Any string which corresponds to a valid intrinsic JSX element is allowed.\n * Defaults to 'aside'.\n */\n containerElement?: string | any\n /**\n * nonce for style element for CSP\n */\n styleNonce?: string\n /**\n * Custom instance of QueryClient\n */\n queryClient?: QueryClient\n}\n\ninterface DevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: React.CSSProperties\n /**\n * The standard React className property used to style a component with classes\n */\n className?: string\n /**\n * A boolean variable indicating whether the panel is open or closed\n */\n isOpen?: boolean\n /**\n * nonce for style element for CSP\n */\n styleNonce?: string\n /**\n * A function that toggles the open and close state of the panel\n */\n setIsOpen: (isOpen: boolean) => void\n /**\n * Handles the opening and closing the devtools panel\n */\n onDragStart: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\n /**\n * The position of the React Query devtools panel.\n * Defaults to 'bottom'.\n */\n position?: Side\n /**\n * Handles the panel position select change\n */\n onPositionChange?: (side: Side) => void\n /**\n * Show a close button inside the panel\n */\n showCloseButton?: boolean\n /**\n * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n closeButtonProps?: React.ComponentPropsWithoutRef<'button'>\n /**\n * Custom instance of QueryClient\n */\n queryClient?: QueryClient\n}\n\nexport function ReactQueryDevtools({\n initialIsOpen,\n panelProps = {},\n closeButtonProps = {},\n toggleButtonProps = {},\n position = 'bottom-left',\n containerElement: Container = 'aside',\n queryClient,\n styleNonce,\n panelPosition: initialPanelPosition = 'bottom',\n}: DevtoolsOptions): React.ReactElement | null {\n const rootRef = React.useRef<HTMLDivElement>(null)\n const panelRef = React.useRef<HTMLDivElement>(null)\n const [isOpen, setIsOpen] = useLocalStorage(\n 'reactQueryDevtoolsOpen',\n initialIsOpen,\n )\n const [devtoolsHeight, setDevtoolsHeight] = useLocalStorage<number>(\n 'reactQueryDevtoolsHeight',\n defaultPanelSize,\n )\n const [devtoolsWidth, setDevtoolsWidth] = useLocalStorage<number>(\n 'reactQueryDevtoolsWidth',\n defaultPanelSize,\n )\n\n const [panelPosition = 'bottom', setPanelPosition] = useLocalStorage<Side>(\n 'reactQueryDevtoolsPanelPosition',\n initialPanelPosition,\n )\n\n const [isResolvedOpen, setIsResolvedOpen] = React.useState(false)\n const [isResizing, setIsResizing] = React.useState(false)\n const isMounted = useIsMounted()\n\n const handleDragStart = (\n panelElement: HTMLDivElement | null,\n startEvent: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n if (!panelElement) return\n if (startEvent.button !== 0) return // Only allow left click for drag\n const isVertical = isVerticalSide(panelPosition)\n setIsResizing(true)\n\n const { height, width } = panelElement.getBoundingClientRect()\n const startX = startEvent.clientX\n const startY = startEvent.clientY\n let newSize = 0\n\n const run = (moveEvent: MouseEvent) => {\n // prevent mouse selecting stuff with mouse drag\n moveEvent.preventDefault()\n\n // calculate the correct size based on mouse position and current panel position\n // hint: it is different formula for the opposite sides\n if (isVertical) {\n newSize =\n width +\n (panelPosition === 'right'\n ? startX - moveEvent.clientX\n : moveEvent.clientX - startX)\n setDevtoolsWidth(newSize)\n } else {\n newSize =\n height +\n (panelPosition === 'bottom'\n ? startY - moveEvent.clientY\n : moveEvent.clientY - startY)\n setDevtoolsHeight(newSize)\n }\n\n if (newSize < minPanelSize) {\n setIsOpen(false)\n } else {\n setIsOpen(true)\n }\n }\n\n const unsub = () => {\n if (isResizing) {\n setIsResizing(false)\n }\n\n document.removeEventListener('mousemove', run, false)\n document.removeEventListener('mouseUp', unsub, false)\n }\n\n document.addEventListener('mousemove', run, false)\n document.addEventListener('mouseup', unsub, false)\n }\n\n React.useEffect(() => {\n setIsResolvedOpen(isOpen ?? false)\n }, [isOpen, isResolvedOpen, setIsResolvedOpen])\n\n // Toggle panel visibility before/after transition (depending on direction).\n // Prevents focusing in a closed panel.\n React.useEffect(() => {\n const ref = panelRef.current\n if (ref) {\n const handlePanelTransitionStart = () => {\n if (isResolvedOpen) {\n ref.style.visibility = 'visible'\n }\n }\n\n const handlePanelTransitionEnd = () => {\n if (!isResolvedOpen) {\n ref.style.visibility = 'hidden'\n }\n }\n\n ref.addEventListener('transitionstart', handlePanelTransitionStart)\n ref.addEventListener('transitionend', handlePanelTransitionEnd)\n\n return () => {\n ref.removeEventListener('transitionstart', handlePanelTransitionStart)\n ref.removeEventListener('transitionend', handlePanelTransitionEnd)\n }\n }\n return\n }, [isResolvedOpen])\n\n React.useEffect(() => {\n if (isResolvedOpen && rootRef.current?.parentElement) {\n const { parentElement } = rootRef.current\n const styleProp = getSidedProp('padding', panelPosition)\n const isVertical = isVerticalSide(panelPosition)\n\n const previousPaddings = (({\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }) => ({\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }))(parentElement.style)\n\n const run = () => {\n // reset the padding\n parentElement.style.padding = '0px'\n parentElement.style.paddingTop = '0px'\n parentElement.style.paddingBottom = '0px'\n parentElement.style.paddingLeft = '0px'\n parentElement.style.paddingRight = '0px'\n // set the new padding based on the new panel position\n\n parentElement.style[styleProp] = `${\n isVertical ? devtoolsWidth : devtoolsHeight\n }px`\n }\n\n run()\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', run)\n\n return () => {\n window.removeEventListener('resize', run)\n Object.entries(previousPaddings).forEach(\n ([property, previousValue]) => {\n parentElement.style[property as keyof typeof previousPaddings] =\n previousValue\n },\n )\n }\n }\n }\n return\n }, [isResolvedOpen, panelPosition, devtoolsHeight, devtoolsWidth])\n\n const { style: panelStyle = {}, ...otherPanelProps } = panelProps\n\n const {\n style: toggleButtonStyle = {},\n onClick: onToggleClick,\n ...otherToggleButtonProps\n } = toggleButtonProps\n\n // get computed style based on panel position\n const style = getSidePanelStyle({\n position: panelPosition,\n devtoolsTheme: theme,\n isOpen: isResolvedOpen,\n height: devtoolsHeight,\n width: devtoolsWidth,\n isResizing,\n panelStyle,\n })\n\n // Do not render on the server\n if (!isMounted()) return null\n\n return (\n <Container\n ref={rootRef}\n className=\"ReactQueryDevtools\"\n aria-label=\"React Query Devtools\"\n >\n <ThemeProvider theme={theme}>\n <ReactQueryDevtoolsPanel\n ref={panelRef as any}\n queryClient={queryClient}\n styleNonce={styleNonce}\n position={panelPosition}\n onPositionChange={setPanelPosition}\n showCloseButton\n closeButtonProps={closeButtonProps}\n {...otherPanelProps}\n style={style}\n isOpen={isResolvedOpen}\n setIsOpen={setIsOpen}\n onDragStart={(e) => handleDragStart(panelRef.current, e)}\n />\n </ThemeProvider>\n {!isResolvedOpen ? (\n <button\n type=\"button\"\n {...otherToggleButtonProps}\n aria-label=\"Open React Query Devtools\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n onClick={(e) => {\n setIsOpen(true)\n onToggleClick?.(e)\n }}\n style={{\n background: 'none',\n border: 0,\n padding: 0,\n position: 'fixed',\n zIndex: 99999,\n display: 'inline-flex',\n fontSize: '1.5em',\n margin: '.5em',\n cursor: 'pointer',\n width: 'fit-content',\n ...(position === 'top-right'\n ? {\n top: '0',\n right: '0',\n }\n : position === 'top-left'\n ? {\n top: '0',\n left: '0',\n }\n : position === 'bottom-right'\n ? {\n bottom: '0',\n right: '0',\n }\n : {\n bottom: '0',\n left: '0',\n }),\n ...toggleButtonStyle,\n }}\n >\n <Logo aria-hidden />\n <ScreenReader text=\"Open React Query Devtools\" />\n </button>\n ) : null}\n </Container>\n )\n}\n\nconst useSubscribeToQueryCache = <T,>(\n queryCache: QueryCache,\n getSnapshot: () => T,\n skip: boolean = false,\n): T => {\n return React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n if (!skip)\n return queryCache.subscribe(notifyManager.batchCalls(onStoreChange))\n return () => {\n return\n }\n },\n [queryCache, skip],\n ),\n getSnapshot,\n getSnapshot,\n )\n}\n\nexport const ReactQueryDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function ReactQueryDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n styleNonce,\n setIsOpen,\n queryClient,\n onDragStart,\n onPositionChange,\n showCloseButton,\n position,\n closeButtonProps = {},\n ...panelProps\n } = props\n\n const { onClick: onCloseClick, ...otherCloseButtonProps } = closeButtonProps\n\n const client = useQueryClient(queryClient)\n const queryCache = client.getQueryCache()\n\n const [sort, setSort] = useLocalStorage(\n 'reactQueryDevtoolsSortFn',\n Object.keys(sortFns)[0],\n )\n\n const [filter, setFilter] = useLocalStorage('reactQueryDevtoolsFilter', '')\n\n const [baseSort, setBaseSort] = useLocalStorage(\n 'reactQueryDevtoolsBaseSort',\n 1,\n )\n\n const sortFn = React.useMemo(() => sortFns[sort as string], [sort])\n\n const queriesCount = useSubscribeToQueryCache(\n queryCache,\n () => queryCache.getAll().length,\n !isOpen,\n )\n\n const [activeQueryHash, setActiveQueryHash] = useLocalStorage(\n 'reactQueryDevtoolsActiveQueryHash',\n '',\n )\n\n const queries = React.useMemo(() => {\n const unsortedQueries = queryCache.getAll()\n\n if (queriesCount === 0) {\n return []\n }\n\n const filtered = filter\n ? unsortedQueries.filter(\n (item) => rankItem(item.queryHash, filter).passed,\n )\n : [...unsortedQueries]\n\n const sorted = sortFn\n ? filtered.sort((a, b) => sortFn(a, b) * (baseSort as number))\n : filtered\n\n return sorted\n }, [baseSort, sortFn, filter, queriesCount, queryCache])\n\n const [isMockOffline, setMockOffline] = React.useState(false)\n\n return (\n <ThemeProvider theme={theme}>\n <Panel\n ref={ref}\n className=\"ReactQueryDevtoolsPanel\"\n aria-label=\"React Query Devtools Panel\"\n id=\"ReactQueryDevtoolsPanel\"\n {...panelProps}\n style={{\n height: defaultPanelSize,\n position: 'relative',\n ...panelProps.style,\n }}\n >\n <style\n nonce={styleNonce}\n dangerouslySetInnerHTML={{\n __html: `\n .ReactQueryDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar, .ReactQueryDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-track, .ReactQueryDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n `,\n }}\n />\n <div\n style={getResizeHandleStyle(position)}\n onMouseDown={onDragStart}\n ></div>\n\n {isOpen && (\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <button\n type=\"button\"\n aria-label=\"Close React Query Devtools\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"true\"\n onClick={() => setIsOpen(false)}\n style={{\n display: 'inline-flex',\n background: 'none',\n border: 0,\n padding: 0,\n marginRight: '.5em',\n cursor: 'pointer',\n }}\n >\n <Logo aria-hidden />\n <ScreenReader text=\"Close React Query Devtools\" />\n </button>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '.5em',\n }}\n >\n <QueryStatusCount queryCache={queryCache} />\n {position && onPositionChange ? (\n <Select\n aria-label=\"Panel position\"\n value={position}\n style={{ marginInlineStart: '.5em' }}\n onChange={(e) => onPositionChange(e.target.value as Side)}\n >\n <option value=\"left\">Left</option>\n <option value=\"right\">Right</option>\n <option value=\"top\">Top</option>\n <option value=\"bottom\">Bottom</option>\n </Select>\n ) : null}\n </div>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n }}\n >\n <Input\n placeholder=\"Filter\"\n aria-label=\"Filter by queryhash\"\n value={filter ?? ''}\n onChange={(e) => setFilter(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') setFilter('')\n }}\n style={{\n flex: '1',\n marginRight: '.5em',\n width: '100%',\n }}\n />\n <Select\n aria-label=\"Sort queries\"\n value={sort}\n onChange={(e) => setSort(e.target.value)}\n style={{\n flex: '1',\n minWidth: 75,\n marginRight: '.5em',\n }}\n >\n {Object.keys(sortFns).map((key) => (\n <option key={key} value={key}>\n Sort by {key}\n </option>\n ))}\n </Select>\n <Button\n type=\"button\"\n onClick={() => setBaseSort((old) => old * -1)}\n style={{\n padding: '.3em .4em',\n marginRight: '.5em',\n }}\n >\n {baseSort === 1 ? '⬆ Asc' : '⬇ Desc'}\n </Button>\n <Button\n type=\"button\"\n onClick={() => {\n if (isMockOffline) {\n onlineManager.setOnline(undefined)\n setMockOffline(false)\n window.dispatchEvent(new Event('online'))\n } else {\n onlineManager.setOnline(false)\n setMockOffline(true)\n }\n }}\n aria-label={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n title={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n style={{\n padding: '0',\n height: '2em',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"2em\"\n height=\"2em\"\n viewBox=\"0 0 24 24\"\n stroke={isMockOffline ? theme.danger : 'currentColor'}\n fill=\"none\"\n >\n {isMockOffline ? (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n <path d=\"M9.172 15.172a4 4 0 0 1 5.656 0\" />\n <path d=\"M6.343 12.343a7.963 7.963 0 0 1 3.864 -2.14m4.163 .155a7.965 7.965 0 0 1 3.287 2\" />\n <path d=\"M3.515 9.515a12 12 0 0 1 3.544 -2.455m3.101 -.92a12 12 0 0 1 10.325 3.374\" />\n <line x1=\"3\" y1=\"3\" x2=\"21\" y2=\"21\" />\n </>\n ) : (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n <path d=\"M9.172 15.172a4 4 0 0 1 5.656 0\" />\n <path d=\"M6.343 12.343a8 8 0 0 1 11.314 0\" />\n <path d=\"M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0\" />\n </>\n )}\n </svg>\n <ScreenReader\n text={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n />\n </Button>\n </div>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n {queries.map((query) => {\n return (\n <QueryRow\n queryKey={query.queryKey}\n activeQueryHash={activeQueryHash}\n setActiveQueryHash={setActiveQueryHash}\n key={query.queryHash}\n queryCache={queryCache}\n />\n )\n })}\n </div>\n </div>\n )}\n\n {activeQueryHash && isOpen ? (\n <ActiveQuery\n activeQueryHash={activeQueryHash}\n queryCache={queryCache}\n queryClient={client}\n />\n ) : null}\n\n {showCloseButton ? (\n <Button\n type=\"button\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"true\"\n {...(otherCloseButtonProps as Record<string, unknown>)}\n style={{\n position: 'absolute',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n left: 0,\n ...otherCloseButtonProps.style,\n }}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick?.(e)\n }}\n >\n Close\n </Button>\n ) : null}\n </Panel>\n </ThemeProvider>\n )\n})\n\nconst ActiveQuery = ({\n queryCache,\n activeQueryHash,\n queryClient,\n}: {\n queryCache: QueryCache\n activeQueryHash: string\n queryClient: QueryClient\n}) => {\n const activeQuery = useSubscribeToQueryCache(queryCache, () =>\n queryCache.getAll().find((query) => query.queryHash === activeQueryHash),\n )\n\n const activeQueryState = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().find((query) => query.queryHash === activeQueryHash)\n ?.state,\n )\n\n const isStale =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache\n .getAll()\n .find((query) => query.queryHash === activeQueryHash)\n ?.isStale(),\n ) ?? false\n\n const observerCount =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache\n .getAll()\n .find((query) => query.queryHash === activeQueryHash)\n ?.getObserversCount(),\n ) ?? 0\n\n const handleRefetch = () => {\n const promise = activeQuery?.fetch()\n promise?.catch(noop)\n }\n\n if (!activeQuery || !activeQueryState) {\n return null\n }\n\n return (\n <ActiveQueryPanel>\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Query Details\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <div\n style={{\n marginBottom: '.5em',\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n }}\n >\n <Code\n style={{\n lineHeight: '1.8em',\n }}\n >\n <pre\n style={{\n margin: 0,\n padding: 0,\n overflow: 'auto',\n }}\n >\n {displayValue(activeQuery.queryKey, true)}\n </pre>\n </Code>\n <span\n style={{\n padding: '0.3em .6em',\n borderRadius: '0.4em',\n fontWeight: 'bold',\n textShadow: '0 2px 10px black',\n background: getQueryStatusColor({\n queryState: activeQueryState,\n isStale: isStale,\n observerCount: observerCount,\n theme,\n }),\n flexShrink: 0,\n }}\n >\n {getQueryStatusLabel(activeQuery)}\n </span>\n </div>\n <div\n style={{\n marginBottom: '.5em',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n Observers: <Code>{observerCount}</Code>\n </div>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n }}\n >\n Last Updated:{' '}\n <Code>\n {new Date(activeQueryState.dataUpdatedAt).toLocaleTimeString()}\n </Code>\n </div>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Actions\n </div>\n <div\n style={{\n padding: '0.5em',\n }}\n >\n <Button\n type=\"button\"\n onClick={handleRefetch}\n disabled={activeQueryState.fetchStatus === 'fetching'}\n style={{\n background: theme.active,\n }}\n >\n Refetch\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => queryClient.invalidateQueries(activeQuery)}\n style={{\n background: theme.warning,\n color: theme.inputTextColor,\n }}\n >\n Invalidate\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => queryClient.resetQueries(activeQuery)}\n style={{\n background: theme.gray,\n }}\n >\n Reset\n </Button>{' '}\n <Button\n type=\"button\"\n onClick={() => queryClient.removeQueries(activeQuery)}\n style={{\n background: theme.danger,\n }}\n >\n Remove\n </Button>\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Data Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Data\"\n value={activeQueryState.data}\n defaultExpanded={{}}\n copyable\n />\n </div>\n <div\n style={{\n background: theme.backgroundAlt,\n padding: '.5em',\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }}\n >\n Query Explorer\n </div>\n <div\n style={{\n padding: '.5em',\n }}\n >\n <Explorer\n label=\"Query\"\n value={activeQuery}\n defaultExpanded={{\n queryKey: true,\n }}\n />\n </div>\n </ActiveQueryPanel>\n )\n}\n\nconst QueryStatusCount = ({ queryCache }: { queryCache: QueryCache }) => {\n const hasFresh = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fresh')\n .length,\n )\n const hasFetching = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fetching')\n .length,\n )\n const hasPaused = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'paused')\n .length,\n )\n const hasStale = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'stale')\n .length,\n )\n const hasInactive = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'inactive')\n .length,\n )\n return (\n <QueryKeys>\n <QueryKey\n style={{\n background: theme.success,\n opacity: hasFresh ? 1 : 0.3,\n }}\n >\n fresh <Code>({hasFresh})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.active,\n opacity: hasFetching ? 1 : 0.3,\n }}\n >\n fetching <Code>({hasFetching})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.paused,\n opacity: hasPaused ? 1 : 0.3,\n }}\n >\n paused <Code>({hasPaused})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.warning,\n color: 'black',\n textShadow: '0',\n opacity: hasStale ? 1 : 0.3,\n }}\n >\n stale <Code>({hasStale})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.gray,\n opacity: hasInactive ? 1 : 0.3,\n }}\n >\n inactive <Code>({hasInactive})</Code>\n </QueryKey>\n </QueryKeys>\n )\n}\n\ninterface QueryRowProps {\n queryKey: QueryKeyType\n setActiveQueryHash: (hash: string) => void\n activeQueryHash?: string\n queryCache: QueryCache\n}\n\nconst QueryRow = React.memo(\n ({\n queryKey,\n setActiveQueryHash,\n activeQueryHash,\n queryCache,\n }: QueryRowProps) => {\n const queryHash =\n useSubscribeToQueryCache(\n queryCache,\n () => queryCache.find({ queryKey })?.queryHash,\n ) ?? ''\n\n const queryState = useSubscribeToQueryCache(\n queryCache,\n () => queryCache.find({ queryKey })?.state,\n )\n\n const isStale =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache.find({ queryKey })?.isStale(),\n ) ?? false\n\n const isDisabled =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache.find({ queryKey })?.isDisabled(),\n ) ?? false\n\n const observerCount =\n useSubscribeToQueryCache(queryCache, () =>\n queryCache.find({ queryKey })?.getObserversCount(),\n ) ?? 0\n\n if (!queryState) {\n return null\n }\n\n return (\n <div\n role=\"button\"\n aria-label={`Open query details for ${queryHash}`}\n onClick={() =>\n setActiveQueryHash(activeQueryHash === queryHash ? '' : queryHash)\n }\n style={{\n display: 'flex',\n borderBottom: `solid 1px ${theme.grayAlt}`,\n cursor: 'pointer',\n background:\n queryHash === activeQueryHash ? 'rgba(255,255,255,.1)' : undefined,\n }}\n >\n <div\n style={{\n flex: '0 0 auto',\n width: '2em',\n height: '2em',\n background: getQueryStatusColor({\n queryState,\n isStale,\n observerCount,\n theme,\n }),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontWeight: 'bold',\n textShadow: isStale ? '0' : '0 0 10px black',\n color: isStale ? 'black' : 'white',\n }}\n >\n {observerCount}\n </div>\n {isDisabled ? (\n <div\n style={{\n flex: '0 0 auto',\n height: '2em',\n background: theme.gray,\n display: 'flex',\n alignItems: 'center',\n fontWeight: 'bold',\n padding: '0 0.5em',\n }}\n >\n disabled\n </div>\n ) : null}\n <Code\n style={{\n padding: '.5em',\n }}\n >\n {`${queryHash}`}\n </Code>\n </div>\n )\n },\n)\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nfunction noop() {}\n"],"names":["ReactQueryDevtools","initialIsOpen","panelProps","closeButtonProps","toggleButtonProps","position","containerElement","Container","queryClient","styleNonce","panelPosition","initialPanelPosition","rootRef","React","useRef","panelRef","isOpen","setIsOpen","useLocalStorage","devtoolsHeight","setDevtoolsHeight","defaultPanelSize","devtoolsWidth","setDevtoolsWidth","setPanelPosition","isResolvedOpen","setIsResolvedOpen","useState","isResizing","setIsResizing","isMounted","useIsMounted","handleDragStart","panelElement","startEvent","button","isVertical","isVerticalSide","height","width","getBoundingClientRect","startX","clientX","startY","clientY","newSize","run","moveEvent","preventDefault","minPanelSize","unsub","document","removeEventListener","addEventListener","useEffect","ref","current","handlePanelTransitionStart","style","visibility","handlePanelTransitionEnd","parentElement","styleProp","getSidedProp","previousPaddings","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","window","Object","entries","forEach","property","previousValue","panelStyle","otherPanelProps","toggleButtonStyle","onClick","onToggleClick","otherToggleButtonProps","getSidePanelStyle","devtoolsTheme","theme","e","background","border","zIndex","display","fontSize","margin","cursor","top","right","left","bottom","useSubscribeToQueryCache","queryCache","getSnapshot","skip","useSyncExternalStore","useCallback","onStoreChange","subscribe","notifyManager","batchCalls","ReactQueryDevtoolsPanel","forwardRef","props","onDragStart","onPositionChange","showCloseButton","onCloseClick","otherCloseButtonProps","client","useQueryClient","getQueryCache","sort","setSort","keys","sortFns","filter","setFilter","baseSort","setBaseSort","sortFn","useMemo","queriesCount","getAll","length","activeQueryHash","setActiveQueryHash","queries","unsortedQueries","filtered","item","rankItem","queryHash","passed","sorted","a","b","isMockOffline","setMockOffline","__html","backgroundAlt","gray","getResizeHandleStyle","flex","minHeight","maxHeight","overflow","borderRight","grayAlt","flexDirection","justifyContent","alignItems","marginRight","marginBottom","marginInlineStart","target","value","key","minWidth","map","old","onlineManager","setOnline","undefined","dispatchEvent","Event","danger","overflowY","query","queryKey","ActiveQuery","activeQuery","find","activeQueryState","state","isStale","observerCount","getObserversCount","handleRefetch","promise","fetch","catch","noop","lineHeight","displayValue","borderRadius","fontWeight","textShadow","getQueryStatusColor","queryState","flexShrink","getQueryStatusLabel","Date","dataUpdatedAt","toLocaleTimeString","fetchStatus","active","invalidateQueries","warning","color","inputTextColor","resetQueries","removeQueries","data","QueryStatusCount","hasFresh","q","hasFetching","hasPaused","hasStale","hasInactive","success","opacity","paused","QueryRow","memo","isDisabled","borderBottom"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"devtools.mjs","sources":["../../src/devtools.tsx"],"sourcesContent":["'use client'\nimport { useRef, useState, useEffect } from 'react'\nimport type { QueryClient } from '@tanstack/react-query'\nimport { useQueryClient, onlineManager } from '@tanstack/react-query'\nimport type {\n DevtoolsButtonPosition,\n DevtoolsPosition,\n DevToolsErrorType,\n} from '@tanstack/query-devtools'\nimport { TanstackQueryDevtools } from '@tanstack/query-devtools'\nimport React from 'react'\nexport interface DevtoolsOptions {\n /**\n * Set this true if you want the dev tools to default to being open\n */\n initialIsOpen?: boolean\n /**\n * The position of the React Query logo to open and close the devtools panel.\n * 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n * Defaults to 'bottom-left'.\n */\n buttonPosition?: DevtoolsButtonPosition\n /**\n * The position of the React Query devtools panel.\n * 'top' | 'bottom' | 'left' | 'right'\n * Defaults to 'bottom'.\n */\n position?: DevtoolsPosition\n /**\n * Custom instance of QueryClient\n */\n client?: QueryClient\n /**\n * Use this so you can define custom errors that can be shown in the devtools.\n */\n errorTypes?: DevToolsErrorType[]\n}\n\nexport function ReactQueryDevtools(\n props: DevtoolsOptions,\n): React.ReactElement | null {\n const queryClient = useQueryClient()\n const client = props.client || queryClient\n const ref = useRef<HTMLDivElement>(null)\n const { buttonPosition, position, initialIsOpen, errorTypes } = props\n const [devtools] = useState(\n new TanstackQueryDevtools({\n client: client,\n queryFlavor: 'React Query',\n version: '5',\n onlineManager,\n buttonPosition,\n position,\n initialIsOpen,\n errorTypes,\n }),\n )\n\n useEffect(() => {\n devtools.setClient(client)\n }, [client, devtools])\n\n useEffect(() => {\n if (buttonPosition) {\n devtools.setButtonPosition(buttonPosition)\n }\n }, [buttonPosition, devtools])\n\n useEffect(() => {\n if (position) {\n devtools.setPosition(position)\n }\n }, [position, devtools])\n\n useEffect(() => {\n devtools.setInitialIsOpen(initialIsOpen || false)\n }, [initialIsOpen, devtools])\n\n useEffect(() => {\n devtools.setErrorTypes(errorTypes || [])\n }, [errorTypes, devtools])\n\n useEffect(() => {\n if (ref.current) {\n devtools.mount(ref.current)\n }\n\n return () => {\n devtools.unmount()\n }\n }, [devtools])\n\n return <div ref={ref}></div>\n}\n"],"names":["errorTypes","client","queryFlavor","version","useEffect","devtools"],"mappings":";;;;;AAsCO;;AAIL;AACA;;;;;AACiDA;AAAW;;AAGxDC;AACAC;AACAC;;;;;AAKAH;AACF;AAGFI;AACEC;AACF;AAEAD;AACE;AACEC;AACF;AACF;AAEAD;AACE;AACEC;AACF;AACF;AAEAD;AACEC;AACF;AAEAD;AACEC;AACF;AAEAD;;AAEIC;AACF;AAEA;;;AAGF;;AAEY;;AACd;;"}
|
package/build/lib/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AAEtC,eAAO,MAAM,kBAAkB,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,oBAAoB,CAKtC,CAAA"}
|
package/build/lib/index.esm.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
|
+
import { ReactQueryDevtools as ReactQueryDevtools$1 } from './devtools.esm.js';
|
|
2
3
|
|
|
3
4
|
const ReactQueryDevtools = process.env.NODE_ENV !== 'development' ? function () {
|
|
4
5
|
return null;
|
|
5
6
|
} : ReactQueryDevtools$1;
|
|
6
|
-
const ReactQueryDevtoolsPanel = process.env.NODE_ENV !== 'development' ? function () {
|
|
7
|
-
return null;
|
|
8
|
-
} : ReactQueryDevtoolsPanel$1;
|
|
9
7
|
|
|
10
|
-
export
|
|
8
|
+
// export const ReactQueryDevtoolsPanel: (typeof devtools)['ReactQueryDevtoolsPanel'] =
|
|
9
|
+
// process.env.NODE_ENV !== 'development'
|
|
10
|
+
// ? (function () {
|
|
11
|
+
// return null
|
|
12
|
+
// } as any)
|
|
13
|
+
// : devtools.ReactQueryDevtoolsPanel
|
|
14
|
+
|
|
15
|
+
export { ReactQueryDevtools };
|
|
11
16
|
//# sourceMappingURL=index.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as devtools from './devtools'\n\nexport const ReactQueryDevtools: (typeof devtools)['ReactQueryDevtools'] =\n process.env.NODE_ENV !== 'development'\n ? function () {\n return null\n }\n : devtools.ReactQueryDevtools\n\
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as devtools from './devtools'\n\nexport const ReactQueryDevtools: (typeof devtools)['ReactQueryDevtools'] =\n process.env.NODE_ENV !== 'development'\n ? function () {\n return null\n }\n : devtools.ReactQueryDevtools\n\n// export const ReactQueryDevtoolsPanel: (typeof devtools)['ReactQueryDevtoolsPanel'] =\n// process.env.NODE_ENV !== 'development'\n// ? (function () {\n// return null\n// } as any)\n// : devtools.ReactQueryDevtoolsPanel\n"],"names":[],"mappings":";;;AAIO;AAGC;AACF;;AAGN;AACA;AACA;AACA;AACA;AACA;;"}
|
package/build/lib/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
var devtools = require('./devtools.js');
|
|
@@ -5,10 +6,13 @@ var devtools = require('./devtools.js');
|
|
|
5
6
|
const ReactQueryDevtools = process.env.NODE_ENV !== 'development' ? function () {
|
|
6
7
|
return null;
|
|
7
8
|
} : devtools.ReactQueryDevtools;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
|
|
10
|
+
// export const ReactQueryDevtoolsPanel: (typeof devtools)['ReactQueryDevtoolsPanel'] =
|
|
11
|
+
// process.env.NODE_ENV !== 'development'
|
|
12
|
+
// ? (function () {
|
|
13
|
+
// return null
|
|
14
|
+
// } as any)
|
|
15
|
+
// : devtools.ReactQueryDevtoolsPanel
|
|
11
16
|
|
|
12
17
|
exports.ReactQueryDevtools = ReactQueryDevtools;
|
|
13
|
-
exports.ReactQueryDevtoolsPanel = ReactQueryDevtoolsPanel;
|
|
14
18
|
//# sourceMappingURL=index.js.map
|
package/build/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as devtools from './devtools'\n\nexport const ReactQueryDevtools: (typeof devtools)['ReactQueryDevtools'] =\n process.env.NODE_ENV !== 'development'\n ? function () {\n return null\n }\n : devtools.ReactQueryDevtools\n\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as devtools from './devtools'\n\nexport const ReactQueryDevtools: (typeof devtools)['ReactQueryDevtools'] =\n process.env.NODE_ENV !== 'development'\n ? function () {\n return null\n }\n : devtools.ReactQueryDevtools\n\n// export const ReactQueryDevtoolsPanel: (typeof devtools)['ReactQueryDevtoolsPanel'] =\n// process.env.NODE_ENV !== 'development'\n// ? (function () {\n// return null\n// } as any)\n// : devtools.ReactQueryDevtoolsPanel\n"],"names":[],"mappings":";;;;;AAIO;AAGC;AACF;;AAGN;AACA;AACA;AACA;AACA;AACA;;"}
|
package/build/lib/index.mjs
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
|
+
import { ReactQueryDevtools as ReactQueryDevtools$1 } from './devtools.mjs';
|
|
2
3
|
|
|
3
4
|
const ReactQueryDevtools = process.env.NODE_ENV !== 'development' ? function () {
|
|
4
5
|
return null;
|
|
5
6
|
} : ReactQueryDevtools$1;
|
|
6
|
-
const ReactQueryDevtoolsPanel = process.env.NODE_ENV !== 'development' ? function () {
|
|
7
|
-
return null;
|
|
8
|
-
} : ReactQueryDevtoolsPanel$1;
|
|
9
7
|
|
|
10
|
-
export
|
|
8
|
+
// export const ReactQueryDevtoolsPanel: (typeof devtools)['ReactQueryDevtoolsPanel'] =
|
|
9
|
+
// process.env.NODE_ENV !== 'development'
|
|
10
|
+
// ? (function () {
|
|
11
|
+
// return null
|
|
12
|
+
// } as any)
|
|
13
|
+
// : devtools.ReactQueryDevtoolsPanel
|
|
14
|
+
|
|
15
|
+
export { ReactQueryDevtools };
|
|
11
16
|
//# sourceMappingURL=index.mjs.map
|
package/build/lib/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as devtools from './devtools'\n\nexport const ReactQueryDevtools: (typeof devtools)['ReactQueryDevtools'] =\n process.env.NODE_ENV !== 'development'\n ? function () {\n return null\n }\n : devtools.ReactQueryDevtools\n\
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as devtools from './devtools'\n\nexport const ReactQueryDevtools: (typeof devtools)['ReactQueryDevtools'] =\n process.env.NODE_ENV !== 'development'\n ? function () {\n return null\n }\n : devtools.ReactQueryDevtools\n\n// export const ReactQueryDevtoolsPanel: (typeof devtools)['ReactQueryDevtoolsPanel'] =\n// process.env.NODE_ENV !== 'development'\n// ? (function () {\n// return null\n// } as any)\n// : devtools.ReactQueryDevtoolsPanel\n"],"names":[],"mappings":";;;AAIO;AAGC;AACF;;AAGN;AACA;AACA;AACA;AACA;AACA;;"}
|