Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | 27x 36x 36x 45x 45x 45x 45x 45x 4x 45x 45x 45x 45x 10x 27x | import { forwardRef, useImperativeHandle, useRef } from 'react';
import PropTypes from 'prop-types';
import {
Route,
Switch
} from 'react-router-dom';
import { SASQLookupComponent } from '../SASQLookupComponent';
import SASQViewComponent from '../SASQViewComponent';
const SASQRoute = forwardRef(({
children,
fetchParameters,
getPathLookup = (path) => `${path}/:id?`,
getPathView = (path) => `${path}/:id`,
SASQLookupComponent: RouteLookupComponent = SASQLookupComponent,
path,
SASQViewComponent: RouteViewComponent = SASQViewComponent,
...props
}, ref) => {
// Grab the SASQ_MAP and tweak it
const { SASQ_MAP = {} } = fetchParameters;
const lookupRef = useRef();
const viewRef = useRef();
useImperativeHandle(ref, () => ({
...lookupRef.current,
...viewRef.current
}));
if (!SASQ_MAP.perPage) {
SASQ_MAP.perPage = 25;
}
SASQ_MAP.stats = true;
// Reinsert the SASQ_MAP
fetchParameters.SASQ_MAP = SASQ_MAP;
return (
<Route
path={getPathLookup(path)}
render={routeProps => {
return (
<RouteLookupComponent
ref={lookupRef}
{...routeProps}
fetchParameters={fetchParameters}
path={path}
{...props}
>
<Switch>
{children}
<Route
path={getPathView(path)}
render={innerProps => (
<RouteViewComponent
ref={viewRef}
{...innerProps}
fetchParameters={fetchParameters}
path={path}
ViewComponent={props.ViewComponent}
{...props}
/>
)}
/>
</Switch>
</RouteLookupComponent>
);
}}
/>
);
});
SASQRoute.propTypes = {
children: PropTypes.oneOfType([
PropTypes.node,
PropTypes.element,
PropTypes.func
]),
fetchParameters: PropTypes.object,
getPathLookup: PropTypes.func,
getPathView: PropTypes.func,
path: PropTypes.string,
SASQLookupComponent: PropTypes.oneOfType([
PropTypes.func,
PropTypes.node
]),
SASQViewComponent: PropTypes.oneOfType([
PropTypes.func,
PropTypes.node
]),
ViewComponent: PropTypes.oneOfType([
PropTypes.func,
PropTypes.node
])
};
export default SASQRoute;
|