chore(ui): use Kbd hints in bulk delete toolbar
This commit is contained in:
@@ -16,7 +16,6 @@ import type { InstanceMessageStore } from "../stores/message-v2/instance-store"
|
|||||||
import type { DeleteHoverState } from "../types/delete-hover"
|
import type { DeleteHoverState } from "../types/delete-hover"
|
||||||
import { buildRecordDisplayData } from "../stores/message-v2/record-display-cache"
|
import { buildRecordDisplayData } from "../stores/message-v2/record-display-cache"
|
||||||
import { getPartCharCount } from "../lib/token-utils"
|
import { getPartCharCount } from "../lib/token-utils"
|
||||||
import { isMac } from "../lib/keyboard-utils"
|
|
||||||
const SCROLL_SCOPE = "session"
|
const SCROLL_SCOPE = "session"
|
||||||
const SCROLL_SENTINEL_MARGIN_PX = 48
|
const SCROLL_SENTINEL_MARGIN_PX = 48
|
||||||
const USER_SCROLL_INTENT_WINDOW_MS = 600
|
const USER_SCROLL_INTENT_WINDOW_MS = 600
|
||||||
@@ -1496,9 +1495,16 @@ export default function MessageSection(props: MessageSectionProps) {
|
|||||||
<X class="w-4 h-4" aria-hidden="true" />
|
<X class="w-4 h-4" aria-hidden="true" />
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<span class="message-delete-mode-hint keyboard-hints" aria-hidden="true">
|
<div class="message-delete-mode-hint-row keyboard-hints" aria-hidden="true">
|
||||||
{t("messageSection.bulkDelete.selectionHint", { modifier: isMac() ? "Cmd" : "Ctrl" })}
|
<Kbd shortcut="cmd+click" />
|
||||||
</span>
|
<span class="message-delete-mode-hint-text">{t("messageSection.bulkDelete.selectionHint.toggle")}</span>
|
||||||
|
<span class="message-delete-mode-hint-sep">·</span>
|
||||||
|
<Kbd shortcut="shift+click" />
|
||||||
|
<span class="message-delete-mode-hint-text">{t("messageSection.bulkDelete.selectionHint.range")}</span>
|
||||||
|
<span class="message-delete-mode-hint-sep">·</span>
|
||||||
|
<Kbd shortcut="esc" />
|
||||||
|
<span class="message-delete-mode-hint-text">{t("messageSection.bulkDelete.selectionHint.clear")}</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Show>
|
</Show>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -90,7 +90,9 @@ export const messagingMessages = {
|
|||||||
"messageSection.bulkDelete.selectionModeLabel": "Selection",
|
"messageSection.bulkDelete.selectionModeLabel": "Selection",
|
||||||
"messageSection.bulkDelete.selectionModeAll": "All",
|
"messageSection.bulkDelete.selectionModeAll": "All",
|
||||||
"messageSection.bulkDelete.selectionModeTools": "Tools only",
|
"messageSection.bulkDelete.selectionModeTools": "Tools only",
|
||||||
"messageSection.bulkDelete.selectionHint": "{modifier}+Click toggle · Shift+Click range · Esc clear",
|
"messageSection.bulkDelete.selectionHint.toggle": "toggle",
|
||||||
|
"messageSection.bulkDelete.selectionHint.range": "range",
|
||||||
|
"messageSection.bulkDelete.selectionHint.clear": "clear",
|
||||||
"messageSection.bulkDelete.cancelTitle": "Cancel selection",
|
"messageSection.bulkDelete.cancelTitle": "Cancel selection",
|
||||||
"messageSection.bulkDelete.failedTitle": "Delete failed",
|
"messageSection.bulkDelete.failedTitle": "Delete failed",
|
||||||
"messageSection.bulkDelete.failedMessage": "Failed to delete selected items",
|
"messageSection.bulkDelete.failedMessage": "Failed to delete selected items",
|
||||||
|
|||||||
@@ -92,7 +92,9 @@ export const messagingMessages = {
|
|||||||
"messageSection.bulkDelete.selectionModeLabel": "Selección",
|
"messageSection.bulkDelete.selectionModeLabel": "Selección",
|
||||||
"messageSection.bulkDelete.selectionModeAll": "Todo",
|
"messageSection.bulkDelete.selectionModeAll": "Todo",
|
||||||
"messageSection.bulkDelete.selectionModeTools": "Solo herramientas",
|
"messageSection.bulkDelete.selectionModeTools": "Solo herramientas",
|
||||||
"messageSection.bulkDelete.selectionHint": "{modifier}+Click para alternar · Shift+Click rango · Esc limpiar",
|
"messageSection.bulkDelete.selectionHint.toggle": "alternar",
|
||||||
|
"messageSection.bulkDelete.selectionHint.range": "rango",
|
||||||
|
"messageSection.bulkDelete.selectionHint.clear": "limpiar",
|
||||||
"messageSection.bulkDelete.cancelTitle": "Cancelar selección",
|
"messageSection.bulkDelete.cancelTitle": "Cancelar selección",
|
||||||
"messageSection.bulkDelete.failedTitle": "Error al eliminar",
|
"messageSection.bulkDelete.failedTitle": "Error al eliminar",
|
||||||
"messageSection.bulkDelete.failedMessage": "No se pudieron eliminar los elementos seleccionados",
|
"messageSection.bulkDelete.failedMessage": "No se pudieron eliminar los elementos seleccionados",
|
||||||
|
|||||||
@@ -92,7 +92,9 @@ export const messagingMessages = {
|
|||||||
"messageSection.bulkDelete.selectionModeLabel": "Sélection",
|
"messageSection.bulkDelete.selectionModeLabel": "Sélection",
|
||||||
"messageSection.bulkDelete.selectionModeAll": "Tous",
|
"messageSection.bulkDelete.selectionModeAll": "Tous",
|
||||||
"messageSection.bulkDelete.selectionModeTools": "Outils uniquement",
|
"messageSection.bulkDelete.selectionModeTools": "Outils uniquement",
|
||||||
"messageSection.bulkDelete.selectionHint": "{modifier}+clic pour basculer · Maj+clic pour la plage · Échap effacer",
|
"messageSection.bulkDelete.selectionHint.toggle": "basculer",
|
||||||
|
"messageSection.bulkDelete.selectionHint.range": "plage",
|
||||||
|
"messageSection.bulkDelete.selectionHint.clear": "effacer",
|
||||||
"messageSection.bulkDelete.cancelTitle": "Annuler la sélection",
|
"messageSection.bulkDelete.cancelTitle": "Annuler la sélection",
|
||||||
"messageSection.bulkDelete.failedTitle": "Échec de suppression",
|
"messageSection.bulkDelete.failedTitle": "Échec de suppression",
|
||||||
"messageSection.bulkDelete.failedMessage": "Impossible de supprimer les éléments sélectionnés",
|
"messageSection.bulkDelete.failedMessage": "Impossible de supprimer les éléments sélectionnés",
|
||||||
|
|||||||
@@ -92,7 +92,9 @@ export const messagingMessages = {
|
|||||||
"messageSection.bulkDelete.selectionModeLabel": "選択",
|
"messageSection.bulkDelete.selectionModeLabel": "選択",
|
||||||
"messageSection.bulkDelete.selectionModeAll": "すべて",
|
"messageSection.bulkDelete.selectionModeAll": "すべて",
|
||||||
"messageSection.bulkDelete.selectionModeTools": "ツールのみ",
|
"messageSection.bulkDelete.selectionModeTools": "ツールのみ",
|
||||||
"messageSection.bulkDelete.selectionHint": "{modifier}+クリックで切り替え · Shift+クリックで範囲選択 · Esc でクリア",
|
"messageSection.bulkDelete.selectionHint.toggle": "切り替え",
|
||||||
|
"messageSection.bulkDelete.selectionHint.range": "範囲",
|
||||||
|
"messageSection.bulkDelete.selectionHint.clear": "クリア",
|
||||||
"messageSection.bulkDelete.cancelTitle": "選択をキャンセル",
|
"messageSection.bulkDelete.cancelTitle": "選択をキャンセル",
|
||||||
"messageSection.bulkDelete.failedTitle": "削除に失敗しました",
|
"messageSection.bulkDelete.failedTitle": "削除に失敗しました",
|
||||||
"messageSection.bulkDelete.failedMessage": "選択した項目の削除に失敗しました",
|
"messageSection.bulkDelete.failedMessage": "選択した項目の削除に失敗しました",
|
||||||
|
|||||||
@@ -92,7 +92,9 @@ export const messagingMessages = {
|
|||||||
"messageSection.bulkDelete.selectionModeLabel": "Выбор",
|
"messageSection.bulkDelete.selectionModeLabel": "Выбор",
|
||||||
"messageSection.bulkDelete.selectionModeAll": "Все",
|
"messageSection.bulkDelete.selectionModeAll": "Все",
|
||||||
"messageSection.bulkDelete.selectionModeTools": "Только инструменты",
|
"messageSection.bulkDelete.selectionModeTools": "Только инструменты",
|
||||||
"messageSection.bulkDelete.selectionHint": "{modifier}+клик переключить · Shift+клик диапазон · Esc очистить",
|
"messageSection.bulkDelete.selectionHint.toggle": "переключить",
|
||||||
|
"messageSection.bulkDelete.selectionHint.range": "диапазон",
|
||||||
|
"messageSection.bulkDelete.selectionHint.clear": "очистить",
|
||||||
"messageSection.bulkDelete.cancelTitle": "Отменить выбор",
|
"messageSection.bulkDelete.cancelTitle": "Отменить выбор",
|
||||||
"messageSection.bulkDelete.failedTitle": "Ошибка удаления",
|
"messageSection.bulkDelete.failedTitle": "Ошибка удаления",
|
||||||
"messageSection.bulkDelete.failedMessage": "Не удалось удалить выбранные элементы",
|
"messageSection.bulkDelete.failedMessage": "Не удалось удалить выбранные элементы",
|
||||||
|
|||||||
@@ -92,7 +92,9 @@ export const messagingMessages = {
|
|||||||
"messageSection.bulkDelete.selectionModeLabel": "选择",
|
"messageSection.bulkDelete.selectionModeLabel": "选择",
|
||||||
"messageSection.bulkDelete.selectionModeAll": "全部",
|
"messageSection.bulkDelete.selectionModeAll": "全部",
|
||||||
"messageSection.bulkDelete.selectionModeTools": "仅工具",
|
"messageSection.bulkDelete.selectionModeTools": "仅工具",
|
||||||
"messageSection.bulkDelete.selectionHint": "{modifier}+点击切换 · Shift+点击范围 · Esc 清除",
|
"messageSection.bulkDelete.selectionHint.toggle": "切换",
|
||||||
|
"messageSection.bulkDelete.selectionHint.range": "范围",
|
||||||
|
"messageSection.bulkDelete.selectionHint.clear": "清除",
|
||||||
"messageSection.bulkDelete.cancelTitle": "取消选择",
|
"messageSection.bulkDelete.cancelTitle": "取消选择",
|
||||||
"messageSection.bulkDelete.failedTitle": "删除失败",
|
"messageSection.bulkDelete.failedTitle": "删除失败",
|
||||||
"messageSection.bulkDelete.failedMessage": "无法删除已选择的项目",
|
"messageSection.bulkDelete.failedMessage": "无法删除已选择的项目",
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
right: 5rem;
|
right: 5rem;
|
||||||
bottom: 1rem;
|
bottom: 1rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 6px;
|
gap: 6px;
|
||||||
padding: 6px 10px;
|
padding: 6px 10px;
|
||||||
@@ -200,10 +201,23 @@
|
|||||||
box-shadow: 0 0 0 2px color-mix(in oklab, var(--accent-primary) 45%, transparent);
|
box-shadow: 0 0 0 2px color-mix(in oklab, var(--accent-primary) 45%, transparent);
|
||||||
}
|
}
|
||||||
|
|
||||||
.message-delete-mode-hint {
|
.message-delete-mode-hint-row {
|
||||||
margin-left: 2px;
|
flex: 1 0 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 6px;
|
||||||
|
padding-top: 2px;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
white-space: nowrap;
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-delete-mode-hint-text {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-delete-mode-hint-sep {
|
||||||
|
color: var(--text-muted);
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user