Enable Task creation (#688)

This commit is contained in:
Charles Bochet
2023-07-16 09:39:52 -07:00
committed by GitHub
parent 098cd038bd
commit 037628ab1d
126 changed files with 3032 additions and 253 deletions

View File

@ -18,6 +18,11 @@ export type Scalars = {
Upload: any;
};
export enum ActivityType {
Note = 'Note',
Task = 'Task'
}
export type AffectedRows = {
__typename?: 'AffectedRows';
count: Scalars['Int'];
@ -206,33 +211,67 @@ export type CommentScalarWhereInput = {
export type CommentThread = {
__typename?: 'CommentThread';
assignee?: Maybe<User>;
assigneeId?: Maybe<Scalars['String']>;
author: User;
authorId: Scalars['String'];
body?: Maybe<Scalars['String']>;
commentThreadTargets?: Maybe<Array<CommentThreadTarget>>;
comments?: Maybe<Array<Comment>>;
completedAt?: Maybe<Scalars['DateTime']>;
createdAt: Scalars['DateTime'];
dueAt?: Maybe<Scalars['DateTime']>;
id: Scalars['ID'];
reminderAt?: Maybe<Scalars['DateTime']>;
title?: Maybe<Scalars['String']>;
type: ActivityType;
updatedAt: Scalars['DateTime'];
};
export type CommentThreadCreateInput = {
author: UserCreateNestedOneWithoutCommentThreadInput;
assignee?: InputMaybe<UserCreateNestedOneWithoutAssignedCommentThreadsInput>;
author: UserCreateNestedOneWithoutAuthoredCommentThreadsInput;
body?: InputMaybe<Scalars['String']>;
commentThreadTargets?: InputMaybe<CommentThreadTargetCreateNestedManyWithoutCommentThreadInput>;
comments?: InputMaybe<CommentCreateNestedManyWithoutCommentThreadInput>;
completedAt?: InputMaybe<Scalars['DateTime']>;
createdAt?: InputMaybe<Scalars['DateTime']>;
dueAt?: InputMaybe<Scalars['DateTime']>;
id?: InputMaybe<Scalars['String']>;
reminderAt?: InputMaybe<Scalars['DateTime']>;
title?: InputMaybe<Scalars['String']>;
type?: InputMaybe<ActivityType>;
updatedAt?: InputMaybe<Scalars['DateTime']>;
};
export type CommentThreadCreateManyAuthorInput = {
export type CommentThreadCreateManyAssigneeInput = {
authorId: Scalars['String'];
body?: InputMaybe<Scalars['String']>;
completedAt?: InputMaybe<Scalars['DateTime']>;
createdAt?: InputMaybe<Scalars['DateTime']>;
dueAt?: InputMaybe<Scalars['DateTime']>;
id?: InputMaybe<Scalars['String']>;
reminderAt?: InputMaybe<Scalars['DateTime']>;
title?: InputMaybe<Scalars['String']>;
type?: InputMaybe<ActivityType>;
updatedAt?: InputMaybe<Scalars['DateTime']>;
};
export type CommentThreadCreateManyAssigneeInputEnvelope = {
data: Array<CommentThreadCreateManyAssigneeInput>;
skipDuplicates?: InputMaybe<Scalars['Boolean']>;
};
export type CommentThreadCreateManyAuthorInput = {
assigneeId?: InputMaybe<Scalars['String']>;
body?: InputMaybe<Scalars['String']>;
completedAt?: InputMaybe<Scalars['DateTime']>;
createdAt?: InputMaybe<Scalars['DateTime']>;
dueAt?: InputMaybe<Scalars['DateTime']>;
id?: InputMaybe<Scalars['String']>;
reminderAt?: InputMaybe<Scalars['DateTime']>;
title?: InputMaybe<Scalars['String']>;
type?: InputMaybe<ActivityType>;
updatedAt?: InputMaybe<Scalars['DateTime']>;
};
@ -242,11 +281,16 @@ export type CommentThreadCreateManyAuthorInputEnvelope = {
};
export type CommentThreadCreateManyWorkspaceInput = {
assigneeId?: InputMaybe<Scalars['String']>;
authorId: Scalars['String'];
body?: InputMaybe<Scalars['String']>;
completedAt?: InputMaybe<Scalars['DateTime']>;
createdAt?: InputMaybe<Scalars['DateTime']>;
dueAt?: InputMaybe<Scalars['DateTime']>;
id?: InputMaybe<Scalars['String']>;
reminderAt?: InputMaybe<Scalars['DateTime']>;
title?: InputMaybe<Scalars['String']>;
type?: InputMaybe<ActivityType>;
updatedAt?: InputMaybe<Scalars['DateTime']>;
};
@ -255,6 +299,13 @@ export type CommentThreadCreateManyWorkspaceInputEnvelope = {
skipDuplicates?: InputMaybe<Scalars['Boolean']>;
};
export type CommentThreadCreateNestedManyWithoutAssigneeInput = {
connect?: InputMaybe<Array<CommentThreadWhereUniqueInput>>;
connectOrCreate?: InputMaybe<Array<CommentThreadCreateOrConnectWithoutAssigneeInput>>;
create?: InputMaybe<Array<CommentThreadCreateWithoutAssigneeInput>>;
createMany?: InputMaybe<CommentThreadCreateManyAssigneeInputEnvelope>;
};
export type CommentThreadCreateNestedManyWithoutAuthorInput = {
connect?: InputMaybe<Array<CommentThreadWhereUniqueInput>>;
connectOrCreate?: InputMaybe<Array<CommentThreadCreateOrConnectWithoutAuthorInput>>;
@ -266,6 +317,11 @@ export type CommentThreadCreateNestedOneWithoutCommentsInput = {
connect?: InputMaybe<CommentThreadWhereUniqueInput>;
};
export type CommentThreadCreateOrConnectWithoutAssigneeInput = {
create: CommentThreadCreateWithoutAssigneeInput;
where: CommentThreadWhereUniqueInput;
};
export type CommentThreadCreateOrConnectWithoutAuthorInput = {
create: CommentThreadCreateWithoutAuthorInput;
where: CommentThreadWhereUniqueInput;
@ -281,34 +337,64 @@ export type CommentThreadCreateOrConnectWithoutWorkspaceInput = {
where: CommentThreadWhereUniqueInput;
};
export type CommentThreadCreateWithoutAuthorInput = {
export type CommentThreadCreateWithoutAssigneeInput = {
author: UserCreateNestedOneWithoutAuthoredCommentThreadsInput;
body?: InputMaybe<Scalars['String']>;
commentThreadTargets?: InputMaybe<CommentThreadTargetCreateNestedManyWithoutCommentThreadInput>;
comments?: InputMaybe<CommentCreateNestedManyWithoutCommentThreadInput>;
completedAt?: InputMaybe<Scalars['DateTime']>;
createdAt?: InputMaybe<Scalars['DateTime']>;
dueAt?: InputMaybe<Scalars['DateTime']>;
id?: InputMaybe<Scalars['String']>;
reminderAt?: InputMaybe<Scalars['DateTime']>;
title?: InputMaybe<Scalars['String']>;
type?: InputMaybe<ActivityType>;
updatedAt?: InputMaybe<Scalars['DateTime']>;
};
export type CommentThreadCreateWithoutAuthorInput = {
assignee?: InputMaybe<UserCreateNestedOneWithoutAssignedCommentThreadsInput>;
body?: InputMaybe<Scalars['String']>;
commentThreadTargets?: InputMaybe<CommentThreadTargetCreateNestedManyWithoutCommentThreadInput>;
comments?: InputMaybe<CommentCreateNestedManyWithoutCommentThreadInput>;
completedAt?: InputMaybe<Scalars['DateTime']>;
createdAt?: InputMaybe<Scalars['DateTime']>;
dueAt?: InputMaybe<Scalars['DateTime']>;
id?: InputMaybe<Scalars['String']>;
reminderAt?: InputMaybe<Scalars['DateTime']>;
title?: InputMaybe<Scalars['String']>;
type?: InputMaybe<ActivityType>;
updatedAt?: InputMaybe<Scalars['DateTime']>;
};
export type CommentThreadCreateWithoutCommentsInput = {
author: UserCreateNestedOneWithoutCommentThreadInput;
assignee?: InputMaybe<UserCreateNestedOneWithoutAssignedCommentThreadsInput>;
author: UserCreateNestedOneWithoutAuthoredCommentThreadsInput;
body?: InputMaybe<Scalars['String']>;
commentThreadTargets?: InputMaybe<CommentThreadTargetCreateNestedManyWithoutCommentThreadInput>;
completedAt?: InputMaybe<Scalars['DateTime']>;
createdAt?: InputMaybe<Scalars['DateTime']>;
dueAt?: InputMaybe<Scalars['DateTime']>;
id?: InputMaybe<Scalars['String']>;
reminderAt?: InputMaybe<Scalars['DateTime']>;
title?: InputMaybe<Scalars['String']>;
type?: InputMaybe<ActivityType>;
updatedAt?: InputMaybe<Scalars['DateTime']>;
};
export type CommentThreadCreateWithoutWorkspaceInput = {
author: UserCreateNestedOneWithoutCommentThreadInput;
assignee?: InputMaybe<UserCreateNestedOneWithoutAssignedCommentThreadsInput>;
author: UserCreateNestedOneWithoutAuthoredCommentThreadsInput;
body?: InputMaybe<Scalars['String']>;
commentThreadTargets?: InputMaybe<CommentThreadTargetCreateNestedManyWithoutCommentThreadInput>;
comments?: InputMaybe<CommentCreateNestedManyWithoutCommentThreadInput>;
completedAt?: InputMaybe<Scalars['DateTime']>;
createdAt?: InputMaybe<Scalars['DateTime']>;
dueAt?: InputMaybe<Scalars['DateTime']>;
id?: InputMaybe<Scalars['String']>;
reminderAt?: InputMaybe<Scalars['DateTime']>;
title?: InputMaybe<Scalars['String']>;
type?: InputMaybe<ActivityType>;
updatedAt?: InputMaybe<Scalars['DateTime']>;
};
@ -323,14 +409,20 @@ export type CommentThreadOrderByRelationAggregateInput = {
};
export type CommentThreadOrderByWithRelationInput = {
assignee?: InputMaybe<UserOrderByWithRelationInput>;
assigneeId?: InputMaybe<SortOrder>;
author?: InputMaybe<UserOrderByWithRelationInput>;
authorId?: InputMaybe<SortOrder>;
body?: InputMaybe<SortOrder>;
commentThreadTargets?: InputMaybe<CommentThreadTargetOrderByRelationAggregateInput>;
comments?: InputMaybe<CommentOrderByRelationAggregateInput>;
completedAt?: InputMaybe<SortOrder>;
createdAt?: InputMaybe<SortOrder>;
dueAt?: InputMaybe<SortOrder>;
id?: InputMaybe<SortOrder>;
reminderAt?: InputMaybe<SortOrder>;
title?: InputMaybe<SortOrder>;
type?: InputMaybe<SortOrder>;
updatedAt?: InputMaybe<SortOrder>;
};
@ -340,12 +432,17 @@ export type CommentThreadRelationFilter = {
};
export enum CommentThreadScalarFieldEnum {
AssigneeId = 'assigneeId',
AuthorId = 'authorId',
Body = 'body',
CompletedAt = 'completedAt',
CreatedAt = 'createdAt',
DeletedAt = 'deletedAt',
DueAt = 'dueAt',
Id = 'id',
ReminderAt = 'reminderAt',
Title = 'title',
Type = 'type',
UpdatedAt = 'updatedAt',
WorkspaceId = 'workspaceId'
}
@ -354,11 +451,16 @@ export type CommentThreadScalarWhereInput = {
AND?: InputMaybe<Array<CommentThreadScalarWhereInput>>;
NOT?: InputMaybe<Array<CommentThreadScalarWhereInput>>;
OR?: InputMaybe<Array<CommentThreadScalarWhereInput>>;
assigneeId?: InputMaybe<StringNullableFilter>;
authorId?: InputMaybe<StringFilter>;
body?: InputMaybe<StringNullableFilter>;
completedAt?: InputMaybe<DateTimeNullableFilter>;
createdAt?: InputMaybe<DateTimeFilter>;
dueAt?: InputMaybe<DateTimeNullableFilter>;
id?: InputMaybe<StringFilter>;
reminderAt?: InputMaybe<DateTimeNullableFilter>;
title?: InputMaybe<StringNullableFilter>;
type?: InputMaybe<EnumActivityTypeFilter>;
updatedAt?: InputMaybe<DateTimeFilter>;
};
@ -489,24 +591,38 @@ export type CommentThreadTargetWhereUniqueInput = {
};
export type CommentThreadUpdateInput = {
author?: InputMaybe<UserUpdateOneRequiredWithoutCommentThreadNestedInput>;
assignee?: InputMaybe<UserUpdateOneWithoutAssignedCommentThreadsNestedInput>;
author?: InputMaybe<UserUpdateOneRequiredWithoutAuthoredCommentThreadsNestedInput>;
body?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
commentThreadTargets?: InputMaybe<CommentThreadTargetUpdateManyWithoutCommentThreadNestedInput>;
comments?: InputMaybe<CommentUpdateManyWithoutCommentThreadNestedInput>;
completedAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
createdAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
dueAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
id?: InputMaybe<StringFieldUpdateOperationsInput>;
reminderAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
title?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
type?: InputMaybe<EnumActivityTypeFieldUpdateOperationsInput>;
updatedAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
};
export type CommentThreadUpdateManyMutationInput = {
body?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
completedAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
createdAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
dueAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
id?: InputMaybe<StringFieldUpdateOperationsInput>;
reminderAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
title?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
type?: InputMaybe<EnumActivityTypeFieldUpdateOperationsInput>;
updatedAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
};
export type CommentThreadUpdateManyWithWhereWithoutAssigneeInput = {
data: CommentThreadUpdateManyMutationInput;
where: CommentThreadScalarWhereInput;
};
export type CommentThreadUpdateManyWithWhereWithoutAuthorInput = {
data: CommentThreadUpdateManyMutationInput;
where: CommentThreadScalarWhereInput;
@ -517,6 +633,20 @@ export type CommentThreadUpdateManyWithWhereWithoutWorkspaceInput = {
where: CommentThreadScalarWhereInput;
};
export type CommentThreadUpdateManyWithoutAssigneeNestedInput = {
connect?: InputMaybe<Array<CommentThreadWhereUniqueInput>>;
connectOrCreate?: InputMaybe<Array<CommentThreadCreateOrConnectWithoutAssigneeInput>>;
create?: InputMaybe<Array<CommentThreadCreateWithoutAssigneeInput>>;
createMany?: InputMaybe<CommentThreadCreateManyAssigneeInputEnvelope>;
delete?: InputMaybe<Array<CommentThreadWhereUniqueInput>>;
deleteMany?: InputMaybe<Array<CommentThreadScalarWhereInput>>;
disconnect?: InputMaybe<Array<CommentThreadWhereUniqueInput>>;
set?: InputMaybe<Array<CommentThreadWhereUniqueInput>>;
update?: InputMaybe<Array<CommentThreadUpdateWithWhereUniqueWithoutAssigneeInput>>;
updateMany?: InputMaybe<Array<CommentThreadUpdateManyWithWhereWithoutAssigneeInput>>;
upsert?: InputMaybe<Array<CommentThreadUpsertWithWhereUniqueWithoutAssigneeInput>>;
};
export type CommentThreadUpdateManyWithoutAuthorNestedInput = {
connect?: InputMaybe<Array<CommentThreadWhereUniqueInput>>;
connectOrCreate?: InputMaybe<Array<CommentThreadCreateOrConnectWithoutAuthorInput>>;
@ -553,6 +683,11 @@ export type CommentThreadUpdateOneRequiredWithoutCommentsNestedInput = {
upsert?: InputMaybe<CommentThreadUpsertWithoutCommentsInput>;
};
export type CommentThreadUpdateWithWhereUniqueWithoutAssigneeInput = {
data: CommentThreadUpdateWithoutAssigneeInput;
where: CommentThreadWhereUniqueInput;
};
export type CommentThreadUpdateWithWhereUniqueWithoutAuthorInput = {
data: CommentThreadUpdateWithoutAuthorInput;
where: CommentThreadWhereUniqueInput;
@ -563,37 +698,73 @@ export type CommentThreadUpdateWithWhereUniqueWithoutWorkspaceInput = {
where: CommentThreadWhereUniqueInput;
};
export type CommentThreadUpdateWithoutAuthorInput = {
export type CommentThreadUpdateWithoutAssigneeInput = {
author?: InputMaybe<UserUpdateOneRequiredWithoutAuthoredCommentThreadsNestedInput>;
body?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
commentThreadTargets?: InputMaybe<CommentThreadTargetUpdateManyWithoutCommentThreadNestedInput>;
comments?: InputMaybe<CommentUpdateManyWithoutCommentThreadNestedInput>;
completedAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
createdAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
dueAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
id?: InputMaybe<StringFieldUpdateOperationsInput>;
reminderAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
title?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
type?: InputMaybe<EnumActivityTypeFieldUpdateOperationsInput>;
updatedAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
};
export type CommentThreadUpdateWithoutAuthorInput = {
assignee?: InputMaybe<UserUpdateOneWithoutAssignedCommentThreadsNestedInput>;
body?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
commentThreadTargets?: InputMaybe<CommentThreadTargetUpdateManyWithoutCommentThreadNestedInput>;
comments?: InputMaybe<CommentUpdateManyWithoutCommentThreadNestedInput>;
completedAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
createdAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
dueAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
id?: InputMaybe<StringFieldUpdateOperationsInput>;
reminderAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
title?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
type?: InputMaybe<EnumActivityTypeFieldUpdateOperationsInput>;
updatedAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
};
export type CommentThreadUpdateWithoutCommentsInput = {
author?: InputMaybe<UserUpdateOneRequiredWithoutCommentThreadNestedInput>;
assignee?: InputMaybe<UserUpdateOneWithoutAssignedCommentThreadsNestedInput>;
author?: InputMaybe<UserUpdateOneRequiredWithoutAuthoredCommentThreadsNestedInput>;
body?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
commentThreadTargets?: InputMaybe<CommentThreadTargetUpdateManyWithoutCommentThreadNestedInput>;
completedAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
createdAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
dueAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
id?: InputMaybe<StringFieldUpdateOperationsInput>;
reminderAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
title?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
type?: InputMaybe<EnumActivityTypeFieldUpdateOperationsInput>;
updatedAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
};
export type CommentThreadUpdateWithoutWorkspaceInput = {
author?: InputMaybe<UserUpdateOneRequiredWithoutCommentThreadNestedInput>;
assignee?: InputMaybe<UserUpdateOneWithoutAssignedCommentThreadsNestedInput>;
author?: InputMaybe<UserUpdateOneRequiredWithoutAuthoredCommentThreadsNestedInput>;
body?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
commentThreadTargets?: InputMaybe<CommentThreadTargetUpdateManyWithoutCommentThreadNestedInput>;
comments?: InputMaybe<CommentUpdateManyWithoutCommentThreadNestedInput>;
completedAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
createdAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
dueAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
id?: InputMaybe<StringFieldUpdateOperationsInput>;
reminderAt?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
title?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
type?: InputMaybe<EnumActivityTypeFieldUpdateOperationsInput>;
updatedAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
};
export type CommentThreadUpsertWithWhereUniqueWithoutAssigneeInput = {
create: CommentThreadCreateWithoutAssigneeInput;
update: CommentThreadUpdateWithoutAssigneeInput;
where: CommentThreadWhereUniqueInput;
};
export type CommentThreadUpsertWithWhereUniqueWithoutAuthorInput = {
create: CommentThreadCreateWithoutAuthorInput;
update: CommentThreadUpdateWithoutAuthorInput;
@ -615,14 +786,20 @@ export type CommentThreadWhereInput = {
AND?: InputMaybe<Array<CommentThreadWhereInput>>;
NOT?: InputMaybe<Array<CommentThreadWhereInput>>;
OR?: InputMaybe<Array<CommentThreadWhereInput>>;
assignee?: InputMaybe<UserRelationFilter>;
assigneeId?: InputMaybe<StringNullableFilter>;
author?: InputMaybe<UserRelationFilter>;
authorId?: InputMaybe<StringFilter>;
body?: InputMaybe<StringNullableFilter>;
commentThreadTargets?: InputMaybe<CommentThreadTargetListRelationFilter>;
comments?: InputMaybe<CommentListRelationFilter>;
completedAt?: InputMaybe<DateTimeNullableFilter>;
createdAt?: InputMaybe<DateTimeFilter>;
dueAt?: InputMaybe<DateTimeNullableFilter>;
id?: InputMaybe<StringFilter>;
reminderAt?: InputMaybe<DateTimeNullableFilter>;
title?: InputMaybe<StringNullableFilter>;
type?: InputMaybe<EnumActivityTypeFilter>;
updatedAt?: InputMaybe<DateTimeFilter>;
};
@ -1089,6 +1266,17 @@ export type DateTimeNullableFilter = {
notIn?: InputMaybe<Array<Scalars['DateTime']>>;
};
export type EnumActivityTypeFieldUpdateOperationsInput = {
set?: InputMaybe<ActivityType>;
};
export type EnumActivityTypeFilter = {
equals?: InputMaybe<ActivityType>;
in?: InputMaybe<Array<ActivityType>>;
not?: InputMaybe<NestedEnumActivityTypeFilter>;
notIn?: InputMaybe<Array<ActivityType>>;
};
export type EnumCommentableTypeFieldUpdateOperationsInput = {
set?: InputMaybe<CommentableType>;
};
@ -1347,6 +1535,13 @@ export type NestedDateTimeNullableFilter = {
notIn?: InputMaybe<Array<Scalars['DateTime']>>;
};
export type NestedEnumActivityTypeFilter = {
equals?: InputMaybe<ActivityType>;
in?: InputMaybe<Array<ActivityType>>;
not?: InputMaybe<NestedEnumActivityTypeFilter>;
notIn?: InputMaybe<Array<ActivityType>>;
};
export type NestedEnumCommentableTypeFilter = {
equals?: InputMaybe<CommentableType>;
in?: InputMaybe<Array<CommentableType>>;
@ -2634,7 +2829,8 @@ export type Telemetry = {
export type User = {
__typename?: 'User';
CommentThread?: Maybe<Array<CommentThread>>;
assignedCommentThreads?: Maybe<Array<CommentThread>>;
authoredCommentThreads?: Maybe<Array<CommentThread>>;
avatarUrl?: Maybe<Scalars['String']>;
comments?: Maybe<Array<Comment>>;
companies?: Maybe<Array<Company>>;
@ -2654,10 +2850,16 @@ export type User = {
workspaceMember?: Maybe<WorkspaceMember>;
};
export type UserCreateNestedOneWithoutCommentThreadInput = {
export type UserCreateNestedOneWithoutAssignedCommentThreadsInput = {
connect?: InputMaybe<UserWhereUniqueInput>;
connectOrCreate?: InputMaybe<UserCreateOrConnectWithoutCommentThreadInput>;
create?: InputMaybe<UserCreateWithoutCommentThreadInput>;
connectOrCreate?: InputMaybe<UserCreateOrConnectWithoutAssignedCommentThreadsInput>;
create?: InputMaybe<UserCreateWithoutAssignedCommentThreadsInput>;
};
export type UserCreateNestedOneWithoutAuthoredCommentThreadsInput = {
connect?: InputMaybe<UserWhereUniqueInput>;
connectOrCreate?: InputMaybe<UserCreateOrConnectWithoutAuthoredCommentThreadsInput>;
create?: InputMaybe<UserCreateWithoutAuthoredCommentThreadsInput>;
};
export type UserCreateNestedOneWithoutCommentsInput = {
@ -2674,8 +2876,13 @@ export type UserCreateNestedOneWithoutWorkspaceMemberInput = {
create?: InputMaybe<UserCreateWithoutWorkspaceMemberInput>;
};
export type UserCreateOrConnectWithoutCommentThreadInput = {
create: UserCreateWithoutCommentThreadInput;
export type UserCreateOrConnectWithoutAssignedCommentThreadsInput = {
create: UserCreateWithoutAssignedCommentThreadsInput;
where: UserWhereUniqueInput;
};
export type UserCreateOrConnectWithoutAuthoredCommentThreadsInput = {
create: UserCreateWithoutAuthoredCommentThreadsInput;
where: UserWhereUniqueInput;
};
@ -2689,7 +2896,27 @@ export type UserCreateOrConnectWithoutWorkspaceMemberInput = {
where: UserWhereUniqueInput;
};
export type UserCreateWithoutCommentThreadInput = {
export type UserCreateWithoutAssignedCommentThreadsInput = {
authoredCommentThreads?: InputMaybe<CommentThreadCreateNestedManyWithoutAuthorInput>;
avatarUrl?: InputMaybe<Scalars['String']>;
comments?: InputMaybe<CommentCreateNestedManyWithoutAuthorInput>;
companies?: InputMaybe<CompanyCreateNestedManyWithoutAccountOwnerInput>;
createdAt?: InputMaybe<Scalars['DateTime']>;
disabled?: InputMaybe<Scalars['Boolean']>;
email: Scalars['String'];
emailVerified?: InputMaybe<Scalars['Boolean']>;
firstName?: InputMaybe<Scalars['String']>;
id?: InputMaybe<Scalars['String']>;
lastName?: InputMaybe<Scalars['String']>;
lastSeen?: InputMaybe<Scalars['DateTime']>;
locale: Scalars['String'];
metadata?: InputMaybe<Scalars['JSON']>;
phoneNumber?: InputMaybe<Scalars['String']>;
updatedAt?: InputMaybe<Scalars['DateTime']>;
};
export type UserCreateWithoutAuthoredCommentThreadsInput = {
assignedCommentThreads?: InputMaybe<CommentThreadCreateNestedManyWithoutAssigneeInput>;
avatarUrl?: InputMaybe<Scalars['String']>;
comments?: InputMaybe<CommentCreateNestedManyWithoutAuthorInput>;
companies?: InputMaybe<CompanyCreateNestedManyWithoutAccountOwnerInput>;
@ -2708,7 +2935,8 @@ export type UserCreateWithoutCommentThreadInput = {
};
export type UserCreateWithoutCommentsInput = {
CommentThread?: InputMaybe<CommentThreadCreateNestedManyWithoutAuthorInput>;
assignedCommentThreads?: InputMaybe<CommentThreadCreateNestedManyWithoutAssigneeInput>;
authoredCommentThreads?: InputMaybe<CommentThreadCreateNestedManyWithoutAuthorInput>;
avatarUrl?: InputMaybe<Scalars['String']>;
companies?: InputMaybe<CompanyCreateNestedManyWithoutAccountOwnerInput>;
createdAt?: InputMaybe<Scalars['DateTime']>;
@ -2726,7 +2954,8 @@ export type UserCreateWithoutCommentsInput = {
};
export type UserCreateWithoutWorkspaceMemberInput = {
CommentThread?: InputMaybe<CommentThreadCreateNestedManyWithoutAuthorInput>;
assignedCommentThreads?: InputMaybe<CommentThreadCreateNestedManyWithoutAssigneeInput>;
authoredCommentThreads?: InputMaybe<CommentThreadCreateNestedManyWithoutAuthorInput>;
avatarUrl?: InputMaybe<Scalars['String']>;
comments?: InputMaybe<CommentCreateNestedManyWithoutAuthorInput>;
companies?: InputMaybe<CompanyCreateNestedManyWithoutAccountOwnerInput>;
@ -2750,7 +2979,8 @@ export type UserExists = {
};
export type UserOrderByWithRelationInput = {
CommentThread?: InputMaybe<CommentThreadOrderByRelationAggregateInput>;
assignedCommentThreads?: InputMaybe<CommentThreadOrderByRelationAggregateInput>;
authoredCommentThreads?: InputMaybe<CommentThreadOrderByRelationAggregateInput>;
avatarUrl?: InputMaybe<SortOrder>;
comments?: InputMaybe<CommentOrderByRelationAggregateInput>;
companies?: InputMaybe<CompanyOrderByRelationAggregateInput>;
@ -2792,7 +3022,8 @@ export enum UserScalarFieldEnum {
}
export type UserUpdateInput = {
CommentThread?: InputMaybe<CommentThreadUpdateManyWithoutAuthorNestedInput>;
assignedCommentThreads?: InputMaybe<CommentThreadUpdateManyWithoutAssigneeNestedInput>;
authoredCommentThreads?: InputMaybe<CommentThreadUpdateManyWithoutAuthorNestedInput>;
avatarUrl?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
comments?: InputMaybe<CommentUpdateManyWithoutAuthorNestedInput>;
companies?: InputMaybe<CompanyUpdateManyWithoutAccountOwnerNestedInput>;
@ -2810,12 +3041,12 @@ export type UserUpdateInput = {
updatedAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
};
export type UserUpdateOneRequiredWithoutCommentThreadNestedInput = {
export type UserUpdateOneRequiredWithoutAuthoredCommentThreadsNestedInput = {
connect?: InputMaybe<UserWhereUniqueInput>;
connectOrCreate?: InputMaybe<UserCreateOrConnectWithoutCommentThreadInput>;
create?: InputMaybe<UserCreateWithoutCommentThreadInput>;
update?: InputMaybe<UserUpdateWithoutCommentThreadInput>;
upsert?: InputMaybe<UserUpsertWithoutCommentThreadInput>;
connectOrCreate?: InputMaybe<UserCreateOrConnectWithoutAuthoredCommentThreadsInput>;
create?: InputMaybe<UserCreateWithoutAuthoredCommentThreadsInput>;
update?: InputMaybe<UserUpdateWithoutAuthoredCommentThreadsInput>;
upsert?: InputMaybe<UserUpsertWithoutAuthoredCommentThreadsInput>;
};
export type UserUpdateOneRequiredWithoutCommentsNestedInput = {
@ -2834,11 +3065,41 @@ export type UserUpdateOneRequiredWithoutWorkspaceMemberNestedInput = {
upsert?: InputMaybe<UserUpsertWithoutWorkspaceMemberInput>;
};
export type UserUpdateOneWithoutAssignedCommentThreadsNestedInput = {
connect?: InputMaybe<UserWhereUniqueInput>;
connectOrCreate?: InputMaybe<UserCreateOrConnectWithoutAssignedCommentThreadsInput>;
create?: InputMaybe<UserCreateWithoutAssignedCommentThreadsInput>;
delete?: InputMaybe<Scalars['Boolean']>;
disconnect?: InputMaybe<Scalars['Boolean']>;
update?: InputMaybe<UserUpdateWithoutAssignedCommentThreadsInput>;
upsert?: InputMaybe<UserUpsertWithoutAssignedCommentThreadsInput>;
};
export type UserUpdateOneWithoutCompaniesNestedInput = {
connect?: InputMaybe<UserWhereUniqueInput>;
};
export type UserUpdateWithoutCommentThreadInput = {
export type UserUpdateWithoutAssignedCommentThreadsInput = {
authoredCommentThreads?: InputMaybe<CommentThreadUpdateManyWithoutAuthorNestedInput>;
avatarUrl?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
comments?: InputMaybe<CommentUpdateManyWithoutAuthorNestedInput>;
companies?: InputMaybe<CompanyUpdateManyWithoutAccountOwnerNestedInput>;
createdAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
disabled?: InputMaybe<BoolFieldUpdateOperationsInput>;
email?: InputMaybe<StringFieldUpdateOperationsInput>;
emailVerified?: InputMaybe<BoolFieldUpdateOperationsInput>;
firstName?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
id?: InputMaybe<StringFieldUpdateOperationsInput>;
lastName?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
lastSeen?: InputMaybe<NullableDateTimeFieldUpdateOperationsInput>;
locale?: InputMaybe<StringFieldUpdateOperationsInput>;
metadata?: InputMaybe<Scalars['JSON']>;
phoneNumber?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
updatedAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
};
export type UserUpdateWithoutAuthoredCommentThreadsInput = {
assignedCommentThreads?: InputMaybe<CommentThreadUpdateManyWithoutAssigneeNestedInput>;
avatarUrl?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
comments?: InputMaybe<CommentUpdateManyWithoutAuthorNestedInput>;
companies?: InputMaybe<CompanyUpdateManyWithoutAccountOwnerNestedInput>;
@ -2857,7 +3118,8 @@ export type UserUpdateWithoutCommentThreadInput = {
};
export type UserUpdateWithoutCommentsInput = {
CommentThread?: InputMaybe<CommentThreadUpdateManyWithoutAuthorNestedInput>;
assignedCommentThreads?: InputMaybe<CommentThreadUpdateManyWithoutAssigneeNestedInput>;
authoredCommentThreads?: InputMaybe<CommentThreadUpdateManyWithoutAuthorNestedInput>;
avatarUrl?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
companies?: InputMaybe<CompanyUpdateManyWithoutAccountOwnerNestedInput>;
createdAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
@ -2875,7 +3137,8 @@ export type UserUpdateWithoutCommentsInput = {
};
export type UserUpdateWithoutWorkspaceMemberInput = {
CommentThread?: InputMaybe<CommentThreadUpdateManyWithoutAuthorNestedInput>;
assignedCommentThreads?: InputMaybe<CommentThreadUpdateManyWithoutAssigneeNestedInput>;
authoredCommentThreads?: InputMaybe<CommentThreadUpdateManyWithoutAuthorNestedInput>;
avatarUrl?: InputMaybe<NullableStringFieldUpdateOperationsInput>;
comments?: InputMaybe<CommentUpdateManyWithoutAuthorNestedInput>;
companies?: InputMaybe<CompanyUpdateManyWithoutAccountOwnerNestedInput>;
@ -2893,9 +3156,14 @@ export type UserUpdateWithoutWorkspaceMemberInput = {
updatedAt?: InputMaybe<DateTimeFieldUpdateOperationsInput>;
};
export type UserUpsertWithoutCommentThreadInput = {
create: UserCreateWithoutCommentThreadInput;
update: UserUpdateWithoutCommentThreadInput;
export type UserUpsertWithoutAssignedCommentThreadsInput = {
create: UserCreateWithoutAssignedCommentThreadsInput;
update: UserUpdateWithoutAssignedCommentThreadsInput;
};
export type UserUpsertWithoutAuthoredCommentThreadsInput = {
create: UserCreateWithoutAuthoredCommentThreadsInput;
update: UserUpdateWithoutAuthoredCommentThreadsInput;
};
export type UserUpsertWithoutCommentsInput = {
@ -2910,9 +3178,10 @@ export type UserUpsertWithoutWorkspaceMemberInput = {
export type UserWhereInput = {
AND?: InputMaybe<Array<UserWhereInput>>;
CommentThread?: InputMaybe<CommentThreadListRelationFilter>;
NOT?: InputMaybe<Array<UserWhereInput>>;
OR?: InputMaybe<Array<UserWhereInput>>;
assignedCommentThreads?: InputMaybe<CommentThreadListRelationFilter>;
authoredCommentThreads?: InputMaybe<CommentThreadListRelationFilter>;
avatarUrl?: InputMaybe<StringNullableFilter>;
comments?: InputMaybe<CommentListRelationFilter>;
companies?: InputMaybe<CompanyListRelationFilter>;
@ -3169,13 +3438,14 @@ export type CreateCommentThreadMutationVariables = Exact<{
commentThreadId: Scalars['String'];
body?: InputMaybe<Scalars['String']>;
title?: InputMaybe<Scalars['String']>;
type: ActivityType;
authorId: Scalars['String'];
createdAt: Scalars['DateTime'];
commentThreadTargetArray: Array<CommentThreadTargetCreateManyCommentThreadInput> | CommentThreadTargetCreateManyCommentThreadInput;
}>;
export type CreateCommentThreadMutation = { __typename?: 'Mutation', createOneCommentThread: { __typename?: 'CommentThread', id: string, createdAt: string, updatedAt: string, authorId: string, commentThreadTargets?: Array<{ __typename?: 'CommentThreadTarget', id: string, createdAt: string, updatedAt: string, commentThreadId: string, commentableType: CommentableType, commentableId: string }> | null, comments?: Array<{ __typename?: 'Comment', id: string, createdAt: string, updatedAt: string, body: string, author: { __typename?: 'User', id: string } }> | null } };
export type CreateCommentThreadMutation = { __typename?: 'Mutation', createOneCommentThread: { __typename?: 'CommentThread', id: string, createdAt: string, updatedAt: string, authorId: string, type: ActivityType, commentThreadTargets?: Array<{ __typename?: 'CommentThreadTarget', id: string, createdAt: string, updatedAt: string, commentThreadId: string, commentableType: CommentableType, commentableId: string }> | null, comments?: Array<{ __typename?: 'Comment', id: string, createdAt: string, updatedAt: string, body: string, author: { __typename?: 'User', id: string } }> | null } };
export type GetCommentThreadsByTargetsQueryVariables = Exact<{
commentThreadTargetIds: Array<Scalars['String']> | Scalars['String'];
@ -3183,14 +3453,14 @@ export type GetCommentThreadsByTargetsQueryVariables = Exact<{
}>;
export type GetCommentThreadsByTargetsQuery = { __typename?: 'Query', findManyCommentThreads: Array<{ __typename?: 'CommentThread', id: string, createdAt: string, title?: string | null, body?: string | null, author: { __typename?: 'User', id: string, firstName?: string | null, lastName?: string | null }, comments?: Array<{ __typename?: 'Comment', id: string, body: string, createdAt: string, updatedAt: string, author: { __typename?: 'User', id: string, displayName: string, firstName?: string | null, lastName?: string | null, avatarUrl?: string | null } }> | null, commentThreadTargets?: Array<{ __typename?: 'CommentThreadTarget', id: string, commentableId: string, commentableType: CommentableType }> | null }> };
export type GetCommentThreadsByTargetsQuery = { __typename?: 'Query', findManyCommentThreads: Array<{ __typename?: 'CommentThread', id: string, createdAt: string, title?: string | null, body?: string | null, type: ActivityType, author: { __typename?: 'User', id: string, firstName?: string | null, lastName?: string | null }, comments?: Array<{ __typename?: 'Comment', id: string, body: string, createdAt: string, updatedAt: string, author: { __typename?: 'User', id: string, displayName: string, firstName?: string | null, lastName?: string | null, avatarUrl?: string | null } }> | null, commentThreadTargets?: Array<{ __typename?: 'CommentThreadTarget', id: string, commentableId: string, commentableType: CommentableType }> | null }> };
export type GetCommentThreadQueryVariables = Exact<{
commentThreadId: Scalars['String'];
}>;
export type GetCommentThreadQuery = { __typename?: 'Query', findManyCommentThreads: Array<{ __typename?: 'CommentThread', id: string, createdAt: string, body?: string | null, title?: string | null, author: { __typename?: 'User', id: string, firstName?: string | null, lastName?: string | null }, comments?: Array<{ __typename?: 'Comment', id: string, body: string, createdAt: string, updatedAt: string, author: { __typename?: 'User', id: string, displayName: string, firstName?: string | null, lastName?: string | null, avatarUrl?: string | null } }> | null, commentThreadTargets?: Array<{ __typename?: 'CommentThreadTarget', id: string, commentableId: string, commentableType: CommentableType }> | null }> };
export type GetCommentThreadQuery = { __typename?: 'Query', findManyCommentThreads: Array<{ __typename?: 'CommentThread', id: string, createdAt: string, body?: string | null, title?: string | null, type: ActivityType, author: { __typename?: 'User', id: string, firstName?: string | null, lastName?: string | null }, comments?: Array<{ __typename?: 'Comment', id: string, body: string, createdAt: string, updatedAt: string, author: { __typename?: 'User', id: string, displayName: string, firstName?: string | null, lastName?: string | null, avatarUrl?: string | null } }> | null, commentThreadTargets?: Array<{ __typename?: 'CommentThreadTarget', id: string, commentableId: string, commentableType: CommentableType }> | null }> };
export type AddCommentThreadTargetOnCommentThreadMutationVariables = Exact<{
commentThreadId: Scalars['String'];
@ -3218,21 +3488,15 @@ export type DeleteCommentThreadMutationVariables = Exact<{
export type DeleteCommentThreadMutation = { __typename?: 'Mutation', deleteManyCommentThreads: { __typename?: 'AffectedRows', count: number } };
export type UpdateCommentThreadTitleMutationVariables = Exact<{
commentThreadId: Scalars['String'];
commentThreadTitle?: InputMaybe<Scalars['String']>;
export type UpdateCommentThreadMutationVariables = Exact<{
id: Scalars['String'];
body?: InputMaybe<Scalars['String']>;
title?: InputMaybe<Scalars['String']>;
type?: InputMaybe<ActivityType>;
}>;
export type UpdateCommentThreadTitleMutation = { __typename?: 'Mutation', updateOneCommentThread: { __typename?: 'CommentThread', id: string, title?: string | null } };
export type UpdateCommentThreadBodyMutationVariables = Exact<{
commentThreadId: Scalars['String'];
commentThreadBody?: InputMaybe<Scalars['String']>;
}>;
export type UpdateCommentThreadBodyMutation = { __typename?: 'Mutation', updateOneCommentThread: { __typename?: 'CommentThread', id: string, body?: string | null } };
export type UpdateCommentThreadMutation = { __typename?: 'Mutation', updateOneCommentThread: { __typename?: 'CommentThread', id: string, body?: string | null, title?: string | null, type: ActivityType } };
export type GetCompaniesQueryVariables = Exact<{
orderBy?: InputMaybe<Array<CompanyOrderByWithRelationInput> | CompanyOrderByWithRelationInput>;
@ -3874,14 +4138,15 @@ export type CreateCommentMutationHookResult = ReturnType<typeof useCreateComment
export type CreateCommentMutationResult = Apollo.MutationResult<CreateCommentMutation>;
export type CreateCommentMutationOptions = Apollo.BaseMutationOptions<CreateCommentMutation, CreateCommentMutationVariables>;
export const CreateCommentThreadDocument = gql`
mutation CreateCommentThread($commentThreadId: String!, $body: String, $title: String, $authorId: String!, $createdAt: DateTime!, $commentThreadTargetArray: [CommentThreadTargetCreateManyCommentThreadInput!]!) {
mutation CreateCommentThread($commentThreadId: String!, $body: String, $title: String, $type: ActivityType!, $authorId: String!, $createdAt: DateTime!, $commentThreadTargetArray: [CommentThreadTargetCreateManyCommentThreadInput!]!) {
createOneCommentThread(
data: {id: $commentThreadId, createdAt: $createdAt, updatedAt: $createdAt, author: {connect: {id: $authorId}}, body: $body, title: $title, commentThreadTargets: {createMany: {data: $commentThreadTargetArray, skipDuplicates: true}}}
data: {id: $commentThreadId, createdAt: $createdAt, updatedAt: $createdAt, author: {connect: {id: $authorId}}, body: $body, title: $title, type: $type, commentThreadTargets: {createMany: {data: $commentThreadTargetArray, skipDuplicates: true}}}
) {
id
createdAt
updatedAt
authorId
type
commentThreadTargets {
id
createdAt
@ -3920,6 +4185,7 @@ export type CreateCommentThreadMutationFn = Apollo.MutationFunction<CreateCommen
* commentThreadId: // value for 'commentThreadId'
* body: // value for 'body'
* title: // value for 'title'
* type: // value for 'type'
* authorId: // value for 'authorId'
* createdAt: // value for 'createdAt'
* commentThreadTargetArray: // value for 'commentThreadTargetArray'
@ -3943,6 +4209,7 @@ export const GetCommentThreadsByTargetsDocument = gql`
createdAt
title
body
type
author {
id
firstName
@ -4005,6 +4272,7 @@ export const GetCommentThreadDocument = gql`
createdAt
body
title
type
author {
id
firstName
@ -4187,82 +4455,48 @@ export function useDeleteCommentThreadMutation(baseOptions?: Apollo.MutationHook
export type DeleteCommentThreadMutationHookResult = ReturnType<typeof useDeleteCommentThreadMutation>;
export type DeleteCommentThreadMutationResult = Apollo.MutationResult<DeleteCommentThreadMutation>;
export type DeleteCommentThreadMutationOptions = Apollo.BaseMutationOptions<DeleteCommentThreadMutation, DeleteCommentThreadMutationVariables>;
export const UpdateCommentThreadTitleDocument = gql`
mutation UpdateCommentThreadTitle($commentThreadId: String!, $commentThreadTitle: String) {
export const UpdateCommentThreadDocument = gql`
mutation UpdateCommentThread($id: String!, $body: String, $title: String, $type: ActivityType) {
updateOneCommentThread(
where: {id: $commentThreadId}
data: {title: {set: $commentThreadTitle}}
) {
id
title
}
}
`;
export type UpdateCommentThreadTitleMutationFn = Apollo.MutationFunction<UpdateCommentThreadTitleMutation, UpdateCommentThreadTitleMutationVariables>;
/**
* __useUpdateCommentThreadTitleMutation__
*
* To run a mutation, you first call `useUpdateCommentThreadTitleMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useUpdateCommentThreadTitleMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [updateCommentThreadTitleMutation, { data, loading, error }] = useUpdateCommentThreadTitleMutation({
* variables: {
* commentThreadId: // value for 'commentThreadId'
* commentThreadTitle: // value for 'commentThreadTitle'
* },
* });
*/
export function useUpdateCommentThreadTitleMutation(baseOptions?: Apollo.MutationHookOptions<UpdateCommentThreadTitleMutation, UpdateCommentThreadTitleMutationVariables>) {
const options = {...defaultOptions, ...baseOptions}
return Apollo.useMutation<UpdateCommentThreadTitleMutation, UpdateCommentThreadTitleMutationVariables>(UpdateCommentThreadTitleDocument, options);
}
export type UpdateCommentThreadTitleMutationHookResult = ReturnType<typeof useUpdateCommentThreadTitleMutation>;
export type UpdateCommentThreadTitleMutationResult = Apollo.MutationResult<UpdateCommentThreadTitleMutation>;
export type UpdateCommentThreadTitleMutationOptions = Apollo.BaseMutationOptions<UpdateCommentThreadTitleMutation, UpdateCommentThreadTitleMutationVariables>;
export const UpdateCommentThreadBodyDocument = gql`
mutation UpdateCommentThreadBody($commentThreadId: String!, $commentThreadBody: String) {
updateOneCommentThread(
where: {id: $commentThreadId}
data: {body: {set: $commentThreadBody}}
where: {id: $id}
data: {body: {set: $body}, title: {set: $title}, type: {set: $type}}
) {
id
body
title
type
}
}
`;
export type UpdateCommentThreadBodyMutationFn = Apollo.MutationFunction<UpdateCommentThreadBodyMutation, UpdateCommentThreadBodyMutationVariables>;
export type UpdateCommentThreadMutationFn = Apollo.MutationFunction<UpdateCommentThreadMutation, UpdateCommentThreadMutationVariables>;
/**
* __useUpdateCommentThreadBodyMutation__
* __useUpdateCommentThreadMutation__
*
* To run a mutation, you first call `useUpdateCommentThreadBodyMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useUpdateCommentThreadBodyMutation` returns a tuple that includes:
* To run a mutation, you first call `useUpdateCommentThreadMutation` within a React component and pass it any options that fit your needs.
* When your component renders, `useUpdateCommentThreadMutation` returns a tuple that includes:
* - A mutate function that you can call at any time to execute the mutation
* - An object with fields that represent the current status of the mutation's execution
*
* @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
*
* @example
* const [updateCommentThreadBodyMutation, { data, loading, error }] = useUpdateCommentThreadBodyMutation({
* const [updateCommentThreadMutation, { data, loading, error }] = useUpdateCommentThreadMutation({
* variables: {
* commentThreadId: // value for 'commentThreadId'
* commentThreadBody: // value for 'commentThreadBody'
* id: // value for 'id'
* body: // value for 'body'
* title: // value for 'title'
* type: // value for 'type'
* },
* });
*/
export function useUpdateCommentThreadBodyMutation(baseOptions?: Apollo.MutationHookOptions<UpdateCommentThreadBodyMutation, UpdateCommentThreadBodyMutationVariables>) {
export function useUpdateCommentThreadMutation(baseOptions?: Apollo.MutationHookOptions<UpdateCommentThreadMutation, UpdateCommentThreadMutationVariables>) {
const options = {...defaultOptions, ...baseOptions}
return Apollo.useMutation<UpdateCommentThreadBodyMutation, UpdateCommentThreadBodyMutationVariables>(UpdateCommentThreadBodyDocument, options);
return Apollo.useMutation<UpdateCommentThreadMutation, UpdateCommentThreadMutationVariables>(UpdateCommentThreadDocument, options);
}
export type UpdateCommentThreadBodyMutationHookResult = ReturnType<typeof useUpdateCommentThreadBodyMutation>;
export type UpdateCommentThreadBodyMutationResult = Apollo.MutationResult<UpdateCommentThreadBodyMutation>;
export type UpdateCommentThreadBodyMutationOptions = Apollo.BaseMutationOptions<UpdateCommentThreadBodyMutation, UpdateCommentThreadBodyMutationVariables>;
export type UpdateCommentThreadMutationHookResult = ReturnType<typeof useUpdateCommentThreadMutation>;
export type UpdateCommentThreadMutationResult = Apollo.MutationResult<UpdateCommentThreadMutation>;
export type UpdateCommentThreadMutationOptions = Apollo.BaseMutationOptions<UpdateCommentThreadMutation, UpdateCommentThreadMutationVariables>;
export const GetCompaniesDocument = gql`
query GetCompanies($orderBy: [CompanyOrderByWithRelationInput!], $where: CompanyWhereInput) {
companies: findManyCompany(orderBy: $orderBy, where: $where) {

View File

@ -9,7 +9,7 @@ import { BlockEditor } from '@/ui/components/editor/BlockEditor';
import { debounce } from '@/utils/debounce';
import {
CommentThread,
useUpdateCommentThreadBodyMutation,
useUpdateCommentThreadMutation,
} from '~/generated/graphql';
const BlockNoteStyledContainer = styled.div`
@ -22,8 +22,7 @@ type OwnProps = {
};
export function CommentThreadBodyEditor({ commentThread, onChange }: OwnProps) {
const [updateCommentThreadBodyMutation] =
useUpdateCommentThreadBodyMutation();
const [updateCommentThreadMutation] = useUpdateCommentThreadMutation();
const [body, setBody] = useState<string | null>(null);
@ -36,10 +35,10 @@ export function CommentThreadBodyEditor({ commentThread, onChange }: OwnProps) {
const debounceOnChange = useMemo(() => {
function onInternalChange(commentThreadBody: string) {
setBody(commentThreadBody);
updateCommentThreadBodyMutation({
updateCommentThreadMutation({
variables: {
commentThreadId: commentThread.id,
commentThreadBody: commentThreadBody,
id: commentThread.id,
body: commentThreadBody,
},
refetchQueries: [
getOperationName(GET_COMMENT_THREADS_BY_TARGETS) ?? '',
@ -48,7 +47,7 @@ export function CommentThreadBodyEditor({ commentThread, onChange }: OwnProps) {
}
return debounce(onInternalChange, 200);
}, [commentThread, updateCommentThreadBodyMutation, setBody]);
}, [commentThread, updateCommentThreadMutation, setBody]);
const editor: BlockNoteEditor | null = useBlockNote({
initialContent: commentThread.body

View File

@ -26,7 +26,6 @@ export function CommentThreadCreateButton({
<Button
icon={<IconCheckbox size={theme.icon.size.sm} />}
title="Task"
soon={true}
onClick={onTaskClick}
/>
<Button

View File

@ -2,17 +2,59 @@ import {
DropdownButton,
DropdownOptionType,
} from '@/ui/components/buttons/DropdownButton';
import { IconNotes } from '@/ui/icons/index';
import { IconCheck, IconNotes } from '@/ui/icons/index';
import {
ActivityType,
CommentThread,
useUpdateCommentThreadMutation,
} from '~/generated/graphql';
export function CommentThreadTypeDropdown() {
type OwnProps = {
commentThread: Pick<CommentThread, 'id' | 'type'>;
};
export function CommentThreadTypeDropdown({ commentThread }: OwnProps) {
const [updateCommentThreadMutation] = useUpdateCommentThreadMutation();
const options: DropdownOptionType[] = [
{ label: 'Note', icon: <IconNotes /> },
// { label: 'Call', icon: <IconPhone /> },
{ label: 'Note', key: 'note', icon: <IconNotes /> },
{ label: 'Task', key: 'task', icon: <IconCheck /> },
];
const handleSelect = (selectedOption: DropdownOptionType) => {
// console.log(`You selected: ${selectedOption.label}`);
function getSelectedOptionKey() {
if (commentThread.type === ActivityType.Note) {
return 'note';
} else if (commentThread.type === ActivityType.Task) {
return 'task';
} else {
return undefined;
}
}
const convertSelectionOptionKeyToActivityType = (key: string) => {
switch (key) {
case 'note':
return ActivityType.Note;
case 'task':
return ActivityType.Task;
default:
return undefined;
}
};
return <DropdownButton options={options} onSelection={handleSelect} />;
const handleSelect = (selectedOption: DropdownOptionType) => {
updateCommentThreadMutation({
variables: {
id: commentThread.id,
type: convertSelectionOptionKeyToActivityType(selectedOption.key),
},
});
};
return (
<DropdownButton
options={options}
onSelection={handleSelect}
selectedOptionKey={getSelectedOptionKey()}
/>
);
}

View File

@ -9,7 +9,7 @@ import { IconArrowUpRight } from '@/ui/icons/index';
import { debounce } from '@/utils/debounce';
import {
useGetCommentThreadQuery,
useUpdateCommentThreadTitleMutation,
useUpdateCommentThreadMutation,
} from '~/generated/graphql';
import { CommentThreadBodyEditor } from '../comment-thread/CommentThreadBodyEditor';
@ -105,21 +105,20 @@ export function CommentThread({
const [hasUserManuallySetTitle, setHasUserManuallySetTitle] =
useState<boolean>(false);
const [updateCommentThreadTitleMutation] =
useUpdateCommentThreadTitleMutation();
const [updateCommentThreadMutation] = useUpdateCommentThreadMutation();
const debounceUpdateTitle = useMemo(() => {
function updateTitle(title: string) {
updateCommentThreadTitleMutation({
updateCommentThreadMutation({
variables: {
commentThreadId: commentThreadId,
commentThreadTitle: title ?? '',
id: commentThreadId,
title: title ?? '',
},
refetchQueries: [getOperationName(GET_COMMENT_THREAD) ?? ''],
});
}
return debounce(updateTitle, 200);
}, [commentThreadId, updateCommentThreadTitleMutation]);
}, [commentThreadId, updateCommentThreadMutation]);
function updateTitleFromBody(body: string) {
const parsedTitle = JSON.parse(body)[0]?.content[0]?.text;
@ -144,11 +143,11 @@ export function CommentThread({
<StyledUpperPartContainer>
<StyledTopContainer>
<StyledTopActionsContainer>
<CommentThreadTypeDropdown />
<CommentThreadTypeDropdown commentThread={commentThread} />
<CommentThreadActionBar commentThreadId={commentThread?.id ?? ''} />
</StyledTopActionsContainer>
<StyledEditableTitleInput
placeholder="Note title (optional)"
placeholder={`${commentThread.type} title (optional)`}
onChange={(event) => {
setHasUserManuallySetTitle(true);
setTitle(event.target.value);

View File

@ -12,7 +12,7 @@ export function RightDrawerCreateCommentThread() {
return (
<RightDrawerPage>
<RightDrawerTopBar title="New note" />
<RightDrawerTopBar />
<RightDrawerBody>
{commentThreadId && (
<CommentThread

View File

@ -12,7 +12,7 @@ export function RightDrawerEditCommentThread() {
return (
<RightDrawerPage>
<RightDrawerTopBar title="" />
<RightDrawerTopBar />
<RightDrawerBody>
{commentThreadId && <CommentThread commentThreadId={commentThreadId} />}
</RightDrawerBody>

View File

@ -12,6 +12,7 @@ import {
beautifyPastDateRelativeToNow,
} from '@/utils/datetime/date-utils';
import {
ActivityType,
SortOrder,
useGetCommentThreadsByTargetsQuery,
} from '~/generated/graphql';
@ -187,7 +188,7 @@ const StyledTopActionBar = styled.div`
`;
export function Timeline({ entity }: { entity: CommentableEntity }) {
const { data: queryResult } = useGetCommentThreadsByTargetsQuery({
const { data: queryResult, loading } = useGetCommentThreadsByTargetsQuery({
variables: {
commentThreadTargetIds: [entity.id],
orderBy: [
@ -205,13 +206,18 @@ export function Timeline({ entity }: { entity: CommentableEntity }) {
const commentThreads: CommentThreadForDrawer[] =
queryResult?.findManyCommentThreads ?? [];
if (loading) {
return <></>;
}
if (!commentThreads.length) {
return (
<StyledTimelineEmptyContainer>
<StyledEmptyTimelineTitle>No activity yet</StyledEmptyTimelineTitle>
<StyledEmptyTimelineSubTitle>Create one:</StyledEmptyTimelineSubTitle>
<CommentThreadCreateButton
onNoteClick={() => openCreateCommandThread(entity)}
onNoteClick={() => openCreateCommandThread(entity, ActivityType.Note)}
onTaskClick={() => openCreateCommandThread(entity, ActivityType.Task)}
/>
</StyledTimelineEmptyContainer>
);
@ -222,7 +228,12 @@ export function Timeline({ entity }: { entity: CommentableEntity }) {
<StyledTopActionBar>
<StyledTimelineItemContainer>
<CommentThreadCreateButton
onNoteClick={() => openCreateCommandThread(entity)}
onNoteClick={() =>
openCreateCommandThread(entity, ActivityType.Note)
}
onTaskClick={() =>
openCreateCommandThread(entity, ActivityType.Task)
}
/>
</StyledTimelineItemContainer>
</StyledTopActionBar>

View File

@ -10,6 +10,7 @@ import { RightDrawerHotkeyScope } from '@/ui/layout/right-drawer/types/RightDraw
import { RightDrawerPages } from '@/ui/layout/right-drawer/types/RightDrawerPages';
import { selectedRowIdsSelector } from '@/ui/tables/states/selectedRowIdsSelector';
import {
ActivityType,
CommentableType,
useCreateCommentThreadMutation,
} from '~/generated/graphql';
@ -53,6 +54,7 @@ export function useOpenCreateCommentThreadDrawerForSelectedRowIds() {
authorId: currentUser?.id ?? '',
commentThreadId: v4(),
createdAt: new Date().toISOString(),
type: ActivityType.Note,
commentThreadTargetArray: commentableEntityArray.map((entity) => ({
commentableId: entity.id,
commentableType: entity.type,

View File

@ -8,7 +8,10 @@ import { useSetHotkeyScope } from '@/lib/hotkeys/hooks/useSetHotkeyScope';
import { GET_PEOPLE } from '@/people/services';
import { RightDrawerHotkeyScope } from '@/ui/layout/right-drawer/types/RightDrawerHotkeyScope';
import { RightDrawerPages } from '@/ui/layout/right-drawer/types/RightDrawerPages';
import { useCreateCommentThreadMutation } from '~/generated/graphql';
import {
ActivityType,
useCreateCommentThreadMutation,
} from '~/generated/graphql';
import { useOpenRightDrawer } from '../../ui/layout/right-drawer/hooks/useOpenRightDrawer';
import {
@ -32,12 +35,16 @@ export function useOpenCreateCommentThreadDrawer() {
viewableCommentThreadIdState,
);
return function openCreateCommentThreadDrawer(entity: CommentableEntity) {
return function openCreateCommentThreadDrawer(
entity: CommentableEntity,
type: ActivityType,
) {
createCommentThreadMutation({
variables: {
authorId: currentUser?.id ?? '',
commentThreadId: v4(),
createdAt: new Date().toISOString(),
type: type,
commentThreadTargetArray: [
{
commentableId: entity.id,

View File

@ -37,6 +37,7 @@ export const CREATE_COMMENT_THREAD_WITH_COMMENT = gql`
$commentThreadId: String!
$body: String
$title: String
$type: ActivityType!
$authorId: String!
$createdAt: DateTime!
$commentThreadTargetArray: [CommentThreadTargetCreateManyCommentThreadInput!]!
@ -49,6 +50,7 @@ export const CREATE_COMMENT_THREAD_WITH_COMMENT = gql`
author: { connect: { id: $authorId } }
body: $body
title: $title
type: $type
commentThreadTargets: {
createMany: { data: $commentThreadTargetArray, skipDuplicates: true }
}
@ -58,6 +60,7 @@ export const CREATE_COMMENT_THREAD_WITH_COMMENT = gql`
createdAt
updatedAt
authorId
type
commentThreadTargets {
id
createdAt

View File

@ -17,6 +17,7 @@ export const GET_COMMENT_THREADS_BY_TARGETS = gql`
createdAt
title
body
type
author {
id
firstName
@ -51,6 +52,7 @@ export const GET_COMMENT_THREAD = gql`
createdAt
body
title
type
author {
id
firstName

View File

@ -69,32 +69,25 @@ export const DELETE_COMMENT_THREAD = gql`
}
`;
export const UPDATE_COMMENT_THREAD_TITLE = gql`
mutation UpdateCommentThreadTitle(
$commentThreadId: String!
$commentThreadTitle: String
export const UPDATE_COMMENT_THREAD = gql`
mutation UpdateCommentThread(
$id: String!
$body: String
$title: String
$type: ActivityType
) {
updateOneCommentThread(
where: { id: $commentThreadId }
data: { title: { set: $commentThreadTitle } }
) {
id
title
}
}
`;
export const UPDATE_COMMENT_THREAD_BODY = gql`
mutation UpdateCommentThreadBody(
$commentThreadId: String!
$commentThreadBody: String
) {
updateOneCommentThread(
where: { id: $commentThreadId }
data: { body: { set: $commentThreadBody } }
where: { id: $id }
data: {
body: { set: $body }
title: { set: $title }
type: { set: $type }
}
) {
id
body
title
type
}
}
`;

View File

@ -1,6 +1,8 @@
import { useState } from 'react';
import { getOperationName } from '@apollo/client/utilities';
import { v4 } from 'uuid';
import { GET_COMPANIES } from '@/companies/services';
import { useRecoilScopedState } from '@/recoil-scope/hooks/useRecoilScopedState';
import { relationPickerSearchFilterScopedState } from '@/relation-picker/states/relationPickerSearchFilterScopedState';
import { isCreateModeScopedState } from '@/ui/components/editable-cell/states/isCreateModeScopedState';
@ -49,6 +51,7 @@ export function PeopleCompanyCreateCell({ people }: OwnProps) {
address: '',
createdAt: new Date().toISOString(),
},
refetchQueries: [getOperationName(GET_COMPANIES) || ''],
});
await updatePeople({

View File

@ -1,4 +1,4 @@
import React, { useState } from 'react';
import React, { useEffect, useState } from 'react';
import styled from '@emotion/styled';
import { IconChevronDown } from '@/ui/icons/index';
@ -6,28 +6,55 @@ import { IconChevronDown } from '@/ui/icons/index';
type ButtonProps = React.ComponentProps<'button'>;
export type DropdownOptionType = {
key: string;
label: string;
icon: React.ReactNode;
};
type Props = {
type OwnProps = {
options: DropdownOptionType[];
selectedOptionKey?: string;
onSelection: (value: DropdownOptionType) => void;
} & ButtonProps;
const StyledButton = styled.button<ButtonProps>`
const StyledButton = styled.button<ButtonProps & { isOpen: boolean }>`
align-items: center;
background: ${({ theme }) => theme.background.tertiary};
border: 1px solid ${({ theme }) => theme.border.color.medium};
border-bottom-left-radius: ${({ isOpen, theme }) =>
isOpen ? 0 : theme.border.radius.sm};
border-bottom-right-radius: ${({ isOpen, theme }) =>
isOpen ? 0 : theme.border.radius.sm};
border-top-left-radius: ${({ theme }) => theme.border.radius.sm};
border-top-right-radius: ${({ theme }) => theme.border.radius.sm};
color: ${({ theme }) => theme.font.color.secondary};
cursor: pointer;
display: flex;
gap: ${({ theme }) => theme.spacing(2)};
padding: ${({ theme }) => theme.spacing(1)} ${({ theme }) => theme.spacing(2)};
svg {
align-items: center;
display: flex;
height: 14px;
justify-content: center;
width: 14px;
}
`;
const StyledDropdownItem = styled.button<ButtonProps>`
align-items: center;
background: ${({ theme }) => theme.background.tertiary};
border: 1px solid ${({ theme }) => theme.border.color.medium};
border-radius: ${({ theme }) => theme.border.radius.sm};
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
color: ${({ theme }) => theme.font.color.secondary};
cursor: pointer;
display: flex;
font-size: ${({ theme }) => theme.font.size.md};
font-weight: ${({ theme }) => theme.font.weight.medium};
gap: 8px;
height: 24px;
line-height: ${({ theme }) => theme.text.lineHeight.lg};
padding: 3px 8px;
gap: ${({ theme }) => theme.spacing(2)};
padding: ${({ theme }) => theme.spacing(1)} ${({ theme }) => theme.spacing(2)};
svg {
align-items: center;
@ -45,17 +72,29 @@ const DropdownContainer = styled.div`
const DropdownMenu = styled.div`
display: flex;
flex-direction: column;
margin-top: -2px;
position: absolute;
width: 100%;
`;
export function DropdownButton({
options,
selectedOptionKey,
onSelection,
...buttonProps
}: Props) {
}: OwnProps) {
const [isOpen, setIsOpen] = useState(false);
const [selectedOption, setSelectedOption] = useState(options[0]);
const [selectedOption, setSelectedOption] = useState<
DropdownOptionType | undefined
>(undefined);
useEffect(() => {
if (selectedOptionKey) {
const option = options.find((option) => option.key === selectedOptionKey);
setSelectedOption(option);
} else {
setSelectedOption(options[0]);
}
}, [selectedOptionKey, options]);
if (!options.length) {
throw new Error('You must provide at least one option.');
@ -71,24 +110,35 @@ export function DropdownButton({
};
return (
<DropdownContainer>
<StyledButton onClick={() => setIsOpen(!isOpen)} {...buttonProps}>
{selectedOption.icon}
{selectedOption.label}
{options.length > 1 && <IconChevronDown />}
</StyledButton>
{isOpen && (
<DropdownMenu>
{options
.filter((option) => option.label !== selectedOption.label)
.map((option, index) => (
<StyledButton key={index} onClick={handleSelect(option)}>
{option.icon}
{option.label}
</StyledButton>
))}
</DropdownMenu>
<>
{selectedOption && (
<DropdownContainer>
<StyledButton
onClick={() => setIsOpen(!isOpen)}
{...buttonProps}
isOpen={isOpen}
>
{selectedOption.icon}
{selectedOption.label}
{options.length > 1 && <IconChevronDown />}
</StyledButton>
{isOpen && (
<DropdownMenu>
{options
.filter((option) => option.label !== selectedOption.label)
.map((option, index) => (
<StyledDropdownItem
key={index}
onClick={handleSelect(option)}
>
{option.icon}
{option.label}
</StyledDropdownItem>
))}
</DropdownMenu>
)}
</DropdownContainer>
)}
</DropdownContainer>
</>
);
}

View File

@ -5,7 +5,7 @@ const StyledPropertyBoxItem = styled.div`
align-items: center;
display: flex;
gap: ${({ theme }) => theme.spacing(2)};
height: 32px;
padding: ${({ theme }) => theme.spacing(1)};
`;
const StyledIconContainer = styled.div`

View File

@ -1,7 +1,5 @@
import styled from '@emotion/styled';
import { Button } from '@/ui/components/buttons/Button';
import { RightDrawerTopBarCloseButton } from './RightDrawerTopBarCloseButton';
const StyledRightDrawerTopBar = styled.div`
@ -18,26 +16,14 @@ const StyledRightDrawerTopBar = styled.div`
padding-right: 8px;
`;
const StyledTopBarTitle = styled.div`
align-items: center;
font-weight: ${({ theme }) => theme.font.weight.medium};
margin-right: ${({ theme }) => theme.spacing(1)};
`;
type OwnProps = {
title?: string | null | undefined;
onSave?: () => void;
};
export function RightDrawerTopBar({ title, onSave }: OwnProps) {
function handleOnClick() {
onSave?.();
}
export function RightDrawerTopBar({ title }: OwnProps) {
return (
<StyledRightDrawerTopBar>
<RightDrawerTopBarCloseButton />
<StyledTopBarTitle>{title}</StyledTopBarTitle>
{onSave ? <Button title="Save" onClick={handleOnClick} /> : <div></div>}
</StyledRightDrawerTopBar>
);
}