mobilizon/js/src/graphql/comment.ts
Thomas Citharel 47297127a2
Improve comment section
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2020-06-15 16:50:01 +02:00

103 lines
1.8 KiB
TypeScript

import gql from "graphql-tag";
export const COMMENT_FIELDS_FRAGMENT_NAME = "CommentFields";
export const COMMENT_FIELDS_FRAGMENT = gql`
fragment CommentFields on Comment {
id
uuid
url
text
visibility
local
actor {
avatar {
url
}
id
domain
preferredUsername
name
summary
}
totalReplies
updatedAt
deletedAt
}
`;
export const COMMENT_RECURSIVE_FRAGMENT = gql`
fragment CommentRecursive on Comment {
...CommentFields
inReplyToComment {
...CommentFields
}
originComment {
...CommentFields
}
replies {
...CommentFields
replies {
...CommentFields
}
}
}
${COMMENT_FIELDS_FRAGMENT}
`;
export const FETCH_THREAD_REPLIES = gql`
query($threadId: ID!) {
thread(id: $threadId) {
...CommentRecursive
}
}
${COMMENT_RECURSIVE_FRAGMENT}
`;
export const COMMENTS_THREADS = gql`
query($eventUUID: UUID!) {
event(uuid: $eventUUID) {
id
uuid
comments {
...CommentFields
}
}
}
${COMMENT_FIELDS_FRAGMENT}
`;
export const CREATE_COMMENT_FROM_EVENT = gql`
mutation CreateCommentFromEvent(
$eventId: ID!
$actorId: ID!
$text: String!
$inReplyToCommentId: ID
) {
createComment(
eventId: $eventId
actorId: $actorId
text: $text
inReplyToCommentId: $inReplyToCommentId
) {
...CommentRecursive
}
}
${COMMENT_RECURSIVE_FRAGMENT}
`;
export const DELETE_COMMENT = gql`
mutation DeleteComment($commentId: ID!, $actorId: ID!) {
deleteComment(commentId: $commentId, actorId: $actorId) {
id
}
}
`;
export const UPDATE_COMMENT = gql`
mutation UpdateComment($commentId: ID!, $text: String!) {
updateComment(commentId: $commentId, text: $text) {
...CommentFields
}
}
`;