import { useQuery, useResult, useMutation } from '@vue/apollo-composable' import gql from 'graphql-tag' export interface UseTeamsOptions { fragment?: string } export function useTeams (options: UseTeamsOptions = {}) { const query = useQuery(gql` query currentUserTeams { currentUser { id teams { id name email logo ${options.fragment || ''} } } } `) return { ...query, teams: useResult(query.result, [], data => data.currentUser.teams), } } export interface UseFirstTeamOptions { fragment?: string } export function useFirstTeam (options: UseFirstTeamOptions = {}) { const query = useQuery(gql` query currentUserFirstTeam { currentUser { id firstTeam { id name email logo ${options.fragment || ''} } } } `) return { ...query, firstTeam: useResult(query.result, null, data => data.currentUser.firstTeam), } } export interface TeamInput { name: string email?: string logo?: any description?: string info: any } export interface UseCreateTeamOptions { fragment?: string } export interface CreateTeamInput { team: TeamInput } export function useCreateTeam (options: UseCreateTeamOptions = {}) { const mutation = useMutation(gql` mutation createTeam ($input: CreateTeamInput!) { createTeam (input: $input) { id name email logo ${options.fragment || ''} } } `) return { ...mutation, } } export interface UseEditTeamOptions { fragment?: string } export interface EditTeamInput { id: string team: TeamInput } export function useEditTeam (options: UseEditTeamOptions = {}) { const mutation = useMutation(gql` mutation editTeam ($input: EditTeamInput!) { editTeam (input: $input) { id name email logo ${options.fragment || ''} } } `) return { ...mutation, } }