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

@@ -144,8 +144,10 @@ export default function TaskFormDialog(props: Props) {
}, },
connections: [props.connection!], connections: [props.connection!],
}, },
onCompleted: () => { onCompleted: (_response, errors) => {
if (!errors) {
updateStoreCounter(relayEnv, data.measureId, "tasks(first:0)", 1); updateStoreCounter(relayEnv, data.measureId, "tasks(first:0)", 1);
}
}, },
}); });
reset(); reset();

View File

@@ -165,8 +165,8 @@ function TaskRow(props: TaskRowProps) {
input: { taskId: props.task.id }, input: { taskId: props.task.id },
connections: [props.connectionId], connections: [props.connectionId],
}, },
onCompleted: () => { onCompleted: (_response, errors) => {
if (params.measureId) { if (!errors && params.measureId) {
updateStoreCounter( updateStoreCounter(
relayEnv, relayEnv,
params.measureId, params.measureId,

View File

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

View File

@@ -180,13 +180,15 @@ function EvidenceRow(props: {
evidenceId: evidence.id, evidenceId: evidence.id,
}, },
}, },
onCompleted: () => { onCompleted: (_response, errors) => {
if (!errors) {
updateStoreCounter( updateStoreCounter(
relayEnv, relayEnv,
props.measureId, props.measureId,
"evidences(first:0)", "evidences(first:0)",
-1 -1
); );
}
}, },
}); });
}, },