2022-09-14 22:56:45 -07:00
|
|
|
import ItemSearchPageToolbar from "../../../src/app/components/ItemSearchPageToolbar";
|
|
|
|
import ItemPage from "../../../src/app/ItemPage";
|
|
|
|
import PageLayout from "../../../src/app/PageLayout";
|
|
|
|
import type { NextPageWithLayout } from "../../_app";
|
2022-09-14 22:16:39 -07:00
|
|
|
|
|
|
|
const ItemPageWrapper: NextPageWithLayout = () => {
|
|
|
|
return <ItemPage />;
|
|
|
|
};
|
|
|
|
|
[WIP] Refactor to renderWithLayout function
Okay, when I saw the recipe in the Next.js docs with `getLayout`, I was like "psh this API is so confusing, this should just be a component"
anyway now we see why it wasn't a component: the _whole point_ of it was to circumvent the usual React diffing algorithm's belief that two different components _can't_ ever share UI. But here we were, making different `layoutComponent`s that were meant to share UI, lol!
Anyway, if you just _return JSX in a function_, the React diffing algorithm never sees that it came from a different place, so it's generous when diffing them. Neat!
But I still changed the recipe's `getLayout` name to `renderWithLayout`, because it just confused me so much at first lol, I thought it was going to like, return a layout function? This is much clearer verbing to me imo
2022-09-14 22:50:56 -07:00
|
|
|
ItemPageWrapper.renderWithLayout = (children) => {
|
2022-09-14 22:16:39 -07:00
|
|
|
return (
|
|
|
|
<PageLayout>
|
|
|
|
<ItemSearchPageToolbar marginBottom="8" />
|
|
|
|
{children}
|
|
|
|
</PageLayout>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default ItemPageWrapper;
|