Fix cache management (#2264)
This commit is contained in:
@ -8,7 +8,12 @@ import { useRecoilCallback } from 'recoil';
|
||||
|
||||
import { GET_COMPANIES } from '@/companies/graphql/queries/getCompanies';
|
||||
import { GET_PEOPLE } from '@/people/graphql/queries/getPeople';
|
||||
import { GetCompaniesQuery, GetPeopleQuery } from '~/generated/graphql';
|
||||
import { GET_API_KEYS } from '@/settings/developers/graphql/queries/getApiKeys';
|
||||
import {
|
||||
GetApiKeysQuery,
|
||||
GetCompaniesQuery,
|
||||
GetPeopleQuery,
|
||||
} from '~/generated/graphql';
|
||||
|
||||
import { optimisticEffectState } from '../states/optimisticEffectState';
|
||||
import { OptimisticEffectDefinition } from '../types/OptimisticEffectDefinition';
|
||||
@ -77,6 +82,20 @@ export const useOptimisticEffect = () => {
|
||||
},
|
||||
});
|
||||
}
|
||||
if (query === GET_API_KEYS) {
|
||||
cache.writeQuery({
|
||||
query,
|
||||
variables,
|
||||
data: {
|
||||
findManyApiKey: definition.resolver({
|
||||
currentData: (existingData as GetApiKeysQuery)
|
||||
.findManyApiKey as T[],
|
||||
newData: newData as T[],
|
||||
variables,
|
||||
}),
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const optimisticEffect = {
|
||||
|
||||
@ -4,7 +4,9 @@ export const INSERT_ONE_API_KEY = gql`
|
||||
mutation InsertOneApiKey($data: ApiKeyCreateInput!) {
|
||||
createOneApiKey(data: $data) {
|
||||
id
|
||||
name
|
||||
token
|
||||
createdAt
|
||||
expiresAt
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
import { GET_API_KEYS } from '@/settings/developers/graphql/queries/getApiKeys';
|
||||
import { ApiKey } from '~/generated/graphql';
|
||||
|
||||
export const getApiKeysOptimisticEffectDefinition = {
|
||||
key: 'generic-entity-table-data-api-keys',
|
||||
typename: 'ApiKey',
|
||||
query: GET_API_KEYS,
|
||||
resolver: ({
|
||||
currentData,
|
||||
newData,
|
||||
}: {
|
||||
currentData: ApiKey[];
|
||||
newData: ApiKey[];
|
||||
}) => {
|
||||
return [...newData, ...currentData];
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user