| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- import { UpdatesConfig } from "@urql/exchange-graphcache"
- import gql from "graphql-tag"
- export const updatesDef: Partial<UpdatesConfig> = {
- Mutation: {
- deleteTeam: (_r, { teamID }, cache, _info) => {
- cache.updateQuery(
- {
- query: gql`
- query {
- myTeams {
- id
- }
- }
- `,
- },
- (data: any) => {
- data.myTeams = (data as any).myTeams.filter(
- (x: any) => x.id !== teamID
- )
- return data
- }
- )
- cache.invalidate({
- __typename: "Team",
- id: teamID as any,
- })
- },
- leaveTeam: (_r, { teamID }, cache, _info) => {
- cache.updateQuery(
- {
- query: gql`
- query {
- myTeams {
- id
- }
- }
- `,
- },
- (data: any) => {
- data.myTeams = (data as any).myTeams.filter(
- (x: any) => x.id !== teamID
- )
- return data
- }
- )
- cache.invalidate({
- __typename: "Team",
- id: teamID as any,
- })
- },
- createTeam: (result, _args, cache, _info) => {
- cache.updateQuery(
- {
- query: gql`
- {
- myTeams {
- id
- }
- }
- `,
- },
- (data: any) => {
- data.myTeams.push(result.createTeam)
- return data
- }
- )
- },
- renameTeam: (_result, { teamID, newName }, cache, _info) => {
- cache.updateQuery(
- {
- query: gql`
- query GetTeam($teamID: ID!) {
- team(teamID: $teamID) {
- id
- name
- }
- }
- `,
- variables: {
- teamID,
- },
- },
- (data: any) => {
- data.team.name = newName
- return data
- }
- )
- },
- removeTeamMember: (_result, { userUid, teamID }, cache) => {
- cache.updateQuery(
- {
- query: gql`
- query GetTeam($teamID: ID!) {
- team(teamID: $teamID) {
- members {
- user {
- uid
- }
- }
- }
- }
- `,
- variables: {
- teamID,
- },
- },
- (data: any) => {
- data.team.members = data.team.members.filter(
- (x: any) => x.user.uid !== userUid
- )
- return data
- }
- )
- },
- updateTeamMemberRole: (result, { userUid, teamID }, cache) => {
- cache.updateQuery(
- {
- query: gql`
- query GetTeam($teamID: ID!) {
- team(teamID: $teamID) {
- members {
- user {
- uid
- }
- }
- }
- }
- `,
- variables: {
- teamID,
- },
- },
- (data: any) => {
- data.team.members = data.team.members.map((x: any) =>
- x.user.uid !== userUid ? x : result
- )
- return data
- }
- )
- },
- },
- }
|