Skip to content

insertReactOnMutation

The insertReactOnMutation insertion allows state to automatically react to mutations, enabling powerful patterns like cache invalidation, optimistic updates, and side effects.

Import

typescript
import { insertReactOnMutation } from '@ng-angular-stack/craft';

Basic Usage

typescript
// simple query
const mutationRef = mutation({
  method: (payload: { name: string }) => payload,
  loader: async ({ params }) => params,
});

const queryRef = query(
  {
    params: () => '5',
    loader: async ({ params }) => ({
      id: params,
      name: 'John',
    }),
  },
  insertReactOnMutation(mutationRef, {
    patch: {
      name: ({ mutationParams }) => mutationParams.name,
    },
  }),
);
-------
// parallel query
const mutationRef = mutation({
  method: (payload: { name: string; id: string }) => payload,
  loader: async ({ params }) => params,
});

const queryRef = query(
  {
    params: () => '5',
    identifier: (params) => params,
    loader: async ({ params }) => ({
      id: params,
      name: 'John',
    }),
  },
  insertReactOnMutation(mutationRef, {
    filter: ({ queryIdentifier, mutationParams }) =>
      mutationParams.id === queryIdentifier,
    patch: {
      name: ({ mutationParams }) => mutationParams.name,
    },
  }),
);