process/fingap: disable query refetching

This commit is contained in:
Chika 2022-10-25 12:49:28 +03:00
parent 4ae1212a65
commit 34bab4f715
4 changed files with 28 additions and 10 deletions

View File

@ -1,9 +1,16 @@
/* eslint-disable import/prefer-default-export */
import type { QueryFunctionContext } from '@tanstack/react-query';
import axios from 'axios';
import type { RequestFinGAP, ResponseFinGAP } from './types';
export async function calculateFinGAP(payload: RequestFinGAP, signal?: AbortSignal) {
return axios.post<ResponseFinGAP>(process.env.NEXT_PUBLIC_URL_CORE_FINGAP_PROXY!, payload, {
signal,
});
export async function calculateFinGAP(payload: RequestFinGAP, { signal }: QueryFunctionContext) {
const { data } = await axios.post<ResponseFinGAP>(
process.env.NEXT_PUBLIC_URL_CORE_FINGAP_PROXY!,
payload,
{
signal,
}
);
return data;
}

2
constants/request.js Normal file
View File

@ -0,0 +1,2 @@
/* eslint-disable import/prefer-default-export */
export const STALE_TIME = Number.POSITIVE_INFINITY;

View File

@ -7,11 +7,13 @@ import type { QueryClient, QueryFunctionContext } from '@tanstack/react-query';
import { calculateFinGAP } from 'api/core/query';
import type { RequestFinGAP } from 'api/core/types';
import type { Risk } from 'Components/Calculation/Form/Insurance/FinGAPTable/types';
import { STALE_TIME } from 'constants/request';
import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
import type * as CRMTypes from 'graphql/crm.types';
import { comparer, reaction, toJS } from 'mobx';
import type RootStore from 'stores/root';
import { flatten } from 'tools/object';
dayjs.extend(utc);
@ -195,12 +197,15 @@ export default function commonReactions(
}
function makeRequestGetFinGAP(request: RequestFinGAP) {
const queryCalculateFinGAP = ({ signal }: QueryFunctionContext) =>
calculateFinGAP(request, signal);
const queryCalculateFinGAP = (context: QueryFunctionContext) =>
calculateFinGAP(request, context);
return queryClient.fetchQuery(
['calculate', 'fingap', request.calcType],
queryCalculateFinGAP
['core', 'fingap', ...flatten(request)],
queryCalculateFinGAP,
{
staleTime: STALE_TIME,
}
);
}
@ -211,8 +216,8 @@ export default function commonReactions(
).then((results) => {
const newRisks = risks.map((risk, i) => ({
...risk,
sum: results.at(i)?.data.sum || 0,
premium: results.at(i)?.data.premium || 0,
sum: results.at(i)?.sum || 0,
premium: results.at(i)?.premium || 0,
}));
$tables.fingap.setRisks(newRisks);

4
tools/object.ts Normal file
View File

@ -0,0 +1,4 @@
/* eslint-disable import/prefer-default-export */
export function flatten(obj: object) {
return Object.values(obj).flat();
}