Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions apps/roam/src/components/LeftSidebarView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,8 @@ import deleteBlock from "roamjs-components/writes/deleteBlock";
import getTextByBlockUid from "roamjs-components/queries/getTextByBlockUid";
import refreshConfigTree from "~/utils/refreshConfigTree";
import { Dispatch, SetStateAction } from "react";
import { SettingsDialog } from "./settings/Settings";
import { openSettingsDialog } from "./settings/Settings";
import { OnloadArgs } from "roamjs-components/types";
import renderOverlay from "roamjs-components/util/renderOverlay";
import getBasicTreeByParentUid from "roamjs-components/queries/getBasicTreeByParentUid";
import { DISCOURSE_CONFIG_PAGE_TITLE } from "~/data/constants";
import getPageTitleByPageUid from "roamjs-components/queries/getPageTitleByPageUid";
Expand Down Expand Up @@ -445,12 +444,9 @@ const FavoritesPopover = ({ onloadArgs }: { onloadArgs: OnloadArgs }) => {
}, [handleGlobalPointerDownCapture, isMenuOpen]);

const renderSettingsDialog = (tabId: TabId) => {
renderOverlay({
Overlay: SettingsDialog,
props: {
onloadArgs,
selectedTabId: tabId,
},
openSettingsDialog({
onloadArgs,
selectedTabId: tabId,
});
};

Expand Down
33 changes: 29 additions & 4 deletions apps/roam/src/components/settings/Settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export const SettingsPanel = ({ onloadArgs }: { onloadArgs: OnloadArgs }) => {
<Button
onClick={() => {
posthog.capture("Settings: Opened from Roam Settings Panel");
render({
openSettingsDialog({
onloadArgs,
});
}}
Expand All @@ -66,11 +66,13 @@ export const SettingsDialog = ({
isOpen,
onClose,
selectedTabId,
openedAt,
}: {
onloadArgs: OnloadArgs;
isOpen?: boolean;
onClose?: () => void;
selectedTabId?: TabId;
openedAt?: number;
}) => {
const extensionAPI = onloadArgs.extensionAPI;
const grammarNode = discourseConfigRef.tree.find(
Expand Down Expand Up @@ -108,6 +110,20 @@ export const SettingsDialog = ({
window.addEventListener("keydown", handleKeyPress);
return () => window.removeEventListener("keydown", handleKeyPress);
}, []);

useEffect(() => {
if (!isOpen || openedAt === undefined) {
return;
}

const rafId = window.requestAnimationFrame(() => {
console.log(
`[DG Perf] Settings open: ${performance.now() - openedAt} ms`,
);
});

return () => window.cancelAnimationFrame(rafId);
}, [isOpen, openedAt]);
return (
<Dialog
isOpen={isOpen}
Expand Down Expand Up @@ -281,11 +297,20 @@ export const SettingsDialog = ({

type Props = {
onloadArgs: OnloadArgs;
selectedTabId?: TabId;
};
export const render = (props: Props) =>
renderOverlay({

export const openSettingsDialog = (
props: Props,
): ReturnType<typeof renderOverlay> => {
const openedAt = performance.now();
return renderOverlay({
Overlay: SettingsDialog,
props: {
onloadArgs: props.onloadArgs,
...props,
openedAt,
},
});
};

export const render = openSettingsDialog;
Loading
Loading