···1616import { PageOptions } from "./PageOptions";
1717import { CardThemeProvider } from "components/ThemeManager/ThemeProvider";
1818import { useDrawerOpen } from "app/lish/[did]/[publication]/[rkey]/Interactions/InteractionDrawer";
1919+import { usePreserveScroll } from "src/hooks/usePreserveScroll";
19202021export function Page(props: {
2122 entityID: string;
···8384 pageType: "canvas" | "doc";
8485 drawerOpen: boolean | undefined;
8586}) => {
8787+ let { ref } = usePreserveScroll<HTMLDivElement>(props.id);
8688 return (
8789 // this div wraps the contents AND the page options.
8890 // it needs to be its own div because this container does NOT scroll, and therefore doesn't clip the absolutely positioned pageOptions
···9597 it needs to be a separate div so that the user can scroll from anywhere on the page if there isn't a card border
9698 */}
9799 <div
100100+ ref={ref}
98101 onClick={props.onClickAction}
99102 id={props.id}
100103 className={`
+2-4
components/Pages/PageShareMenu.tsx
···1717 <div>
1818 <ShareButton
1919 text="Share Edit Link"
2020- subtext=""
2121- helptext="recipients can edit the full Leaflet"
2020+ subtext="Recipients can edit the full Leaflet"
2221 smokerText="Collab link copied!"
2322 id="get-page-collab-link"
2423 link={`${collabLink}?page=${props.entityID}`}
2524 />
2625 <ShareButton
2726 text="Share View Link"
2828- subtext=""
2929- helptext="recipients can view the full Leaflet"
2727+ subtext="Recipients can view the full Leaflet"
3028 smokerText="Publish link copied!"
3129 id="get-page-publish-link"
3230 fullLink={