stacker.news/components/subscribe.js
ekzyis 0c251ca376
Add thread subscriptions (#293)
* Add thread subscriptions

* remove dead code: reply only notifications

* break out thread subscription queries to reduce search space

* one db dip for item lists/threads re:meSubscription

---------

Co-authored-by: ekzyis <ek@stacker.news>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-05-31 19:44:06 -05:00

31 lines
793 B
JavaScript

import { useMutation } from '@apollo/client'
import { gql } from 'apollo-server-micro'
import { Dropdown } from 'react-bootstrap'
export default function SubscribeDropdownItem ({ item: { id, meSubscription } }) {
const [subscribeItem] = useMutation(
gql`
mutation subscribeItem($id: ID!) {
subscribeItem(id: $id) {
meSubscription
}
}`, {
update (cache, { data: { subscribeItem } }) {
cache.modify({
id: `Item:${id}`,
fields: {
meSubscription: () => subscribeItem.meSubscription
}
})
}
}
)
return (
<Dropdown.Item
onClick={() => subscribeItem({ variables: { id } })}
>
{meSubscription ? 'remove subscription' : 'subscribe'}
</Dropdown.Item>
)
}