@@ -12,6 +12,7 @@ import { cn } from "~/utils/cn";
1212import { DiscordIcon , SlackIcon } from "@trigger.dev/companyicons" ;
1313import { Fragment , useState } from "react" ;
1414import { useCurrentPlan } from "~/routes/_app.orgs.$organizationSlug/route" ;
15+ import { useShortcutKeys } from "~/hooks/useShortcutKeys" ;
1516import { Feedback } from "../Feedback" ;
1617import { Shortcuts } from "../Shortcuts" ;
1718import { StepContentContainer } from "../StepContentContainer" ;
@@ -20,7 +21,9 @@ import { ClipboardField } from "../primitives/ClipboardField";
2021import { Dialog , DialogContent , DialogHeader , DialogTrigger } from "../primitives/Dialog" ;
2122import { Icon } from "../primitives/Icon" ;
2223import { Paragraph } from "../primitives/Paragraph" ;
23- import { Popover , PopoverContent , PopoverSideMenuTrigger } from "../primitives/Popover" ;
24+ import { Popover , PopoverContent , PopoverTrigger } from "../primitives/Popover" ;
25+ import { SimpleTooltip } from "../primitives/Tooltip" ;
26+ import { ShortcutKey } from "../primitives/ShortcutKey" ;
2427import { StepNumber } from "../primitives/StepNumber" ;
2528import { SideMenuItem } from "./SideMenuItem" ;
2629import { Badge } from "../primitives/Badge" ;
@@ -35,27 +38,54 @@ export function HelpAndFeedback({
3538 const [ isHelpMenuOpen , setHelpMenuOpen ] = useState ( false ) ;
3639 const currentPlan = useCurrentPlan ( ) ;
3740
41+ useShortcutKeys ( {
42+ shortcut : disableShortcut ? undefined : { key : "h" , enabledOnInputElements : false } ,
43+ action : ( e ) => {
44+ e . preventDefault ( ) ;
45+ e . stopPropagation ( ) ;
46+ setHelpMenuOpen ( true ) ;
47+ } ,
48+ } ) ;
49+
3850 return (
39- < Popover onOpenChange = { ( open ) => setHelpMenuOpen ( open ) } >
40- < PopoverSideMenuTrigger
41- isOpen = { isHelpMenuOpen }
42- shortcut = { { key : "h" , enabledOnInputElements : false } }
43- className = { isCollapsed ? "w-full" : "flex-1" }
44- disabled = { disableShortcut }
45- hideShortcutKey = { isCollapsed }
46- >
47- < div className = "flex items-center gap-1.5 overflow-hidden" >
48- < QuestionMarkCircleIcon className = "size-4.5 shrink-0 text-success" />
49- < span
51+ < Popover open = { isHelpMenuOpen } onOpenChange = { setHelpMenuOpen } >
52+ < SimpleTooltip
53+ button = {
54+ < PopoverTrigger
5055 className = { cn (
51- "overflow-hidden whitespace-nowrap transition-all duration-150 " ,
52- isCollapsed ? "max-w-0 opacity-0 " : "max-w-[150px] opacity-100 "
56+ "group flex h-8 items-center gap-1.5 rounded pl-[0.4375rem] pr-2 transition-colors hover:bg-charcoal-750 " ,
57+ isCollapsed ? "w-full " : "flex-1 justify-between "
5358 ) }
5459 >
55- Help & Feedback
56- </ span >
57- </ div >
58- </ PopoverSideMenuTrigger >
60+ < span className = "flex items-center gap-1.5 overflow-hidden" >
61+ < QuestionMarkCircleIcon className = "size-5 shrink-0 text-success" />
62+ < span
63+ className = { cn (
64+ "overflow-hidden whitespace-nowrap text-2sm text-text-bright transition-all duration-150" ,
65+ isCollapsed ? "max-w-0 opacity-0" : "max-w-[150px] opacity-100"
66+ ) }
67+ >
68+ Help & Feedback
69+ </ span >
70+ </ span >
71+ < ShortcutKey
72+ className = { cn (
73+ "size-4 flex-none transition-all duration-150" ,
74+ isCollapsed ? "hidden" : ""
75+ ) }
76+ shortcut = { { key : "h" } }
77+ variant = "small"
78+ />
79+ </ PopoverTrigger >
80+ }
81+ content = "Help & Feedback"
82+ side = "right"
83+ sideOffset = { 8 }
84+ hidden = { ! isCollapsed }
85+ buttonClassName = { isCollapsed ? "!h-8 w-full" : "!h-8 flex-1" }
86+ asChild
87+ disableHoverableContent
88+ />
5989 < PopoverContent
6090 className = "min-w-[14rem] divide-y divide-grid-bright overflow-y-auto p-0 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-charcoal-600"
6191 side = { isCollapsed ? "right" : "top" }
0 commit comments