diff --git a/packages/auth/src/AuthProvider.tsx b/packages/auth/src/AuthProvider.tsx index 275c1bca6833..c60b486f4c37 100644 --- a/packages/auth/src/AuthProvider.tsx +++ b/packages/auth/src/AuthProvider.tsx @@ -82,18 +82,21 @@ type AuthProviderProps = type: Omit config?: never skipFetchCurrentUser?: boolean + children?: React.ReactNode } | { client?: never type: 'clerk' config?: never skipFetchCurrentUser?: boolean + children?: React.ReactNode } | { client?: WebAuthnClientType type: 'dbAuth' config?: SupportedAuthConfig skipFetchCurrentUser?: boolean + children?: React.ReactNode } type AuthProviderState = { diff --git a/packages/router/src/location.tsx b/packages/router/src/location.tsx index 67069873b413..9c734fbe7e2b 100644 --- a/packages/router/src/location.tsx +++ b/packages/router/src/location.tsx @@ -18,6 +18,7 @@ interface LocationProviderProps { hash?: string } trailingSlashes?: TrailingSlashesTypes + children?: React.ReactNode } class LocationProvider extends React.Component { diff --git a/packages/router/src/params.tsx b/packages/router/src/params.tsx index f145e8b307e3..6f35d53ca0e0 100644 --- a/packages/router/src/params.tsx +++ b/packages/router/src/params.tsx @@ -13,6 +13,7 @@ export const ParamsContext = createNamedContext('Params') interface Props { path?: string location?: LocationContextType + children?: React.ReactNode } export const ParamsProvider: React.FC = ({ diff --git a/packages/router/src/router-context.tsx b/packages/router/src/router-context.tsx index 674564cae895..01f7e4ba0675 100644 --- a/packages/router/src/router-context.tsx +++ b/packages/router/src/router-context.tsx @@ -22,6 +22,7 @@ const RouterSetContext = createContext< export interface RouterContextProviderProps extends Omit { useAuth?: typeof useAuth + children?: React.ReactNode } function stateReducer(state: RouterState, newState: Partial) { diff --git a/packages/router/src/router.tsx b/packages/router/src/router.tsx index 221c36dde2a8..ec6b4101c463 100644 --- a/packages/router/src/router.tsx +++ b/packages/router/src/router.tsx @@ -131,9 +131,10 @@ function isRoute( return isReactElement(node) && node.type === Route } -interface RouterProps extends RouterContextProviderProps { +export interface RouterProps extends RouterContextProviderProps { trailingSlashes?: TrailingSlashesTypes pageLoadingDelay?: number + children?: React.ReactNode } const Router: React.FC = ({ diff --git a/packages/testing/src/web/MockParamsProvider.tsx b/packages/testing/src/web/MockParamsProvider.tsx index 6c46619eb162..010d8695fbb7 100644 --- a/packages/testing/src/web/MockParamsProvider.tsx +++ b/packages/testing/src/web/MockParamsProvider.tsx @@ -4,6 +4,7 @@ import { useLocation, ParamsContext, parseSearch } from '@redwoodjs/router' interface Props { path?: string + children?: React.ReactNode } export const MockParamsProvider: React.FC = ({ children }) => { diff --git a/packages/testing/src/web/MockProviders.tsx b/packages/testing/src/web/MockProviders.tsx index f519fa9b649c..36addc707e90 100644 --- a/packages/testing/src/web/MockProviders.tsx +++ b/packages/testing/src/web/MockProviders.tsx @@ -60,7 +60,10 @@ export const mockAuthClient: AuthClient = { type: 'custom', } -export const MockProviders: React.FunctionComponent = ({ children }) => { +// TODO(pc): see if there are props we want to allow to be passed into our mock provider (e.g. AuthProviderProps) +export const MockProviders: React.FunctionComponent<{ + children?: React.ReactNode +}> = ({ children }) => { return ( diff --git a/packages/testing/src/web/MockRouter.tsx b/packages/testing/src/web/MockRouter.tsx index f11782befb61..a42fea53726a 100644 --- a/packages/testing/src/web/MockRouter.tsx +++ b/packages/testing/src/web/MockRouter.tsx @@ -5,7 +5,7 @@ import React from 'react' // for jest and Storybook. Not doing so would cause an infinite loop. // See: ./packages/core/config/src/configs/browser/jest.createConfig.ts // @ts-ignore -import { isRoute } from '@redwoodjs/router/dist/router' +import { isRoute, RouterProps } from '@redwoodjs/router/dist/router' import { flattenAll, replaceParams } from '@redwoodjs/router/dist/util' // @ts-ignore export * from '@redwoodjs/router/dist/index' @@ -16,7 +16,7 @@ export const routes: { [routeName: string]: () => string } = {} * We overwrite the default `Router` export. * It populates the `routes.()` utility object. */ -export const Router: React.FunctionComponent = ({ children }) => { +export const Router: React.FunctionComponent = ({ children }) => { const flatChildArray = flattenAll(children) flatChildArray.forEach((child) => { diff --git a/packages/web/src/apollo/index.tsx b/packages/web/src/apollo/index.tsx index 53000291772c..b22114b348ee 100644 --- a/packages/web/src/apollo/index.tsx +++ b/packages/web/src/apollo/index.tsx @@ -97,6 +97,7 @@ const ApolloProviderWithFetchConfig: React.FunctionComponent<{ } useAuth: UseAuthProp logLevel: F.Return + children?: React.ReactNode }> = ({ config, children, useAuth, logLevel }) => { /** * Should they run into it, @@ -255,6 +256,7 @@ type ComponentDidCatch = React.ComponentLifecycle['componentDidCatch'] interface ErrorBoundaryProps { error?: unknown onError: NonNullable + children?: React.ReactNode } class ErrorBoundary extends React.Component { @@ -272,6 +274,7 @@ export const RedwoodApolloProvider: React.FunctionComponent<{ graphQLClientConfig?: GraphQLClientConfigProp useAuth?: UseAuthProp logLevel?: F.Return + children?: React.ReactNode }> = ({ graphQLClientConfig, useAuth = useRWAuth, diff --git a/packages/web/src/components/FetchConfigProvider.tsx b/packages/web/src/components/FetchConfigProvider.tsx index b8e918b45c7f..f8c90d7f65bb 100644 --- a/packages/web/src/components/FetchConfigProvider.tsx +++ b/packages/web/src/components/FetchConfigProvider.tsx @@ -24,6 +24,7 @@ type UseAuthType = () => AuthContextInterface */ export const FetchConfigProvider: React.FunctionComponent<{ useAuth?: UseAuthType + children?: React.ReactNode }> = ({ useAuth = global.__REDWOOD__USE_AUTH ?? (() => defaultAuthState), ...rest