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:
Erik Tiekstra
2025-03-17 08:58:29 +00:00
parent c99060363c
commit aca3c7f398
3 changed files with 5 additions and 22 deletions

View File

@@ -7,11 +7,8 @@ import useScrollShadows from "@/hooks/useScrollShadows"
import styles from "./tabFilters.module.css" import styles from "./tabFilters.module.css"
import type { CardGalleryFilter } from "@/types/enums/cardGallery"
import type { CarouselCardFilter } from "@/types/enums/carouselCards"
interface Filter { interface Filter {
identifier: CarouselCardFilter | CardGalleryFilter identifier: string
label: string label: string
} }

View File

@@ -9,10 +9,6 @@ import { buttonSchema } from "./utils/buttonLinkSchema"
import { linkConnectionRefsSchema } from "./utils/linkConnection" import { linkConnectionRefsSchema } from "./utils/linkConnection"
import { BlocksEnums } from "@/types/enums/blocks" import { BlocksEnums } from "@/types/enums/blocks"
import {
type CardGalleryFilter,
CardGalleryFilterEnum,
} from "@/types/enums/cardGallery"
export const cardGallerySchema = z.object({ export const cardGallerySchema = z.object({
typename: z typename: z
@@ -25,7 +21,7 @@ export const cardGallerySchema = z.object({
link: buttonSchema.optional(), link: buttonSchema.optional(),
card_groups: z.array( card_groups: z.array(
z.object({ z.object({
filter_identifier: z.nativeEnum(CardGalleryFilterEnum), filter_identifier: z.string(),
filter_label: z.string(), filter_label: z.string(),
cardsConnection: z.object({ cardsConnection: z.object({
edges: z.array(z.object({ node: contentCardSchema })), edges: z.array(z.object({ node: contentCardSchema })),
@@ -35,10 +31,7 @@ export const cardGallerySchema = z.object({
}) })
.transform((data) => { .transform((data) => {
const filterCategories = data.card_groups.reduce< const filterCategories = data.card_groups.reduce<
Array<{ Array<{ identifier: string; label: string }>
identifier: CardGalleryFilter
label: string
}>
>((acc, group) => { >((acc, group) => {
const identifier = group.filter_identifier const identifier = group.filter_identifier
if (!acc.some((category) => category.identifier === identifier)) { if (!acc.some((category) => category.identifier === identifier)) {

View File

@@ -9,10 +9,6 @@ import { buttonSchema } from "./utils/buttonLinkSchema"
import { linkConnectionRefsSchema } from "./utils/linkConnection" import { linkConnectionRefsSchema } from "./utils/linkConnection"
import { BlocksEnums } from "@/types/enums/blocks" import { BlocksEnums } from "@/types/enums/blocks"
import {
type CarouselCardFilter,
CarouselCardFilterEnum,
} from "@/types/enums/carouselCards"
const commonFields = { const commonFields = {
heading: z.string().optional(), heading: z.string().optional(),
@@ -24,7 +20,7 @@ const carouselCardsWithFilters = z.object({
enable_filters: z.literal(true), enable_filters: z.literal(true),
card_groups: z.array( card_groups: z.array(
z.object({ z.object({
filter_identifier: z.nativeEnum(CarouselCardFilterEnum), filter_identifier: z.string(),
filter_label: z.string(), filter_label: z.string(),
cardConnection: z.object({ cardConnection: z.object({
edges: z.array(z.object({ node: contentCardSchema })), edges: z.array(z.object({ node: contentCardSchema })),
@@ -78,10 +74,7 @@ export const carouselCardsSchema = z.object({
} }
const filterCategories = data.card_groups.reduce< const filterCategories = data.card_groups.reduce<
Array<{ Array<{ identifier: string; label: string }>
identifier: CarouselCardFilter
label: string
}>
>((acc, group) => { >((acc, group) => {
const identifier = group.filter_identifier const identifier = group.filter_identifier
if (!acc.some((category) => category.identifier === identifier)) { if (!acc.some((category) => category.identifier === identifier)) {