Improvements for migrations (#2573)
* Fix optimistic effects * Fix merge issue
This commit is contained in:
@ -4,6 +4,7 @@ import styled from '@emotion/styled';
|
|||||||
import { DateTime } from 'luxon';
|
import { DateTime } from 'luxon';
|
||||||
import { useRecoilState } from 'recoil';
|
import { useRecoilState } from 'recoil';
|
||||||
|
|
||||||
|
import { useOptimisticEvict } from '@/apollo/optimistic-effect/hooks/useOptimisticEvict';
|
||||||
import { useCreateOneObjectRecord } from '@/object-record/hooks/useCreateOneObjectRecord';
|
import { useCreateOneObjectRecord } from '@/object-record/hooks/useCreateOneObjectRecord';
|
||||||
import { useFindOneObjectRecord } from '@/object-record/hooks/useFindOneObjectRecord';
|
import { useFindOneObjectRecord } from '@/object-record/hooks/useFindOneObjectRecord';
|
||||||
import { useUpdateOneObjectRecord } from '@/object-record/hooks/useUpdateOneObjectRecord';
|
import { useUpdateOneObjectRecord } from '@/object-record/hooks/useUpdateOneObjectRecord';
|
||||||
@ -45,6 +46,7 @@ export const SettingsDevelopersApiKeyDetail = () => {
|
|||||||
const [generatedApiKey] = useRecoilState(
|
const [generatedApiKey] = useRecoilState(
|
||||||
generatedApiKeyFamilyState(apiKeyId),
|
generatedApiKeyFamilyState(apiKeyId),
|
||||||
);
|
);
|
||||||
|
const { performOptimisticEvict } = useOptimisticEvict();
|
||||||
|
|
||||||
const [generateOneApiKeyToken] = useGenerateOneApiKeyTokenMutation();
|
const [generateOneApiKeyToken] = useGenerateOneApiKeyTokenMutation();
|
||||||
const { createOneObject: createOneApiKey } = useCreateOneObjectRecord<ApiKey>(
|
const { createOneObject: createOneApiKey } = useCreateOneObjectRecord<ApiKey>(
|
||||||
@ -66,6 +68,7 @@ export const SettingsDevelopersApiKeyDetail = () => {
|
|||||||
idToUpdate: apiKeyId,
|
idToUpdate: apiKeyId,
|
||||||
input: { revokedAt: DateTime.now().toString() },
|
input: { revokedAt: DateTime.now().toString() },
|
||||||
});
|
});
|
||||||
|
performOptimisticEvict('ApiKeyV2', 'id', apiKeyId);
|
||||||
if (redirect) {
|
if (redirect) {
|
||||||
navigate('/settings/developers/api-keys');
|
navigate('/settings/developers/api-keys');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,10 +3,11 @@ import { useNavigate } from 'react-router-dom';
|
|||||||
import styled from '@emotion/styled';
|
import styled from '@emotion/styled';
|
||||||
|
|
||||||
import { useOptimisticEffect } from '@/apollo/optimistic-effect/hooks/useOptimisticEffect';
|
import { useOptimisticEffect } from '@/apollo/optimistic-effect/hooks/useOptimisticEffect';
|
||||||
|
import { useFindOneObjectMetadataItem } from '@/object-metadata/hooks/useFindOneObjectMetadataItem';
|
||||||
|
import { getRecordOptimisticEffectDefinition } from '@/object-record/graphql/optimistic-effect-definition/getRecordOptimisticEffectDefinition';
|
||||||
import { useFindManyObjectRecords } from '@/object-record/hooks/useFindManyObjectRecords';
|
import { useFindManyObjectRecords } from '@/object-record/hooks/useFindManyObjectRecords';
|
||||||
import { objectSettingsWidth } from '@/settings/data-model/constants/objectSettings';
|
import { objectSettingsWidth } from '@/settings/data-model/constants/objectSettings';
|
||||||
import { SettingsApiKeysFieldItemTableRow } from '@/settings/developers/components/SettingsApiKeysFieldItemTableRow';
|
import { SettingsApiKeysFieldItemTableRow } from '@/settings/developers/components/SettingsApiKeysFieldItemTableRow';
|
||||||
import { getApiKeysOptimisticEffectDefinition } from '@/settings/developers/optimistic-effect-definitions/getApiKeysOptimisticEffectDefinition';
|
|
||||||
import { ApiFieldItem } from '@/settings/developers/types/ApiFieldItem';
|
import { ApiFieldItem } from '@/settings/developers/types/ApiFieldItem';
|
||||||
import { formatExpirations } from '@/settings/developers/utils/format-expiration';
|
import { formatExpirations } from '@/settings/developers/utils/format-expiration';
|
||||||
import { IconPlus, IconSettings } from '@/ui/display/icon';
|
import { IconPlus, IconSettings } from '@/ui/display/icon';
|
||||||
@ -41,11 +42,15 @@ const StyledH1Title = styled(H1Title)`
|
|||||||
|
|
||||||
export const SettingsDevelopersApiKeys = () => {
|
export const SettingsDevelopersApiKeys = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { registerOptimisticEffect } = useOptimisticEffect('ApiKeyV2');
|
|
||||||
const [apiKeys, setApiKeys] = useState<Array<ApiFieldItem>>([]);
|
const [apiKeys, setApiKeys] = useState<Array<ApiFieldItem>>([]);
|
||||||
|
const { registerOptimisticEffect } = useOptimisticEffect('apiKeyV2');
|
||||||
|
const { foundObjectMetadataItem } = useFindOneObjectMetadataItem({
|
||||||
|
objectNameSingular: 'apiKeyV2',
|
||||||
|
});
|
||||||
|
const filter = { revokedAt: { eq: null } };
|
||||||
useFindManyObjectRecords({
|
useFindManyObjectRecords({
|
||||||
objectNamePlural: 'apiKeysV2',
|
objectNamePlural: 'apiKeysV2',
|
||||||
filter: { revokedAt: { eq: null } },
|
filter,
|
||||||
onCompleted: (data) => {
|
onCompleted: (data) => {
|
||||||
setApiKeys(
|
setApiKeys(
|
||||||
formatExpirations(
|
formatExpirations(
|
||||||
@ -56,10 +61,14 @@ export const SettingsDevelopersApiKeys = () => {
|
|||||||
})),
|
})),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
registerOptimisticEffect({
|
if (foundObjectMetadataItem) {
|
||||||
variables: {},
|
registerOptimisticEffect({
|
||||||
definition: getApiKeysOptimisticEffectDefinition,
|
variables: { filter },
|
||||||
});
|
definition: getRecordOptimisticEffectDefinition({
|
||||||
|
objectMetadataItem: foundObjectMetadataItem,
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user