Update counter only on success

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2025-09-03 11:05:37 +02:00
parent dfe787695c
commit 8ee03b82b1
4 changed files with 26 additions and 20 deletions

View File

@@ -6,10 +6,10 @@ import {
} from "react-relay";
import {
commitLocalUpdate,
type Environment,
type GraphQLTaggedNode,
type MutationParameters,
} from "relay-runtime";
import type RelayModernEnvironment from "relay-runtime/lib/store/RelayModernEnvironment";
const defaultOptions = {
field: "totalCount",
@@ -36,13 +36,15 @@ export function useMutationWithIncrement<T extends MutationParameters>(
return mutate({
...queryOptions,
onCompleted: (response, error) => {
updateStoreCounter(
relayEnv,
options.id,
options.node,
options.value,
options.field,
);
if (!error) {
updateStoreCounter(
relayEnv,
options.id,
options.node,
options.value,
options.field,
);
}
queryOptions.onCompleted?.(response, error);
},
});
@@ -54,7 +56,7 @@ export function useMutationWithIncrement<T extends MutationParameters>(
}
export function updateStoreCounter(
relayEnv: RelayModernEnvironment,
relayEnv: Environment,
recordId: string,
nodeName: string,
value: number = 1,