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 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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)) {
|
||||||
|
|||||||
@@ -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)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user