Merged in feat/SW-1555-jobylon-feed-filter (pull request #1494)

Feat/SW-1555 jobylon feed filter

* feat(SW-1555): Added jobylon feed component

* feat(SW-1555): Added filter functionality for Jobylon feed


Approved-by: Matilda Landström
This commit is contained in:
Erik Tiekstra
2025-03-07 11:46:42 +00:00
parent c3be694874
commit 7fa86a2077
15 changed files with 424 additions and 52 deletions
@@ -0,0 +1,46 @@
import type { Key } from "react-aria-components"
import type { JobylonFilterKey } from "@/types/enums/jobylonFeed"
import type { JobylonItem } from "@/types/trpc/routers/jobylon"
export interface JobylonFilterItem {
label: string
value: Key
}
export interface JobylonFilters
extends Record<JobylonFilterKey, JobylonFilterItem[]> {
[JobylonFilterKey.country]: JobylonFilterItem[]
[JobylonFilterKey.city]: JobylonFilterItem[]
[JobylonFilterKey.department]: JobylonFilterItem[]
[JobylonFilterKey.category]: JobylonFilterItem[]
}
export enum ActionType {
UPDATE_FILTER = "UPDATE_FILTER",
}
interface UpdateFilter {
payload: {
filter: JobylonFilterKey
value: Key
}
type: ActionType.UPDATE_FILTER
}
export type Action = UpdateFilter
export interface State {
allJobs: JobylonItem[]
jobs: JobylonItem[]
chosenCountryFilter: Key
chosenCityFilter: Key
chosenDepartmentFilter: Key
chosenCategoryFilter: Key
countryFilters: JobylonFilterItem[]
cityFilters: JobylonFilterItem[]
departmentFilters: JobylonFilterItem[]
categoryFilters: JobylonFilterItem[]
}
export interface InitState extends Pick<State, "allJobs"> {}
@@ -0,0 +1,6 @@
export enum JobylonFilterKey {
country = "country",
city = "city",
department = "department",
category = "category",
}