diff --git a/app/views/admin/users/index.html.erb b/app/views/admin/users/index.html.erb
index 7e5b6dda7..1de6e8a32 100644
--- a/app/views/admin/users/index.html.erb
+++ b/app/views/admin/users/index.html.erb
@@ -1,33 +1,73 @@
-
- People
- <%= render "menu" %>
-
+<% if FeatureFlag.enabled?(:member_index_view) %>
+
+
+ Members
+ <%= render "admin/users/index/tabs" %>
+
-<%= paginate @users, theme: "internal" %>
+ <%= render "admin/users/index/controls" %>
-
-
-
- | Username |
- ID |
- Name |
- Twitter |
- GitHub |
- Email |
-
-
-
- <% @users.each do |user| %>
-
- | <%= link_to user.username, admin_user_path(user) %> |
- <%= user.id %> |
- <%= user.name %> |
- <%= user_twitter_link(user) %> |
- <%= user_github_link(user) %> |
- <%= user.email %> |
-
- <% end %>
-
-
+ <%= paginate @users, theme: "internal" %>
-<%= paginate @users, theme: "internal" %>
+
+
+
+ | Username |
+ ID |
+ Name |
+ Twitter |
+ GitHub |
+ Email |
+
+
+
+ <% @users.each do |user| %>
+
+ | <%= link_to user.username, admin_user_path(user) %> |
+ <%= user.id %> |
+ <%= user.name %> |
+ <%= user_twitter_link(user) %> |
+ <%= user_github_link(user) %> |
+ <%= user.email %> |
+
+ <% end %>
+
+
+
+ <%= paginate @users, theme: "internal" %>
+
+<% else %>
+
+ People
+ <%= render "menu" %>
+
+
+ <%= paginate @users, theme: "internal" %>
+
+
+
+
+ | Username |
+ ID |
+ Name |
+ Twitter |
+ GitHub |
+ Email |
+
+
+
+ <% @users.each do |user| %>
+
+ | <%= link_to user.username, admin_user_path(user) %> |
+ <%= user.id %> |
+ <%= user.name %> |
+ <%= user_twitter_link(user) %> |
+ <%= user_github_link(user) %> |
+ <%= user.email %> |
+
+ <% end %>
+
+
+
+ <%= paginate @users, theme: "internal" %>
+<% end %>
diff --git a/app/views/admin/users/index/_controls.html.erb b/app/views/admin/users/index/_controls.html.erb
new file mode 100644
index 000000000..cde8d5e35
--- /dev/null
+++ b/app/views/admin/users/index/_controls.html.erb
@@ -0,0 +1,13 @@
+<% if params[:controller] == "admin/users" %>
+ <%= form_with url: admin_users_path, method: :get, local: true, class: "flex flex-col m:flex-row gap-3 m:items-center p-3" do |f| %>
+
+ <%= f.label :search, class: "crayons-field__label whitespace-nowrap" %>
+ <%= f.text_field :search, value: params[:search], class: "crayons-textfield mt-0", placeholder: "Name, username, email, or Twitter/GitHub usernames", aria: { label: "Filter by name, username, email, or Twitter/GitHub usernames" } %>
+
+
+ <%= f.label :role, "Filter by Role", class: "crayons-field__label whitespace-nowrap" %>
+ <%= f.select :role, options_for_select(Role::ROLES, params[:role]), { include_blank: true }, class: "crayons-select mt-0" %>
+
+ <%= f.submit "Filter", class: "c-btn c-btn--secondary" %>
+ <% end %>
+<% end %>
diff --git a/app/views/admin/users/index/_tabs.html.erb b/app/views/admin/users/index/_tabs.html.erb
new file mode 100644
index 000000000..c7c42a550
--- /dev/null
+++ b/app/views/admin/users/index/_tabs.html.erb
@@ -0,0 +1,22 @@
+