diff --git a/packages/hoppscotch-common/src/components.d.ts b/packages/hoppscotch-common/src/components.d.ts
index a9d66d3d9..7b3dc31d2 100644
--- a/packages/hoppscotch-common/src/components.d.ts
+++ b/packages/hoppscotch-common/src/components.d.ts
@@ -131,7 +131,6 @@ declare module '@vue/runtime-core' {
IconLucideLayers: typeof import('~icons/lucide/layers')['default']
IconLucideListEnd: typeof import('~icons/lucide/list-end')['default']
IconLucideMinus: typeof import('~icons/lucide/minus')['default']
- IconLucideRefreshCcw: typeof import('~icons/lucide/refresh-ccw')['default']
IconLucideRefreshCw: typeof import('~icons/lucide/refresh-cw')['default']
IconLucideSearch: typeof import('~icons/lucide/search')['default']
IconLucideUsers: typeof import('~icons/lucide/users')['default']
diff --git a/packages/hoppscotch-common/src/components/app/Shortcuts.vue b/packages/hoppscotch-common/src/components/app/Shortcuts.vue
index 0f367416b..4d8006b00 100644
--- a/packages/hoppscotch-common/src/components/app/Shortcuts.vue
+++ b/packages/hoppscotch-common/src/components/app/Shortcuts.vue
@@ -14,46 +14,18 @@
/>
-
-
-
-
-
- {{ t(map.item.section) }}
-
-
-
-
-
+
+
{{ t("state.nothing_found") }}
"{{ filterText }}"
-
-
@@ -64,13 +36,13 @@
- {{ t(map.section) }}
+ {{ sectionTitle }}
@@ -81,10 +53,11 @@
diff --git a/packages/hoppscotch-common/src/helpers/shortcuts.ts b/packages/hoppscotch-common/src/helpers/shortcuts.ts
index 67c31d2b7..73af38270 100644
--- a/packages/hoppscotch-common/src/helpers/shortcuts.ts
+++ b/packages/hoppscotch-common/src/helpers/shortcuts.ts
@@ -1,315 +1,146 @@
-import IconLifeBuoy from "~icons/lucide/life-buoy"
-import IconZap from "~icons/lucide/zap"
-import IconArrowRight from "~icons/lucide/arrow-right"
-import IconGift from "~icons/lucide/gift"
-import IconMonitor from "~icons/lucide/monitor"
-import IconSun from "~icons/lucide/sun"
-import IconCloud from "~icons/lucide/cloud"
-import IconMoon from "~icons/lucide/moon"
import { getPlatformAlternateKey, getPlatformSpecialKey } from "./platformutils"
-export default [
- {
- section: "shortcut.general.title",
- shortcuts: [
- {
- keys: ["?"],
- label: "shortcut.general.help_menu",
- },
- {
- keys: ["/"],
- label: "shortcut.general.command_menu",
- },
- {
- keys: [getPlatformSpecialKey(), "K"],
- label: "shortcut.general.show_all",
- },
- {
- keys: ["ESC"],
- label: "shortcut.general.close_current_menu",
- },
- ],
- },
- {
- section: "shortcut.request.title",
- shortcuts: [
- {
- keys: [getPlatformSpecialKey(), "↩"],
- label: "shortcut.request.send_request",
- },
- {
- keys: [getPlatformSpecialKey(), "S"],
- label: "shortcut.request.save_to_collections",
- },
- {
- keys: [getPlatformSpecialKey(), "U"],
- label: "shortcut.request.copy_request_link",
- },
- {
- keys: [getPlatformSpecialKey(), "I"],
- label: "shortcut.request.reset_request",
- },
- {
- keys: [getPlatformAlternateKey(), "↑"],
- label: "shortcut.request.next_method",
- },
- {
- keys: [getPlatformAlternateKey(), "↓"],
- label: "shortcut.request.previous_method",
- },
- {
- keys: [getPlatformAlternateKey(), "G"],
- label: "shortcut.request.get_method",
- },
- {
- keys: [getPlatformAlternateKey(), "H"],
- label: "shortcut.request.head_method",
- },
- {
- keys: [getPlatformAlternateKey(), "P"],
- label: "shortcut.request.post_method",
- },
- {
- keys: [getPlatformAlternateKey(), "U"],
- label: "shortcut.request.put_method",
- },
- {
- keys: [getPlatformAlternateKey(), "X"],
- label: "shortcut.request.delete_method",
- },
- ],
- },
- {
- section: "shortcut.response.title",
- shortcuts: [
- {
- keys: [getPlatformSpecialKey(), "J"],
- label: "shortcut.response.download",
- },
- {
- keys: [getPlatformSpecialKey(), "."],
- label: "shortcut.response.copy",
- },
- ],
- },
- {
- section: "shortcut.navigation.title",
- shortcuts: [
- {
- keys: [getPlatformSpecialKey(), "←"],
- label: "shortcut.navigation.back",
- },
- {
- keys: [getPlatformSpecialKey(), "→"],
- label: "shortcut.navigation.forward",
- },
- {
- keys: [getPlatformAlternateKey(), "R"],
- label: "shortcut.navigation.rest",
- },
- {
- keys: [getPlatformAlternateKey(), "Q"],
- label: "shortcut.navigation.graphql",
- },
- {
- keys: [getPlatformAlternateKey(), "W"],
- label: "shortcut.navigation.realtime",
- },
- {
- keys: [getPlatformAlternateKey(), "S"],
- label: "shortcut.navigation.settings",
- },
- {
- keys: [getPlatformAlternateKey(), "M"],
- label: "shortcut.navigation.profile",
- },
- ],
- },
- {
- section: "shortcut.miscellaneous.title",
- shortcuts: [
- {
- keys: [getPlatformSpecialKey(), "M"],
- label: "shortcut.miscellaneous.invite",
- },
- ],
- },
-]
+export type ShortcutDef = {
+ label: string
+ keys: string[]
+ section: string
+}
-export const spotlight = [
- {
- section: "app.spotlight",
- shortcuts: [
- {
- keys: ["?"],
- label: "shortcut.general.help_menu",
- action: "modals.support.toggle",
- icon: IconLifeBuoy,
- },
- {
- keys: [getPlatformSpecialKey(), "K"],
- label: "shortcut.general.show_all",
- action: "flyouts.keybinds.toggle",
- icon: IconZap,
- },
- ],
- },
- {
- section: "shortcut.navigation.title",
- shortcuts: [
- {
- keys: [getPlatformAlternateKey(), "R"],
- label: "shortcut.navigation.rest",
- action: "navigation.jump.rest",
- icon: IconArrowRight,
- },
- {
- keys: [getPlatformAlternateKey(), "Q"],
- label: "shortcut.navigation.graphql",
- action: "navigation.jump.graphql",
- icon: IconArrowRight,
- },
- {
- keys: [getPlatformAlternateKey(), "W"],
- label: "shortcut.navigation.realtime",
- action: "navigation.jump.realtime",
- icon: IconArrowRight,
- },
- {
- keys: [getPlatformAlternateKey(), "S"],
- label: "shortcut.navigation.settings",
- action: "navigation.jump.settings",
- icon: IconArrowRight,
- },
- {
- keys: [getPlatformAlternateKey(), "M"],
- label: "shortcut.navigation.profile",
- action: "navigation.jump.profile",
- icon: IconArrowRight,
- },
- ],
- },
- {
- section: "shortcut.miscellaneous.title",
- shortcuts: [
- {
- keys: [getPlatformSpecialKey(), "M"],
- label: "shortcut.miscellaneous.invite",
- action: "modals.share.toggle",
- icon: IconGift,
- },
- ],
- },
-]
+export function getShortcuts(t: (x: string) => string): ShortcutDef[] {
+ // General
+ return [
+ {
+ label: t("shortcut.general.help_menu"),
+ keys: ["?"],
+ section: t("shortcut.general.title"),
+ },
+ {
+ label: t("shortcut.general.command_menu"),
+ keys: ["/"],
+ section: t("shortcut.general.title"),
+ },
+ {
+ label: t("shortcut.general.show_all"),
+ keys: [getPlatformSpecialKey(), "K"],
+ section: t("shortcut.general.title"),
+ },
+ {
+ label: t("shortcut.general.close_current_menu"),
+ keys: ["ESC"],
+ section: t("shortcut.general.title"),
+ },
-export const fuse = [
- {
- keys: ["?"],
- label: "shortcut.general.help_menu",
- action: "modals.support.toggle",
- icon: IconLifeBuoy,
- tags: [
- "help",
- "support",
- "menu",
- "discord",
- "twitter",
- "documentation",
- "troubleshooting",
- "chat",
- "community",
- "feedback",
- "report",
- "bug",
- "issue",
- "ticket",
- ],
- },
- {
- keys: [getPlatformSpecialKey(), "K"],
- label: "shortcut.general.show_all",
- action: "flyouts.keybinds.toggle",
- icon: IconZap,
- tags: ["keyboard", "shortcuts"],
- },
- {
- keys: [getPlatformAlternateKey(), "R"],
- label: "shortcut.navigation.rest",
- action: "navigation.jump.rest",
- icon: IconArrowRight,
- tags: ["rest", "jump", "page", "navigation", "go"],
- },
- {
- keys: [getPlatformAlternateKey(), "Q"],
- label: "shortcut.navigation.graphql",
- action: "navigation.jump.graphql",
- icon: IconArrowRight,
- tags: ["graphql", "jump", "page", "navigation", "go"],
- },
- {
- keys: [getPlatformAlternateKey(), "W"],
- label: "shortcut.navigation.realtime",
- action: "navigation.jump.realtime",
- icon: IconArrowRight,
- tags: [
- "realtime",
- "jump",
- "page",
- "navigation",
- "websocket",
- "socket",
- "mqtt",
- "sse",
- "go",
- ],
- },
- {
- keys: [getPlatformAlternateKey(), "S"],
- label: "shortcut.navigation.settings",
- action: "navigation.jump.settings",
- icon: IconArrowRight,
- tags: ["settings", "jump", "page", "navigation", "account", "theme", "go"],
- },
- {
- keys: [getPlatformAlternateKey(), "M"],
- label: "shortcut.navigation.profile",
- action: "navigation.jump.profile",
- icon: IconArrowRight,
- tags: ["profile", "jump", "page", "navigation", "account", "theme", "go"],
- },
- {
- keys: [getPlatformSpecialKey(), "M"],
- label: "shortcut.miscellaneous.invite",
- action: "modals.share.toggle",
- icon: IconGift,
- tags: ["invite", "share", "app", "friends", "people", "social"],
- },
- {
- keys: [getPlatformAlternateKey(), "0"],
- label: "shortcut.theme.system",
- action: "settings.theme.system",
- icon: IconMonitor,
- tags: ["theme", "system"],
- },
- {
- keys: [getPlatformAlternateKey(), "1"],
- label: "shortcut.theme.light",
- action: "settings.theme.light",
- icon: IconSun,
- tags: ["theme", "light"],
- },
- {
- keys: [getPlatformAlternateKey(), "2"],
- label: "shortcut.theme.dark",
- action: "settings.theme.dark",
- icon: IconCloud,
- tags: ["theme", "dark"],
- },
- {
- keys: [getPlatformAlternateKey(), "3"],
- label: "shortcut.theme.black",
- action: "settings.theme.black",
- icon: IconMoon,
- tags: ["theme", "black"],
- },
-]
+ // Request
+ {
+ label: t("shortcut.request.send_request"),
+ keys: [getPlatformSpecialKey(), "↩"],
+ section: t("shortcut.request.title"),
+ },
+ {
+ keys: [getPlatformSpecialKey(), "S"],
+ label: t("shortcut.request.save_to_collections"),
+ section: t("shortcut.request.title"),
+ },
+ {
+ keys: [getPlatformSpecialKey(), "U"],
+ label: t("shortcut.request.copy_request_link"),
+ section: t("shortcut.request.title"),
+ },
+ {
+ keys: [getPlatformSpecialKey(), "I"],
+ label: t("shortcut.request.reset_request"),
+ section: t("shortcut.request.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "↑"],
+ label: t("shortcut.request.next_method"),
+ section: t("shortcut.request.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "↓"],
+ label: t("shortcut.request.previous_method"),
+ section: t("shortcut.request.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "G"],
+ label: t("shortcut.request.get_method"),
+ section: t("shortcut.request.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "H"],
+ label: t("shortcut.request.head_method"),
+ section: t("shortcut.request.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "P"],
+ label: t("shortcut.request.post_method"),
+ section: t("shortcut.request.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "U"],
+ label: t("shortcut.request.put_method"),
+ section: t("shortcut.request.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "X"],
+ label: t("shortcut.request.delete_method"),
+ section: t("shortcut.request.title"),
+ },
+
+ // Response
+ {
+ keys: [getPlatformSpecialKey(), "J"],
+ label: t("shortcut.response.download"),
+ section: t("shortcut.response.title"),
+ },
+ {
+ keys: [getPlatformSpecialKey(), "."],
+ label: t("shortcut.response.copy"),
+ section: t("shortcut.response.title"),
+ },
+
+ // Navigation
+ {
+ keys: [getPlatformSpecialKey(), "←"],
+ label: t("shortcut.navigation.back"),
+ section: t("shortcut.navigation.title"),
+ },
+ {
+ keys: [getPlatformSpecialKey(), "→"],
+ label: t("shortcut.navigation.forward"),
+ section: t("shortcut.navigation.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "R"],
+ label: t("shortcut.navigation.rest"),
+ section: t("shortcut.navigation.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "Q"],
+ label: t("shortcut.navigation.graphql"),
+ section: t("shortcut.navigation.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "W"],
+ label: t("shortcut.navigation.realtime"),
+ section: t("shortcut.navigation.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "S"],
+ label: t("shortcut.navigation.settings"),
+ section: t("shortcut.navigation.title"),
+ },
+ {
+ keys: [getPlatformAlternateKey(), "M"],
+ label: t("shortcut.navigation.profile"),
+ section: t("shortcut.navigation.title"),
+ },
+
+ // Miscellaneous
+ {
+ keys: [getPlatformSpecialKey(), "M"],
+ label: t("shortcut.miscellaneous.invite"),
+ section: t("shortcut.miscellaneous.title"),
+ },
+ ]
+}