stacker.news/fragments/users.js

259 lines
5.0 KiB
JavaScript

import { gql } from '@apollo/client'
import { COMMENTS, COMMENTS_ITEM_EXT_FIELDS } from './comments'
import { ITEM_FIELDS, ITEM_FULL_FIELDS } from './items'
export const ME = gql`
{
me {
id
name
bioId
privates {
autoDropBolt11s
diagnostics
fiatCurrency
greeterMode
hideCowboyHat
hideFromTopUsers
hideInvoiceDesc
hideIsContributor
hideWalletBalance
hideWelcomeBanner
imgproxyOnly
lastCheckedJobs
nostrCrossposting
noteAllDescendants
noteCowboyHat
noteDeposits
noteEarning
noteForwardedSats
noteInvites
noteItemSats
noteJobIndicator
noteMentions
sats
tipDefault
tipPopover
turboTipping
upvotePopover
wildWestMode
withdrawMaxFeeDefault
}
optional {
isContributor
stacked
streak
}
}
}`
export const SETTINGS_FIELDS = gql`
fragment SettingsFields on User {
privates {
tipDefault
turboTipping
fiatCurrency
withdrawMaxFeeDefault
noteItemSats
noteEarning
noteAllDescendants
noteMentions
noteDeposits
noteInvites
noteJobIndicator
noteCowboyHat
noteForwardedSats
hideInvoiceDesc
autoDropBolt11s
hideFromTopUsers
hideCowboyHat
hideBookmarks
hideIsContributor
imgproxyOnly
hideWalletBalance
diagnostics
nostrPubkey
nostrCrossposting
nostrRelays
wildWestMode
greeterMode
authMethods {
lightning
nostr
github
twitter
email
}
}
}`
export const SETTINGS = gql`
${SETTINGS_FIELDS}
{
settings {
...SettingsFields
}
}`
export const SET_SETTINGS =
gql`
${SETTINGS_FIELDS}
mutation setSettings($settings: SettingsInput!) {
setSettings(settings: $settings) {
...SettingsFields
}
}
`
export const NAME_QUERY =
gql`
query nameAvailable($name: String!) {
nameAvailable(name: $name)
}
`
export const NAME_MUTATION =
gql`
mutation setName($name: String!) {
setName(name: $name)
}
`
export const WELCOME_BANNER_MUTATION =
gql`
mutation hideWelcomeBanner {
hideWelcomeBanner
}
`
export const USER_SUGGESTIONS =
gql`
query userSuggestions($q: String!, $limit: Limit) {
userSuggestions(q: $q, limit: $limit) {
name
}
}`
export const USER_SEARCH =
gql`
query searchUsers($q: String!, $limit: Limit, $similarity: Float) {
searchUsers(q: $q, limit: $limit, similarity: $similarity) {
id
name
photoId
ncomments
nposts
optional {
streak
stacked
spent
referrals
}
}
}`
export const USER_FIELDS = gql`
fragment UserFields on User {
id
name
since
photoId
nitems
meSubscriptionPosts
meSubscriptionComments
meMute
optional {
stacked
streak
maxStreak
isContributor
}
}`
export const TOP_USERS = gql`
query TopUsers($cursor: String, $when: String, $from: String, $to: String, $by: String, ) {
topUsers(cursor: $cursor, when: $when, from: $from, to: $to, by: $by) {
users {
id
name
photoId
ncomments(when: $when, from: $from, to: $to)
nposts(when: $when, from: $from, to: $to)
optional {
streak
stacked(when: $when, from: $from, to: $to)
spent(when: $when, from: $from, to: $to)
referrals(when: $when, from: $from, to: $to)
}
}
cursor
}
}
`
export const TOP_COWBOYS = gql`
query TopCowboys($cursor: String) {
topCowboys(cursor: $cursor) {
users {
id
name
photoId
ncomments(when: "forever")
nposts(when: "forever")
optional {
streak
stacked(when: "forever")
spent(when: "forever")
referrals(when: "forever")
}
}
cursor
}
}
`
export const USER_FULL = gql`
${USER_FIELDS}
${ITEM_FULL_FIELDS}
${COMMENTS}
query User($name: String!, $sort: String) {
user(name: $name) {
...UserFields
bio {
...ItemFullFields
comments(sort: $sort) {
...CommentsRecursive
}
}
}
}`
export const USER = gql`
${USER_FIELDS}
query User($name: String!) {
user(name: $name) {
...UserFields
}
}`
export const USER_WITH_ITEMS = gql`
${USER_FIELDS}
${ITEM_FIELDS}
${COMMENTS_ITEM_EXT_FIELDS}
query UserWithItems($name: String!, $sub: String, $cursor: String, $type: String, $when: String, $from: String, $to: String, $by: String, $limit: Limit, $includeComments: Boolean = false) {
user(name: $name) {
...UserFields
}
items(sub: $sub, sort: "user", cursor: $cursor, type: $type, name: $name, when: $when, from: $from, to: $to, by: $by, limit: $limit) {
cursor
items {
...ItemFields
...CommentItemExtFields @include(if: $includeComments)
}
}
}`