feat(SW-1712): Preperation to accept multiple different icon identifiers for filters on startpage and destination overview page
Approved-by: Fredrik Thorsson Approved-by: Matilda Landström
This commit is contained in:
@@ -7,11 +7,8 @@ import useScrollShadows from "@/hooks/useScrollShadows"
|
||||
|
||||
import styles from "./tabFilters.module.css"
|
||||
|
||||
import type { CardGalleryFilter } from "@/types/enums/cardGallery"
|
||||
import type { CarouselCardFilter } from "@/types/enums/carouselCards"
|
||||
|
||||
interface Filter {
|
||||
identifier: CarouselCardFilter | CardGalleryFilter
|
||||
identifier: string
|
||||
label: string
|
||||
}
|
||||
|
||||
|
||||
@@ -9,10 +9,6 @@ import { buttonSchema } from "./utils/buttonLinkSchema"
|
||||
import { linkConnectionRefsSchema } from "./utils/linkConnection"
|
||||
|
||||
import { BlocksEnums } from "@/types/enums/blocks"
|
||||
import {
|
||||
type CardGalleryFilter,
|
||||
CardGalleryFilterEnum,
|
||||
} from "@/types/enums/cardGallery"
|
||||
|
||||
export const cardGallerySchema = z.object({
|
||||
typename: z
|
||||
@@ -25,7 +21,7 @@ export const cardGallerySchema = z.object({
|
||||
link: buttonSchema.optional(),
|
||||
card_groups: z.array(
|
||||
z.object({
|
||||
filter_identifier: z.nativeEnum(CardGalleryFilterEnum),
|
||||
filter_identifier: z.string(),
|
||||
filter_label: z.string(),
|
||||
cardsConnection: z.object({
|
||||
edges: z.array(z.object({ node: contentCardSchema })),
|
||||
@@ -35,10 +31,7 @@ export const cardGallerySchema = z.object({
|
||||
})
|
||||
.transform((data) => {
|
||||
const filterCategories = data.card_groups.reduce<
|
||||
Array<{
|
||||
identifier: CardGalleryFilter
|
||||
label: string
|
||||
}>
|
||||
Array<{ identifier: string; label: string }>
|
||||
>((acc, group) => {
|
||||
const identifier = group.filter_identifier
|
||||
if (!acc.some((category) => category.identifier === identifier)) {
|
||||
|
||||
@@ -9,10 +9,6 @@ import { buttonSchema } from "./utils/buttonLinkSchema"
|
||||
import { linkConnectionRefsSchema } from "./utils/linkConnection"
|
||||
|
||||
import { BlocksEnums } from "@/types/enums/blocks"
|
||||
import {
|
||||
type CarouselCardFilter,
|
||||
CarouselCardFilterEnum,
|
||||
} from "@/types/enums/carouselCards"
|
||||
|
||||
const commonFields = {
|
||||
heading: z.string().optional(),
|
||||
@@ -24,7 +20,7 @@ const carouselCardsWithFilters = z.object({
|
||||
enable_filters: z.literal(true),
|
||||
card_groups: z.array(
|
||||
z.object({
|
||||
filter_identifier: z.nativeEnum(CarouselCardFilterEnum),
|
||||
filter_identifier: z.string(),
|
||||
filter_label: z.string(),
|
||||
cardConnection: z.object({
|
||||
edges: z.array(z.object({ node: contentCardSchema })),
|
||||
@@ -78,10 +74,7 @@ export const carouselCardsSchema = z.object({
|
||||
}
|
||||
|
||||
const filterCategories = data.card_groups.reduce<
|
||||
Array<{
|
||||
identifier: CarouselCardFilter
|
||||
label: string
|
||||
}>
|
||||
Array<{ identifier: string; label: string }>
|
||||
>((acc, group) => {
|
||||
const identifier = group.filter_identifier
|
||||
if (!acc.some((category) => category.identifier === identifier)) {
|
||||
|
||||
Reference in New Issue
Block a user