feat(SW-2873): Move HotelReservationSidePeek to booking-flow * Move sidepeek store to booking-flow * Begin move of HotelReservationSidePeek to booking-flow * Copy Link * Update AccessibilityAccordionItem * Split AccessibilityAccordionItem into two components * Fix tracking for Accordion * Duplicate ButtonLink to booking-flow TEMP * AdditionalAmeneties * wip * Move sidepeek accordion items * Remove temp ButtonLink * Merge branch 'master' into feat/sw-3218-move-hotelreservationsidepeek-to-booking-flow * Fix accordion tracking * Merge branch 'master' into feat/sw-3218-move-hotelreservationsidepeek-to-booking-flow * Update exports * Fix self-referencing import * Merge branch 'master' into feat/sw-3218-move-hotelreservationsidepeek-to-booking-flow * Add 'use client' to tracking function * Merge branch 'master' into feat/sw-3218-move-hotelreservationsidepeek-to-booking-flow * Fix TEMP folder * Refactor sidepeek tracking * Merge branch 'master' into feat/sw-3218-move-hotelreservationsidepeek-to-booking-flow Approved-by: Joakim Jäderberg
28 lines
662 B
TypeScript
28 lines
662 B
TypeScript
"use client"
|
|
|
|
import { createContext, useContext } from "react"
|
|
|
|
export type TrackingFunctions = {
|
|
trackBookingSearchClick: (
|
|
searchTerm: string,
|
|
searchType: "hotel" | "destination"
|
|
) => void
|
|
trackAccordionItemOpen: (option: string) => void
|
|
}
|
|
|
|
export const TrackingContext = createContext<TrackingFunctions | undefined>(
|
|
undefined
|
|
)
|
|
|
|
export const useTrackingContext = (): TrackingFunctions => {
|
|
const context = useContext(TrackingContext)
|
|
|
|
if (!context) {
|
|
throw new Error(
|
|
"useTrackingContext must be used within a BookingFlowTrackingProvider. Did you forget to use the provider in the consuming app?"
|
|
)
|
|
}
|
|
|
|
return context
|
|
}
|