Skip to content

Commit f5ec606

Browse files
authored
extract menu additions to functions, remove ifs (#153)
* extract to function, remove ifs * swap CopyAsPng | CopyAsSvg shortcuts * 1.10.14
1 parent 33b1b51 commit f5ec606

File tree

3 files changed

+56
-60
lines changed

3 files changed

+56
-60
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "query-builder",
3-
"version": "1.10.13",
3+
"version": "1.10.14",
44
"description": "Introduces new user interfaces for building queries in Roam",
55
"main": "./build/main.js",
66
"author": {

src/components/TldrawCanvas.tsx

Lines changed: 53 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1340,6 +1340,57 @@ const TldrawCanvas = ({ title }: Props) => {
13401340
);
13411341
};
13421342
}, [appRef, allNodes]);
1343+
1344+
// Menu Overrides
1345+
const addFullScreenToggle = (mainMenu: MenuGroup) => {
1346+
const viewSubMenu = mainMenu.children.find(
1347+
(m): m is SubMenu => m.type === "submenu" && m.id === "view"
1348+
);
1349+
const viewActionsGroup = viewSubMenu?.children.find(
1350+
(m): m is MenuGroup => m.type === "group" && m.id === "view-actions"
1351+
);
1352+
if (!viewActionsGroup) return;
1353+
viewActionsGroup.children.push({
1354+
type: "item",
1355+
readonlyOk: true,
1356+
id: "toggle-full-screen",
1357+
disabled: false,
1358+
checked: maximized,
1359+
actionItem: {
1360+
id: "toggle-full-screen",
1361+
label: "action.toggle-full-screen" as TLTranslationKey,
1362+
kbd: "!3",
1363+
onSelect: () => {
1364+
setMaximized(!maximized);
1365+
},
1366+
readonlyOk: true,
1367+
},
1368+
});
1369+
};
1370+
const editCopyAsShortcuts = (mainMenu: MenuGroup) => {
1371+
const editSubMenu = mainMenu.children.find(
1372+
(m): m is SubMenu => m.type === "submenu" && m.id === "edit"
1373+
);
1374+
const conversionsGroup = editSubMenu?.children.find(
1375+
(m): m is MenuGroup => m.type === "group" && m.id === "conversions"
1376+
);
1377+
const copyAsSubMenu = conversionsGroup?.children.find(
1378+
(m): m is SubMenu => m.type === "submenu" && m.id === "copy-as"
1379+
);
1380+
const copyAsGroup = copyAsSubMenu?.children.find(
1381+
(m): m is MenuGroup => m.type === "group" && m.id === "copy-as-group"
1382+
);
1383+
const copyAsPngItem = copyAsGroup?.children.find(
1384+
(m): m is MenuItem => m.type === "item" && m.id === "copy-as-png"
1385+
);
1386+
const copyAsSvgItem = copyAsGroup?.children.find(
1387+
(m): m is MenuItem => m.type === "item" && m.id === "copy-as-svg"
1388+
);
1389+
if (!copyAsPngItem || !copyAsSvgItem) return;
1390+
copyAsPngItem.actionItem.kbd = "$!C";
1391+
copyAsSvgItem.actionItem.kbd = "$!X";
1392+
};
1393+
13431394
return (
13441395
<div
13451396
className={`border border-gray-300 rounded-md bg-white h-full w-full z-10 overflow-hidden ${
@@ -1574,63 +1625,8 @@ const TldrawCanvas = ({ title }: Props) => {
15741625
(m): m is MenuGroup => m.type === "group" && m.id === "menu"
15751626
);
15761627
if (mainMenu) {
1577-
const viewSubMenu = mainMenu.children.find(
1578-
(m): m is SubMenu => m.type === "submenu" && m.id === "view"
1579-
);
1580-
if (viewSubMenu) {
1581-
const viewActionsGroup = viewSubMenu.children.find(
1582-
(m): m is MenuGroup =>
1583-
m.type === "group" && m.id === "view-actions"
1584-
);
1585-
if (viewActionsGroup) {
1586-
viewActionsGroup.children.push({
1587-
type: "item",
1588-
readonlyOk: true,
1589-
id: "toggle-full-screen",
1590-
disabled: false,
1591-
checked: maximized,
1592-
actionItem: {
1593-
id: "toggle-full-screen",
1594-
label: "action.toggle-full-screen" as TLTranslationKey,
1595-
kbd: "!3",
1596-
onSelect: () => {
1597-
setMaximized(!maximized);
1598-
},
1599-
readonlyOk: true,
1600-
},
1601-
});
1602-
}
1603-
}
1604-
const editSubMenu = mainMenu.children.find(
1605-
(m): m is SubMenu => m.type === "submenu" && m.id === "edit"
1606-
);
1607-
if (editSubMenu) {
1608-
const conversionsGroup = editSubMenu.children.find(
1609-
(m): m is MenuGroup =>
1610-
m.type === "group" && m.id === "conversions"
1611-
);
1612-
if (conversionsGroup) {
1613-
const copyAsSubMenu = conversionsGroup.children.find(
1614-
(m): m is MenuGroup =>
1615-
m.type === "submenu" && m.id === "copy-as"
1616-
);
1617-
if (copyAsSubMenu) {
1618-
const copyAsGroup = copyAsSubMenu.children.find(
1619-
(m): m is MenuGroup =>
1620-
m.type === "group" && m.id === "copy-as-group"
1621-
);
1622-
if (copyAsGroup) {
1623-
const copyAsPngItem = copyAsGroup.children.find(
1624-
(m): m is MenuItem =>
1625-
m.type === "item" && m.id === "copy-as-png"
1626-
);
1627-
if (copyAsPngItem) {
1628-
copyAsPngItem.actionItem.kbd = "$!X";
1629-
}
1630-
}
1631-
}
1632-
}
1633-
}
1628+
addFullScreenToggle(mainMenu);
1629+
editCopyAsShortcuts(mainMenu);
16341630
}
16351631
return menu;
16361632
},

0 commit comments

Comments
 (0)