diff --git a/front/src/modules/activities/components/ActivityEditor.tsx b/front/src/modules/activities/components/ActivityEditor.tsx index 945f43b2a..fc6ec90d6 100644 --- a/front/src/modules/activities/components/ActivityEditor.tsx +++ b/front/src/modules/activities/components/ActivityEditor.tsx @@ -78,9 +78,7 @@ export const ActivityEditor = ({ useState(false); const [title, setTitle] = useState(activity.title ?? ''); - const [completedAt, setCompletedAt] = useState( - activity.completedAt ?? '', - ); + const containerRef = useRef(null); const { updateOneObject } = useUpdateOneObjectRecord({ objectNameSingular: 'activity', @@ -91,6 +89,7 @@ export const ActivityEditor = ({ objectRecordId: activity.id, fieldMetadataName: 'dueAt', fieldPosition: 0, + forceRefetch: true, }); const { FieldContextProvider: AssigneeFieldContextProvider } = @@ -99,6 +98,7 @@ export const ActivityEditor = ({ objectRecordId: activity.id, fieldMetadataName: 'assignee', fieldPosition: 1, + forceRefetch: true, }); const updateTitle = useCallback( @@ -119,8 +119,8 @@ export const ActivityEditor = ({ input: { completedAt: value ? new Date().toISOString() : null, }, + forceRefetch: true, }); - setCompletedAt(value ? new Date().toISOString() : null); }, [activity.id, updateOneObject], ); @@ -146,7 +146,7 @@ export const ActivityEditor = ({ { setTitle(newTitle); diff --git a/front/src/modules/activities/components/ActivityTitle.tsx b/front/src/modules/activities/components/ActivityTitle.tsx index cee12a334..af581a710 100644 --- a/front/src/modules/activities/components/ActivityTitle.tsx +++ b/front/src/modules/activities/components/ActivityTitle.tsx @@ -38,12 +38,6 @@ const StyledContainer = styled.div` width: 100%; `; -const StyledCheckboxContainer = styled.div` - align-items: center; - display: flex; - justify-content: center; -`; - type ActivityTitleProps = { title: string; type: ActivityType; @@ -61,13 +55,12 @@ export const ActivityTitle = ({ }: ActivityTitleProps) => ( {type === 'Task' && ( - onCompletionChange(!completed)}> - - + onCompletionChange(value)} + /> )} { input: { completedAt, }, + forceRefetch: true, }); }, [task.id, updateOneObject], diff --git a/front/src/modules/object-record/hooks/useFieldContext.tsx b/front/src/modules/object-record/hooks/useFieldContext.tsx index 475aa6ffb..f20c1775f 100644 --- a/front/src/modules/object-record/hooks/useFieldContext.tsx +++ b/front/src/modules/object-record/hooks/useFieldContext.tsx @@ -11,11 +11,13 @@ export const useFieldContext = ({ fieldMetadataName, objectRecordId, fieldPosition, + forceRefetch, }: { objectNameSingular: string; objectRecordId: string; fieldMetadataName: string; fieldPosition: number; + forceRefetch?: boolean; }) => { const { objectMetadataItem } = useObjectMetadataItem({ objectNameSingular, @@ -43,6 +45,7 @@ export const useFieldContext = ({ updateOneObject?.({ idToUpdate: variables.where.id, input: variables.data, + forceRefetch, }); }; diff --git a/front/src/modules/object-record/hooks/useUpdateOneObjectRecord.ts b/front/src/modules/object-record/hooks/useUpdateOneObjectRecord.ts index cc20dbee8..8d39d1e44 100644 --- a/front/src/modules/object-record/hooks/useUpdateOneObjectRecord.ts +++ b/front/src/modules/object-record/hooks/useUpdateOneObjectRecord.ts @@ -1,4 +1,5 @@ import { useApolloClient, useMutation } from '@apollo/client'; +import { getOperationName } from '@apollo/client/utilities'; import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; import { ObjectMetadataItemIdentifier } from '@/object-metadata/types/ObjectMetadataItemIdentifier'; @@ -12,6 +13,7 @@ export const useUpdateOneObjectRecord = ({ objectNotFoundInMetadata, updateOneMutation, cacheFragment, + findManyQuery, } = useObjectMetadataItem({ objectNameSingular, }); @@ -24,9 +26,11 @@ export const useUpdateOneObjectRecord = ({ const updateOneObject = async ({ idToUpdate, input, + forceRefetch, }: { idToUpdate: string; input: Record; + forceRefetch?: boolean; }) => { if (!foundObjectMetadataItem || !objectNameSingular) { return null; @@ -54,6 +58,10 @@ export const useUpdateOneObjectRecord = ({ ...input, }, }, + refetchQueries: forceRefetch + ? [getOperationName(findManyQuery) ?? ''] + : undefined, + awaitRefetchQueries: forceRefetch, }); return updatedObject.data[`update${capitalize(objectNameSingular)}`] as T;