import getDesignListQuery from '../graphql/queries/get_design_list.query.graphql'; import appDataQuery from '../graphql/queries/appData.query.graphql'; import { findVersionId } from '../utils/design_management_utils'; export default { apollo: { appData: { query: appDataQuery, manual: true, result({ data: { projectPath, issueIid } }) { this.projectPath = projectPath; this.issueIid = issueIid; }, }, allVersions: { query: getDesignListQuery, variables() { return { fullPath: this.projectPath, iid: this.issueIid, atVersion: null, }; }, update: data => data.project.issue.designCollection.versions.edges, }, }, computed: { hasValidVersion() { return ( this.$route.query.version && this.allVersions && this.allVersions.some(version => version.node.id.endsWith(this.$route.query.version)) ); }, designsVersion() { return this.hasValidVersion ? `gid://gitlab/DesignManagement::Version/${this.$route.query.version}` : null; }, latestVersionId() { const latestVersion = this.allVersions[0]; return latestVersion && findVersionId(latestVersion.node.id); }, isLatestVersion() { if (this.allVersions.length > 0) { return ( !this.$route.query.version || !this.latestVersionId || this.$route.query.version === this.latestVersionId ); } return true; }, }, data() { return { allVersions: [], projectPath: '', issueIid: null, }; }, };