nextjs-demo

next.js demo using react 19 rc

git clone https://9o.is/git/nextjs-demo.git

useSHEvents.ts

(763B)


      1 import { useMemo } from "react"
      2 // import { useFetch } from "../../hooks"
      3 
      4 export type SHEvent = {
      5     id: string
      6     city: string
      7     price: number
      8 }
      9 
     10 type SHNodeEventId = {
     11     id: string
     12 }
     13 
     14 export type SHNodeEvent = SHNodeEventId & ({
     15     events: SHEvent[]
     16     children: []
     17 } | {
     18     events: []
     19     children: SHNodeEvent[]
     20 })
     21 
     22 // export function useSHEvents(id: SHNodeEvent['id']) {
     23 //     const { data, ...rest } = useFetch<SHNodeEvent>(`http://localhost:3000/node-events/${id}`)
     24 
     25 //     return {
     26 //         ...rest,
     27 //         events: useMemo(() => data ? getEvents(data) : [], [data]),
     28 //     }
     29 // }
     30 
     31 export function getEvents({ events, children }: SHNodeEvent): SHEvent[] {
     32     if (events.length > 0) return events
     33     return children.flatMap(getEvents)
     34 }