summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/abuse_reports/components/abuse_category_selector.vue
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/abuse_reports/components/abuse_category_selector.vue')
-rw-r--r--app/assets/javascripts/abuse_reports/components/abuse_category_selector.vue26
1 files changed, 19 insertions, 7 deletions
diff --git a/app/assets/javascripts/abuse_reports/components/abuse_category_selector.vue b/app/assets/javascripts/abuse_reports/components/abuse_category_selector.vue
index c716afbbcf0..4a7c12e5e51 100644
--- a/app/assets/javascripts/abuse_reports/components/abuse_category_selector.vue
+++ b/app/assets/javascripts/abuse_reports/components/abuse_category_selector.vue
@@ -18,14 +18,17 @@ export default {
reportAbusePath: {
default: '',
},
+ },
+ props: {
reportedUserId: {
- default: '',
+ type: Number,
+ required: true,
},
reportedFromUrl: {
+ type: String,
+ required: false,
default: '',
},
- },
- props: {
showDrawer: {
type: Boolean,
required: true,
@@ -39,8 +42,8 @@ export default {
},
categoryOptions: [
{ value: 'spam', text: s__("ReportAbuse|They're posting spam.") },
- { value: 'offensive', text: s__("ReportAbuse|They're being offsensive or abusive.") },
- { value: 'phishing', text: s__("ReportAbuse|They're phising.") },
+ { value: 'offensive', text: s__("ReportAbuse|They're being offensive or abusive.") },
+ { value: 'phishing', text: s__("ReportAbuse|They're phishing.") },
{ value: 'crypto', text: s__("ReportAbuse|They're crypto mining.") },
{
value: 'credentials',
@@ -53,13 +56,22 @@ export default {
data() {
return {
selected: '',
+ mounted: false,
};
},
computed: {
drawerOffsetTop() {
+ // avoid calculating this in advance because it causes layout thrashing
+ // https://gitlab.com/gitlab-org/gitlab/-/issues/331172#note_1269378396
+ if (!this.showDrawer) return '0';
return getContentWrapperHeight('.content-wrapper');
},
},
+ mounted() {
+ // this is required for the component to properly animate
+ // when it is shown with v-if
+ this.mounted = true;
+ },
methods: {
closeDrawer() {
this.$emit('close-drawer');
@@ -71,7 +83,7 @@ export default {
<gl-drawer
:header-height="drawerOffsetTop"
:z-index="300"
- :open="showDrawer"
+ :open="showDrawer && mounted"
@close="closeDrawer"
>
<template #title>
@@ -94,7 +106,7 @@ export default {
data-testid="input-referer"
/>
- <gl-form-group :label="$options.i18n.label">
+ <gl-form-group :label="$options.i18n.label" label-class="gl-text-black-normal">
<gl-form-radio-group
v-model="selected"
:options="$options.categoryOptions"