diff --git a/src/web/bookform.ts b/src/web/bookform.ts index 72974a6..df924e0 100644 --- a/src/web/bookform.ts +++ b/src/web/bookform.ts @@ -1,4 +1,4 @@ -import { component, html, useState } from 'haunted'; +import { component, html } from 'haunted'; import { spread } from '@open-wc/lit-helpers'; import { useMutation } from '@apollo/react-hooks'; @@ -7,45 +7,42 @@ import { AddBook, GetBooks } from './queries' import Css from './bookform.scss'; const BookForm = () => { - const [titleProps, titleMeta] = useFormField("title"); - const [authorProps, authorMeta] = useFormField("author"); - const [addBook, { loading }] = useMutation(AddBook); + const [titleProps, { reset: resetAuthor, isDirty: dirtyAuthor}] = useFormField("title"); + const [authorProps, { reset: resetTitle, isDirty: dirtyTitle}] = useFormField("author"); + const [addBook, { loading }] = useMutation(AddBook, { + update: (cache, { data }) => { + const { books }: any = cache.readQuery({ query: GetBooks }); + cache.writeQuery({ + query: GetBooks, + data: { books: [...books, data.addBook] } + }); + } + }); return html`