stacker.news/fragments/comments.js

109 lines
1.7 KiB
JavaScript

import { gql } from '@apollo/client'
// we can't import from users because of circular dependency
const STREAK_FIELDS = gql`
fragment StreakFields on User {
optional {
streak
gunStreak
horseStreak
}
}
`
export const COMMENT_FIELDS = gql`
${STREAK_FIELDS}
fragment CommentFields on Item {
id
position
parentId
createdAt
deletedAt
text
user {
id
name
meMute
...StreakFields
}
sats
meAnonSats @client
upvotes
freedFreebie
boost
meSats
meDontLikeSats
meBookmark
meSubscription
outlawed
freebie
path
commentSats
mine
otsHash
ncomments
imgproxyUrls
rel
apiKey
invoice {
id
actionState
confirmedAt
}
cost
}
`
export const COMMENTS_ITEM_EXT_FIELDS = gql`
${STREAK_FIELDS}
fragment CommentItemExtFields on Item {
text
root {
id
title
bounty
bountyPaidTo
subName
sub {
name
userId
moderated
meMuteSub
}
user {
name
id
...StreakFields
}
}
}`
// we only get the first COMMENT_DEPTH_LIMIT comments
export const COMMENTS = gql`
${COMMENT_FIELDS}
fragment CommentsRecursive on Item {
...CommentFields
comments {
...CommentFields
comments {
...CommentFields
comments {
...CommentFields
comments {
...CommentFields
comments {
...CommentFields
comments {
...CommentFields
comments {
...CommentFields
}
}
}
}
}
}
}
}`