/
githubmirror
/
ydb-embedded-ui
Обзор
Документация
Войти
/
githubmirror
/
ydb-embedded-ui
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/containers/Tenant/Query/QueryEditor/hooks/useEditorOptions.ts
48 строк
2 KB
Anton Standrik
feat: tabs implementation (#3631)
25 мар 2026, 11:05
Не верифицирован
25 мар 2026, 11:05
20a7690
Код
Авторство
О чём код?
import React from 'react'; import type Monaco from 'monaco-editor'; import {useMultiTabQueryEditorEnabled} from '../../../../../store/reducers/capabilities/hooks'; import {SETTING_KEYS} from '../../../../../store/reducers/settings/constants'; import {useSetting} from '../../../../../utils/hooks'; export type EditorOptions = Monaco.editor.IEditorOptions & Monaco.editor.IGlobalEditorOptions; const MULTI_TAB_EDITOR_PADDING_TOP_PX = 6; const EDITOR_OPTIONS: EditorOptions = { automaticLayout: true, selectOnLineNumbers: true, minimap: { enabled: false, }, fixedOverflowWidgets: true, }; export function useEditorOptions() { const [enableAutocomplete] = useSetting(SETTING_KEYS.ENABLE_AUTOCOMPLETE); const [autocompleteOnEnter] = useSetting(SETTING_KEYS.AUTOCOMPLETE_ON_ENTER); const isMultiTabQueryEditorEnabled = useMultiTabQueryEditorEnabled(); const options = React.useMemo<EditorOptions>(() => { const useAutocomplete = Boolean(enableAutocomplete); const baseOptions: EditorOptions = { quickSuggestions: useAutocomplete, suggestOnTriggerCharacters: useAutocomplete, acceptSuggestionOnEnter: autocompleteOnEnter ? 'on' : 'off', ...EDITOR_OPTIONS, }; if (!isMultiTabQueryEditorEnabled) { return baseOptions; } return { ...baseOptions, padding: {top: MULTI_TAB_EDITOR_PADDING_TOP_PX}, scrollBeyondLastLine: false, }; }, [enableAutocomplete, autocompleteOnEnter, isMultiTabQueryEditorEnabled]); return options; }