Skip to content

Commit a4d3aa8

Browse files
authored
feat(composer): keep the resize grip out of the way (#71)
The grip above the message input drew its outlined pill at all times and popped a tooltip on hover, so the input's top edge never read as a plain border. The tooltip and its translations are gone - the resize cursor and the accent highlight while dragging already signal the drag - and the pill now fades in only when the pointer is inside the input area or the composer has focus. Drag, double-click to reset, and keyboard resizing are unchanged.
1 parent 64a443b commit a4d3aa8

16 files changed

Lines changed: 30 additions & 36 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,17 @@ version with its date and start a fresh empty `[Unreleased]` above it.
2020
release; click it to open Qoderian's plugin page, where Obsidian's update
2121
button lives.
2222

23+
### Changed
24+
25+
- The resize grip above the message input stays hidden until the pointer is
26+
inside the input area or the composer has focus, so the input's top edge
27+
reads as a plain border while you are reading or scrolling.
28+
29+
### Removed
30+
31+
- The hover tooltip on the message input's resize grip; the resize cursor and
32+
the accent highlight while dragging already signal what the grip does.
33+
2334
## [1.0.11] - 2026-09-16
2435

2536
### Added

‎src/features/chat/chat-view.ts‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -417,9 +417,6 @@ export class QoderianView extends ItemView {
417417
);
418418
}
419419
this.creditsUsageButton?.refreshLocale();
420-
for (const tab of this.tabManager?.getAllTabs() ?? []) {
421-
tab.ui.composerResize?.refreshLocale();
422-
}
423420
this.updateTabBar();
424421
}
425422

‎src/features/chat/ui/composer-resize.ts‎

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
import { t } from '../../../i18n/i18n';
2-
import { setButtonTooltip } from '../../../shared/dom/tooltip';
3-
41
export const COMPOSER_MIN_HEIGHT = 140;
52
export const COMPOSER_MAX_HEIGHT_PERCENT = 0.75;
63
export const COMPOSER_KEYBOARD_RESIZE_STEP = 24;
74

85
export interface ComposerResizeController {
96
destroy(): void;
10-
refreshLocale(): void;
117
reset(): void;
128
}
139

@@ -113,15 +109,10 @@ export function attachComposerResize(
113109
applyHeight(currentHeight() + delta);
114110
};
115111

116-
const refreshLocale = (): void => {
117-
setButtonTooltip(handleEl, t('composer.resize'));
118-
};
119-
120112
handleEl.setAttribute('role', 'separator');
121113
handleEl.setAttribute('aria-orientation', 'horizontal');
122114
handleEl.setAttribute('tabindex', '0');
123115
updateAriaBounds(currentHeight());
124-
refreshLocale();
125116
handleEl.addEventListener('pointerdown', handlePointerDown);
126117
handleEl.addEventListener('dblclick', reset);
127118
handleEl.addEventListener('keydown', handleKeydown);
@@ -148,7 +139,6 @@ export function attachComposerResize(
148139
handleEl.removeEventListener('keydown', handleKeydown);
149140
viewWindow?.removeEventListener('blur', stopDragging);
150141
},
151-
refreshLocale,
152142
reset,
153143
};
154144
}

‎src/i18n/locales/de.json‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
},
2424
"composer": {
2525
"send": "Nachricht senden",
26-
"stop": "Generierung stoppen",
27-
"resize": "Ziehen, um die Eingabehöhe anzupassen; doppelklicken zum Zurücksetzen"
26+
"stop": "Generierung stoppen"
2827
},
2928
"restore": {
3029
"failed": "Einige Tabs oder Unterhaltungen konnten nicht wiederhergestellt werden ({count} Problem(e)). Details in der Entwicklerkonsole."

‎src/i18n/locales/en.json‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
},
2424
"composer": {
2525
"send": "Send message",
26-
"stop": "Stop generation",
27-
"resize": "Drag to resize the message input; double-click to reset"
26+
"stop": "Stop generation"
2827
},
2928
"restore": {
3029
"failed": "Some of your previous tabs or conversations could not be restored ({count} issue(s)). Details are in the developer console."

‎src/i18n/locales/es.json‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
},
2424
"composer": {
2525
"send": "Enviar mensaje",
26-
"stop": "Detener generación",
27-
"resize": "Arrastra para ajustar la altura del campo; haz doble clic para restablecer"
26+
"stop": "Detener generación"
2827
},
2928
"restore": {
3029
"failed": "No se pudieron restaurar algunas pestañas o conversaciones ({count} problema(s)). Detalles en la consola de desarrollador."

‎src/i18n/locales/fr.json‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
},
2424
"composer": {
2525
"send": "Envoyer le message",
26-
"stop": "Arrêter la génération",
27-
"resize": "Faites glisser pour redimensionner la saisie ; double-cliquez pour réinitialiser"
26+
"stop": "Arrêter la génération"
2827
},
2928
"restore": {
3029
"failed": "Certains onglets ou conversations n'ont pas pu être restaurés ({count} problème(s)). Détails dans la console développeur."

‎src/i18n/locales/ja.json‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
},
2424
"composer": {
2525
"send": "メッセージを送信",
26-
"stop": "生成を停止",
27-
"resize": "ドラッグして入力欄の高さを調整。ダブルクリックで自動サイズに戻す"
26+
"stop": "生成を停止"
2827
},
2928
"restore": {
3029
"failed": "一部のタブまたは会話を復元できませんでした({count} 件の問題)。詳細は開発者コンソールを確認してください。"

‎src/i18n/locales/ko.json‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
},
2424
"composer": {
2525
"send": "메시지 보내기",
26-
"stop": "생성 중지",
27-
"resize": "드래그하여 입력 높이 조절; 두 번 클릭하여 자동 높이로 재설정"
26+
"stop": "생성 중지"
2827
},
2928
"restore": {
3029
"failed": "이전 탭 또는 대화를 완전히 복원하지 못했습니다(문제 {count}건). 자세한 내용은 개발자 콘솔을 확인하세요."

‎src/i18n/locales/pt.json‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
},
2424
"composer": {
2525
"send": "Enviar mensagem",
26-
"stop": "Parar geração",
27-
"resize": "Arraste para ajustar a altura da entrada; clique duas vezes para redefinir"
26+
"stop": "Parar geração"
2827
},
2928
"restore": {
3029
"failed": "Algumas abas ou conversas não puderam ser restauradas ({count} problema(s)). Detalhes no console do desenvolvedor."

0 commit comments

Comments
 (0)