62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
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,
|
|
};
|
|
},
|
|
};
|