summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/admin/users/components/modals/user_modal_manager.vue
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/admin/users/components/modals/user_modal_manager.vue')
-rw-r--r--app/assets/javascripts/admin/users/components/modals/user_modal_manager.vue77
1 files changed, 0 insertions, 77 deletions
diff --git a/app/assets/javascripts/admin/users/components/modals/user_modal_manager.vue b/app/assets/javascripts/admin/users/components/modals/user_modal_manager.vue
deleted file mode 100644
index 1dfea3f1e7b..00000000000
--- a/app/assets/javascripts/admin/users/components/modals/user_modal_manager.vue
+++ /dev/null
@@ -1,77 +0,0 @@
-<script>
-import DeleteUserModal from './delete_user_modal.vue';
-
-export default {
- components: { DeleteUserModal },
- props: {
- modalConfiguration: {
- required: true,
- type: Object,
- },
- csrfToken: {
- required: true,
- type: String,
- },
- selector: {
- required: true,
- type: String,
- },
- },
- data() {
- return {
- currentModalData: null,
- };
- },
- computed: {
- activeModal() {
- return Boolean(this.currentModalData);
- },
-
- modalProps() {
- const { glModalAction: requestedAction } = this.currentModalData;
- return {
- ...this.modalConfiguration[requestedAction],
- ...this.currentModalData,
- csrfToken: this.csrfToken,
- };
- },
- },
-
- mounted() {
- /*
- * Here we're looking for every button that needs to launch a modal
- * on click, and then attaching a click event handler to show the modal
- * if it's correctly configured.
- *
- * TODO: Replace this with integrated modal components https://gitlab.com/gitlab-org/gitlab/-/issues/320922
- */
- document.querySelectorAll(this.selector).forEach((button) => {
- button.addEventListener('click', (e) => {
- if (!button.dataset.glModalAction) return;
-
- e.preventDefault();
- this.show(button.dataset);
- });
- });
- },
-
- methods: {
- show(modalData) {
- const { glModalAction: requestedAction } = modalData;
-
- if (!this.modalConfiguration[requestedAction]) {
- throw new Error(`Modal action ${requestedAction} has no configuration in HTML`);
- }
-
- this.currentModalData = modalData;
-
- return this.$nextTick().then(() => {
- this.$refs.modal.show();
- });
- },
- },
-};
-</script>
-<template>
- <delete-user-modal v-if="activeModal" ref="modal" v-bind="modalProps" />
-</template>