Fix optimistic effect breaking build

This commit is contained in:
Charles Bochet
2023-11-15 15:57:43 +01:00
parent 6129444c5c
commit f49ddec2f6
9 changed files with 15 additions and 16 deletions

View File

@ -8,8 +8,8 @@ import { isNonEmptyArray } from '@sniptt/guards';
import { useRecoilCallback } from 'recoil'; import { useRecoilCallback } from 'recoil';
import { GET_COMPANIES } from '@/companies/graphql/queries/getCompanies'; import { GET_COMPANIES } from '@/companies/graphql/queries/getCompanies';
import { useFindOneObjectMetadataItem } from '@/object-metadata/hooks/useFindOneObjectMetadataItem';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { useGenerateFindManyCustomObjectsQuery } from '@/object-record/utils/useGenerateFindManyCustomObjectsQuery';
import { GET_PEOPLE } from '@/people/graphql/queries/getPeople'; import { GET_PEOPLE } from '@/people/graphql/queries/getPeople';
import { GET_API_KEYS } from '@/settings/developers/graphql/queries/getApiKeys'; import { GET_API_KEYS } from '@/settings/developers/graphql/queries/getApiKeys';
import { import {
@ -22,8 +22,11 @@ import { optimisticEffectState } from '../states/optimisticEffectState';
import { OptimisticEffect } from '../types/internal/OptimisticEffect'; import { OptimisticEffect } from '../types/internal/OptimisticEffect';
import { OptimisticEffectDefinition } from '../types/OptimisticEffectDefinition'; import { OptimisticEffectDefinition } from '../types/OptimisticEffectDefinition';
export const useOptimisticEffect = () => { export const useOptimisticEffect = (objectNameSingular: string) => {
const apolloClient = useApolloClient(); const apolloClient = useApolloClient();
const { findManyQuery } = useFindOneObjectMetadataItem({
objectNameSingular,
});
const registerOptimisticEffect = useRecoilCallback( const registerOptimisticEffect = useRecoilCallback(
({ snapshot, set }) => ({ snapshot, set }) =>
@ -54,12 +57,8 @@ export const useOptimisticEffect = () => {
objectMetadataItem?: ObjectMetadataItem; objectMetadataItem?: ObjectMetadataItem;
}) => { }) => {
if (isUsingFlexibleBackend && objectMetadataItem) { if (isUsingFlexibleBackend && objectMetadataItem) {
const generatedQuery = useGenerateFindManyCustomObjectsQuery({
objectMetadataItem,
});
const existingData = cache.readQuery({ const existingData = cache.readQuery({
query: generatedQuery, query: findManyQuery,
variables, variables,
}); });
@ -68,7 +67,7 @@ export const useOptimisticEffect = () => {
} }
cache.writeQuery({ cache.writeQuery({
query: generatedQuery, query: findManyQuery,
variables, variables,
data: { data: {
[objectMetadataItem.namePlural]: definition.resolver({ [objectMetadataItem.namePlural]: definition.resolver({

View File

@ -24,7 +24,7 @@ const defaultFieldValues: Record<FieldMetadataType, unknown> = {
export const useCreateOneObjectRecord = ({ export const useCreateOneObjectRecord = ({
objectNamePlural, objectNamePlural,
}: Pick<ObjectMetadataItemIdentifier, 'objectNamePlural'>) => { }: Pick<ObjectMetadataItemIdentifier, 'objectNamePlural'>) => {
const { triggerOptimisticEffects } = useOptimisticEffect(); const { triggerOptimisticEffects } = useOptimisticEffect('CompanyV2');
const { const {
foundObjectMetadataItem, foundObjectMetadataItem,

View File

@ -14,7 +14,7 @@ import { useFindManyObjectRecords } from './useFindManyObjectRecords';
export const useObjectRecordTable = () => { export const useObjectRecordTable = () => {
const { scopeId: objectNamePlural } = useRecordTable(); const { scopeId: objectNamePlural } = useRecordTable();
const { registerOptimisticEffect } = useOptimisticEffect(); const { registerOptimisticEffect } = useOptimisticEffect('CompanyV2');
const { foundObjectMetadataItem } = useFindOneObjectMetadataItem({ const { foundObjectMetadataItem } = useFindOneObjectMetadataItem({
objectNamePlural, objectNamePlural,

View File

@ -35,7 +35,7 @@ export const RecordTableEffect = ({
const { setRecordTableData } = useRecordTable(); const { setRecordTableData } = useRecordTable();
const { tableSortsOrderBySelector, tableFiltersWhereSelector } = const { tableSortsOrderBySelector, tableFiltersWhereSelector } =
useRecordTableScopedStates(); useRecordTableScopedStates();
const { registerOptimisticEffect } = useOptimisticEffect(); const { registerOptimisticEffect } = useOptimisticEffect('CompanyV2');
const tableSortsOrderBy = useRecoilValue(tableSortsOrderBySelector); const tableSortsOrderBy = useRecoilValue(tableSortsOrderBySelector);
const sortsOrderBy = defaults(tableSortsOrderBy, [ const sortsOrderBy = defaults(tableSortsOrderBy, [

View File

@ -29,7 +29,7 @@ export const Companies = () => {
recordTableScopeId: 'companies', recordTableScopeId: 'companies',
}); });
const upsertTableRowIds = useUpsertTableRowId(); const upsertTableRowIds = useUpsertTableRowId();
const { triggerOptimisticEffects } = useOptimisticEffect(); const { triggerOptimisticEffects } = useOptimisticEffect('Company');
const handleAddButtonClick = async () => { const handleAddButtonClick = async () => {
const newCompanyId: string = v4(); const newCompanyId: string = v4();

View File

@ -27,7 +27,7 @@ export const People = () => {
recordTableScopeId: 'people', recordTableScopeId: 'people',
}); });
const upsertTableRowIds = useUpsertTableRowId(); const upsertTableRowIds = useUpsertTableRowId();
const { triggerOptimisticEffects } = useOptimisticEffect(); const { triggerOptimisticEffects } = useOptimisticEffect('Person');
const handleAddButtonClick = async () => { const handleAddButtonClick = async () => {
const newPersonId: string = v4(); const newPersonId: string = v4();

View File

@ -41,7 +41,7 @@ const StyledInputContainer = styled.div`
export const SettingsDevelopersApiKeyDetail = () => { export const SettingsDevelopersApiKeyDetail = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const { apiKeyId = '' } = useParams(); const { apiKeyId = '' } = useParams();
const { triggerOptimisticEffects } = useOptimisticEffect(); const { triggerOptimisticEffects } = useOptimisticEffect('ApiKeyV2');
const setGeneratedApi = useGeneratedApiKeys(); const setGeneratedApi = useGeneratedApiKeys();
const [generatedApiKey] = useRecoilState( const [generatedApiKey] = useRecoilState(

View File

@ -39,7 +39,7 @@ const StyledH1Title = styled(H1Title)`
export const SettingsDevelopersApiKeys = () => { export const SettingsDevelopersApiKeys = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const { registerOptimisticEffect } = useOptimisticEffect(); const { registerOptimisticEffect } = useOptimisticEffect('ApiKeyV2');
const apiKeysQuery = useGetApiKeysQuery({ const apiKeysQuery = useGetApiKeysQuery({
onCompleted: () => { onCompleted: () => {
registerOptimisticEffect({ registerOptimisticEffect({

View File

@ -19,7 +19,7 @@ import { useInsertOneApiKeyMutation } from '~/generated/graphql';
export const SettingsDevelopersApiKeysNew = () => { export const SettingsDevelopersApiKeysNew = () => {
const [insertOneApiKey] = useInsertOneApiKeyMutation(); const [insertOneApiKey] = useInsertOneApiKeyMutation();
const { triggerOptimisticEffects } = useOptimisticEffect(); const { triggerOptimisticEffects } = useOptimisticEffect('ApiKeyV2');
const navigate = useNavigate(); const navigate = useNavigate();
const setGeneratedApi = useGeneratedApiKeys(); const setGeneratedApi = useGeneratedApiKeys();
const [formValues, setFormValues] = useState<{ const [formValues, setFormValues] = useState<{