Removing Prisma and Grapql-nestjs-prisma resolvers (#2574)
* Some cleaning * Fix seeds * Fix all sign in, sign up flow and apiKey optimistic rendering * Fix
This commit is contained in:
@ -1,9 +1,9 @@
|
||||
import { useState } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { getOperationName } from '@apollo/client/utilities';
|
||||
import styled from '@emotion/styled';
|
||||
import { autoUpdate, flip, offset, useFloating } from '@floating-ui/react';
|
||||
|
||||
import { Person } from '@/people/types/Person';
|
||||
import { IconDotsVertical, IconLinkOff, IconTrash } from '@/ui/display/icon';
|
||||
import { FloatingIconButton } from '@/ui/input/button/components/FloatingIconButton';
|
||||
import { DropdownMenu } from '@/ui/layout/dropdown/components/DropdownMenu';
|
||||
@ -11,16 +11,9 @@ import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/Drop
|
||||
import { MenuItem } from '@/ui/navigation/menu-item/components/MenuItem';
|
||||
import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside';
|
||||
import { Avatar } from '@/users/components/Avatar';
|
||||
import {
|
||||
Person,
|
||||
useDeleteManyPersonMutation,
|
||||
useUpdateOnePersonMutation,
|
||||
} from '~/generated/graphql';
|
||||
|
||||
import { GET_PEOPLE } from '../graphql/queries/getPeople';
|
||||
|
||||
export type PeopleCardProps = {
|
||||
person: Pick<Person, 'id' | 'avatarUrl' | 'displayName' | 'jobTitle'>;
|
||||
person: Pick<Person, 'id' | 'avatarUrl' | 'name' | 'jobTitle'>;
|
||||
hasBottomBorder?: boolean;
|
||||
};
|
||||
|
||||
@ -78,8 +71,6 @@ export const PeopleCard = ({
|
||||
const navigate = useNavigate();
|
||||
const [isHovered, setIsHovered] = useState(false);
|
||||
const [isOptionsOpen, setIsOptionsOpen] = useState(false);
|
||||
const [updatePerson] = useUpdateOnePersonMutation();
|
||||
const [deletePerson] = useDeleteManyPersonMutation();
|
||||
|
||||
const { refs, floatingStyles } = useFloating({
|
||||
strategy: 'absolute',
|
||||
@ -114,28 +105,28 @@ export const PeopleCard = ({
|
||||
};
|
||||
|
||||
const handleDetachPerson = () => {
|
||||
updatePerson({
|
||||
variables: {
|
||||
where: {
|
||||
id: person.id,
|
||||
},
|
||||
data: {
|
||||
company: {
|
||||
disconnect: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
refetchQueries: [getOperationName(GET_PEOPLE) ?? ''],
|
||||
});
|
||||
// updatePerson({
|
||||
// variables: {
|
||||
// where: {
|
||||
// id: person.id,
|
||||
// },
|
||||
// data: {
|
||||
// company: {
|
||||
// disconnect: true,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// refetchQueries: [getOperationName(GET_PEOPLE) ?? ''],
|
||||
// });
|
||||
};
|
||||
|
||||
const handleDeletePerson = () => {
|
||||
deletePerson({
|
||||
variables: {
|
||||
ids: person.id,
|
||||
},
|
||||
refetchQueries: [getOperationName(GET_PEOPLE) ?? ''],
|
||||
});
|
||||
// deletePerson({
|
||||
// variables: {
|
||||
// ids: person.id,
|
||||
// },
|
||||
// refetchQueries: [getOperationName(GET_PEOPLE) ?? ''],
|
||||
// });
|
||||
};
|
||||
|
||||
return (
|
||||
@ -149,11 +140,13 @@ export const PeopleCard = ({
|
||||
<Avatar
|
||||
size="lg"
|
||||
type="rounded"
|
||||
placeholder={person.displayName}
|
||||
placeholder={person.name.firstName + ' ' + person.name.lastName}
|
||||
avatarUrl={person.avatarUrl}
|
||||
/>
|
||||
<StyledCardInfo>
|
||||
<StyledTitle>{person.displayName}</StyledTitle>
|
||||
<StyledTitle>
|
||||
{person.name.firstName + ' ' + person.name.lastName}
|
||||
</StyledTitle>
|
||||
{person.jobTitle && <StyledJobTitle>{person.jobTitle}</StyledJobTitle>}
|
||||
</StyledCardInfo>
|
||||
{isHovered && (
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
import { useEffect } from 'react';
|
||||
import { useQuery } from '@apollo/client';
|
||||
|
||||
import { useFilteredSearchEntityQuery } from '@/search/hooks/useFilteredSearchEntityQuery';
|
||||
import { useFindOneObjectMetadataItem } from '@/object-metadata/hooks/useFindOneObjectMetadataItem';
|
||||
import { useFilteredSearchEntityQueryV2 } from '@/search/hooks/useFilteredSearchEntityQueryV2';
|
||||
import { SingleEntitySelect } from '@/ui/input/relation-picker/components/SingleEntitySelect';
|
||||
import { relationPickerSearchFilterScopedState } from '@/ui/input/relation-picker/states/relationPickerSearchFilterScopedState';
|
||||
import { EntityForSelect } from '@/ui/input/relation-picker/types/EntityForSelect';
|
||||
import { Entity } from '@/ui/input/relation-picker/types/EntityTypeForSelect';
|
||||
import { useRecoilScopedState } from '@/ui/utilities/recoil-scope/hooks/useRecoilScopedState';
|
||||
import { useSearchPeopleQuery } from '~/generated/graphql';
|
||||
|
||||
export type PeoplePickerProps = {
|
||||
personId: string | null;
|
||||
@ -40,7 +41,7 @@ export const PeoplePicker = ({
|
||||
|
||||
const queryFilters = [
|
||||
{
|
||||
fieldNames: ['firstName', 'lastName'],
|
||||
fieldNames: ['name.firstName', 'name.lastName'],
|
||||
filter: relationPickerSearchFilter,
|
||||
},
|
||||
];
|
||||
@ -52,24 +53,32 @@ export const PeoplePicker = ({
|
||||
});
|
||||
}
|
||||
|
||||
const people = useFilteredSearchEntityQuery({
|
||||
queryHook: useSearchPeopleQuery,
|
||||
selectedIds: [personId ?? ''],
|
||||
const { findManyQuery } = useFindOneObjectMetadataItem({
|
||||
objectNameSingular: 'person',
|
||||
});
|
||||
|
||||
const useFindManyPeople = (options: any) => useQuery(findManyQuery, options);
|
||||
|
||||
const people = useFilteredSearchEntityQueryV2({
|
||||
queryHook: useFindManyPeople,
|
||||
filters: queryFilters,
|
||||
mappingFunction: (person) => ({
|
||||
entityType: Entity.Person,
|
||||
id: person.id,
|
||||
name: `${person.firstName} ${person.lastName}`,
|
||||
orderByField: 'createdAt',
|
||||
mappingFunction: (workspaceMember) => ({
|
||||
entityType: Entity.WorkspaceMember,
|
||||
id: workspaceMember.id,
|
||||
name:
|
||||
workspaceMember.name.firstName + ' ' + workspaceMember.name.lastName,
|
||||
avatarType: 'rounded',
|
||||
avatarUrl: person.avatarUrl ?? '',
|
||||
originalEntity: person,
|
||||
avatarUrl: '',
|
||||
originalEntity: workspaceMember,
|
||||
}),
|
||||
orderByField: 'firstName',
|
||||
selectedIds: [personId ?? ''],
|
||||
excludeEntityIds: excludePersonIds,
|
||||
objectNamePlural: 'people',
|
||||
});
|
||||
|
||||
const handleEntitySelected = async (
|
||||
selectedPerson: PersonForSelect | null | undefined,
|
||||
selectedPerson: any | null | undefined,
|
||||
) => {
|
||||
onSubmit(selectedPerson ?? null);
|
||||
};
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
import {
|
||||
PersonOrderByWithRelationInput,
|
||||
SortOrder,
|
||||
useGetPeopleQuery,
|
||||
} from '~/generated/graphql';
|
||||
|
||||
import { useSetPeopleRecordTable } from '../hooks/useSetPeopleRecordTable';
|
||||
|
||||
export const PeopleRecordTableDataEffect = ({
|
||||
orderBy = [
|
||||
{
|
||||
createdAt: SortOrder.Desc,
|
||||
},
|
||||
],
|
||||
whereFilters,
|
||||
}: {
|
||||
orderBy?: PersonOrderByWithRelationInput[];
|
||||
whereFilters?: any;
|
||||
}) => {
|
||||
const setPeopleRecordTable = useSetPeopleRecordTable();
|
||||
|
||||
useGetPeopleQuery({
|
||||
variables: { orderBy, where: whereFilters },
|
||||
onCompleted: (data) => {
|
||||
const people = data.people ?? [];
|
||||
|
||||
setPeopleRecordTable(people);
|
||||
},
|
||||
});
|
||||
|
||||
return <></>;
|
||||
};
|
||||
@ -1,17 +0,0 @@
|
||||
import { Meta, StoryObj } from '@storybook/react';
|
||||
|
||||
import { mockedPeopleData } from '~/testing/mock-data/people';
|
||||
|
||||
import { PeopleFullNameEditableField } from '../../editable-field/components/PeopleFullNameEditableField';
|
||||
|
||||
const meta: Meta<typeof PeopleFullNameEditableField> = {
|
||||
title: 'Modules/People/EditableFields/PeopleFullNameEditableField',
|
||||
component: PeopleFullNameEditableField,
|
||||
};
|
||||
|
||||
export default meta;
|
||||
type Story = StoryObj<typeof PeopleFullNameEditableField>;
|
||||
|
||||
export const Default: Story = {
|
||||
render: () => <PeopleFullNameEditableField people={mockedPeopleData[0]} />,
|
||||
};
|
||||
Reference in New Issue
Block a user