process/fingap: disable query refetching
This commit is contained in:
parent
4ae1212a65
commit
34bab4f715
@ -1,9 +1,16 @@
|
|||||||
/* eslint-disable import/prefer-default-export */
|
/* eslint-disable import/prefer-default-export */
|
||||||
|
import type { QueryFunctionContext } from '@tanstack/react-query';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import type { RequestFinGAP, ResponseFinGAP } from './types';
|
import type { RequestFinGAP, ResponseFinGAP } from './types';
|
||||||
|
|
||||||
export async function calculateFinGAP(payload: RequestFinGAP, signal?: AbortSignal) {
|
export async function calculateFinGAP(payload: RequestFinGAP, { signal }: QueryFunctionContext) {
|
||||||
return axios.post<ResponseFinGAP>(process.env.NEXT_PUBLIC_URL_CORE_FINGAP_PROXY!, payload, {
|
const { data } = await axios.post<ResponseFinGAP>(
|
||||||
signal,
|
process.env.NEXT_PUBLIC_URL_CORE_FINGAP_PROXY!,
|
||||||
});
|
payload,
|
||||||
|
{
|
||||||
|
signal,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
|
|||||||
2
constants/request.js
Normal file
2
constants/request.js
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/* eslint-disable import/prefer-default-export */
|
||||||
|
export const STALE_TIME = Number.POSITIVE_INFINITY;
|
||||||
@ -7,11 +7,13 @@ import type { QueryClient, QueryFunctionContext } from '@tanstack/react-query';
|
|||||||
import { calculateFinGAP } from 'api/core/query';
|
import { calculateFinGAP } from 'api/core/query';
|
||||||
import type { RequestFinGAP } from 'api/core/types';
|
import type { RequestFinGAP } from 'api/core/types';
|
||||||
import type { Risk } from 'Components/Calculation/Form/Insurance/FinGAPTable/types';
|
import type { Risk } from 'Components/Calculation/Form/Insurance/FinGAPTable/types';
|
||||||
|
import { STALE_TIME } from 'constants/request';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import utc from 'dayjs/plugin/utc';
|
import utc from 'dayjs/plugin/utc';
|
||||||
import type * as CRMTypes from 'graphql/crm.types';
|
import type * as CRMTypes from 'graphql/crm.types';
|
||||||
import { comparer, reaction, toJS } from 'mobx';
|
import { comparer, reaction, toJS } from 'mobx';
|
||||||
import type RootStore from 'stores/root';
|
import type RootStore from 'stores/root';
|
||||||
|
import { flatten } from 'tools/object';
|
||||||
|
|
||||||
dayjs.extend(utc);
|
dayjs.extend(utc);
|
||||||
|
|
||||||
@ -195,12 +197,15 @@ export default function commonReactions(
|
|||||||
}
|
}
|
||||||
|
|
||||||
function makeRequestGetFinGAP(request: RequestFinGAP) {
|
function makeRequestGetFinGAP(request: RequestFinGAP) {
|
||||||
const queryCalculateFinGAP = ({ signal }: QueryFunctionContext) =>
|
const queryCalculateFinGAP = (context: QueryFunctionContext) =>
|
||||||
calculateFinGAP(request, signal);
|
calculateFinGAP(request, context);
|
||||||
|
|
||||||
return queryClient.fetchQuery(
|
return queryClient.fetchQuery(
|
||||||
['calculate', 'fingap', request.calcType],
|
['core', 'fingap', ...flatten(request)],
|
||||||
queryCalculateFinGAP
|
queryCalculateFinGAP,
|
||||||
|
{
|
||||||
|
staleTime: STALE_TIME,
|
||||||
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,8 +216,8 @@ export default function commonReactions(
|
|||||||
).then((results) => {
|
).then((results) => {
|
||||||
const newRisks = risks.map((risk, i) => ({
|
const newRisks = risks.map((risk, i) => ({
|
||||||
...risk,
|
...risk,
|
||||||
sum: results.at(i)?.data.sum || 0,
|
sum: results.at(i)?.sum || 0,
|
||||||
premium: results.at(i)?.data.premium || 0,
|
premium: results.at(i)?.premium || 0,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
$tables.fingap.setRisks(newRisks);
|
$tables.fingap.setRisks(newRisks);
|
||||||
|
|||||||
4
tools/object.ts
Normal file
4
tools/object.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
/* eslint-disable import/prefer-default-export */
|
||||||
|
export function flatten(obj: object) {
|
||||||
|
return Object.values(obj).flat();
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user