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:
@@ -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",
|
||||
}
|
||||
Reference in New Issue
Block a user