import React, { type ReactElement } from 'react'; import { isRxDatabase } from '../../rx-database.ts'; import type { RxDatabase } from '../../types/index'; import { Provider } from './database-context.ts'; import { newRxError } from '../../rx-error.ts'; export type RxDatabaseProviderProps = { database: RxDatabase; children: React.ReactNode; }; /** * RxDatabaseProvider is a React context provider component for RxDB. * It ensures that a valid RxDatabase instance is passed and makes it available * to all descendant components via React Context. * * @param {RxDatabaseProviderProps} props - The provider props. * @param {RxDatabase} props.database - The RxDatabase instance to provide. * @param {React.ReactNode} props.children - The child components that will have access to the database. * @throws {Error} If the provided database is not a valid RxDatabase instance. * @returns {ReactElement} The context provider wrapping the children. * * @example * * * */ export function RxDatabaseProvider({ children, database, }: RxDatabaseProviderProps): ReactElement { if (!isRxDatabase(database)) { throw newRxError('R1', { database }); } return {children}; }