Skip to content

Commit 4a742d6

Browse files
committed
Refactor tooltip positioning and add hover tooltips for edit format buttons in narrow viewports
1 parent e9e177d commit 4a742d6

3 files changed

Lines changed: 37 additions & 4 deletions

File tree

‎packages/ui/src/components/editor/panel/PromptField/PromptField.module.scss‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,11 @@
325325
align-items: center;
326326
pointer-events: all;
327327
position: relative;
328+
border-radius: 5px;
329+
330+
&:hover {
331+
background-color: var(--vscode-toolbar-hoverBackground);
332+
}
328333

329334
&__button {
330335
display: flex;
@@ -383,7 +388,8 @@
383388
.tooltip {
384389
position: absolute;
385390
z-index: 2;
386-
bottom: calc(100% - 2px);
391+
top: 0;
392+
transform: translateY(calc(-100% + 1px));
387393
font-size: 12px;
388394
white-space: normal;
389395
max-width: calc(100vw - 50px);
@@ -427,6 +433,16 @@
427433
right: var(--tooltip-offset);
428434
}
429435
}
436+
437+
&--align-center {
438+
left: 50%;
439+
transform: translateX(-50%) translateY(calc(-100% - 4px));
440+
white-space: nowrap;
441+
&::after {
442+
left: 50%;
443+
margin-left: -5px;
444+
}
445+
}
430446
}
431447

432448
.underlined {

‎packages/ui/src/components/editor/panel/PromptField/PromptField.tsx‎

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@ import { dictionary } from '@shared/constants/dictionary'
2222

2323
const Tooltip: React.FC<{
2424
message: string
25-
align: 'left' | 'right'
25+
align: 'left' | 'right' | 'center'
2626
is_warning?: boolean
27-
offset: number
27+
offset?: number
2828
}> = (params) => (
2929
<div
3030
className={cn(styles.tooltip, {
3131
[styles['tooltip--align-left']]: params.align == 'left',
3232
[styles['tooltip--align-right']]: params.align == 'right',
33+
[styles['tooltip--align-center']]: params.align == 'center',
3334
[styles['tooltip--warning']]: params.is_warning
3435
})}
3536
style={
@@ -82,6 +83,8 @@ export const PromptField: React.FC<PromptFieldProps> = (props) => {
8283
const [show_submit_tooltip, set_show_submit_tooltip] = useState(false)
8384
const [is_text_selecting, set_is_text_selecting] = useState(false)
8485
const [is_focused, set_is_focused] = useState(false)
86+
const [hovered_edit_format, set_hovered_edit_format] =
87+
useState<EditFormat | null>(null)
8588
const is_narrow_viewport = use_is_narrow_viewport(330)
8689
const { is_alt_pressed, handle_container_key_down } = use_keyboard_shortcuts({
8790
show_edit_format_selector: props.show_edit_format_selector,
@@ -435,7 +438,21 @@ export const PromptField: React.FC<PromptFieldProps> = (props) => {
435438
props.edit_format_instructions?.[format]
436439
}`}
437440
onClick={() => props.on_edit_format_change?.(format)}
441+
onMouseEnter={() => set_hovered_edit_format(format)}
442+
onMouseLeave={() => set_hovered_edit_format(null)}
438443
>
444+
{is_narrow_viewport &&
445+
hovered_edit_format == format && (
446+
<Tooltip
447+
message={
448+
format == 'before-after'
449+
? 'Before and After'
450+
: format.charAt(0).toUpperCase() +
451+
format.slice(1)
452+
}
453+
align="center"
454+
/>
455+
)}
439456
<span
440457
className={
441458
styles['footer__right__edit-format__button__spacer']

‎packages/vscode/src/views/panel/frontend/Home/Home.module.scss‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
background: none;
4545
border: none;
4646
border-radius: 5px;
47-
padding-left: 5px;
47+
padding: 1px 0 1px 5px;
4848

4949
&:hover {
5050
background-color: var(--vscode-toolbar-hoverBackground);

0 commit comments

Comments
 (0)