502bfee072
* uber rough first pass at mention autocompletes * support custom limit on topUsers query * hot keys for selecting user suggestion in markdown input * query top stackers for mentions with no search query * refactor UserSuggestion to help with reusability textarea-caret for placing the user suggest dropdown appropriately other various code cleanup items to make it easier to use off by one errors are fun! various code cleanup and reuse the UserSuggest component in InputUserSuggest to reduce duplication * change default users to week query --------- Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com> Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
246 lines
5.8 KiB
JavaScript
246 lines
5.8 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
|
|
streak
|
|
sats
|
|
stacked
|
|
freePosts
|
|
freeComments
|
|
tipDefault
|
|
turboTipping
|
|
fiatCurrency
|
|
bioId
|
|
upvotePopover
|
|
tipPopover
|
|
nostrCrossposting
|
|
noteItemSats
|
|
noteEarning
|
|
noteAllDescendants
|
|
noteMentions
|
|
noteDeposits
|
|
noteInvites
|
|
noteJobIndicator
|
|
noteCowboyHat
|
|
noteForwardedSats
|
|
hideInvoiceDesc
|
|
hideFromTopUsers
|
|
hideCowboyHat
|
|
imgproxyOnly
|
|
diagnostics
|
|
wildWestMode
|
|
greeterMode
|
|
lastCheckedJobs
|
|
hideWelcomeBanner
|
|
hideWalletBalance
|
|
isContributor
|
|
hideIsContributor
|
|
}
|
|
}`
|
|
|
|
export const SETTINGS_FIELDS = gql`
|
|
fragment SettingsFields on User {
|
|
tipDefault
|
|
turboTipping
|
|
fiatCurrency
|
|
noteItemSats
|
|
noteEarning
|
|
noteAllDescendants
|
|
noteMentions
|
|
noteDeposits
|
|
noteInvites
|
|
noteJobIndicator
|
|
noteCowboyHat
|
|
noteForwardedSats
|
|
hideInvoiceDesc
|
|
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($tipDefault: Int!, $turboTipping: Boolean!, $fiatCurrency: String!, $noteItemSats: Boolean!,
|
|
$noteEarning: Boolean!, $noteAllDescendants: Boolean!, $noteMentions: Boolean!, $noteDeposits: Boolean!,
|
|
$noteInvites: Boolean!, $noteJobIndicator: Boolean!, $noteCowboyHat: Boolean!, $hideInvoiceDesc: Boolean!,
|
|
$hideFromTopUsers: Boolean!, $hideCowboyHat: Boolean!, $imgproxyOnly: Boolean!,
|
|
$wildWestMode: Boolean!, $greeterMode: Boolean!, $nostrPubkey: String, $nostrCrossposting: Boolean!, $nostrRelays: [String!], $hideBookmarks: Boolean!,
|
|
$noteForwardedSats: Boolean!, $hideWalletBalance: Boolean!, $hideIsContributor: Boolean!, $diagnostics: Boolean!) {
|
|
setSettings(tipDefault: $tipDefault, turboTipping: $turboTipping, fiatCurrency: $fiatCurrency,
|
|
noteItemSats: $noteItemSats, noteEarning: $noteEarning, noteAllDescendants: $noteAllDescendants,
|
|
noteMentions: $noteMentions, noteDeposits: $noteDeposits, noteInvites: $noteInvites,
|
|
noteJobIndicator: $noteJobIndicator, noteCowboyHat: $noteCowboyHat, hideInvoiceDesc: $hideInvoiceDesc,
|
|
hideFromTopUsers: $hideFromTopUsers, hideCowboyHat: $hideCowboyHat, imgproxyOnly: $imgproxyOnly,
|
|
wildWestMode: $wildWestMode, greeterMode: $greeterMode, nostrPubkey: $nostrPubkey, nostrCrossposting: $nostrCrossposting, nostrRelays: $nostrRelays, hideBookmarks: $hideBookmarks,
|
|
noteForwardedSats: $noteForwardedSats, hideWalletBalance: $hideWalletBalance, hideIsContributor: $hideIsContributor, diagnostics: $diagnostics) {
|
|
...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_SEARCH =
|
|
gql`
|
|
query searchUsers($q: String!, $limit: Int, $similarity: Float) {
|
|
searchUsers(q: $q, limit: $limit, similarity: $similarity) {
|
|
id
|
|
name
|
|
streak
|
|
hideCowboyHat
|
|
photoId
|
|
stacked
|
|
spent
|
|
ncomments
|
|
nposts
|
|
referrals
|
|
}
|
|
}`
|
|
|
|
export const USER_FIELDS = gql`
|
|
fragment UserFields on User {
|
|
id
|
|
name
|
|
streak
|
|
maxStreak
|
|
hideCowboyHat
|
|
nitems
|
|
stacked
|
|
since
|
|
photoId
|
|
isContributor
|
|
meSubscriptionPosts
|
|
meSubscriptionComments
|
|
meMute
|
|
}`
|
|
|
|
export const TOP_USERS = gql`
|
|
query TopUsers($cursor: String, $when: String, $by: String, $limit: Int) {
|
|
topUsers(cursor: $cursor, when: $when, by: $by, limit: $limit) {
|
|
users {
|
|
id
|
|
name
|
|
streak
|
|
hideCowboyHat
|
|
photoId
|
|
stacked(when: $when)
|
|
spent(when: $when)
|
|
ncomments(when: $when)
|
|
nposts(when: $when)
|
|
referrals(when: $when)
|
|
}
|
|
cursor
|
|
}
|
|
}
|
|
`
|
|
|
|
export const TOP_COWBOYS = gql`
|
|
query TopCowboys($cursor: String) {
|
|
topCowboys(cursor: $cursor) {
|
|
users {
|
|
id
|
|
name
|
|
streak
|
|
hideCowboyHat
|
|
photoId
|
|
stacked(when: "forever")
|
|
spent(when: "forever")
|
|
ncomments(when: "forever")
|
|
nposts(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, $by: String, $limit: Int, $includeComments: Boolean = false) {
|
|
user(name: $name) {
|
|
...UserFields
|
|
}
|
|
items(sub: $sub, sort: "user", cursor: $cursor, type: $type, name: $name, when: $when, by: $by, limit: $limit) {
|
|
cursor
|
|
items {
|
|
...ItemFields
|
|
...CommentItemExtFields @include(if: $includeComments)
|
|
}
|
|
}
|
|
}`
|