summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/design_management
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/design_management')
-rw-r--r--app/assets/javascripts/design_management/components/design_destroyer.vue19
-rw-r--r--app/assets/javascripts/design_management/components/design_notes/design_discussion.vue2
-rw-r--r--app/assets/javascripts/design_management/components/design_notes/design_reply_form.vue6
-rw-r--r--app/assets/javascripts/design_management/components/design_presentation.vue2
-rw-r--r--app/assets/javascripts/design_management/components/design_sidebar.vue20
-rw-r--r--app/assets/javascripts/design_management/components/design_todo_button.vue23
-rw-r--r--app/assets/javascripts/design_management/components/toolbar/design_navigation.vue2
-rw-r--r--app/assets/javascripts/design_management/components/toolbar/index.vue18
-rw-r--r--app/assets/javascripts/design_management/components/upload/design_version_dropdown.vue2
-rw-r--r--app/assets/javascripts/design_management/graphql.js4
-rw-r--r--app/assets/javascripts/design_management/mixins/all_designs.js2
-rw-r--r--app/assets/javascripts/design_management/mixins/all_versions.js4
-rw-r--r--app/assets/javascripts/design_management/pages/design/index.vue62
-rw-r--r--app/assets/javascripts/design_management/pages/index.vue27
-rw-r--r--app/assets/javascripts/design_management/router/routes.js8
-rw-r--r--app/assets/javascripts/design_management/utils/cache_update.js28
-rw-r--r--app/assets/javascripts/design_management/utils/design_management_utils.js36
-rw-r--r--app/assets/javascripts/design_management/utils/error_messages.js4
18 files changed, 121 insertions, 148 deletions
diff --git a/app/assets/javascripts/design_management/components/design_destroyer.vue b/app/assets/javascripts/design_management/components/design_destroyer.vue
index 5d32bfd4a73..01f9cac456d 100644
--- a/app/assets/javascripts/design_management/components/design_destroyer.vue
+++ b/app/assets/javascripts/design_management/components/design_destroyer.vue
@@ -8,12 +8,6 @@ export default {
components: {
ApolloMutation,
},
- props: {
- filenames: {
- type: Array,
- required: true,
- },
- },
inject: {
projectPath: {
default: '',
@@ -23,6 +17,12 @@ export default {
defaut: '',
},
},
+ props: {
+ filenames: {
+ type: Array,
+ required: true,
+ },
+ },
computed: {
projectQueryBody() {
return {
@@ -32,12 +32,7 @@ export default {
},
},
methods: {
- updateStoreAfterDelete(
- store,
- {
- data: { designManagementDelete },
- },
- ) {
+ updateStoreAfterDelete(store, { data: { designManagementDelete } }) {
updateStoreAfterDesignsDelete(
store,
designManagementDelete,
diff --git a/app/assets/javascripts/design_management/components/design_notes/design_discussion.vue b/app/assets/javascripts/design_management/components/design_notes/design_discussion.vue
index 6aab4bf423e..ea4d5d7b570 100644
--- a/app/assets/javascripts/design_management/components/design_notes/design_discussion.vue
+++ b/app/assets/javascripts/design_management/components/design_notes/design_discussion.vue
@@ -171,7 +171,7 @@ export default {
this.$emit('resolve-discussion-error', data.errors[0]);
}
})
- .catch(err => {
+ .catch((err) => {
this.$emit('resolve-discussion-error', err);
})
.finally(() => {
diff --git a/app/assets/javascripts/design_management/components/design_notes/design_reply_form.vue b/app/assets/javascripts/design_management/components/design_notes/design_reply_form.vue
index 7aaac58a1ce..0cc89440754 100644
--- a/app/assets/javascripts/design_management/components/design_notes/design_reply_form.vue
+++ b/app/assets/javascripts/design_management/components/design_notes/design_reply_form.vue
@@ -2,6 +2,7 @@
import { GlButton, GlModal } from '@gitlab/ui';
import MarkdownField from '~/vue_shared/components/markdown/field.vue';
import { s__ } from '~/locale';
+import { helpPagePath } from '~/helpers/help_page_helper';
export default {
name: 'DesignReplyForm',
@@ -60,6 +61,9 @@ export default {
? s__('DesignManagement|Comment')
: s__('DesignManagement|Save comment');
},
+ markdownDocsPath() {
+ return helpPagePath('user/markdown');
+ },
},
mounted() {
this.focusInput();
@@ -89,7 +93,7 @@ export default {
:can-attach-file="false"
:enable-autocomplete="true"
:textarea-value="value"
- markdown-docs-path="/help/user/markdown"
+ :markdown-docs-path="markdownDocsPath"
class="bordered-box"
>
<template #textarea>
diff --git a/app/assets/javascripts/design_management/components/design_presentation.vue b/app/assets/javascripts/design_management/components/design_presentation.vue
index c4d904e0d91..a760adf8b14 100644
--- a/app/assets/javascripts/design_management/components/design_presentation.vue
+++ b/app/assets/javascripts/design_management/components/design_presentation.vue
@@ -58,7 +58,7 @@ export default {
},
computed: {
discussionStartingNotes() {
- return this.discussions.map(discussion => ({
+ return this.discussions.map((discussion) => ({
...discussion.notes[0],
index: discussion.index,
}));
diff --git a/app/assets/javascripts/design_management/components/design_sidebar.vue b/app/assets/javascripts/design_management/components/design_sidebar.vue
index 41dcec38abe..50b12fd739b 100644
--- a/app/assets/javascripts/design_management/components/design_sidebar.vue
+++ b/app/assets/javascripts/design_management/components/design_sidebar.vue
@@ -21,6 +21,14 @@ export default {
DesignTodoButton,
},
mixins: [glFeatureFlagsMixin()],
+ inject: {
+ projectPath: {
+ default: '',
+ },
+ issueIid: {
+ default: '',
+ },
+ },
props: {
design: {
type: Object,
@@ -41,14 +49,6 @@ export default {
discussionWithOpenForm: '',
};
},
- inject: {
- projectPath: {
- default: '',
- },
- issueIid: {
- default: '',
- },
- },
computed: {
discussions() {
return extractDiscussions(this.design.discussions);
@@ -63,10 +63,10 @@ export default {
return extractParticipants(this.issue.participants.nodes);
},
resolvedDiscussions() {
- return this.discussions.filter(discussion => discussion.resolved);
+ return this.discussions.filter((discussion) => discussion.resolved);
},
unresolvedDiscussions() {
- return this.discussions.filter(discussion => !discussion.resolved);
+ return this.discussions.filter((discussion) => !discussion.resolved);
},
resolvedCommentsToggleIcon() {
return this.resolvedDiscussionsExpanded ? 'chevron-down' : 'chevron-right';
diff --git a/app/assets/javascripts/design_management/components/design_todo_button.vue b/app/assets/javascripts/design_management/components/design_todo_button.vue
index aff4f348d15..db14db79989 100644
--- a/app/assets/javascripts/design_management/components/design_todo_button.vue
+++ b/app/assets/javascripts/design_management/components/design_todo_button.vue
@@ -13,12 +13,6 @@ export default {
TodoButton,
},
mixins: [allVersionsMixin],
- props: {
- design: {
- type: Object,
- required: true,
- },
- },
inject: {
projectPath: {
default: '',
@@ -27,6 +21,12 @@ export default {
default: '',
},
},
+ props: {
+ design: {
+ type: Object,
+ required: true,
+ },
+ },
data() {
return {
todoLoading: false,
@@ -95,7 +95,7 @@ export default {
.then(() => {
this.incrementGlobalTodoCount();
})
- .catch(err => {
+ .catch((err) => {
this.$emit('error', Error(CREATE_DESIGN_TODO_ERROR));
throw err;
})
@@ -116,12 +116,7 @@ export default {
variables: {
id,
},
- update(
- store,
- {
- data: { todoMarkDone },
- },
- ) {
+ update(store, { data: { todoMarkDone } }) {
const todoMarkDoneFirstError = (todoMarkDone.errors || [])[0];
if (todoMarkDoneFirstError) {
this.$emit('error', Error(todoMarkDoneFirstError));
@@ -138,7 +133,7 @@ export default {
.then(() => {
this.decrementGlobalTodoCount();
})
- .catch(err => {
+ .catch((err) => {
this.$emit('error', Error(DELETE_DESIGN_TODO_ERROR));
throw err;
})
diff --git a/app/assets/javascripts/design_management/components/toolbar/design_navigation.vue b/app/assets/javascripts/design_management/components/toolbar/design_navigation.vue
index 4edc2e410c7..6091a3183ac 100644
--- a/app/assets/javascripts/design_management/components/toolbar/design_navigation.vue
+++ b/app/assets/javascripts/design_management/components/toolbar/design_navigation.vue
@@ -26,7 +26,7 @@ export default {
return this.designs.length;
},
currentIndex() {
- return this.designs.findIndex(design => design.filename === this.id);
+ return this.designs.findIndex((design) => design.filename === this.id);
},
paginationText() {
return sprintf(s__('DesignManagement|%{current_design} of %{designs_count}'), {
diff --git a/app/assets/javascripts/design_management/components/toolbar/index.vue b/app/assets/javascripts/design_management/components/toolbar/index.vue
index 4caee863df8..3509a701984 100644
--- a/app/assets/javascripts/design_management/components/toolbar/index.vue
+++ b/app/assets/javascripts/design_management/components/toolbar/index.vue
@@ -18,6 +18,14 @@ export default {
GlTooltip: GlTooltipDirective,
},
mixins: [timeagoMixin],
+ inject: {
+ projectPath: {
+ default: '',
+ },
+ issueIid: {
+ default: '',
+ },
+ },
props: {
id: {
type: String,
@@ -58,14 +66,6 @@ export default {
},
};
},
- inject: {
- projectPath: {
- default: '',
- },
- issueIid: {
- default: '',
- },
- },
apollo: {
permissions: {
query: permissionsQuery,
@@ -75,7 +75,7 @@ export default {
iid: this.issueIid,
};
},
- update: data => data.project.issue.userPermissions,
+ update: (data) => data.project.issue.userPermissions,
},
},
computed: {
diff --git a/app/assets/javascripts/design_management/components/upload/design_version_dropdown.vue b/app/assets/javascripts/design_management/components/upload/design_version_dropdown.vue
index 4a1be7b720a..750f16bbe57 100644
--- a/app/assets/javascripts/design_management/components/upload/design_version_dropdown.vue
+++ b/app/assets/javascripts/design_management/components/upload/design_version_dropdown.vue
@@ -19,7 +19,7 @@ export default {
if (!this.queryVersion) return 0;
const idx = this.allVersions.findIndex(
- version => this.findVersionId(version.id) === this.queryVersion,
+ (version) => this.findVersionId(version.id) === this.queryVersion,
);
// if the currentVersionId isn't a valid version (i.e. not in allVersions)
diff --git a/app/assets/javascripts/design_management/graphql.js b/app/assets/javascripts/design_management/graphql.js
index d1fe977b969..b7aba315168 100644
--- a/app/assets/javascripts/design_management/graphql.js
+++ b/app/assets/javascripts/design_management/graphql.js
@@ -19,7 +19,7 @@ const resolvers = {
updateActiveDiscussion: (_, { id = null, source }, { cache }) => {
const sourceData = cache.readQuery({ query: activeDiscussionQuery });
- const data = produce(sourceData, draftData => {
+ const data = produce(sourceData, (draftData) => {
// eslint-disable-next-line no-param-reassign
draftData.activeDiscussion = {
__typename: 'ActiveDiscussion',
@@ -74,7 +74,7 @@ const defaultClient = createDefaultClient(
// Should be removed as soon as https://gitlab.com/gitlab-org/gitlab/issues/13495 is resolved
{
cacheConfig: {
- dataIdFromObject: object => {
+ dataIdFromObject: (object) => {
// eslint-disable-next-line no-underscore-dangle, @gitlab/require-i18n-strings
if (object.__typename === 'Design') {
return object.id && object.image ? `${object.id}-${object.image}` : uniqueId();
diff --git a/app/assets/javascripts/design_management/mixins/all_designs.js b/app/assets/javascripts/design_management/mixins/all_designs.js
index 466f61e21fa..4783382d563 100644
--- a/app/assets/javascripts/design_management/mixins/all_designs.js
+++ b/app/assets/javascripts/design_management/mixins/all_designs.js
@@ -17,7 +17,7 @@ export default {
atVersion: this.designsVersion,
};
},
- update: data => {
+ update: (data) => {
const designNodes = propertyOf(data)([
'project',
'issue',
diff --git a/app/assets/javascripts/design_management/mixins/all_versions.js b/app/assets/javascripts/design_management/mixins/all_versions.js
index 07cd0fc92bd..42cef35a08e 100644
--- a/app/assets/javascripts/design_management/mixins/all_versions.js
+++ b/app/assets/javascripts/design_management/mixins/all_versions.js
@@ -12,7 +12,7 @@ export default {
atVersion: null,
};
},
- update: data => data.project.issue.designCollection.versions.nodes,
+ update: (data) => data.project.issue.designCollection.versions.nodes,
},
},
inject: {
@@ -28,7 +28,7 @@ export default {
return (
this.$route.query.version &&
this.allVersions &&
- this.allVersions.some(version => version.id.endsWith(this.$route.query.version))
+ this.allVersions.some((version) => version.id.endsWith(this.$route.query.version))
);
},
designsVersion() {
diff --git a/app/assets/javascripts/design_management/pages/design/index.vue b/app/assets/javascripts/design_management/pages/design/index.vue
index fb86568c304..492ed2e8719 100644
--- a/app/assets/javascripts/design_management/pages/design/index.vue
+++ b/app/assets/javascripts/design_management/pages/design/index.vue
@@ -57,6 +57,27 @@ export default {
DesignSidebar,
},
mixins: [allVersionsMixin, glFeatureFlagsMixin()],
+ beforeRouteUpdate(to, from, next) {
+ // reset scale when the active design changes
+ this.scale = DEFAULT_SCALE;
+ next();
+ },
+ beforeRouteEnter(to, from, next) {
+ const pageEl = getPageLayoutElement();
+ if (pageEl) {
+ pageEl.classList.add(...DESIGN_DETAIL_LAYOUT_CLASSLIST);
+ }
+
+ next();
+ },
+ beforeRouteLeave(to, from, next) {
+ const pageEl = getPageLayoutElement();
+ if (pageEl) {
+ pageEl.classList.remove(...DESIGN_DETAIL_LAYOUT_CLASSLIST);
+ }
+
+ next();
+ },
props: {
id: {
type: String,
@@ -81,7 +102,7 @@ export default {
variables() {
return this.designVariables;
},
- update: data => extractDesign(data),
+ update: (data) => extractDesign(data),
result(res) {
this.onDesignQueryResult(res);
},
@@ -139,7 +160,7 @@ export default {
return Boolean(this.annotationCoordinates);
},
resolvedDiscussions() {
- return this.discussions.filter(discussion => discussion.resolved);
+ return this.discussions.filter((discussion) => discussion.resolved);
},
},
watch: {
@@ -161,18 +182,8 @@ export default {
beforeDestroy() {
Mousetrap.unbind('esc', this.closeDesign);
},
- beforeRouteUpdate(to, from, next) {
- // reset scale when the active design changes
- this.scale = DEFAULT_SCALE;
- next();
- },
methods: {
- addImageDiffNoteToStore(
- store,
- {
- data: { createImageDiffNote },
- },
- ) {
+ addImageDiffNoteToStore(store, { data: { createImageDiffNote } }) {
updateStoreAfterAddImageDiffNote(
store,
createImageDiffNote,
@@ -180,12 +191,7 @@ export default {
this.designVariables,
);
},
- updateImageDiffNoteInStore(
- store,
- {
- data: { repositionImageDiffNote },
- },
- ) {
+ updateImageDiffNoteInStore(store, { data: { repositionImageDiffNote } }) {
return updateStoreAfterRepositionImageDiffNote(
store,
repositionImageDiffNote,
@@ -213,7 +219,7 @@ export default {
update: this.updateImageDiffNoteInStore,
};
- return this.$apollo.mutate(mutationPayload).catch(e => this.onUpdateImageDiffNoteError(e));
+ return this.$apollo.mutate(mutationPayload).catch((e) => this.onUpdateImageDiffNoteError(e));
},
onDesignQueryResult({ data, loading }) {
// On the initial load with cache-and-network policy data is undefined while loading is true
@@ -306,22 +312,6 @@ export default {
this.resolvedDiscussionsExpanded = !this.resolvedDiscussionsExpanded;
},
},
- beforeRouteEnter(to, from, next) {
- const pageEl = getPageLayoutElement();
- if (pageEl) {
- pageEl.classList.add(...DESIGN_DETAIL_LAYOUT_CLASSLIST);
- }
-
- next();
- },
- beforeRouteLeave(to, from, next) {
- const pageEl = getPageLayoutElement();
- if (pageEl) {
- pageEl.classList.remove(...DESIGN_DETAIL_LAYOUT_CLASSLIST);
- }
-
- next();
- },
createImageDiffNoteMutation,
DESIGNS_ROUTE_NAME,
};
diff --git a/app/assets/javascripts/design_management/pages/index.vue b/app/assets/javascripts/design_management/pages/index.vue
index ea404692840..5c82a7331b6 100644
--- a/app/assets/javascripts/design_management/pages/index.vue
+++ b/app/assets/javascripts/design_management/pages/index.vue
@@ -69,9 +69,13 @@ export default {
iid: this.issueIid,
};
},
- update: data => data.project.issue.userPermissions,
+ update: (data) => data.project.issue.userPermissions,
},
},
+ beforeRouteUpdate(to, from, next) {
+ this.selectedDesigns = [];
+ next();
+ },
data() {
return {
permissions: {
@@ -184,15 +188,10 @@ export default {
return this.$apollo
.mutate(mutationPayload)
- .then(res => this.onUploadDesignDone(res))
+ .then((res) => this.onUploadDesignDone(res))
.catch(() => this.onUploadDesignError());
},
- afterUploadDesign(
- store,
- {
- data: { designManagementUpload },
- },
- ) {
+ afterUploadDesign(store, { data: { designManagementUpload } }) {
updateStoreAfterUploadDesign(store, designManagementUpload, this.projectQueryBody);
},
onUploadDesignDone(res) {
@@ -213,7 +212,7 @@ export default {
this.trackUploadDesign(res);
},
trackUploadDesign(res) {
- (res?.data?.designManagementUpload?.designs || []).forEach(design => {
+ (res?.data?.designManagementUpload?.designs || []).forEach((design) => {
if (design.event === 'CREATION') {
trackDesignCreate();
} else if (design.event === 'MODIFICATION') {
@@ -227,7 +226,7 @@ export default {
},
changeSelectedDesigns(filename) {
if (this.isDesignSelected(filename)) {
- this.selectedDesigns = this.selectedDesigns.filter(design => design !== filename);
+ this.selectedDesigns = this.selectedDesigns.filter((design) => design !== filename);
} else {
this.selectedDesigns.push(filename);
}
@@ -236,14 +235,14 @@ export default {
if (this.hasSelectedDesigns) {
this.selectedDesigns = [];
} else {
- this.selectedDesigns = this.designs.map(design => design.filename);
+ this.selectedDesigns = this.designs.map((design) => design.filename);
}
},
isDesignSelected(filename) {
return this.selectedDesigns.includes(filename);
},
isDesignToBeSaved(filename) {
- return this.filesToBeSaved.some(file => file.name === filename);
+ return this.filesToBeSaved.some((file) => file.name === filename);
},
canSelectDesign(filename) {
return this.isLatestVersion && this.canCreateDesign && !this.isDesignToBeSaved(filename);
@@ -329,10 +328,6 @@ export default {
this.reorderedDesigns = designs;
},
},
- beforeRouteUpdate(to, from, next) {
- this.selectedDesigns = [];
- next();
- },
dragOptions: {
animation: 200,
ghostClass: 'gl-visibility-hidden',
diff --git a/app/assets/javascripts/design_management/router/routes.js b/app/assets/javascripts/design_management/router/routes.js
index d888b856611..1b07d8aeb76 100644
--- a/app/assets/javascripts/design_management/router/routes.js
+++ b/app/assets/javascripts/design_management/router/routes.js
@@ -13,13 +13,7 @@ export default [
name: DESIGN_ROUTE_NAME,
path: '/designs/:id',
component: DesignDetail,
- beforeEnter(
- {
- params: { id },
- },
- _,
- next,
- ) {
+ beforeEnter({ params: { id } }, _, next) {
if (typeof id === 'string') {
next();
}
diff --git a/app/assets/javascripts/design_management/utils/cache_update.js b/app/assets/javascripts/design_management/utils/cache_update.js
index 5bd0288d037..0c4ee0bf012 100644
--- a/app/assets/javascripts/design_management/utils/cache_update.js
+++ b/app/assets/javascripts/design_management/utils/cache_update.js
@@ -11,14 +11,14 @@ import {
designDeletionError,
} from './error_messages';
-const designsOf = data => data.project.issue.designCollection.designs;
+const designsOf = (data) => data.project.issue.designCollection.designs;
const deleteDesignsFromStore = (store, query, selectedDesigns) => {
const sourceData = store.readQuery(query);
- const data = produce(sourceData, draftData => {
+ const data = produce(sourceData, (draftData) => {
const changedDesigns = designsOf(sourceData).nodes.filter(
- design => !selectedDesigns.includes(design.filename),
+ (design) => !selectedDesigns.includes(design.filename),
);
designsOf(draftData).nodes = [...changedDesigns];
});
@@ -40,7 +40,7 @@ const addNewVersionToStore = (store, query, version) => {
if (!version) return;
const sourceData = store.readQuery(query);
- const data = produce(sourceData, draftData => {
+ const data = produce(sourceData, (draftData) => {
// eslint-disable-next-line no-param-reassign
draftData.project.issue.designCollection.versions.nodes = [
version,
@@ -74,14 +74,14 @@ const addImageDiffNoteToStore = (store, createImageDiffNote, query, variables) =
},
};
- const data = produce(sourceData, draftData => {
+ const data = produce(sourceData, (draftData) => {
const design = extractDesign(draftData);
design.notesCount += 1;
design.discussions.nodes = [...design.discussions.nodes, newDiscussion];
if (
!design.issue.participants.nodes.some(
- participant => participant.username === createImageDiffNote.note.author.username,
+ (participant) => participant.username === createImageDiffNote.note.author.username,
)
) {
design.issue.participants.nodes = [
@@ -107,7 +107,7 @@ const updateImageDiffNoteInStore = (store, repositionImageDiffNote, query, varia
variables,
});
- const data = produce(sourceData, draftData => {
+ const data = produce(sourceData, (draftData) => {
const design = extractDesign(draftData);
const discussion = extractCurrentDiscussion(
design.discussions,
@@ -130,18 +130,18 @@ const updateImageDiffNoteInStore = (store, repositionImageDiffNote, query, varia
const addNewDesignToStore = (store, designManagementUpload, query) => {
const sourceData = store.readQuery(query);
- const data = produce(sourceData, draftData => {
+ const data = produce(sourceData, (draftData) => {
const currentDesigns = extractDesigns(draftData);
const difference = differenceBy(designManagementUpload.designs, currentDesigns, 'filename');
const newDesigns = currentDesigns
- .map(design => {
- return designManagementUpload.designs.find(d => d.filename === design.filename) || design;
+ .map((design) => {
+ return designManagementUpload.designs.find((d) => d.filename === design.filename) || design;
})
.concat(difference);
let newVersionNode;
- const findNewVersions = designManagementUpload.designs.find(design => design.versions);
+ const findNewVersions = designManagementUpload.designs.find((design) => design.versions);
if (findNewVersions) {
const findNewVersionsNodes = findNewVersions.versions.nodes;
@@ -181,7 +181,7 @@ const addNewDesignToStore = (store, designManagementUpload, query) => {
const moveDesignInStore = (store, designManagementMove, query) => {
const sourceData = store.readQuery(query);
- const data = produce(sourceData, draftData => {
+ const data = produce(sourceData, (draftData) => {
// eslint-disable-next-line no-param-reassign
draftData.project.issue.designCollection.designs =
designManagementMove.designCollection.designs;
@@ -199,7 +199,7 @@ export const addPendingTodoToStore = (store, pendingTodo, query, queryVariables)
variables: queryVariables,
});
- const data = produce(sourceData, draftData => {
+ const data = produce(sourceData, (draftData) => {
const design = extractDesign(draftData);
const existingTodos = design.currentUserTodos?.nodes || [];
const newTodoNodes = [...existingTodos, { ...pendingTodo, __typename: 'Todo' }];
@@ -226,7 +226,7 @@ export const deletePendingTodoFromStore = (store, todoMarkDone, query, queryVari
const {
todo: { id: todoId },
} = todoMarkDone;
- const data = produce(sourceData, draftData => {
+ const data = produce(sourceData, (draftData) => {
const design = extractDesign(draftData);
const existingTodos = design.currentUserTodos?.nodes || [];
diff --git a/app/assets/javascripts/design_management/utils/design_management_utils.js b/app/assets/javascripts/design_management/utils/design_management_utils.js
index a905230811c..05b220801f2 100644
--- a/app/assets/javascripts/design_management/utils/design_management_utils.js
+++ b/app/assets/javascripts/design_management/utils/design_management_utils.js
@@ -10,7 +10,7 @@ export const isValidDesignFile = ({ type }) =>
* @param {Array} discussions
*/
-export const extractDiscussions = discussions =>
+export const extractDiscussions = (discussions) =>
discussions.nodes.map((discussion, index) => ({
...discussion,
index: index + 1,
@@ -24,27 +24,27 @@ export const extractDiscussions = discussions =>
*/
export const extractCurrentDiscussion = (discussions, id) =>
- discussions.nodes.find(discussion => discussion.id === id);
+ discussions.nodes.find((discussion) => discussion.id === id);
-export const findVersionId = id => (id.match('::Version/(.+$)') || [])[1];
+export const findVersionId = (id) => (id.match('::Version/(.+$)') || [])[1];
-export const findNoteId = id => (id.match('DiffNote/(.+$)') || [])[1];
+export const findNoteId = (id) => (id.match('DiffNote/(.+$)') || [])[1];
-export const findIssueId = id => (id.match('Issue/(.+$)') || [])[1];
+export const findIssueId = (id) => (id.match('Issue/(.+$)') || [])[1];
-export const findDesignId = id => (id.match('Design/(.+$)') || [])[1];
+export const findDesignId = (id) => (id.match('Design/(.+$)') || [])[1];
-export const extractDesigns = data => data.project.issue.designCollection.designs.nodes;
+export const extractDesigns = (data) => data.project.issue.designCollection.designs.nodes;
-export const extractDesign = data => (extractDesigns(data) || [])[0];
+export const extractDesign = (data) => (extractDesigns(data) || [])[0];
-export const toDiffNoteGid = noteId => `gid://gitlab/DiffNote/${noteId}`;
+export const toDiffNoteGid = (noteId) => `gid://gitlab/DiffNote/${noteId}`;
/**
* Return the note ID from a URL hash parameter
* @param {String} urlHash URL hash, including `#` prefix
*/
-export const extractDesignNoteId = urlHash => {
+export const extractDesignNoteId = (urlHash) => {
const [, noteId] = urlHash.match('#note_([0-9]+$)') || [];
return noteId || null;
};
@@ -53,8 +53,8 @@ export const extractDesignNoteId = urlHash => {
* Generates optimistic response for a design upload mutation
* @param {Array<File>} files
*/
-export const designUploadOptimisticResponse = files => {
- const designs = files.map(file => ({
+export const designUploadOptimisticResponse = (files) => {
+ const designs = files.map((file) => ({
// False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26
// eslint-disable-next-line @gitlab/require-i18n-strings
__typename: 'Design',
@@ -128,7 +128,7 @@ export const repositionImageDiffNoteOptimisticResponse = (note, { position }) =>
* Generates optimistic response for a design upload mutation
* @param {Array} designs
*/
-export const moveDesignOptimisticResponse = designs => ({
+export const moveDesignOptimisticResponse = (designs) => ({
// False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26
// eslint-disable-next-line @gitlab/require-i18n-strings
__typename: 'Mutation',
@@ -145,13 +145,13 @@ export const moveDesignOptimisticResponse = designs => ({
},
});
-const normalizeAuthor = author => ({
+const normalizeAuthor = (author) => ({
...author,
web_url: author.webUrl,
avatar_url: author.avatarUrl,
});
-export const extractParticipants = users => users.map(node => normalizeAuthor(node));
+export const extractParticipants = (users) => users.map((node) => normalizeAuthor(node));
export const getPageLayoutElement = () => document.querySelector('.layout-page');
@@ -160,14 +160,14 @@ export const getPageLayoutElement = () => document.querySelector('.layout-page')
* Example of todoDeletePath: /delete/1234
* @param {String} todoDeletePath delete_path from REST API response
*/
-export const extractTodoIdFromDeletePath = todoDeletePath =>
+export const extractTodoIdFromDeletePath = (todoDeletePath) =>
(todoDeletePath.match('todos/([0-9]+$)') || [])[1];
-const createTodoGid = todoId => {
+const createTodoGid = (todoId) => {
return `gid://gitlab/Todo/${todoId}`;
};
-export const createPendingTodo = todoId => {
+export const createPendingTodo = (todoId) => {
return {
__typename: 'Todo', // eslint-disable-line @gitlab/require-i18n-strings
id: createTodoGid(todoId),
diff --git a/app/assets/javascripts/design_management/utils/error_messages.js b/app/assets/javascripts/design_management/utils/error_messages.js
index bd21d711462..cb4bb6e26a8 100644
--- a/app/assets/javascripts/design_management/utils/error_messages.js
+++ b/app/assets/javascripts/design_management/utils/error_messages.js
@@ -54,7 +54,7 @@ export const TOGGLE_TODO_ERROR = __('Failed to toggle To-Do for the design.');
const MAX_SKIPPED_FILES_LISTINGS = 5;
-const oneDesignSkippedMessage = filename =>
+const oneDesignSkippedMessage = (filename) =>
`${DESIGN_UPLOAD_SKIPPED_MESSAGE} ${sprintf(s__('DesignManagement|%{filename} did not change.'), {
filename,
})}`;
@@ -64,7 +64,7 @@ const oneDesignSkippedMessage = filename =>
* files were skipped.
* @param {Array<{ filename }>} skippedFiles
*/
-const someDesignsSkippedMessage = skippedFiles => {
+const someDesignsSkippedMessage = (skippedFiles) => {
const designsSkippedMessage = `${DESIGN_UPLOAD_SKIPPED_MESSAGE} ${s__(
'Some of the designs you tried uploading did not change:',
)}`;