import { LoyaltyPageRefsDataRaw } from "./output" import { LoyaltyBlocksTypenameEnum } from "@/types/components/loyalty/enums" import type { Edges } from "@/types/requests/utils/edges" import type { NodeRefs } from "@/types/requests/utils/refs" export function getConnections(refs: LoyaltyPageRefsDataRaw) { const connections: Edges[] = [] if (refs.loyalty_page.blocks) { refs.loyalty_page.blocks.forEach((item) => { switch (item.__typename) { case LoyaltyBlocksTypenameEnum.LoyaltyPageBlocksContent: { if (item.content.content.embedded_itemsConnection.edges.length) { connections.push(item.content.content.embedded_itemsConnection) } break } case LoyaltyBlocksTypenameEnum.LoyaltyPageBlocksCardGrid: { item.card_grid.cards.forEach((card) => { if (card.referenceConnection.edges.length) { connections.push(card.referenceConnection) } }) break } case LoyaltyBlocksTypenameEnum.LoyaltyPageBlocksShortcuts: { item.shortcuts.shortcuts.forEach((shortcut) => { if (shortcut.linkConnection.edges.length) { connections.push(shortcut.linkConnection) } }) break } case LoyaltyBlocksTypenameEnum.LoyaltyPageBlocksDynamicContent: { if (item.dynamic_content.link.pageConnection.edges.length) { connections.push(item.dynamic_content.link.pageConnection) } break } } }) } if (refs.loyalty_page.sidebar) { refs.loyalty_page.sidebar?.forEach((item) => { if (item.content.content.embedded_itemsConnection.edges.length) { connections.push(item.content.content.embedded_itemsConnection) } }) } return connections }