optimistic result, cache update

This commit is contained in:
Ben Ramey
2018-06-04 06:20:49 -05:00
committed by benjaminramey
parent fc7d954698
commit 1cfe7a3fad

View File

@@ -2,6 +2,7 @@
<div id="start"> <div id="start">
<a href="#">start a lunch run</a> <a href="#">start a lunch run</a>
<div v-if="$apollo.queries.runs.loading">Loading...</div>
<ul> <ul>
<li v-for="run in runs" :key="run.id"> <li v-for="run in runs" :key="run.id">
{{ run.name }} {{ run.name }}
@@ -13,6 +14,7 @@
<input type='text' name='name' id='name' v-model='name'/> <input type='text' name='name' id='name' v-model='name'/>
<input type='submit' value='Add Run'/> <input type='submit' value='Add Run'/>
</form> </form>
</div> </div>
</template> </template>
@@ -23,7 +25,8 @@ export default {
name: 'Start', name: 'Start',
data () { data () {
return { return {
name: '' name: '',
runs: []
} }
}, },
methods: { methods: {
@@ -33,6 +36,19 @@ export default {
mutation: createRun, mutation: createRun,
variables: { variables: {
name: name name: name
},
update: (store, { data: { createRun } }) => {
const data = store.readQuery({ query: listRuns })
data.listRuns.items.push(createRun)
store.writeQuery({ query: listRuns, data })
},
optimisticResponse: {
__typename: 'Mutation',
createRun: {
__typename: 'Run',
id: -1,
name: name
}
} }
}).then((data) => { }).then((data) => {
console.log(data) console.log(data)