0d4a225442
* First pass of user subscriptions * add new db model to track subscriptions * update user typedef and api resolver for subscription state * add subscribe action to user profile page * add mutation to subscribe to a user * Update notifications queries, hasNewNotes queries for FollowActivity note type * Only show items that have been created since subscribing to the user * Send push notifications to user subscribers for posts and comments * Rename item dropdown to action dropdown and re-use for item info and user actions * Don't allow self-follows * Add index on followee for faster lookups * Don't show subscribe action if not logged in * small style enhance --------- Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com> Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
97 lines
1.8 KiB
JavaScript
97 lines
1.8 KiB
JavaScript
import { gql } from '@apollo/client'
|
|
import { ITEM_FULL_FIELDS } from './items'
|
|
import { INVITE_FIELDS } from './invites'
|
|
|
|
export const HAS_NOTIFICATIONS = gql`{ hasNewNotes }`
|
|
|
|
export const NOTIFICATIONS = gql`
|
|
${ITEM_FULL_FIELDS}
|
|
${INVITE_FIELDS}
|
|
|
|
query Notifications($cursor: String, $inc: String) {
|
|
notifications(cursor: $cursor, inc: $inc) {
|
|
cursor
|
|
lastChecked
|
|
notifications {
|
|
__typename
|
|
... on Mention {
|
|
id
|
|
sortTime
|
|
mention
|
|
item {
|
|
...ItemFullFields
|
|
text
|
|
}
|
|
}
|
|
... on Votification {
|
|
id
|
|
sortTime
|
|
earnedSats
|
|
item {
|
|
...ItemFullFields
|
|
text
|
|
}
|
|
}
|
|
... on Streak {
|
|
id
|
|
sortTime
|
|
days
|
|
}
|
|
... on Earn {
|
|
id
|
|
sortTime
|
|
earnedSats
|
|
sources {
|
|
posts
|
|
comments
|
|
tipPosts
|
|
tipComments
|
|
}
|
|
}
|
|
... on Referral {
|
|
id
|
|
sortTime
|
|
}
|
|
... on Reply {
|
|
id
|
|
sortTime
|
|
item {
|
|
...ItemFullFields
|
|
text
|
|
}
|
|
}
|
|
... on FollowActivity {
|
|
id
|
|
sortTime
|
|
item {
|
|
...ItemFullFields
|
|
text
|
|
}
|
|
}
|
|
... on Invitification {
|
|
id
|
|
sortTime
|
|
invite {
|
|
...InviteFields
|
|
}
|
|
}
|
|
... on JobChanged {
|
|
id
|
|
sortTime
|
|
item {
|
|
...ItemFields
|
|
}
|
|
}
|
|
... on InvoicePaid {
|
|
id
|
|
sortTime
|
|
earnedSats
|
|
invoice {
|
|
id
|
|
nostr
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} `
|