From d26f59fb507280aacb2acf47f3050ad1ec974f72 Mon Sep 17 00:00:00 2001
From: Julia Miocene <jmiocene@gitlab.com>
Date: Mon, 9 Sep 2024 20:35:28 +0000
Subject: [PATCH] Migrate admin Projects, Users and Groups empty result page to
 EmptyResult component

---
 .../vue_shared/components/users_table/users_table.vue | 11 ++++-------
 app/views/admin/groups/index.html.haml                |  3 +--
 app/views/admin/projects/_projects.html.haml          |  3 +--
 locale/gitlab.pot                                     |  6 ------
 .../components/users_table/users_table_spec.js        |  5 +++--
 5 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/app/assets/javascripts/vue_shared/components/users_table/users_table.vue b/app/assets/javascripts/vue_shared/components/users_table/users_table.vue
index ac523e9af0167..6709fdde1d271 100644
--- a/app/assets/javascripts/vue_shared/components/users_table/users_table.vue
+++ b/app/assets/javascripts/vue_shared/components/users_table/users_table.vue
@@ -1,7 +1,8 @@
 <script>
 import NO_USERS_SVG from '@gitlab/svgs/dist/illustrations/empty-state/empty-user-settings-md.svg';
-import { GlSkeletonLoader, GlTable, GlEmptyState } from '@gitlab/ui';
+import { GlSkeletonLoader, GlTable } from '@gitlab/ui';
 import { __ } from '~/locale';
+import EmptyResult from '~/vue_shared/components/empty_result.vue';
 import UserDate from '~/vue_shared/components/user_date.vue';
 import UserAvatar from './user_avatar.vue';
 
@@ -11,7 +12,7 @@ export default {
     GlTable,
     UserAvatar,
     UserDate,
-    GlEmptyState,
+    EmptyResult,
   },
   props: {
     users: {
@@ -106,9 +107,5 @@ export default {
       <slot name="user-actions" :user="user"></slot>
     </template>
   </gl-table>
-  <gl-empty-state
-    v-else
-    :svg-path="$options.NO_USERS_SVG"
-    :title="s__('AdminUsers|No users found')"
-  />
+  <empty-result v-else />
 </template>
diff --git a/app/views/admin/groups/index.html.haml b/app/views/admin/groups/index.html.haml
index 3d766665aee19..2e7584eeac295 100644
--- a/app/views/admin/groups/index.html.haml
+++ b/app/views/admin/groups/index.html.haml
@@ -19,7 +19,6 @@
   %ul.content-list
     = render @groups
 - else
-  = render Pajamas::EmptyStateComponent.new(svg_path: 'illustrations/empty-state/empty-groups-md.svg',
-      title: _('No groups found'))
+  = render ::Layouts::EmptyResultComponent.new(type: :search)
 
 = paginate @groups, theme: "gitlab"
diff --git a/app/views/admin/projects/_projects.html.haml b/app/views/admin/projects/_projects.html.haml
index 1fd65a787efcf..66644d9691fce 100644
--- a/app/views/admin/projects/_projects.html.haml
+++ b/app/views/admin/projects/_projects.html.haml
@@ -30,7 +30,6 @@
 
     = paginate @projects, theme: 'gitlab'
   - else
-    = render Pajamas::EmptyStateComponent.new(svg_path: 'illustrations/empty-state/empty-projects-md.svg',
-      title: _('No projects found'))
+    = render ::Layouts::EmptyResultComponent.new(type: :search)
 
   #delete-project-modal
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 5667dc3f8b89f..334b18b231876 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -4627,9 +4627,6 @@ msgstr ""
 msgid "AdminUsers|New user"
 msgstr ""
 
-msgid "AdminUsers|No users found"
-msgstr ""
-
 msgid "AdminUsers|Owned groups will be left"
 msgstr ""
 
@@ -35886,9 +35883,6 @@ msgstr ""
 msgid "No group provided"
 msgstr ""
 
-msgid "No groups found"
-msgstr ""
-
 msgid "No groups or projects found"
 msgstr ""
 
diff --git a/spec/frontend/vue_shared/components/users_table/users_table_spec.js b/spec/frontend/vue_shared/components/users_table/users_table_spec.js
index 45d1d291d47b7..d557f9e167aa1 100644
--- a/spec/frontend/vue_shared/components/users_table/users_table_spec.js
+++ b/spec/frontend/vue_shared/components/users_table/users_table_spec.js
@@ -1,4 +1,5 @@
 import { GlTable, GlSkeletonLoader } from '@gitlab/ui';
+import EmptyResult from '~/vue_shared/components/empty_result.vue';
 import { mountExtended } from 'helpers/vue_test_utils_helper';
 import UsersTable from '~/vue_shared/components/users_table/users_table.vue';
 import UserAvatar from '~/vue_shared/components/users_table/user_avatar.vue';
@@ -56,8 +57,8 @@ describe('UsersTable component', () => {
       initComponent({ users: [] });
     });
 
-    it('renders a "No users found" message', () => {
-      expect(wrapper.text()).toContain('No users found');
+    it('renders EmptyResult component', () => {
+      expect(wrapper.findComponent(EmptyResult).exists()).toBe(true);
     });
   });
 
-- 
GitLab