import process from "node:process";
import {html} from "../../../../common/html.js";
import * as LinkUtil from "../../../../common/link-util.js";
import * as t from "../../../../common/translation-util.js";
type ShortcutsSectionProps = {
$root: Element;
};
// eslint-disable-next-line complexity
export function initShortcutsSection({$root}: ShortcutsSectionProps): void {
const cmdOrCtrl = process.platform === "darwin" ? "⌘" : "Ctrl";
$root.innerHTML = html`
settings${t.__("Tip")}: ${t.__("These desktop app shortcuts extend the Zulip webapp's")}
${t.__("keyboard shortcuts")}.
${t.__("Application Shortcuts")}
| ${cmdOrCtrl} + , |
${t.__("Settings")} |
| ${cmdOrCtrl} + K |
${t.__("Keyboard Shortcuts")} |
| ${cmdOrCtrl} + Shift + M |
${t.__("Toggle Do Not Disturb")} |
| Shift + ${cmdOrCtrl} + M |
${t.__("Toggle Do Not Disturb")} |
| Shift + ${cmdOrCtrl} + D |
${t.__("Reset App Settings")} |
| ${cmdOrCtrl} + L |
${t.__("Log Out")} |
| ${cmdOrCtrl} + H |
${t.__("Hide Zulip")} |
| Option + ${cmdOrCtrl} + H |
${t.__("Hide Others")} |
| ${cmdOrCtrl} + Q |
${t.__("Quit Zulip")} |
${t.__("Edit Shortcuts")}
| ${cmdOrCtrl} + Z |
${t.__("Undo")} |
| Shift + ${cmdOrCtrl} + Z |
${t.__("Redo")} |
| ${cmdOrCtrl} + Y |
${t.__("Redo")} |
| ${cmdOrCtrl} + X |
${t.__("Cut")} |
| ${cmdOrCtrl} + C |
${t.__("Copy")} |
| ${cmdOrCtrl} + V |
${t.__("Paste")} |
| ${cmdOrCtrl} + Shift + V |
${t.__("Paste and Match Style")} |
| Shift + ${cmdOrCtrl} + V |
${t.__("Paste and Match Style")} |
| ${cmdOrCtrl} + A |
${t.__("Select All")} |
|
Control + ${cmdOrCtrl} + Space
|
${t.__("Emoji & Symbols")} |
${t.__("View Shortcuts")}
| ${cmdOrCtrl} + R |
${t.__("Reload")} |
| ${cmdOrCtrl} + Shift + R |
${t.__("Hard Reload")} |
| Shift + ${cmdOrCtrl} + R |
${t.__("Hard Reload")} |
| F11 |
${t.__("Toggle Full Screen")} |
| Control + ${cmdOrCtrl} + F |
${t.__("Enter Full Screen")} |
| ${cmdOrCtrl} + + |
${t.__("Zoom In")} |
| ${cmdOrCtrl} + = |
${t.__("Zoom In")} |
| ${cmdOrCtrl} + - |
${t.__("Zoom Out")} |
| ${cmdOrCtrl} + 0 |
${t.__("Actual Size")} |
| ${cmdOrCtrl} + Shift + S |
${t.__("Toggle Sidebar")} |
| Shift + ${cmdOrCtrl} + S |
${t.__("Toggle Sidebar")} |
| Option + ${cmdOrCtrl} + I |
${t.__("Toggle DevTools for Zulip App")} |
| ${cmdOrCtrl} + Shift + I |
${t.__("Toggle DevTools for Zulip App")} |
| Option + ${cmdOrCtrl} + U |
${t.__("Toggle DevTools for Active Tab")} |
| ${cmdOrCtrl} + Shift + U |
${t.__("Toggle DevTools for Active Tab")} |
| Ctrl + Tab |
${t.__("Switch to Next Organization")} |
| Ctrl + Shift + Tab |
${t.__("Switch to Previous Organization")} |
${t.__("History Shortcuts")}
| ${cmdOrCtrl} + ← |
${t.__("Back")} |
| Alt + ← |
${t.__("Back")} |
| ${cmdOrCtrl} + → |
${t.__("Forward")} |
| Alt + → |
${t.__("Forward")} |
${t.__("Window Shortcuts")}
| ${cmdOrCtrl} + M |
${t.__("Minimize")} |
| ${cmdOrCtrl} + W |
${t.__("Close")} |
`.html;
const link = "https://zulip.com/help/keyboard-shortcuts";
const externalCreateNewOrgElement =
$root.querySelector("#open-hotkeys-link")!;
externalCreateNewOrgElement.addEventListener("click", async () => {
await LinkUtil.openBrowser(new URL(link));
});
}