@tanstack/pacer-devtools 1.2.1 → 1.3.1
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/dist/{components-vap4_VJT.js → components-DZv7GBzY.js} +10 -5
- package/dist/{components-CGEHIK6F.js → components-hqYwCNDx.js} +10 -5
- package/dist/index.js +1 -1
- package/dist/production/index.js +1 -1
- package/dist/production/server.js +1 -1
- package/dist/server.js +1 -1
- package/package.json +7 -7
- package/src/components/ActionButtons.tsx +8 -5
- package/src/components/StateHeader.tsx +8 -5
- package/src/components/UtilList.tsx +2 -2
- package/src/components/UtilStateJsonTree.tsx +2 -2
|
@@ -4,7 +4,7 @@ import { createStore, produce } from "solid-js/store";
|
|
|
4
4
|
import { For, Show, createContext, createEffect, createMemo, createSignal, onCleanup, onMount, useContext } from "solid-js";
|
|
5
5
|
import { getPacerDevtoolsInstance, pacerEventClient } from "@tanstack/pacer/event-client";
|
|
6
6
|
import * as goober from "goober";
|
|
7
|
-
import {
|
|
7
|
+
import { shallow, useSelector } from "@tanstack/solid-store";
|
|
8
8
|
import clsx from "clsx";
|
|
9
9
|
import dayjs from "dayjs";
|
|
10
10
|
import relativeTime from "dayjs/plugin/relativeTime.js";
|
|
@@ -416,6 +416,10 @@ const stylesFactory = (theme) => {
|
|
|
416
416
|
const css = goober.css;
|
|
417
417
|
const t = (light, dark) => theme === "light" ? light : dark;
|
|
418
418
|
return {
|
|
419
|
+
/**
|
|
420
|
+
* Fills the devtools-utils portal div (height: 100%) and is a flex parent so MainPanel
|
|
421
|
+
* gets a real flex height budget (not just height: 100% without a flex chain).
|
|
422
|
+
*/
|
|
419
423
|
shellRoot: css`
|
|
420
424
|
display: flex;
|
|
421
425
|
flex-direction: column;
|
|
@@ -425,6 +429,7 @@ const stylesFactory = (theme) => {
|
|
|
425
429
|
min-height: 0;
|
|
426
430
|
overflow: hidden;
|
|
427
431
|
`,
|
|
432
|
+
/** Overrides devtools-ui MainPanel overflow-y: auto so inner columns own scrolling */
|
|
428
433
|
mainPanelShell: css`
|
|
429
434
|
display: flex;
|
|
430
435
|
flex-direction: column;
|
|
@@ -865,7 +870,7 @@ function UtilList(props) {
|
|
|
865
870
|
children: (instance) => {
|
|
866
871
|
const status = (() => {
|
|
867
872
|
try {
|
|
868
|
-
const statusAccessor =
|
|
873
|
+
const statusAccessor = useSelector(instance.store, (s) => s.status);
|
|
869
874
|
return () => statusAccessor() ?? "unknown";
|
|
870
875
|
} catch {
|
|
871
876
|
return () => "unknown";
|
|
@@ -933,7 +938,7 @@ function ActionButtons(props) {
|
|
|
933
938
|
const styles = useStyles();
|
|
934
939
|
const utilInstance = props.instance;
|
|
935
940
|
const store = utilInstance?.store;
|
|
936
|
-
const stateAccessor = isPacerUtilTanStackStore(store) ?
|
|
941
|
+
const stateAccessor = isPacerUtilTanStackStore(store) ? useSelector(store, (s) => s !== null && s !== void 0 && typeof s === "object" ? s : {}, { compare: shallow }) : () => getPacerUtilStoreState(utilInstance);
|
|
937
942
|
const getState = () => stateAccessor();
|
|
938
943
|
const hasPending = () => {
|
|
939
944
|
return "isPending" in getState();
|
|
@@ -1010,7 +1015,7 @@ function StateHeaderInner(props) {
|
|
|
1010
1015
|
return dayjs(at).fromNow();
|
|
1011
1016
|
};
|
|
1012
1017
|
const store = props.entry.instance?.store;
|
|
1013
|
-
const stateAccessor = isPacerUtilTanStackStore(store) ?
|
|
1018
|
+
const stateAccessor = isPacerUtilTanStackStore(store) ? useSelector(store, (s) => s !== null && s !== void 0 && typeof s === "object" ? s : {}, { compare: shallow }) : () => getPacerUtilStoreState(props.entry.instance);
|
|
1014
1019
|
const reductionPercentage = () => reductionFromState(props.entry, stateAccessor());
|
|
1015
1020
|
return ssr(_tmpl$$2, ssrAttribute("class", escape(props.styles.stateHeader, true), false), ssrAttribute("class", escape(props.styles.stateTitle, true), false), escape(props.entry.type), ssrStyleProperty("display:", "flex") + ssrStyleProperty(";align-items:", "center") + ssrStyleProperty(";gap:", "16px"), ssrAttribute("class", escape(props.styles.infoGrid, true), false), ssrAttribute("class", escape(props.styles.infoLabel, true), false), ssrAttribute("class", escape(props.styles.infoValueMono, true), false), escape(key), ssrAttribute("class", escape(props.styles.infoLabel, true), false), ssrAttribute("class", escape(props.styles.infoValueMono, true), false), escape(new Date(updatedAt()).toLocaleTimeString()), escape(getRelativeTime()), ssrAttribute("class", escape(props.styles.infoValueMono, true), false), ssrStyleProperty("margin-left:", "auto") + ssrStyleProperty(";font-weight:", "bold"), escape(reductionPercentage()));
|
|
1016
1021
|
}
|
|
@@ -1053,7 +1058,7 @@ function StateHeader(props) {
|
|
|
1053
1058
|
function UtilStateJsonTree(props) {
|
|
1054
1059
|
const store = props.instance?.store;
|
|
1055
1060
|
if (isPacerUtilTanStackStore(store)) {
|
|
1056
|
-
const snapshot =
|
|
1061
|
+
const snapshot = useSelector(store, (s) => s);
|
|
1057
1062
|
return createComponent(JsonTree, { get value() {
|
|
1058
1063
|
return snapshot();
|
|
1059
1064
|
} });
|
|
@@ -4,7 +4,7 @@ import { createStore, produce } from "solid-js/store";
|
|
|
4
4
|
import { For, Show, createContext, createEffect, createMemo, createSignal, onCleanup, onMount, useContext } from "solid-js";
|
|
5
5
|
import { getPacerDevtoolsInstance, pacerEventClient } from "@tanstack/pacer/event-client";
|
|
6
6
|
import * as goober from "goober";
|
|
7
|
-
import {
|
|
7
|
+
import { shallow, useSelector } from "@tanstack/solid-store";
|
|
8
8
|
import clsx from "clsx";
|
|
9
9
|
import { emitChange } from "@tanstack/pacer";
|
|
10
10
|
import dayjs from "dayjs";
|
|
@@ -417,6 +417,10 @@ const stylesFactory = (theme) => {
|
|
|
417
417
|
const css = goober.css;
|
|
418
418
|
const t = (light, dark) => theme === "light" ? light : dark;
|
|
419
419
|
return {
|
|
420
|
+
/**
|
|
421
|
+
* Fills the devtools-utils portal div (height: 100%) and is a flex parent so MainPanel
|
|
422
|
+
* gets a real flex height budget (not just height: 100% without a flex chain).
|
|
423
|
+
*/
|
|
420
424
|
shellRoot: css`
|
|
421
425
|
display: flex;
|
|
422
426
|
flex-direction: column;
|
|
@@ -426,6 +430,7 @@ const stylesFactory = (theme) => {
|
|
|
426
430
|
min-height: 0;
|
|
427
431
|
overflow: hidden;
|
|
428
432
|
`,
|
|
433
|
+
/** Overrides devtools-ui MainPanel overflow-y: auto so inner columns own scrolling */
|
|
429
434
|
mainPanelShell: css`
|
|
430
435
|
display: flex;
|
|
431
436
|
flex-direction: column;
|
|
@@ -854,7 +859,7 @@ function UtilList(props) {
|
|
|
854
859
|
children: (instance) => {
|
|
855
860
|
const status = (() => {
|
|
856
861
|
try {
|
|
857
|
-
const statusAccessor =
|
|
862
|
+
const statusAccessor = useSelector(instance.store, (s) => s.status);
|
|
858
863
|
return () => statusAccessor() ?? "unknown";
|
|
859
864
|
} catch {
|
|
860
865
|
return () => "unknown";
|
|
@@ -921,7 +926,7 @@ function ActionButtons(props) {
|
|
|
921
926
|
const styles = useStyles();
|
|
922
927
|
const utilInstance = props.instance;
|
|
923
928
|
const store = utilInstance?.store;
|
|
924
|
-
const stateAccessor = isPacerUtilTanStackStore(store) ?
|
|
929
|
+
const stateAccessor = isPacerUtilTanStackStore(store) ? useSelector(store, (s) => s !== null && s !== void 0 && typeof s === "object" ? s : {}, { compare: shallow }) : () => getPacerUtilStoreState(utilInstance);
|
|
925
930
|
const getState = () => stateAccessor();
|
|
926
931
|
const hasPending = () => {
|
|
927
932
|
return "isPending" in getState();
|
|
@@ -1108,7 +1113,7 @@ function StateHeaderInner(props) {
|
|
|
1108
1113
|
return dayjs(at).fromNow();
|
|
1109
1114
|
};
|
|
1110
1115
|
const store = props.entry.instance?.store;
|
|
1111
|
-
const stateAccessor = isPacerUtilTanStackStore(store) ?
|
|
1116
|
+
const stateAccessor = isPacerUtilTanStackStore(store) ? useSelector(store, (s) => s !== null && s !== void 0 && typeof s === "object" ? s : {}, { compare: shallow }) : () => getPacerUtilStoreState(props.entry.instance);
|
|
1112
1117
|
const reductionPercentage = () => reductionFromState(props.entry, stateAccessor());
|
|
1113
1118
|
return (() => {
|
|
1114
1119
|
var _el$ = _tmpl$$2(), _el$2 = _el$.firstChild, _el$4 = _el$2.nextSibling.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling, _el$9 = _el$8.firstChild, _el$1 = _el$9.nextSibling;
|
|
@@ -1182,7 +1187,7 @@ function StateHeader(props) {
|
|
|
1182
1187
|
function UtilStateJsonTree(props) {
|
|
1183
1188
|
const store = props.instance?.store;
|
|
1184
1189
|
if (isPacerUtilTanStackStore(store)) {
|
|
1185
|
-
const snapshot =
|
|
1190
|
+
const snapshot = useSelector(store, (s) => s);
|
|
1186
1191
|
return createComponent(JsonTree, { get value() {
|
|
1187
1192
|
return snapshot();
|
|
1188
1193
|
} });
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { constructCoreClass } from "@tanstack/devtools-utils/solid";
|
|
3
3
|
//#region src/core.tsx
|
|
4
|
-
const coreClasses = constructCoreClass(() => import("./components-
|
|
4
|
+
const coreClasses = constructCoreClass(() => import("./components-hqYwCNDx.js"));
|
|
5
5
|
const PacerDevtoolsCore$1 = coreClasses[0];
|
|
6
6
|
const PacerDevtoolsCoreNoOp = coreClasses[1];
|
|
7
7
|
//#endregion
|
package/dist/production/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { constructCoreClass } from "@tanstack/devtools-utils/solid";
|
|
3
3
|
//#region src/core.tsx
|
|
4
|
-
const coreClasses = constructCoreClass(() => import("../components-
|
|
4
|
+
const coreClasses = constructCoreClass(() => import("../components-hqYwCNDx.js"));
|
|
5
5
|
const PacerDevtoolsCore = coreClasses[0];
|
|
6
6
|
coreClasses[1];
|
|
7
7
|
//#endregion
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { constructCoreClass } from "@tanstack/devtools-utils/solid";
|
|
3
3
|
//#region src/core.tsx
|
|
4
|
-
const coreClasses = constructCoreClass(() => import("../components-
|
|
4
|
+
const coreClasses = constructCoreClass(() => import("../components-DZv7GBzY.js"));
|
|
5
5
|
const PacerDevtoolsCore = coreClasses[0];
|
|
6
6
|
coreClasses[1];
|
|
7
7
|
//#endregion
|
package/dist/server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { constructCoreClass } from "@tanstack/devtools-utils/solid";
|
|
3
3
|
//#region src/core.tsx
|
|
4
|
-
const coreClasses = constructCoreClass(() => import("./components-
|
|
4
|
+
const coreClasses = constructCoreClass(() => import("./components-DZv7GBzY.js"));
|
|
5
5
|
const PacerDevtoolsCore$1 = coreClasses[0];
|
|
6
6
|
const PacerDevtoolsCoreNoOp = coreClasses[1];
|
|
7
7
|
//#endregion
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/pacer-devtools",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Devtools for Pacer.",
|
|
5
5
|
"author": "Tanner Linsley",
|
|
6
6
|
"license": "MIT",
|
|
@@ -71,19 +71,19 @@
|
|
|
71
71
|
"@tanstack/pacer": ">=0.16.4"
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"@tanstack/devtools-ui": "0.5.
|
|
75
|
-
"@tanstack/devtools-utils": "^0.
|
|
76
|
-
"@tanstack/solid-store": "^0.
|
|
74
|
+
"@tanstack/devtools-ui": "0.5.2",
|
|
75
|
+
"@tanstack/devtools-utils": "^0.5.0",
|
|
76
|
+
"@tanstack/solid-store": "^0.11.0",
|
|
77
77
|
"clsx": "^2.1.1",
|
|
78
78
|
"csstype": "^3.2.3",
|
|
79
79
|
"dayjs": "^1.11.20",
|
|
80
|
-
"goober": "^2.1.
|
|
80
|
+
"goober": "^2.1.19",
|
|
81
81
|
"solid-js": "^1.9.12"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
84
|
"rolldown-plugin-solid": "^0.2.1",
|
|
85
|
-
"tsdown": "^0.
|
|
86
|
-
"vite-plugin-solid": "^2.11.
|
|
85
|
+
"tsdown": "^0.22.0",
|
|
86
|
+
"vite-plugin-solid": "^2.11.12"
|
|
87
87
|
},
|
|
88
88
|
"scripts": {
|
|
89
89
|
"clean": "premove ./build ./dist",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { emitChange } from '@tanstack/pacer'
|
|
2
|
-
import {
|
|
2
|
+
import { shallow, useSelector } from '@tanstack/solid-store'
|
|
3
3
|
import { useStyles } from '../styles/use-styles'
|
|
4
4
|
import {
|
|
5
5
|
getPacerUtilStoreState,
|
|
@@ -18,10 +18,13 @@ export function ActionButtons(props: ActionButtonsProps) {
|
|
|
18
18
|
const store = utilInstance?.store
|
|
19
19
|
|
|
20
20
|
const stateAccessor = isPacerUtilTanStackStore(store)
|
|
21
|
-
?
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
? useSelector(
|
|
22
|
+
store as never,
|
|
23
|
+
(s: unknown) =>
|
|
24
|
+
s !== null && s !== undefined && typeof s === 'object'
|
|
25
|
+
? (s as Record<string, unknown>)
|
|
26
|
+
: {},
|
|
27
|
+
{ compare: shallow },
|
|
25
28
|
)
|
|
26
29
|
: () => getPacerUtilStoreState(utilInstance) as Record<string, unknown>
|
|
27
30
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import dayjs from 'dayjs'
|
|
2
2
|
import relativeTime from 'dayjs/plugin/relativeTime.js'
|
|
3
3
|
import { Show, createSignal, onCleanup, onMount } from 'solid-js'
|
|
4
|
-
import {
|
|
4
|
+
import { shallow, useSelector } from '@tanstack/solid-store'
|
|
5
5
|
import { useStyles } from '../styles/use-styles'
|
|
6
6
|
import {
|
|
7
7
|
getPacerUtilStoreState,
|
|
@@ -73,10 +73,13 @@ function StateHeaderInner(props: {
|
|
|
73
73
|
|
|
74
74
|
const store = props.entry.instance?.store
|
|
75
75
|
const stateAccessor = isPacerUtilTanStackStore(store)
|
|
76
|
-
?
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
? useSelector(
|
|
77
|
+
store as never,
|
|
78
|
+
(s: unknown) =>
|
|
79
|
+
s !== null && s !== undefined && typeof s === 'object'
|
|
80
|
+
? (s as Record<string, unknown>)
|
|
81
|
+
: {},
|
|
82
|
+
{ compare: shallow },
|
|
80
83
|
)
|
|
81
84
|
: () =>
|
|
82
85
|
getPacerUtilStoreState(props.entry.instance) as Record<string, unknown>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { For } from 'solid-js'
|
|
2
|
-
import {
|
|
2
|
+
import { useSelector } from '@tanstack/solid-store'
|
|
3
3
|
import clsx from 'clsx'
|
|
4
4
|
import { useStyles } from '../styles/use-styles'
|
|
5
5
|
import { UTIL_GROUPS } from './util-groups'
|
|
@@ -26,7 +26,7 @@ export function UtilList(props: UtilListProps) {
|
|
|
26
26
|
{(instance) => {
|
|
27
27
|
const status = (() => {
|
|
28
28
|
try {
|
|
29
|
-
const statusAccessor =
|
|
29
|
+
const statusAccessor = useSelector(
|
|
30
30
|
instance.store,
|
|
31
31
|
(s: any) => s.status,
|
|
32
32
|
)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JsonTree } from '@tanstack/devtools-ui'
|
|
2
|
-
import {
|
|
2
|
+
import { useSelector } from '@tanstack/solid-store'
|
|
3
3
|
import {
|
|
4
4
|
getPacerUtilStoreState,
|
|
5
5
|
isPacerUtilTanStackStore,
|
|
@@ -18,7 +18,7 @@ type UtilStateJsonTreeProps = {
|
|
|
18
18
|
export function UtilStateJsonTree(props: UtilStateJsonTreeProps): JSX.Element {
|
|
19
19
|
const store = props.instance?.store
|
|
20
20
|
if (isPacerUtilTanStackStore(store)) {
|
|
21
|
-
const snapshot =
|
|
21
|
+
const snapshot = useSelector(store as never, (s: unknown) => s)
|
|
22
22
|
return <JsonTree value={snapshot()} />
|
|
23
23
|
}
|
|
24
24
|
return <JsonTree value={getPacerUtilStoreState(props.instance)} />
|