msw-dev-tool 1.1.6 → 1.1.8

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/esm/index.js CHANGED
@@ -27940,13 +27940,14 @@ const useUiControlStore = create((set) => ({
27940
27940
  const HttpControl = () => {
27941
27941
  const table = useFlattenHandlersTable();
27942
27942
  const { setDebuggerHandler } = useUiControlStore();
27943
+ const currentHandler = useUiControlStore((state) => state.currentHandler);
27943
27944
  return (React__default.createElement(p$3, { style: { flex: 3, overflowY: "auto" }, direction: "column", gap: "4" },
27944
27945
  React__default.createElement(r$8, { as: "h2", size: "5" }, "Handlers"),
27945
27946
  React__default.createElement(m, { onDragStart: (e) => e.stopPropagation(), style: { userSelect: "text" } },
27946
27947
  React__default.createElement(d, null, table.getHeaderGroups().map((headerGroup) => (React__default.createElement(P, { key: headerGroup.id }, headerGroup.headers.map((header) => (React__default.createElement(f$1, { key: header.id }, header.isPlaceholder
27947
27948
  ? null
27948
27949
  : flexRender(header.column.columnDef.header, header.getContext())))))))),
27949
- React__default.createElement(b, null, table.getRowModel().rows.map((row) => (React__default.createElement(P, { key: row.id, align: "center", className: "msw-dt-http-control-row", onClick: () => {
27950
+ React__default.createElement(b, null, table.getRowModel().rows.map((row) => (React__default.createElement(P, { key: row.id, align: "center", className: `msw-dt-http-control-row ${row.original.handler === currentHandler && "msw-dt-current-row"}`, onClick: () => {
27950
27951
  setDebuggerHandler(row.original.handler);
27951
27952
  } }, row.getVisibleCells().map((cell) => (React__default.createElement(T, { key: cell.id }, flexRender(cell.column.columnDef.cell, cell.getContext())))))))))));
27952
27953
  };
@@ -28109,41 +28110,35 @@ const RequestPreview = ({ url, paramValues, headers = {}, searchParams = {}, })
28109
28110
  } }, JSON.stringify(response, null, 2)))))));
28110
28111
  };
28111
28112
 
28113
+ /**
28114
+ * - It uses `zustand` global state.
28115
+ * - remounting of the inner component that uses local states.
28116
+ * - To force a component to be remounted, use `key` prop.
28117
+ */
28112
28118
  const HandlerDebugger = () => {
28113
- var _a;
28114
28119
  const { currentHandler: handler } = useUiControlStore();
28115
- const path = (_a = handler === null || handler === void 0 ? void 0 : handler.info.path) !== null && _a !== void 0 ? _a : "";
28120
+ const key = `${handler === null || handler === void 0 ? void 0 : handler.info.path}-${handler === null || handler === void 0 ? void 0 : handler.info.method}`;
28121
+ return (React__default.createElement(Container, null, handler ? (React__default.createElement(_HandlerDebugger, { handler: handler, key: key })) : (React__default.createElement(p$b, null, "Select a handler from the table to debug"))));
28122
+ };
28123
+ const _HandlerDebugger = ({ handler }) => {
28124
+ const path = handler === null || handler === void 0 ? void 0 : handler.info.path;
28116
28125
  const url = new URL(String(path), location.href);
28117
28126
  const { params } = matchRequestUrl(url, path, url.origin);
28118
- const [paramValues, setParamValues] = useState(undefined);
28127
+ const [paramValues, setParamValues] = useState(params
28128
+ ? Object.keys(params).reduce((acc, key) => ({
28129
+ ...acc,
28130
+ [key]: "",
28131
+ }), {})
28132
+ : undefined);
28119
28133
  const [headers, setHeaders] = useState({});
28120
28134
  const [searchParams, setSearchParams] = useState({});
28121
- /**
28122
- * Initialize state to clear previous handler data
28123
- */
28124
- useEffect(() => {
28125
- if (params) {
28126
- setParamValues(Object.keys(params).reduce((acc, key) => ({
28127
- ...acc,
28128
- [key]: "",
28129
- }), {}));
28130
- }
28131
- else {
28132
- setParamValues(undefined);
28133
- }
28134
- setHeaders({});
28135
- setSearchParams({});
28136
- }, [handler]);
28137
28135
  const handleParamChange = (key, value) => {
28138
28136
  setParamValues((prev) => ({
28139
28137
  ...prev,
28140
28138
  [key]: value,
28141
28139
  }));
28142
28140
  };
28143
- if (!handler)
28144
- return (React__default.createElement(Container, null,
28145
- React__default.createElement(p$b, null, "Select a handler from the table to debug")));
28146
- return (React__default.createElement(Container, null,
28141
+ return (React__default.createElement(React__default.Fragment, null,
28147
28142
  React__default.createElement(p$b, { className: "msw-dt-sub-text", style: { overflowX: "scroll" } }, url.toString()),
28148
28143
  React__default.createElement(PathParamSetter, { paramValues: paramValues, onParamChange: handleParamChange }),
28149
28144
  React__default.createElement(KeyValueInputList, { items: searchParams, setItems: setSearchParams, title: "Search Params" }),
@@ -28188,6 +28183,7 @@ const MSWDevTool = () => {
28188
28183
  borderRadius: "50%",
28189
28184
  width: "3.5rem",
28190
28185
  height: "3.5rem",
28186
+ margin: "1rem",
28191
28187
  } }, "M")),
28192
28188
  React__default.createElement(Drawer.Portal, null,
28193
28189
  React__default.createElement(ThemeProvider, null,