+
{/* Header */}
@@ -56,14 +56,12 @@ const SubmissionModal: FC = ({
-
+
+
{/* Content */}
diff --git a/apps/backoffice/src/app/(protected)/hackathon-teams/page.tsx b/apps/backoffice/src/app/(protected)/hackathon-teams/page.tsx
index 6e80a36..a03a9a0 100644
--- a/apps/backoffice/src/app/(protected)/hackathon-teams/page.tsx
+++ b/apps/backoffice/src/app/(protected)/hackathon-teams/page.tsx
@@ -1,6 +1,8 @@
import { FC, ReactElement, useState, useMemo, useCallback } from 'react';
import ModalTeamDetail from './_components/modal-team-detail-new';
import SubmissionModal from './_components/submission-modal';
+import { CityFilterSelect } from '../../../components/city-filter-select';
+import INDONESIAN_CITIES from '../../../constants/cities';
import {
BackofficeWrapper,
DataTable,
@@ -58,7 +60,8 @@ interface TeamType {
}
// Move mock data outside component to prevent recreation
-const cities = ['Jakarta', 'Bandung', 'Surabaya', 'Medan', 'Yogyakarta'];
+// Sample data for popular cities from the INDONESIAN_CITIES constant
+const cities = INDONESIAN_CITIES.slice(0, 20); // Use first 20 cities for variety
const teamNames = [
'Innovators',
'Hackers',
@@ -255,7 +258,6 @@ export const HackathonTeamsPage: FC = (): ReactElement => {
if (
!team.name.toLowerCase().includes(searchTerm) &&
!team.city.toLowerCase().includes(searchTerm) &&
- !team.description?.toLowerCase().includes(searchTerm) &&
!leaderName.toLowerCase().includes(searchTerm) &&
!memberNames.toLowerCase().includes(searchTerm)
) {
@@ -496,7 +498,7 @@ export const HackathonTeamsPage: FC = (): ReactElement => {
{/* City Filter */}
-
-
-
-
+
{/* Member Count Filter */}
diff --git a/apps/backoffice/src/app/(protected)/hackathon-users/page.tsx b/apps/backoffice/src/app/(protected)/hackathon-users/page.tsx
index 500f9eb..31257bc 100644
--- a/apps/backoffice/src/app/(protected)/hackathon-users/page.tsx
+++ b/apps/backoffice/src/app/(protected)/hackathon-users/page.tsx
@@ -14,7 +14,7 @@ import {
FilterOutlined,
PlusOutlined,
} from '@ant-design/icons';
-// Removed unused SearchOutlined icon after schema revision
+import { CityFilterSelect } from '../../../components/city-filter-select';
// Define interface outside component
interface UserType {
@@ -89,7 +89,7 @@ export const HackathonUsersPage: FC = (): ReactElement => {
// Advanced filtering states
const [statusFilter, setStatusFilter] = useState('all');
- const [locationFilter, setLocationFilter] = useState('all');
+ const [cityFilter, setCityFilter] = useState('all');
const [skillsFilter, setSkillsFilter] = useState