feat: disable atomic operation on nestjs graphql models (#751)

* feat: no atomic

* feat: update front not atomic operations

* feat: optional fields for person model & use proper gql type

* Fix bug display name

* Fix bug update user

* Fixed bug avatar URL

* Fixed display name on people cell

* Fix lint

* Fixed storybook display name

* Fix storybook requests

---------

Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
Jérémy M
2023-07-20 21:23:35 +02:00
committed by GitHub
parent 663c4d5c3f
commit 872ec9e6bb
58 changed files with 622 additions and 652 deletions

View File

@ -4,12 +4,12 @@ import { useRecoilValue } from 'recoil';
import { peopleCityFamilyState } from '@/people/states/peopleCityFamilyState';
import { EditableCellText } from '@/ui/table/editable-cell/types/EditableCellText';
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
import { useUpdatePeopleMutation } from '~/generated/graphql';
import { useUpdateOnePersonMutation } from '~/generated/graphql';
export function EditablePeopleCityCell() {
const currentRowEntityId = useCurrentRowEntityId();
const [updatePerson] = useUpdatePeopleMutation();
const [updatePerson] = useUpdateOnePersonMutation();
const city = useRecoilValue(peopleCityFamilyState(currentRowEntityId ?? ''));
@ -26,8 +26,12 @@ export function EditablePeopleCityCell() {
onSubmit={() =>
updatePerson({
variables: {
id: currentRowEntityId,
city: internalValue,
where: {
id: currentRowEntityId,
},
data: {
city: internalValue,
},
},
})
}

View File

@ -4,7 +4,7 @@ import { useRecoilValue } from 'recoil';
import { peopleCreatedAtFamilyState } from '@/people/states/peopleCreatedAtFamilyState';
import { EditableCellDate } from '@/ui/table/editable-cell/types/EditableCellDate';
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
import { useUpdatePeopleMutation } from '~/generated/graphql';
import { useUpdateOnePersonMutation } from '~/generated/graphql';
export function EditablePeopleCreatedAtCell() {
const currentRowEntityId = useCurrentRowEntityId();
@ -13,7 +13,7 @@ export function EditablePeopleCreatedAtCell() {
peopleCreatedAtFamilyState(currentRowEntityId ?? ''),
);
const [updatePerson] = useUpdatePeopleMutation();
const [updatePerson] = useUpdateOnePersonMutation();
return (
<EditableCellDate
@ -22,8 +22,12 @@ export function EditablePeopleCreatedAtCell() {
await updatePerson({
variables: {
id: currentRowEntityId,
createdAt: newDate.toISOString(),
where: {
id: currentRowEntityId,
},
data: {
createdAt: newDate.toISOString(),
},
},
});
}}

View File

@ -4,12 +4,12 @@ import { useRecoilValue } from 'recoil';
import { peopleEmailFamilyState } from '@/people/states/peopleEmailFamilyState';
import { EditableCellText } from '@/ui/table/editable-cell/types/EditableCellText';
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
import { useUpdatePeopleMutation } from '~/generated/graphql';
import { useUpdateOnePersonMutation } from '~/generated/graphql';
export function EditablePeopleEmailCell() {
const currentRowEntityId = useCurrentRowEntityId();
const [updatePerson] = useUpdatePeopleMutation();
const [updatePerson] = useUpdateOnePersonMutation();
const email = useRecoilValue(
peopleEmailFamilyState(currentRowEntityId ?? ''),
@ -28,8 +28,12 @@ export function EditablePeopleEmailCell() {
onSubmit={() =>
updatePerson({
variables: {
id: currentRowEntityId,
email: internalValue,
where: {
id: currentRowEntityId,
},
data: {
email: internalValue,
},
},
})
}

View File

@ -5,16 +5,16 @@ import { useRecoilValue } from 'recoil';
import { EditablePeopleFullName } from '@/people/components/EditablePeopleFullName';
import { peopleNameCellFamilyState } from '@/people/states/peopleNamesFamilyState';
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
import { useUpdatePeopleMutation } from '~/generated/graphql';
import { useUpdateOnePersonMutation } from '~/generated/graphql';
import { GET_PERSON } from '../../queries';
export function EditablePeopleFullNameCell() {
const currentRowEntityId = useCurrentRowEntityId();
const [updatePerson] = useUpdatePeopleMutation();
const [updatePerson] = useUpdateOnePersonMutation();
const { commentCount, firstName, lastName } = useRecoilValue(
const { commentCount, firstName, lastName, displayName } = useRecoilValue(
peopleNameCellFamilyState(currentRowEntityId ?? ''),
);
@ -33,6 +33,7 @@ export function EditablePeopleFullNameCell() {
_commentThreadCount: commentCount ?? undefined,
firstName: internalFirstName,
lastName: internalLastName,
displayName: displayName ?? undefined,
}}
onChange={(firstName, lastName) => {
setInternalFirstName(firstName);
@ -41,9 +42,13 @@ export function EditablePeopleFullNameCell() {
onSubmit={() =>
updatePerson({
variables: {
id: currentRowEntityId,
firstName: internalFirstName,
lastName: internalLastName,
where: {
id: currentRowEntityId,
},
data: {
firstName: internalFirstName,
lastName: internalLastName,
},
},
refetchQueries: [getOperationName(GET_PERSON) ?? ''],
})

View File

@ -4,12 +4,12 @@ import { useRecoilValue } from 'recoil';
import { peoplePhoneFamilyState } from '@/people/states/peoplePhoneFamilyState';
import { EditableCellPhone } from '@/ui/table/editable-cell/types/EditableCellPhone';
import { useCurrentRowEntityId } from '@/ui/table/hooks/useCurrentEntityId';
import { useUpdatePeopleMutation } from '~/generated/graphql';
import { useUpdateOnePersonMutation } from '~/generated/graphql';
export function EditablePeoplePhoneCell() {
const currentRowEntityId = useCurrentRowEntityId();
const [updatePerson] = useUpdatePeopleMutation();
const [updatePerson] = useUpdateOnePersonMutation();
const phone = useRecoilValue(
peoplePhoneFamilyState(currentRowEntityId ?? ''),
@ -28,8 +28,12 @@ export function EditablePeoplePhoneCell() {
onSubmit={() =>
updatePerson({
variables: {
id: currentRowEntityId,
phone: internalValue,
where: {
id: currentRowEntityId,
},
data: {
phone: internalValue,
},
},
})
}

View File

@ -6,14 +6,14 @@ import { IconTrash } from '@/ui/icon/index';
import { EntityTableActionBarButton } from '@/ui/table/action-bar/components/EntityTableActionBarButton';
import { useResetTableRowSelection } from '@/ui/table/hooks/useResetTableRowSelection';
import { selectedRowIdsSelector } from '@/ui/table/states/selectedRowIdsSelector';
import { useDeletePeopleMutation } from '~/generated/graphql';
import { useDeleteManyPersonMutation } from '~/generated/graphql';
export function TableActionBarButtonDeletePeople() {
const selectedRowIds = useRecoilValue(selectedRowIdsSelector);
const resetRowSelection = useResetTableRowSelection();
const [deletePeople] = useDeletePeopleMutation({
const [deleteManyPerson] = useDeleteManyPersonMutation({
refetchQueries: [getOperationName(GET_PEOPLE) ?? ''],
});
@ -22,7 +22,7 @@ export function TableActionBarButtonDeletePeople() {
resetRowSelection();
await deletePeople({
await deleteManyPerson({
variables: {
ids: rowIdsToDelete,
},