20 lines
558 B
TypeScript
20 lines
558 B
TypeScript
|
|
import type { ReactNode } from "react"
|
||
|
|
|
||
|
|
import { RecordContext } from "./record-context"
|
||
|
|
import type { RecordValue } from "./types"
|
||
|
|
|
||
|
|
export type RecordProviderProps<TRecord extends RecordValue = RecordValue> = {
|
||
|
|
children: ReactNode
|
||
|
|
value: TRecord
|
||
|
|
}
|
||
|
|
|
||
|
|
/** Makes one record available to all descendant record-aware components. */
|
||
|
|
export function RecordProvider<TRecord extends RecordValue = RecordValue>({
|
||
|
|
children,
|
||
|
|
value,
|
||
|
|
}: RecordProviderProps<TRecord>) {
|
||
|
|
return (
|
||
|
|
<RecordContext.Provider value={value}>{children}</RecordContext.Provider>
|
||
|
|
)
|
||
|
|
}
|