UNPKG

react-fetch-router

Version:

Routing library for React. Works with JSON AJAX responses (native fetch object). The router uses page types (derived from the response), rather than URL paths.

45 lines (37 loc) 999 B
import React from "react"; import {isMount, setMount, ErrorComponent} from "./utils"; import PropTypes from "prop-types"; import RouterContext from "./RouterContext"; const RouteDefault = React.forwardRef(function RouteDefault(props, ref) { const context = React.useContext(RouterContext), { page, data, } = context, { component: Component = ErrorComponent, componentProps = {} } = props; if(isMount()) { return null } setMount(page); return ( <Component ref={ref} {...componentProps} page={page} {...data} /> ) }); RouteDefault.defaultProps = {}; if (process.env.NODE_ENV !== "production") { RouteDefault.displayName = "RouteDefault"; RouteDefault.propTypes = { /** * Controller component. */ component: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object]).isRequired, /** * Controller component props. */ componentProps: PropTypes.object }; } export default RouteDefault;