diff --git a/client/src/components/modules/Module.vue b/client/src/components/modules/Module.vue index ebead69c..b2e0eb10 100644 --- a/client/src/components/modules/Module.vue +++ b/client/src/components/modules/Module.vue @@ -52,6 +52,7 @@ import {withoutOwnerFirst} from '@/helpers/sorting'; import BookmarkActions from '@/components/notes/BookmarkActions'; + import meMixin from '@/mixins/me'; export default { @@ -65,20 +66,15 @@ default: false } }, + + mixins: [meMixin], + components: { BookmarkActions, ObjectiveGroups, Chapter }, - data() { - return { - me: { - permissions: [] - } - } - }, - computed: { languageCommunicationObjectiveGroups() { return this.module.objectiveGroups ? this.module.objectiveGroups @@ -114,11 +110,21 @@ id: moduleId } }, - update(store, {data: {updateLastModule: {module}}}) { - if (module) { + update(store, {data: {updateLastModule: {lastModule}}}) { + if (lastModule) { const data = store.readQuery({query: ME_QUERY}); if (data) { - data.me.lastModule = module; + data.me.lastModule = lastModule; + let recentModules = data.me.recentModules.edges; + let index = recentModules.findIndex(element => element.node.id === lastModule.id); + if (index > -1) { + recentModules = [...recentModules.slice(0, index), ...recentModules.slice(index + 1)] + } + recentModules.unshift({ + __typename: 'ModuleNodeEdge', + node: lastModule + }); + data.me.recentModules.edges = recentModules; store.writeQuery({query: ME_QUERY, data}); } } @@ -199,12 +205,6 @@ this.$store.dispatch('editNote', this.module.bookmark.note); }, }, - - apollo: { - me: { - query: ME_QUERY, - } - }, } diff --git a/client/src/graphql/gql/mutations/updateLastModule.gql b/client/src/graphql/gql/mutations/updateLastModule.gql index 2ea683c9..635c338b 100644 --- a/client/src/graphql/gql/mutations/updateLastModule.gql +++ b/client/src/graphql/gql/mutations/updateLastModule.gql @@ -1,9 +1,8 @@ #import "../fragments/moduleParts.gql" mutation UpdateLastModule($input: UpdateLastModuleInput!) { updateLastModule(input: $input) { - module { + lastModule { ...ModuleParts } - errors } }