authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-01-29 22:37:25-08:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-01-29 22:37:59-08:00
loge15e516edd86fdbdbe591469271dfa311cc01e23
tree538ad21267e1df1e033c89688e830432988b5933
parent1ea8a97377ab12b84a6d111aa16a911898376d94
signaturelock-open Commit is signed but in an unrecognized format.

fix: ,mybad


2 files changed, 11 insertions(+), 4 deletions(-)

jsr.json+1-1
......@@ -1,6 +1,6 @@
11{
22 "name": "@clo/react-mutation",
3 "version": "1.0.0-beta.13",
3 "version": "1.0.0-beta.14",
44 "exports": {
55 ".": "./src/mod.ts",
66 "./tanstack-query.ts": "./src/tanstack-query.ts",
src/react.ts+10-3
......@@ -1,5 +1,6 @@
11import { message as errMessage } from "@clo/lib/error.ts";
22import type { Timer } from "@clo/lib/ts.ts";
3import { isDisabled } from "@testing-library/user-event/dist/cjs/utils/index.js";
34import {
45 type FC,
56 type MouseEvent,
......@@ -46,9 +47,15 @@ export interface UseMutateResultBase<Args extends unknown[], Result> {
4647 runWithOptions: (
4748 ..._: [...args: Args, options: RunOptions<Result>]
4849 ) => void;
50
51 /** Unset error and success states */
4952 clear: () => void;
53 /** Set `error`, useful for input validators or whatever */
5054 setError: (error: unknown) => void;
55 /** The arguments of the latest mutation call */
5156 args: Args | undefined;
57 /** `true` when controls should be disabled */
58 isDisabled: boolean;
5259}
5360
5461export interface UseMutateSuccess<Result> {
......@@ -89,8 +96,6 @@ export interface UseMutateIdle {
8996 result: undefined;
9097 error: undefined;
9198 errorMessage: undefined;
92 /** `true` when controls should be disabled */
93 isDisabled: boolean;
9499 /** `true` when a `mutate` function is currently running. */
95100 isMutating: boolean;
96101 /** `true` when a loading indicator should be shown. */
......@@ -116,6 +121,7 @@ type AnyMutationStateWithoutRun<Args extends unknown[], Result> =
116121 isSuccess: boolean;
117122 isError: boolean;
118123 args: Args | undefined;
124 isDisabled: boolean;
119125 };
120126
121127export type AnyMutationState<Args extends unknown[], Result> =
......@@ -134,6 +140,7 @@ function initialState() {
134140 isError: false,
135141 isOptimisticData: false,
136142 args: undefined,
143 isDisabled: true,
137144 } as const;
138145}
139146
......@@ -368,7 +375,7 @@ class Observer<Args extends unknown[], Result> {
368375 // TODO: when auth drops this will be dependant on the auth status and isMutating
369376 get isDisabled() {
370377 self.watched.add("isMutating");
371 return self.state.isMutating;
378 return !self.mutation || self.state.isMutating;
372379 },
373380 get isPending() {
374381 self.watched.add("isPending");