@skbkontur/markdown 2.3.1 → 2.4.1
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 +8 -9
- package/src/Markdown/Markdown.d.ts +1 -1
- package/src/Markdown/Markdown.js +10 -7
- package/src/Markdown/Markdown.styled.d.ts +5 -3
- package/src/Markdown/Markdown.styled.js +17 -14
- package/src/Markdown/MarkdownActions.js +3 -3
- package/src/Markdown/MarkdownHelpers/EmptyPreview.d.ts +1 -0
- package/src/Markdown/MarkdownHelpers/markdownTextareaHelpers.js +2 -2
- package/src/MarkdownIcons/AttachLink.d.ts +1 -0
- package/src/MarkdownIcons/AttachPaperclip.d.ts +1 -0
- package/src/MarkdownIcons/CheckedList.d.ts +1 -0
- package/src/MarkdownIcons/Collapse.d.ts +1 -0
- package/src/MarkdownIcons/DocIcon.d.ts +1 -0
- package/src/MarkdownIcons/EmojiFace.d.ts +1 -0
- package/src/MarkdownIcons/EmptyPrviewArrow.d.ts +1 -0
- package/src/MarkdownIcons/Expand.d.ts +1 -0
- package/src/MarkdownIcons/EyeOpen.d.ts +1 -0
- package/src/MarkdownIcons/List.d.ts +1 -0
- package/src/MarkdownIcons/NumberedList.d.ts +1 -0
- package/src/MarkdownIcons/SplitView.d.ts +1 -0
- package/src/MarkdownIcons/Table.d.ts +1 -0
- package/src/MarkdownIcons/ToolPencil.d.ts +1 -0
- package/src/MarkdownViewer/Helpers/MarkdownLink.d.ts +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skbkontur/markdown",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"registry": "https://registry.npmjs.org/",
|
|
6
6
|
"access": "public"
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"@skbkontur/react-ui": ">=4.5.0",
|
|
54
54
|
"@skbkontur/react-ui-validations": ">=1.12.0",
|
|
55
|
-
"react": ">=
|
|
56
|
-
"react-dom": ">=
|
|
55
|
+
"react": ">=18",
|
|
56
|
+
"react-dom": ">=18"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@skbkontur/react-ui": "^4.14.0",
|
|
@@ -72,8 +72,8 @@
|
|
|
72
72
|
"@swc/plugin-styled-components": "5.0.0",
|
|
73
73
|
"@types/jest": "29.5.0",
|
|
74
74
|
"@types/node": "12.0.0",
|
|
75
|
-
"@types/react": "
|
|
76
|
-
"@types/react-dom": "
|
|
75
|
+
"@types/react": "18.0.28",
|
|
76
|
+
"@types/react-dom": "18.0.11",
|
|
77
77
|
"@typescript-eslint/eslint-plugin": "5.57.0",
|
|
78
78
|
"@typescript-eslint/parser": "5.57.0",
|
|
79
79
|
"@vitejs/plugin-react-swc": "3.7.2",
|
|
@@ -99,8 +99,8 @@
|
|
|
99
99
|
"lint-staged": "12.3.4",
|
|
100
100
|
"postcss-styled-syntax": "0.5.0",
|
|
101
101
|
"prettier": "2.2.1",
|
|
102
|
-
"react": "
|
|
103
|
-
"react-dom": "
|
|
102
|
+
"react": "18.3.1",
|
|
103
|
+
"react-dom": "18.3.1",
|
|
104
104
|
"storybook": "8.2.8",
|
|
105
105
|
"stylelint": "15.11.0",
|
|
106
106
|
"stylelint-config-standard": "34.0.0",
|
|
@@ -119,7 +119,6 @@
|
|
|
119
119
|
}
|
|
120
120
|
},
|
|
121
121
|
"resolutions": {
|
|
122
|
-
"@types/react": "
|
|
123
|
-
"@types/react-dom": "16.9.0"
|
|
122
|
+
"@types/react": "18.0.28"
|
|
124
123
|
}
|
|
125
124
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FC, ReactNode } from 'react';
|
|
2
2
|
import { MarkdownEditorProps } from './MarkdownEditor';
|
|
3
|
-
import {
|
|
3
|
+
import { HideActionsOptions, HorizontalPaddings, MarkdownApi, ViewMode } from './types';
|
|
4
4
|
export interface MarkdownProps extends MarkdownEditorProps {
|
|
5
5
|
/** Методы апи для загрузки/скачивания файлов и меншена */
|
|
6
6
|
api?: MarkdownApi;
|
package/src/Markdown/Markdown.js
CHANGED
|
@@ -62,6 +62,7 @@ export var Markdown = function (props) {
|
|
|
62
62
|
var onSelectEmoji = useEmojiLogic(textareaRef.current).onSelectEmoji;
|
|
63
63
|
usePasteFromClipboard(textareaRef.current, api === null || api === void 0 ? void 0 : api.fileUploadApi, api === null || api === void 0 ? void 0 : api.fileDownloadApi, fileApiUrl);
|
|
64
64
|
useListenTextareaScroll(resetMention, textareaRef.current);
|
|
65
|
+
var fullscreenTextareaPadding = useFullscreenHorizontalPadding(fullscreen, viewMode, initialWidth);
|
|
65
66
|
useLayoutEffect(function () {
|
|
66
67
|
var _a;
|
|
67
68
|
var textareaNode = (_a = textareaRef.current) === null || _a === void 0 ? void 0 : _a.node;
|
|
@@ -79,14 +80,15 @@ export var Markdown = function (props) {
|
|
|
79
80
|
}, [isMobile]);
|
|
80
81
|
useEffect(function () {
|
|
81
82
|
var _a;
|
|
82
|
-
if (fullscreen && isEditMode) {
|
|
83
|
+
if (fullscreen && isEditMode && textareaRef) {
|
|
83
84
|
var textareaNode = (_a = textareaRef.current) === null || _a === void 0 ? void 0 : _a.node;
|
|
84
|
-
textareaNode
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
if (textareaNode) {
|
|
86
|
+
textareaNode.focus();
|
|
87
|
+
textareaNode.selectionStart = selectionStart !== null && selectionStart !== void 0 ? selectionStart : 0;
|
|
88
|
+
textareaNode.selectionEnd = selectionEnd !== null && selectionEnd !== void 0 ? selectionEnd : 0;
|
|
89
|
+
}
|
|
87
90
|
}
|
|
88
|
-
}, [fullscreen, isEditMode, selectionEnd, selectionStart]);
|
|
89
|
-
var fullscreenTextareaPadding = useFullscreenHorizontalPadding(fullscreen, viewMode, initialWidth);
|
|
91
|
+
}, [fullscreen, isEditMode, selectionEnd, selectionStart, textareaRef]);
|
|
90
92
|
var horizontalPaddings = {
|
|
91
93
|
panelPadding: panelHorizontalPadding,
|
|
92
94
|
fullscreenPadding: fullscreenTextareaPadding,
|
|
@@ -95,7 +97,7 @@ export var Markdown = function (props) {
|
|
|
95
97
|
React.createElement(Wrapper, __assign({}, getRootProps()),
|
|
96
98
|
!(hideActionsOptions === null || hideActionsOptions === void 0 ? void 0 : hideActionsOptions.allActions) && (React.createElement(MarkdownActions, { showShortKeys: showShotKeys, textAreaRef: textareaRef, width: width, viewMode: viewMode, loadingFile: requestStatus === RequestStatus.isFetching, fullscreen: fullscreen, selectionStart: selectionStart, selectionEnd: selectionEnd, horizontalPaddings: horizontalPaddings, hideOptions: hideActionsOptions, hasFilesApi: !!(api === null || api === void 0 ? void 0 : api.fileDownloadApi) && !!(api === null || api === void 0 ? void 0 : api.fileUploadApi), isSplitViewAvailable: isSplitViewAvailable, disableFullscreen: isMobile, onOpenFileDialog: open, onChangeViewMode: handleChangeViewMode, onClickFullscreen: handleClickFullscreen, onSelectEmoji: onSelectEmoji })),
|
|
97
99
|
isEditMode && error && (api === null || api === void 0 ? void 0 : api.getUsersApi) && (renderFilesValidation === null || renderFilesValidation === void 0 ? void 0 : renderFilesValidation(horizontalPaddings, onResetError)),
|
|
98
|
-
fullscreen && viewMode === ViewMode.Split && (React.createElement(SplitViewContainer, null,
|
|
100
|
+
fullscreen && viewMode === ViewMode.Split && !fullscreenTextareaPadding && (React.createElement(SplitViewContainer, null,
|
|
99
101
|
React.createElement(SplitViewEditContainer, null, renderEditContainer()),
|
|
100
102
|
React.createElement(SplitViewPreviewContainer, { textareaWidth: textareaProps.width }, renderPreview()))),
|
|
101
103
|
viewMode === ViewMode.Edit && renderEditContainer(),
|
|
@@ -175,6 +177,7 @@ export var Markdown = function (props) {
|
|
|
175
177
|
setMention(undefined);
|
|
176
178
|
}
|
|
177
179
|
function handleClickFullscreen() {
|
|
180
|
+
setViewMode(function (prevState) { return (prevState !== ViewMode.Split && isSplitViewAvailable ? ViewMode.Split : ViewMode.Edit); });
|
|
178
181
|
setFullScreen(!fullscreen);
|
|
179
182
|
}
|
|
180
183
|
};
|
|
@@ -21,10 +21,12 @@ export declare const MarkdownPreview: import("styled-components").StyledComponen
|
|
|
21
21
|
} & HorizontalPaddings, never>;
|
|
22
22
|
export declare const MarkdownActionsWrapper: import("styled-components").StyledComponent<"div", MarkdownTheme, {
|
|
23
23
|
width?: Nullable<number | string>;
|
|
24
|
-
} & HorizontalPaddings
|
|
24
|
+
} & HorizontalPaddings & {
|
|
25
|
+
fullscreen?: boolean | undefined;
|
|
26
|
+
}, never>;
|
|
25
27
|
export declare const ButtonsWrapper: import("styled-components").StyledComponent<"div", MarkdownTheme, {
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
+
fullscreen?: boolean | undefined;
|
|
29
|
+
}, never>;
|
|
28
30
|
export declare const ActionsWrapper: import("styled-components").StyledComponent<"div", MarkdownTheme, {}, never>;
|
|
29
31
|
export declare const MarkdownButtonWrapper: import("styled-components").StyledComponent<typeof Button, MarkdownTheme, {}, never>;
|
|
30
32
|
export declare const MarkdownButtonIcon: import("styled-components").StyledComponent<"div", MarkdownTheme, {}, never>;
|
|
@@ -21,15 +21,18 @@ var panelStyle = function (_a) {
|
|
|
21
21
|
var panelPadding = _a.panelPadding, theme = _a.theme;
|
|
22
22
|
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n padding: 6px ", "px;\n background-color: ", ";\n margin-bottom: 12px;\n"], ["\n padding: 6px ", "px;\n background-color: ", ";\n margin-bottom: 12px;\n"])), panelPadding !== null && panelPadding !== void 0 ? panelPadding : 0, theme.colors.panelBg);
|
|
23
23
|
};
|
|
24
|
-
function
|
|
25
|
-
return typeof
|
|
24
|
+
function getAllowedCssValue(value) {
|
|
25
|
+
return typeof value === 'number' ? value + 'px' : value;
|
|
26
|
+
}
|
|
27
|
+
function getMarkdownActionsPadding(isPadding, padding) {
|
|
28
|
+
return isPadding ? getAllowedCssValue(padding) : 0;
|
|
26
29
|
}
|
|
27
30
|
export var Wrapper = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: relative;\n\n &:focus-visible {\n outline: 1px solid ", ";\n }\n"], ["\n position: relative;\n\n &:focus-visible {\n outline: 1px solid ", ";\n }\n"])), function (p) { return p.theme.colors.brand; });
|
|
28
31
|
var scrollbarStyle = css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n height: ", ";\n overflow-y: auto;\n"], ["\n height: ", ";\n overflow-y: auto;\n"])), FULLSCREEN_HEIGHT);
|
|
29
32
|
export var FlexCenter = styled.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: flex;\n justify-content: center;\n"], ["\n display: flex;\n justify-content: center;\n"])));
|
|
30
33
|
export var SplitViewMaxWidth = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n max-width: 1580px;\n width: 100%;\n"], ["\n max-width: 1580px;\n width: 100%;\n"])));
|
|
31
|
-
export var SplitViewContainer = styled.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n display: flex;\n gap: 32px;\n\n @media (width >= 1980px) {\n gap:
|
|
32
|
-
export var SplitViewPreviewContainer = styled.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n ", "
|
|
34
|
+
export var SplitViewContainer = styled.div(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n display: flex;\n gap: 32px;\n\n @media (width >= 1980px) {\n gap: 48px;\n }\n"], ["\n display: flex;\n gap: 32px;\n\n @media (width >= 1980px) {\n gap: 48px;\n }\n"])));
|
|
35
|
+
export var SplitViewPreviewContainer = styled.div(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n ", ";\n\n width: ", ";\n ", ";\n"], ["\n ", ";\n\n width: ", ";\n ", ";\n"])), scrollbarStyle, function (p) { return (p.textareaWidth ? getAllowedCssValue(p.textareaWidth) : undefined); }, function (p) { return !p.textareaWidth && 'flex: 1 0 0'; });
|
|
33
36
|
export var SplitViewEditContainer = styled.div(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n width: 100%;\n min-width: 420px;\n flex: 1 0 0;\n"], ["\n width: 100%;\n min-width: 420px;\n flex: 1 0 0;\n"])));
|
|
34
37
|
export var Avatar = styled.img.attrs({ alt: '' })(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n flex-shrink: 0;\n box-sizing: border-box;\n border: 1px solid ", ";\n border-radius: 50%;\n object-fit: cover;\n"], ["\n flex-shrink: 0;\n box-sizing: border-box;\n border: 1px solid ", ";\n border-radius: 50%;\n object-fit: cover;\n"])), function (props) { return props.theme.colors.grayDefault; });
|
|
35
38
|
export var UserWrapper = styled.div(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n width: 244px;\n display: flex;\n align-items: center;\n gap: 12px;\n"], ["\n width: 244px;\n display: flex;\n align-items: center;\n gap: 12px;\n"])));
|
|
@@ -39,13 +42,13 @@ export var MarkdownPreview = styled.div(templateObject_13 || (templateObject_13
|
|
|
39
42
|
var _b;
|
|
40
43
|
var panelPadding = _a.panelPadding, fullscreenPadding = _a.fullscreenPadding;
|
|
41
44
|
return (_b = fullscreenPadding !== null && fullscreenPadding !== void 0 ? fullscreenPadding : panelPadding) !== null && _b !== void 0 ? _b : 8;
|
|
42
|
-
}, function (p) { return p.width && "width: ".concat(
|
|
43
|
-
export var MarkdownActionsWrapper = styled.div(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n padding: ", "
|
|
44
|
-
var theme = _a.theme, panelPadding = _a.panelPadding,
|
|
45
|
-
if (panelPadding && !
|
|
45
|
+
}, function (p) { return p.width && "width: ".concat(getAllowedCssValue(p.width), ";"); });
|
|
46
|
+
export var MarkdownActionsWrapper = styled.div(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n padding: ", "\n ", " 0;\n margin-bottom: ", "px;\n box-sizing: border-box;\n ", "\n ", "\n \n a {\n border: none !important;\n text-decoration: none !important;\n }\n"], ["\n padding: ", "\n ", " 0;\n margin-bottom: ", "px;\n box-sizing: border-box;\n ", "\n ", "\n \n a {\n border: none !important;\n text-decoration: none !important;\n }\n"])), function (p) { return getMarkdownActionsPadding(!!p.fullscreenPadding, '16px'); }, function (p) { return getMarkdownActionsPadding(!!p.fullscreenPadding, p.fullscreenPadding); }, function (p) { return (p.fullscreen ? 12 : 4); }, function (p) { return p.width && "width: ".concat(getAllowedCssValue(p.width), ";"); }, function (_a) {
|
|
47
|
+
var theme = _a.theme, panelPadding = _a.panelPadding, fullscreen = _a.fullscreen;
|
|
48
|
+
if (panelPadding && !fullscreen)
|
|
46
49
|
return panelStyle({ theme: theme, panelPadding: panelPadding });
|
|
47
50
|
});
|
|
48
|
-
export var ButtonsWrapper = styled.div(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n margin: 0 -7px;\n border-bottom: ", ";\n"], ["\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n margin: 0 -7px;\n border-bottom: ", ";\n"])), function (p) { return (p.
|
|
51
|
+
export var ButtonsWrapper = styled.div(templateObject_15 || (templateObject_15 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n margin: 0 -7px;\n border-bottom: ", ";\n"], ["\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n margin: 0 -7px;\n border-bottom: ", ";\n"])), function (p) { return (p.fullscreen ? "1px solid ".concat(p.theme.colors.grayDefault) : 'none'); });
|
|
49
52
|
export var ActionsWrapper = styled.div(templateObject_16 || (templateObject_16 = __makeTemplateObject(["\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n"], ["\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n"])));
|
|
50
53
|
export var MarkdownButtonWrapper = styled(Button)(templateObject_17 || (templateObject_17 = __makeTemplateObject(["\n button {\n padding: 4px;\n border: none;\n box-sizing: border-box;\n }\n"], ["\n button {\n padding: 4px;\n border: none;\n box-sizing: border-box;\n }\n"])));
|
|
51
54
|
export var MarkdownButtonIcon = styled.div(templateObject_18 || (templateObject_18 = __makeTemplateObject(["\n height: 24px;\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n"], ["\n height: 24px;\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n"])));
|
|
@@ -85,8 +88,9 @@ var borderlessTextareaVariables = {
|
|
|
85
88
|
};
|
|
86
89
|
export var getMarkdownReactUiTheme = function (theme, viewMode, reactUiTheme, panelHorizontalPadding, fullScreenTextareaPadding, borderless, isFullscreen) {
|
|
87
90
|
var elementsFontSize = theme.elementsFontSize, elementsLineHeight = theme.elementsLineHeight, themeMode = theme.themeMode, colors = theme.colors;
|
|
88
|
-
var
|
|
89
|
-
var
|
|
91
|
+
var isSplitMode = viewMode === ViewMode.Split;
|
|
92
|
+
var sidePagePaddingX = isSplitMode ? '56px' : '0';
|
|
93
|
+
var isFullscreenNotSplitMode = isFullscreen && !isSplitMode;
|
|
90
94
|
return ThemeFactory.create(__assign(__assign(__assign(__assign(__assign({}, extendThemeConfigWithSized({
|
|
91
95
|
tabFontSize: elementsFontSize,
|
|
92
96
|
tabPaddingY: '0',
|
|
@@ -101,10 +105,9 @@ export var getMarkdownReactUiTheme = function (theme, viewMode, reactUiTheme, pa
|
|
|
101
105
|
extendThemeConfigWithSized({
|
|
102
106
|
textareaPaddingX: "".concat(panelHorizontalPadding, "px"),
|
|
103
107
|
}))), ((borderless || isFullscreenNotSplitMode) && borderlessTextareaVariables)), (isFullscreen &&
|
|
104
|
-
__assign({ sidePagePaddingLeft: sidePagePaddingX, sidePagePaddingRight: sidePagePaddingX, textareaBorderColorError: 'transparent', textareaBorderColorWarning: 'transparent', textareaShadow: 'none' }, extendThemeConfigWithSized({
|
|
105
|
-
textareaMinHeight: FULLSCREEN_HEIGHT,
|
|
108
|
+
__assign({ sidePagePaddingLeft: sidePagePaddingX, sidePagePaddingRight: sidePagePaddingX, textareaBorderColorError: 'transparent', textareaBorderColorWarning: 'transparent', textareaShadow: 'none' }, extendThemeConfigWithSized(__assign({ textareaMinHeight: FULLSCREEN_HEIGHT }, (isFullscreenNotSplitMode && {
|
|
106
109
|
textareaPaddingX: "".concat(fullScreenTextareaPadding, "px"),
|
|
107
110
|
textareaPaddingY: '0',
|
|
108
|
-
})))), reactUiTheme);
|
|
111
|
+
})))))), reactUiTheme);
|
|
109
112
|
};
|
|
110
113
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22, templateObject_23, templateObject_24, templateObject_25, templateObject_26, templateObject_27, templateObject_28;
|
|
@@ -13,7 +13,7 @@ import { Dropdown, Hint } from '@skbkontur/react-ui';
|
|
|
13
13
|
import React from 'react';
|
|
14
14
|
import { COMMONMARK_HELP_URL } from './constants';
|
|
15
15
|
import { EmojiDropdown } from './Emoji/EmojiDropdown';
|
|
16
|
-
import { ActionsWrapper, ButtonsWrapper, MarkdownDropdown, MarkdownMenuItem,
|
|
16
|
+
import { ActionsWrapper, ButtonsWrapper, MarkdownActionsWrapper, MarkdownDropdown, MarkdownMenuItem, } from './Markdown.styled';
|
|
17
17
|
import { MarkdownFormatButton } from './MarkdownHelpers/MarkdownFormatButton';
|
|
18
18
|
import { setMarkdown } from './MarkdownHelpers/markdownHelpers';
|
|
19
19
|
import { markdownHelpHeaders, markdownHelpLists, markdownHelpOther, markdownHelpText } from './MarkdownHelpItems';
|
|
@@ -29,8 +29,8 @@ import { ToolPencil } from '../MarkdownIcons/ToolPencil';
|
|
|
29
29
|
export var MarkdownActions = function (_a) {
|
|
30
30
|
var textAreaRef = _a.textAreaRef, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd, loadingFile = _a.loadingFile, onOpenFileDialog = _a.onOpenFileDialog, onClickFullscreen = _a.onClickFullscreen, fullscreen = _a.fullscreen, viewMode = _a.viewMode, onChangeViewMode = _a.onChangeViewMode, horizontalPaddings = _a.horizontalPaddings, hasFilesApi = _a.hasFilesApi, width = _a.width, showShortKeys = _a.showShortKeys, hideOptions = _a.hideOptions, onSelectEmoji = _a.onSelectEmoji, isSplitViewAvailable = _a.isSplitViewAvailable, disableFullscreen = _a.disableFullscreen;
|
|
31
31
|
var isPreviewMode = viewMode === ViewMode.Preview;
|
|
32
|
-
return (React.createElement(MarkdownActionsWrapper, __assign({}, horizontalPaddings, { width: width }),
|
|
33
|
-
React.createElement(ButtonsWrapper,
|
|
32
|
+
return (React.createElement(MarkdownActionsWrapper, __assign({}, horizontalPaddings, { width: width, fullscreen: fullscreen }),
|
|
33
|
+
React.createElement(ButtonsWrapper, { fullscreen: fullscreen },
|
|
34
34
|
React.createElement(ActionsWrapper, null,
|
|
35
35
|
!(hideOptions === null || hideOptions === void 0 ? void 0 : hideOptions.heading) && (React.createElement(MarkdownDropdown, null,
|
|
36
36
|
React.createElement(Hint, { text: "\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A", pos: "top left" },
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
1
|
+
import { useCallback, useEffect, useLayoutEffect, useState } from 'react';
|
|
2
2
|
import { setMarkdownPastedHtml } from './markdownHelpers';
|
|
3
3
|
import { MENTION_WRAPPER_ID_POSTFIX } from '../constants';
|
|
4
4
|
import { ViewMode } from '../types';
|
|
@@ -73,7 +73,7 @@ export var useListenTextareaScroll = function (setMention, textarea) {
|
|
|
73
73
|
};
|
|
74
74
|
export var useFullscreenHorizontalPadding = function (fullscreen, viewMode, textareaWidth) {
|
|
75
75
|
var _a = useState(), padding = _a[0], setPadding = _a[1];
|
|
76
|
-
|
|
76
|
+
useLayoutEffect(function () {
|
|
77
77
|
if (!fullscreen || !textareaWidth || viewMode === ViewMode.Split) {
|
|
78
78
|
setPadding(undefined);
|
|
79
79
|
return;
|