F: Improve tooltips for Mac
This commit is contained in:
parent
cac508451d
commit
022041881b
|
@ -8,6 +8,7 @@ import {
|
|||
IconPin,
|
||||
IconUser2
|
||||
} from '@/components/icons';
|
||||
import { isMac } from '@/utils/utils';
|
||||
|
||||
import { Subtopics } from '../components/subtopics';
|
||||
import { HelpTopic } from '../models/help-topic';
|
||||
|
@ -33,7 +34,7 @@ export function HelpInterface() {
|
|||
<h2>Навигация и настройки</h2>
|
||||
<ul>
|
||||
<li>
|
||||
<kbd>Ctrl + клик</kbd> на объект навигации откроет новую вкладку
|
||||
<kbd>{isMac() ? 'Cmd + клик' : 'Ctrl + клик'}</kbd> на объект навигации откроет новую вкладку
|
||||
</li>
|
||||
<li>
|
||||
<IconPin size='1.25rem' className='inline-icon' /> навигационную панель можно скрыть с помощью кнопки в правом
|
||||
|
|
|
@ -15,6 +15,7 @@ import {
|
|||
IconSubfolders,
|
||||
IconUserSearch
|
||||
} from '@/components/icons';
|
||||
import { isMac } from '@/utils/utils';
|
||||
|
||||
import { LinkTopic } from '../../components/link-topic';
|
||||
import { HelpTopic } from '../../models/help-topic';
|
||||
|
@ -38,7 +39,7 @@ export function HelpLibrary() {
|
|||
<kbd>клик</kbd> по строке - переход к редактированию схемы
|
||||
</li>
|
||||
<li>
|
||||
<kbd>Ctrl + клик</kbd> по строке откроет схему в новой вкладке
|
||||
<kbd>{isMac() ? 'Cmd + клик' : 'Ctrl + клик'}</kbd> по строке откроет схему в новой вкладке
|
||||
</li>
|
||||
<li>Фильтры атрибутов три позиции: да/нет/не применять</li>
|
||||
<li>
|
||||
|
@ -74,7 +75,11 @@ export function HelpLibrary() {
|
|||
<kbd>клик</kbd> по папке отображает справа схемы в ней
|
||||
</li>
|
||||
<li>
|
||||
<kbd>Ctrl + клик по папке копирует путь в буфер обмена</kbd>
|
||||
<kbd>
|
||||
{isMac()
|
||||
? 'Cmd + клик по папке копирует путь в буфер обмена'
|
||||
: 'Ctrl + клик по папке копирует путь в буфер обмена'}
|
||||
</kbd>
|
||||
</li>
|
||||
<li>
|
||||
<kbd>клик</kbd> по иконке сворачивает/разворачивает вложенные
|
||||
|
|
|
@ -8,6 +8,7 @@ import {
|
|||
IconPublic,
|
||||
IconSave
|
||||
} from '@/components/icons';
|
||||
import { isMac } from '@/utils/utils';
|
||||
|
||||
import { LinkTopic } from '../../components/link-topic';
|
||||
import { HelpTopic } from '../../models/help-topic';
|
||||
|
@ -34,7 +35,7 @@ export function HelpRSCard() {
|
|||
<IconOSS className='inline-icon' /> переход к связанной <LinkTopic text='ОСС' topic={HelpTopic.CC_OSS} />
|
||||
</li>
|
||||
<li>
|
||||
<IconSave className='inline-icon' /> сохранить изменения: <kbd>Ctrl + S</kbd>
|
||||
<IconSave className='inline-icon' /> сохранить изменения: <kbd>{isMac() ? 'Cmd + S' : 'Ctrl + S'}</kbd>
|
||||
</li>
|
||||
<li>
|
||||
<IconEditor className='inline-icon' /> Редактор обладает правом редактирования
|
||||
|
|
|
@ -18,6 +18,7 @@ import {
|
|||
IconTree,
|
||||
IconTypeGraph
|
||||
} from '@/components/icons';
|
||||
import { isMac } from '@/utils/utils';
|
||||
|
||||
import { LinkTopic } from '../../components/link-topic';
|
||||
import { HelpTopic } from '../../models/help-topic';
|
||||
|
@ -40,7 +41,7 @@ export function HelpRSEditor() {
|
|||
<IconLeftOpen className='inline-icon' /> список конституент
|
||||
</li>
|
||||
<li>
|
||||
<IconSave className='inline-icon' /> сохранить: <kbd>Ctrl + S</kbd>
|
||||
<IconSave className='inline-icon' /> сохранить: <kbd>{isMac() ? 'Cmd + S' : 'Ctrl + S'}</kbd>
|
||||
</li>
|
||||
<li>
|
||||
<IconReset className='inline-icon' /> сбросить изменения
|
||||
|
@ -104,7 +105,7 @@ export function HelpRSEditor() {
|
|||
<LinkTopic text='дерева разбора' topic={HelpTopic.UI_FORMULA_TREE} />
|
||||
</li>
|
||||
<li>
|
||||
<kbd>Ctrl + Пробел</kbd> вставка незанятого имени / замена проекции
|
||||
<kbd>{isMac() ? 'Cmd + Пробел' : 'Ctrl + Пробел'}</kbd> вставка незанятого имени / замена проекции
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
@ -116,7 +117,7 @@ export function HelpRSEditor() {
|
|||
<LinkTopic text='Термина' topic={HelpTopic.CC_CONSTITUENTA} />
|
||||
</li>
|
||||
<li>
|
||||
<kbd>Ctrl + Пробел</kbd> открывает редактирование отсылок
|
||||
<kbd>{isMac() ? 'Cmd + Пробел' : 'Ctrl + Пробел'}</kbd> открывает редактирование отсылок
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
@ -12,7 +12,7 @@ import { cn } from '@/components/utils';
|
|||
import { useModificationStore } from '@/stores/modification';
|
||||
import { usePreferencesStore } from '@/stores/preferences';
|
||||
import { tooltipText } from '@/utils/labels';
|
||||
import { prepareTooltip, sharePage } from '@/utils/utils';
|
||||
import { isMac, prepareTooltip, sharePage } from '@/utils/utils';
|
||||
|
||||
import { AccessPolicy, type ILibraryItem, LibraryItemType } from '../backend/types';
|
||||
import { useMutatingLibrary } from '../backend/use-mutating-library';
|
||||
|
@ -71,7 +71,7 @@ export function ToolbarItemCard({
|
|||
{ossSelector}
|
||||
{isMutable || isModified ? (
|
||||
<MiniButton
|
||||
titleHtml={prepareTooltip('Сохранить изменения', 'Ctrl + S')}
|
||||
titleHtml={prepareTooltip('Сохранить изменения', isMac() ? 'Cmd + S' : 'Ctrl + S')}
|
||||
aria-label='Сохранить изменения'
|
||||
icon={<IconSave size='1.25rem' className='icon-primary' />}
|
||||
onClick={onSubmit}
|
||||
|
|
|
@ -27,7 +27,7 @@ import { type Styling } from '@/components/props';
|
|||
import { cn } from '@/components/utils';
|
||||
import { useDialogsStore } from '@/stores/dialogs';
|
||||
import { usePreferencesStore } from '@/stores/preferences';
|
||||
import { isIOS, notImplemented, prepareTooltip } from '@/utils/utils';
|
||||
import { isIOS, isMac, notImplemented, prepareTooltip } from '@/utils/utils';
|
||||
|
||||
import { useMutatingOss } from '../../../backend/use-mutating-oss';
|
||||
import { useUpdateLayout } from '../../../backend/use-update-layout';
|
||||
|
@ -146,7 +146,7 @@ export function ToolbarOssGraph({
|
|||
<div className='cc-icons items-start'>
|
||||
<MiniButton
|
||||
aria-label='Сохранить изменения'
|
||||
titleHtml={prepareTooltip('Сохранить изменения', 'Ctrl + S')}
|
||||
titleHtml={prepareTooltip('Сохранить изменения', isMac() ? '⌘ + S' : 'Ctrl + S')}
|
||||
hideTitle={menu.isOpen}
|
||||
icon={<IconSave size='1.25rem' className='icon-primary' />}
|
||||
onClick={handleSavePositions}
|
||||
|
|
|
@ -4,6 +4,7 @@ import { hoverTooltip, type TooltipView } from '@codemirror/view';
|
|||
import clsx from 'clsx';
|
||||
|
||||
import { findContainedNodes } from '@/utils/codemirror';
|
||||
import { isMac } from '@/utils/utils';
|
||||
|
||||
import { describeConstituentaTerm, labelGrammeme } from '../../labels';
|
||||
import { type IEntityReference, type ISyntacticReference } from '../../models/language';
|
||||
|
@ -95,7 +96,9 @@ function domTooltipEntityReference(ref: IEntityReference, cst: IConstituenta | n
|
|||
if (canClick) {
|
||||
const clickTip = document.createElement('p');
|
||||
clickTip.className = 'text-center text-xs mt-1';
|
||||
clickTip.innerHTML = '<kbd>Ctrl + клик</kbd> для перехода</br><kbd>Ctrl + пробел</kbd> для редактирования';
|
||||
clickTip.innerHTML = isMac()
|
||||
? '<kbd>Cmd + клик</kbd> для перехода</br><kbd>Cmd + пробел</kbd> для редактирования'
|
||||
: '<kbd>Ctrl + клик</kbd> для перехода</br><kbd>Ctrl + пробел</kbd> для редактирования';
|
||||
dom.appendChild(clickTip);
|
||||
}
|
||||
|
||||
|
@ -140,7 +143,9 @@ function domTooltipSyntacticReference(
|
|||
if (canClick) {
|
||||
const clickTip = document.createElement('p');
|
||||
clickTip.className = 'text-center text-xs mt-1';
|
||||
clickTip.innerHTML = '<kbd>Ctrl + пробел</kbd> для редактирования';
|
||||
clickTip.innerHTML = isMac()
|
||||
? '<kbd>Cmd + пробел</kbd> для редактирования'
|
||||
: '<kbd>Ctrl + пробел</kbd> для редактирования';
|
||||
dom.appendChild(clickTip);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ import { cn } from '@/components/utils';
|
|||
import { useModificationStore } from '@/stores/modification';
|
||||
import { usePreferencesStore } from '@/stores/preferences';
|
||||
import { tooltipText } from '@/utils/labels';
|
||||
import { prepareTooltip } from '@/utils/utils';
|
||||
import { isMac, prepareTooltip } from '@/utils/utils';
|
||||
|
||||
import { useMutatingRSForm } from '../../../backend/use-mutating-rsform';
|
||||
import { type IConstituenta } from '../../../models/rsform';
|
||||
|
@ -97,7 +97,7 @@ export function ToolbarConstituenta({
|
|||
{isContentEditable ? (
|
||||
<>
|
||||
<MiniButton
|
||||
titleHtml={prepareTooltip('Сохранить изменения', 'Ctrl + S')}
|
||||
titleHtml={prepareTooltip('Сохранить изменения', isMac() ? 'Cmd + S' : 'Ctrl + S')}
|
||||
aria-label='Сохранить изменения'
|
||||
icon={<IconSave size='1.25rem' className='icon-primary' />}
|
||||
onClick={onSubmit}
|
||||
|
|
|
@ -10,7 +10,7 @@ import { cn } from '@/components/utils';
|
|||
import { APP_COLORS } from '@/styling/colors';
|
||||
import { globalIDs } from '@/utils/constants';
|
||||
import { type RO } from '@/utils/meta';
|
||||
import { prepareTooltip } from '@/utils/utils';
|
||||
import { isMac, prepareTooltip } from '@/utils/utils';
|
||||
|
||||
import { type IExpressionParseDTO, ParsingStatus } from '../../../backend/types';
|
||||
import { colorStatusBar } from '../../../colors';
|
||||
|
@ -55,7 +55,7 @@ export function StatusBar({ className, isModified, processing, activeCst, parseD
|
|||
)}
|
||||
style={{ backgroundColor: processing ? APP_COLORS.bgDefault : colorStatusBar(status) }}
|
||||
data-tooltip-id={globalIDs.tooltip}
|
||||
data-tooltip-html={prepareTooltip('Проверить определение', 'Ctrl + Q')}
|
||||
data-tooltip-html={prepareTooltip('Проверить определение', isMac() ? 'Cmd + Q' : 'Ctrl + Q')}
|
||||
onClick={onAnalyze}
|
||||
>
|
||||
{processing ? (
|
||||
|
|
|
@ -215,12 +215,22 @@ export function prepareTooltip(text: string, hotkey?: string) {
|
|||
/**
|
||||
* Utility to detect iOS/iPadOS.
|
||||
*/
|
||||
export function isIOS() {
|
||||
export function isIOS(): boolean {
|
||||
if (typeof navigator === 'undefined') {
|
||||
return false;
|
||||
}
|
||||
return (
|
||||
/iPad|iPhone|iPod/.test(navigator.userAgent) ||
|
||||
/iPad|iPhone|iPod/i.test(navigator.userAgent) ||
|
||||
(navigator.userAgent.includes('Macintosh') && 'ontouchend' in document)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility to detect Mac device.
|
||||
*/
|
||||
export function isMac(): boolean {
|
||||
if (typeof navigator === 'undefined') {
|
||||
return false;
|
||||
}
|
||||
return /Macintosh|MacIntel|MacPPC|Mac68K|Mac OS/i.test(navigator.userAgent);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user