@skbkontur/markdown 2.5.8-alpha.11 → 2.5.8-alpha.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skbkontur/markdown",
3
- "version": "2.5.8-alpha.11",
3
+ "version": "2.5.8-alpha.12",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"
@@ -83,7 +83,7 @@ export var Markdown = function (props) {
83
83
  useEffect(function () {
84
84
  if (fullscreen && isEditMode && textareaRef) {
85
85
  var textareaNode_1 = getTextareaNode();
86
- if (textareaNode_1) {
86
+ if (textareaNode_1 && !textareaNode_1.selectionStart && !textareaNode_1.selectionEnd) {
87
87
  textareaNode_1.focus();
88
88
  textareaNode_1.selectionStart = selectionStart !== null && selectionStart !== void 0 ? selectionStart : 0;
89
89
  textareaNode_1.selectionEnd = selectionEnd !== null && selectionEnd !== void 0 ? selectionEnd : 0;
@@ -35,9 +35,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
35
  }
36
36
  };
37
37
  import { Button, Hint, Spinner, Toast, Tooltip } from '@skbkontur/react-ui';
38
+ import { useTheme } from '@skbkontur/react-ui/lib/theming/useTheme';
38
39
  import React, { useEffect, useRef, useState } from 'react';
39
40
  import { DropdownCaptionWrapper, TooltipButtonsWrapper, TooltipContentWrapper, TooltipWrapper, } from './AIActionsDropdown.styled';
40
- import { COPY_BUTTON_TEXT, ERRORS_NOT_FOUND_TEXT } from './constants';
41
+ import { COPY_BUTTON_TEXT, ERRORS_NOT_FOUND_TEXT, MAX_HEIGHT } from './constants';
41
42
  import { Copy } from '../../../MarkdownIcons/Copy';
42
43
  import { NatureFxSparkleA2 } from '../../../MarkdownIcons/NatureFxSparkleA2';
43
44
  import { MarkdownMenuItem } from '../../Markdown.styled';
@@ -47,6 +48,7 @@ import { MarkdownDropdown } from '../MarkdownDropdown/MarkdownDropdown';
47
48
  export var AIActionsDropdown = function (_a) {
48
49
  var _b;
49
50
  var textareaRef = _a.textareaRef, isPreviewMode = _a.isPreviewMode, api = _a.api;
51
+ var tooltipPaddingX = useTheme().tooltipPaddingX;
50
52
  var _c = useState(), processedText = _c[0], setProcessedText = _c[1];
51
53
  var _d = useState(RequestStatus.Default), requestStatus = _d[0], setRequestStatus = _d[1];
52
54
  var tooltipRef = useRef(null);
@@ -62,7 +64,7 @@ export var AIActionsDropdown = function (_a) {
62
64
  return null;
63
65
  var value = htmlTextArea.value.substring(Number(selectionStart), selectionEnd !== null && selectionEnd !== void 0 ? selectionEnd : undefined);
64
66
  var isEmptySelected = selectionEnd === selectionStart;
65
- return (React.createElement(Tooltip, { ref: tooltipRef, pos: "top right", allowedPositions: ['top right', 'right middle', 'bottom right'], trigger: "manual", render: renderTooltipContent, onClose: handleCloseTooltip },
67
+ return (React.createElement(Tooltip, { ref: tooltipRef, pos: "top right", allowedPositions: ['top right', 'right middle', 'bottom right', 'bottom left'], trigger: "manual", render: renderTooltipContent, style: { height: MAX_HEIGHT + parseInt(tooltipPaddingX) * 2 }, onClose: handleCloseTooltip },
66
68
  React.createElement(MarkdownDropdown, { hintText: isEmptySelected ? 'Выдели текст' : 'ИИ-помощник', caption: React.createElement(DropdownCaptionWrapper, null,
67
69
  React.createElement(NatureFxSparkleA2, null),
68
70
  " \u0418\u0418"), menuWidth: 180, disabled: isPreviewMode || isEmptySelected, onOpen: handleCloseTooltip }, availableMethods.map(function (_a) {
@@ -86,24 +88,28 @@ export var AIActionsDropdown = function (_a) {
86
88
  return __generator(this, function (_b) {
87
89
  switch (_b.label) {
88
90
  case 0:
89
- _b.trys.push([0, 2, , 3]);
90
- (_a = tooltipRef === null || tooltipRef === void 0 ? void 0 : tooltipRef.current) === null || _a === void 0 ? void 0 : _a.show();
91
91
  taskId = taskIdRef.current.generate();
92
+ _b.label = 1;
93
+ case 1:
94
+ _b.trys.push([1, 3, , 4]);
95
+ (_a = tooltipRef === null || tooltipRef === void 0 ? void 0 : tooltipRef.current) === null || _a === void 0 ? void 0 : _a.show();
92
96
  setRequestStatus(RequestStatus.isFetching);
93
97
  return [4 /*yield*/, onSendMessage(value, method)];
94
- case 1:
98
+ case 2:
95
99
  response = _b.sent();
96
100
  if (response && taskId === taskIdRef.current.generated) {
97
101
  setRequestStatus(RequestStatus.isLoaded);
98
102
  setProcessedText(value === response ? ERRORS_NOT_FOUND_TEXT : response);
99
103
  }
100
- return [3 /*break*/, 3];
101
- case 2:
104
+ return [3 /*break*/, 4];
105
+ case 3:
102
106
  e_1 = _b.sent();
103
- handleCloseTooltip();
104
- Toast.push('Ошибка обработки текста');
105
- return [3 /*break*/, 3];
106
- case 3: return [2 /*return*/];
107
+ if (taskId === taskIdRef.current.generated) {
108
+ handleCloseTooltip();
109
+ Toast.push('Ошибка обработки текста');
110
+ }
111
+ return [3 /*break*/, 4];
112
+ case 4: return [2 /*return*/];
107
113
  }
108
114
  });
109
115
  });
@@ -2,9 +2,10 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
2
2
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
3
  return cooked;
4
4
  };
5
+ import { MAX_HEIGHT } from './constants';
5
6
  import styled from '../../../styles/styled-components';
6
- export var TooltipWrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n gap: 16px;\n max-width: 300px;\n max-height: 400px;\n overflow-y: auto;\n"], ["\n display: flex;\n flex-direction: column;\n gap: 16px;\n max-width: 300px;\n max-height: 400px;\n overflow-y: auto;\n"])));
7
- export var TooltipContentWrapper = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-height: 400px;\n white-space: pre-wrap;\n overflow-y: auto;\n"], ["\n max-height: 400px;\n white-space: pre-wrap;\n overflow-y: auto;\n"])));
7
+ export var TooltipWrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n gap: 16px;\n max-width: 300px;\n"], ["\n display: flex;\n flex-direction: column;\n gap: 16px;\n max-width: 300px;\n"])));
8
+ export var TooltipContentWrapper = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-height: ", "px;\n white-space: pre-wrap;\n overflow-y: auto;\n"], ["\n max-height: ", "px;\n white-space: pre-wrap;\n overflow-y: auto;\n"])), MAX_HEIGHT);
8
9
  export var TooltipButtonsWrapper = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: 8px;\n"], ["\n display: flex;\n align-items: center;\n gap: 8px;\n"])));
9
10
  export var DropdownCaptionWrapper = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n gap: 4px;\n"], ["\n display: flex;\n align-items: center;\n gap: 4px;\n"])));
10
11
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -1,2 +1,3 @@
1
1
  export declare const ERRORS_NOT_FOUND_TEXT = "\u041E\u0448\u0438\u0431\u043E\u043A \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E";
2
2
  export declare const COPY_BUTTON_TEXT = "\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C";
3
+ export declare const MAX_HEIGHT = 400;
@@ -1,2 +1,3 @@
1
1
  export var ERRORS_NOT_FOUND_TEXT = 'Ошибок не найдено';
2
2
  export var COPY_BUTTON_TEXT = 'Скопировать';
3
+ export var MAX_HEIGHT = 400;