diff options
Diffstat (limited to 'app/assets/javascripts/graphql_shared/issuable_client.js')
-rw-r--r-- | app/assets/javascripts/graphql_shared/issuable_client.js | 38 |
1 files changed, 10 insertions, 28 deletions
diff --git a/app/assets/javascripts/graphql_shared/issuable_client.js b/app/assets/javascripts/graphql_shared/issuable_client.js index 3b737dfff33..15e7ef7d62c 100644 --- a/app/assets/javascripts/graphql_shared/issuable_client.js +++ b/app/assets/javascripts/graphql_shared/issuable_client.js @@ -1,16 +1,18 @@ import produce from 'immer'; import VueApollo from 'vue-apollo'; +import { defaultDataIdFromObject } from '@apollo/client/core'; import { concatPagination } from '@apollo/client/utilities'; import getIssueStateQuery from '~/issues/show/queries/get_issue_state.query.graphql'; import createDefaultClient from '~/lib/graphql'; import typeDefs from '~/work_items/graphql/typedefs.graphql'; -import { WIDGET_TYPE_MILESTONE } from '~/work_items/constants'; -export const temporaryConfig = { +export const config = { typeDefs, cacheConfig: { - possibleTypes: { - LocalWorkItemWidget: ['LocalWorkItemMilestone'], + // included temporarily until Vuex is removed from boards app + dataIdFromObject: (object) => { + // eslint-disable-next-line no-underscore-dangle + return object.__typename === 'BoardList' ? object.iid : defaultDataIdFromObject(object); }, typePolicies: { Project: { @@ -22,35 +24,15 @@ export const temporaryConfig = { }, WorkItem: { fields: { - mockWidgets: { - read(widgets) { - return ( - widgets || [ - { - __typename: 'LocalWorkItemMilestone', - type: WIDGET_TYPE_MILESTONE, - nodes: [ - { - dueDate: null, - expired: false, - id: 'gid://gitlab/Milestone/30', - title: 'v4.0', - // eslint-disable-next-line @gitlab/require-i18n-strings - __typename: 'Milestone', - }, - ], - }, - ] - ); - }, - }, widgets: { merge(existing = [], incoming) { if (existing.length === 0) { return incoming; } return existing.map((existingWidget) => { - const incomingWidget = incoming.find((w) => w.type === existingWidget.type); + const incomingWidget = incoming.find( + (w) => w.type && w.type === existingWidget.type, + ); return incomingWidget || existingWidget; }); }, @@ -78,7 +60,7 @@ export const resolvers = { }, }; -export const defaultClient = createDefaultClient(resolvers, temporaryConfig); +export const defaultClient = createDefaultClient(resolvers, config); export const apolloProvider = new VueApollo({ defaultClient, |