Skip to content

habx/apollo-refetch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Utils for apollo queries refetching

CircleCI Version Size License

Motivation

Displaying lists with apollo client is really common but it can be very hard to update theses lists with new data or retrieve data from it. We wanted to be able to display data that is always server-sync even if the list has parameters.

Install

npm i @habx/apollo-refetch

Wrap your App with the context provider

  <RefetchProvider>
    {children}
  </RefetchProvider>

How to use

First register your query

 const { refetch, ... } = useQuery<contacts, contactsVariables>(contactsQuery, {
    variables: {
      filters: state.filters,
      paginate: state.paginate,
      orderBy: state.orderBy,
    },
  })
  useRegisterRefetch('contacts', refetch)

Then when you add, remove an element

  const { refetch } = useRefetch()
  const [handleUpsertContact] = useMutation<
    upsertContact,
    upsertContactVariabes
  >(upsertContactMutation, { onCompleted: () => refetch('users')})

And you're done ๐Ÿ‘

โš ๏ธ It's not useful to use useRefetch when the operation is an update of an existing entity, apollo updates it automatically

About

๐Ÿ”„ Apollo client hooks to refetch queries

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 11