@pie-lib/editable-html-tip-tap 1.1.1-next.3 → 1.2.0-next.0
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.
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _styles = require("@mui/material/styles");
|
|
@@ -78,7 +79,7 @@ var StyledRoot = (0, _styles.styled)('div', {
|
|
|
78
79
|
background: 'var(--black)',
|
|
79
80
|
borderRadius: '0.5rem',
|
|
80
81
|
color: 'var(--white)',
|
|
81
|
-
fontFamily:
|
|
82
|
+
fontFamily: '\'JetBrainsMono\', monospace',
|
|
82
83
|
margin: '1.5rem 0',
|
|
83
84
|
padding: '0.75rem 1rem',
|
|
84
85
|
'& code': {
|
|
@@ -149,10 +150,15 @@ var StyledChildren = (0, _styles.styled)('div', {
|
|
|
149
150
|
})(function (_ref3) {
|
|
150
151
|
var noPadding = _ref3.noPadding;
|
|
151
152
|
return {
|
|
152
|
-
padding: noPadding ? 0 : '10px
|
|
153
|
+
padding: noPadding ? 0 : '10px 8px'
|
|
153
154
|
};
|
|
154
155
|
});
|
|
155
156
|
function TiptapContainer(props) {
|
|
157
|
+
var _useState = (0, _react.useState)(null),
|
|
158
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
159
|
+
adjustedWidth = _useState2[0],
|
|
160
|
+
setAdjustedWidth = _useState2[1];
|
|
161
|
+
var rootRef = (0, _react.useRef)(null);
|
|
156
162
|
var editor = props.editor,
|
|
157
163
|
disabled = props.disabled,
|
|
158
164
|
children = props.children,
|
|
@@ -166,7 +172,8 @@ function TiptapContainer(props) {
|
|
|
166
172
|
maxWidth = props.maxWidth,
|
|
167
173
|
minHeight = props.minHeight,
|
|
168
174
|
height = props.height,
|
|
169
|
-
maxHeight = props.maxHeight
|
|
175
|
+
maxHeight = props.maxHeight,
|
|
176
|
+
ref = props.ref;
|
|
170
177
|
(0, _react.useEffect)(function () {
|
|
171
178
|
if (editor && autoFocus) {
|
|
172
179
|
Promise.resolve().then(function () {
|
|
@@ -174,16 +181,27 @@ function TiptapContainer(props) {
|
|
|
174
181
|
});
|
|
175
182
|
}
|
|
176
183
|
}, [editor, autoFocus]);
|
|
184
|
+
(0, _react.useEffect)(function () {
|
|
185
|
+
if (props.adjustWidthForLimit) {
|
|
186
|
+
var el = document.createElement('p');
|
|
187
|
+
el.style.visibility = 'hidden';
|
|
188
|
+
el.style.position = 'absolute';
|
|
189
|
+
el.textContent = 'W'.repeat(props.charactersLimit);
|
|
190
|
+
rootRef.current.appendChild(el);
|
|
191
|
+
setAdjustedWidth("".concat(el.offsetWidth + 27, "px"));
|
|
192
|
+
el.remove();
|
|
193
|
+
}
|
|
194
|
+
}, [props.adjustWidthForLimit, props.charactersLimit]);
|
|
177
195
|
var sizeStyle = (0, _react.useMemo)(function () {
|
|
178
196
|
return {
|
|
179
|
-
width: (0, _size.valueToSize)(width),
|
|
197
|
+
width: (0, _size.valueToSize)(adjustedWidth || width),
|
|
180
198
|
minWidth: (0, _size.valueToSize)(minWidth),
|
|
181
199
|
maxWidth: (0, _size.valueToSize)(maxWidth),
|
|
182
200
|
height: (0, _size.valueToSize)(height),
|
|
183
201
|
minHeight: (0, _size.valueToSize)(minHeight),
|
|
184
202
|
maxHeight: (0, _size.valueToSize)(maxHeight)
|
|
185
203
|
};
|
|
186
|
-
}, [minWidth, width, maxWidth, minHeight, height, maxHeight]);
|
|
204
|
+
}, [adjustedWidth, minWidth, width, maxWidth, minHeight, height, maxHeight]);
|
|
187
205
|
return /*#__PURE__*/_react["default"].createElement(StyledRoot, {
|
|
188
206
|
noBorder: toolbarOpts && toolbarOpts.noBorder,
|
|
189
207
|
error: toolbarOpts && toolbarOpts.error,
|
|
@@ -192,7 +210,8 @@ function TiptapContainer(props) {
|
|
|
192
210
|
width: sizeStyle.width,
|
|
193
211
|
minWidth: sizeStyle.minWidth,
|
|
194
212
|
maxWidth: sizeStyle.maxWidth
|
|
195
|
-
}
|
|
213
|
+
},
|
|
214
|
+
ref: rootRef
|
|
196
215
|
}, /*#__PURE__*/_react["default"].createElement(StyledEditorHolder, {
|
|
197
216
|
disableScrollbar: disableScrollbar
|
|
198
217
|
}, /*#__PURE__*/_react["default"].createElement(StyledChildren, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TiptapContainer.js","names":["_react","_interopRequireWildcard","require","_styles","_renderUi","_size","_MenuBar","_interopRequireDefault","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","StyledRoot","styled","shouldForwardProp","prop","includes","_ref","theme","noBorder","error","position","padding","border","borderRadius","cursor","wordBreak","overflow","maxHeight","marginTop","margin","marginBottom","lineHeight","textWrap","fontSize","backgroundColor","color","background","fontFamily","borderLeft","paddingLeft","borderTop","tableLayout","width","borderCollapse","text","textAlign","concat","palette","main","StyledEditorHolder","_ref2","disableScrollbar","overflowY","display","scrollbarWidth","StyledChildren","_ref3","noPadding","TiptapContainer","props","editor","disabled","children","activePlugins","toolbarOpts","responseAreaProps","autoFocus","minWidth","maxWidth","minHeight","height","useEffect","Promise","resolve","then","commands","focus","sizeStyle","useMemo","valueToSize","createElement","className","style","onChange","_default","exports"],"sources":["../../src/components/TiptapContainer.jsx"],"sourcesContent":["import React, { useEffect, useMemo } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { color } from '@pie-lib/render-ui';\nimport { valueToSize } from '../utils/size';\n\nimport StyledMenuBar from './MenuBar';\n\nconst StyledRoot = styled('div', {\n shouldForwardProp: (prop) => !['noBorder', 'error'].includes(prop),\n})(({ theme, noBorder, error }) => ({\n position: 'relative',\n padding: '0px',\n border: noBorder ? 'none' : '1px solid #ccc',\n borderRadius: '4px',\n cursor: 'text',\n '& [data-slate-editor=\"true\"]': {\n wordBreak: 'break-word',\n overflow: 'visible',\n maxHeight: '500px',\n padding: '5px',\n },\n '&:first-child': {\n marginTop: 0,\n },\n '& ul, & ol': {\n padding: '0 1rem',\n margin: '1.25rem 1rem 1.25rem 0.4rem',\n },\n '& ul li p, & ol li p': {\n marginTop: '0.25em',\n marginBottom: '0.25em',\n },\n '& h1, & h2, & h3, & h4, & h5, & h6': {\n lineHeight: 1.1,\n marginTop: '2.5rem',\n textWrap: 'pretty',\n },\n '& h1, & h2': {\n marginTop: '3.5rem',\n marginBottom: '1.5rem',\n },\n '& h1': {\n fontSize: '1.4rem',\n },\n '& h2': {\n fontSize: '1.2rem',\n },\n '& h3': {\n fontSize: '1.1rem',\n },\n '& h4, & h5, & h6': {\n fontSize: '1rem',\n },\n '& code': {\n backgroundColor: 'var(--purple-light)',\n borderRadius: '0.4rem',\n color: 'var(--black)',\n fontSize: '0.85rem',\n padding: '0.25em 0.3em',\n },\n '& pre': {\n background: 'var(--black)',\n borderRadius: '0.5rem',\n color: 'var(--white)',\n fontFamily: \"'JetBrainsMono', monospace\",\n margin: '1.5rem 0',\n padding: '0.75rem 1rem',\n '& code': {\n background: 'none',\n color: 'inherit',\n fontSize: '0.8rem',\n padding: 0,\n },\n },\n '& blockquote': {\n borderLeft: '3px solid var(--gray-3)',\n margin: '1.5rem 0',\n paddingLeft: '1rem',\n },\n '& hr': {\n border: 'none',\n borderTop: '1px solid var(--gray-2)',\n margin: '2rem 0',\n },\n '& p': {\n margin: '0',\n },\n '& table': {\n tableLayout: 'fixed',\n width: '100%',\n borderCollapse: 'collapse',\n color: color.text(),\n backgroundColor: color.background(),\n },\n '& table:not([border=\"1\"]) tr': {\n borderTop: '1px solid #dfe2e5',\n },\n '& td, th': {\n padding: '.6em 1em',\n textAlign: 'center',\n },\n '& table:not([border=\"1\"]) td, th': {\n border: '1px solid #dfe2e5',\n },\n ...(error && {\n border: `2px solid ${theme.palette.error.main} !important`,\n }),\n}));\n\nconst StyledEditorHolder = styled('div', {\n shouldForwardProp: (prop) => prop !== 'disableScrollbar',\n})(({ disableScrollbar }) => ({\n position: 'relative',\n padding: '0px',\n overflowY: 'auto',\n color: color.text(),\n backgroundColor: color.background(),\n ...(disableScrollbar && {\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n scrollbarWidth: 'none',\n '-ms-overflow-style': 'none',\n }),\n}));\n\nconst StyledChildren = styled('div', {\n shouldForwardProp: (prop) => prop !== 'noPadding',\n})(({ noPadding }) => ({\n padding: noPadding ? 0 : '10px 16px',\n}));\n\nfunction TiptapContainer(props) {\n const {\n editor,\n disabled,\n children,\n disableScrollbar,\n activePlugins,\n toolbarOpts,\n responseAreaProps,\n autoFocus,\n minWidth,\n width,\n maxWidth,\n minHeight,\n height,\n maxHeight,\n } = props;\n\n useEffect(() => {\n if (editor && autoFocus) {\n Promise.resolve().then(() => {\n editor.commands.focus('end');\n });\n }\n }, [editor, autoFocus]);\n\n const sizeStyle = useMemo(\n () => ({\n width: valueToSize(width),\n minWidth: valueToSize(minWidth),\n maxWidth: valueToSize(maxWidth),\n height: valueToSize(height),\n minHeight: valueToSize(minHeight),\n maxHeight: valueToSize(maxHeight),\n }),\n [minWidth, width, maxWidth, minHeight, height, maxHeight],\n );\n\n return (\n <StyledRoot\n noBorder={toolbarOpts && toolbarOpts.noBorder}\n error={toolbarOpts && toolbarOpts.error}\n className={props.className}\n style={{ width: sizeStyle.width, minWidth: sizeStyle.minWidth, maxWidth: sizeStyle.maxWidth }}\n >\n <StyledEditorHolder disableScrollbar={disableScrollbar}>\n <StyledChildren noPadding={toolbarOpts && toolbarOpts.noPadding}>{children}</StyledChildren>\n </StyledEditorHolder>\n\n {editor && (\n <StyledMenuBar\n editor={editor}\n responseAreaProps={responseAreaProps}\n toolbarOpts={toolbarOpts}\n activePlugins={activePlugins}\n onChange={props.onChange}\n />\n )}\n </StyledRoot>\n );\n}\n\nexport default TiptapContainer;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TiptapContainer.js","names":["_react","_interopRequireWildcard","require","_styles","_renderUi","_size","_MenuBar","_interopRequireDefault","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","StyledRoot","styled","shouldForwardProp","prop","includes","_ref","theme","noBorder","error","position","padding","border","borderRadius","cursor","wordBreak","overflow","maxHeight","marginTop","margin","marginBottom","lineHeight","textWrap","fontSize","backgroundColor","color","background","fontFamily","borderLeft","paddingLeft","borderTop","tableLayout","width","borderCollapse","text","textAlign","concat","palette","main","StyledEditorHolder","_ref2","disableScrollbar","overflowY","display","scrollbarWidth","StyledChildren","_ref3","noPadding","TiptapContainer","props","_useState","useState","_useState2","_slicedToArray2","adjustedWidth","setAdjustedWidth","rootRef","useRef","editor","disabled","children","activePlugins","toolbarOpts","responseAreaProps","autoFocus","minWidth","maxWidth","minHeight","height","ref","useEffect","Promise","resolve","then","commands","focus","adjustWidthForLimit","el","document","createElement","style","visibility","textContent","repeat","charactersLimit","current","appendChild","offsetWidth","remove","sizeStyle","useMemo","valueToSize","className","onChange","_default","exports"],"sources":["../../src/components/TiptapContainer.jsx"],"sourcesContent":["import React, { useEffect, useMemo, useState, useRef } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { color } from '@pie-lib/render-ui';\nimport { valueToSize } from '../utils/size';\n\nimport StyledMenuBar from './MenuBar';\n\nconst StyledRoot = styled('div', {\n shouldForwardProp: (prop) => !['noBorder', 'error'].includes(prop),\n})(({ theme, noBorder, error }) => ({\n position: 'relative',\n padding: '0px',\n border: noBorder ? 'none' : '1px solid #ccc',\n borderRadius: '4px',\n cursor: 'text',\n '& [data-slate-editor=\"true\"]': {\n wordBreak: 'break-word',\n overflow: 'visible',\n maxHeight: '500px',\n padding: '5px',\n },\n '&:first-child': {\n marginTop: 0,\n },\n '& ul, & ol': {\n padding: '0 1rem',\n margin: '1.25rem 1rem 1.25rem 0.4rem',\n },\n '& ul li p, & ol li p': {\n marginTop: '0.25em',\n marginBottom: '0.25em',\n },\n '& h1, & h2, & h3, & h4, & h5, & h6': {\n lineHeight: 1.1,\n marginTop: '2.5rem',\n textWrap: 'pretty',\n },\n '& h1, & h2': {\n marginTop: '3.5rem',\n marginBottom: '1.5rem',\n },\n '& h1': {\n fontSize: '1.4rem',\n },\n '& h2': {\n fontSize: '1.2rem',\n },\n '& h3': {\n fontSize: '1.1rem',\n },\n '& h4, & h5, & h6': {\n fontSize: '1rem',\n },\n '& code': {\n backgroundColor: 'var(--purple-light)',\n borderRadius: '0.4rem',\n color: 'var(--black)',\n fontSize: '0.85rem',\n padding: '0.25em 0.3em',\n },\n '& pre': {\n background: 'var(--black)',\n borderRadius: '0.5rem',\n color: 'var(--white)',\n fontFamily: '\\'JetBrainsMono\\', monospace',\n margin: '1.5rem 0',\n padding: '0.75rem 1rem',\n '& code': {\n background: 'none',\n color: 'inherit',\n fontSize: '0.8rem',\n padding: 0,\n },\n },\n '& blockquote': {\n borderLeft: '3px solid var(--gray-3)',\n margin: '1.5rem 0',\n paddingLeft: '1rem',\n },\n '& hr': {\n border: 'none',\n borderTop: '1px solid var(--gray-2)',\n margin: '2rem 0',\n },\n '& p': {\n margin: '0',\n },\n '& table': {\n tableLayout: 'fixed',\n width: '100%',\n borderCollapse: 'collapse',\n color: color.text(),\n backgroundColor: color.background(),\n },\n '& table:not([border=\"1\"]) tr': {\n borderTop: '1px solid #dfe2e5',\n },\n '& td, th': {\n padding: '.6em 1em',\n textAlign: 'center',\n },\n '& table:not([border=\"1\"]) td, th': {\n border: '1px solid #dfe2e5',\n },\n ...(error && {\n border: `2px solid ${theme.palette.error.main} !important`,\n }),\n}));\n\nconst StyledEditorHolder = styled('div', {\n shouldForwardProp: (prop) => prop !== 'disableScrollbar',\n})(({ disableScrollbar }) => ({\n position: 'relative',\n padding: '0px',\n overflowY: 'auto',\n color: color.text(),\n backgroundColor: color.background(),\n ...(disableScrollbar && {\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n scrollbarWidth: 'none',\n '-ms-overflow-style': 'none',\n }),\n}));\n\nconst StyledChildren = styled('div', {\n shouldForwardProp: (prop) => prop !== 'noPadding',\n})(({ noPadding }) => ({\n padding: noPadding ? 0 : '10px 8px',\n}));\n\nfunction TiptapContainer(props) {\n const [adjustedWidth, setAdjustedWidth] = useState(null);\n const rootRef = useRef(null);\n const {\n editor,\n disabled,\n children,\n disableScrollbar,\n activePlugins,\n toolbarOpts,\n responseAreaProps,\n autoFocus,\n minWidth,\n width,\n maxWidth,\n minHeight,\n height,\n maxHeight,\n ref,\n } = props;\n\n useEffect(() => {\n if (editor && autoFocus) {\n Promise.resolve().then(() => {\n editor.commands.focus('end');\n });\n }\n }, [editor, autoFocus]);\n\n useEffect(() => {\n if (props.adjustWidthForLimit) {\n const el = document.createElement('p');\n\n el.style.visibility = 'hidden';\n el.style.position = 'absolute';\n el.textContent = 'W'.repeat(props.charactersLimit);\n\n rootRef.current.appendChild(el);\n\n setAdjustedWidth(`${el.offsetWidth + 27}px`);\n\n el.remove();\n }\n }, [props.adjustWidthForLimit, props.charactersLimit]);\n\n const sizeStyle = useMemo(\n () => ({\n width: valueToSize(adjustedWidth || width),\n minWidth: valueToSize(minWidth),\n maxWidth: valueToSize(maxWidth),\n height: valueToSize(height),\n minHeight: valueToSize(minHeight),\n maxHeight: valueToSize(maxHeight),\n }),\n [adjustedWidth, minWidth, width, maxWidth, minHeight, height, maxHeight],\n );\n\n return (\n <StyledRoot\n noBorder={toolbarOpts && toolbarOpts.noBorder}\n error={toolbarOpts && toolbarOpts.error}\n className={props.className}\n style={{ width: sizeStyle.width, minWidth: sizeStyle.minWidth, maxWidth: sizeStyle.maxWidth }}\n ref={rootRef}\n >\n <StyledEditorHolder disableScrollbar={disableScrollbar}>\n <StyledChildren noPadding={toolbarOpts && toolbarOpts.noPadding}>{children}</StyledChildren>\n </StyledEditorHolder>\n\n {editor && (\n <StyledMenuBar\n editor={editor}\n responseAreaProps={responseAreaProps}\n toolbarOpts={toolbarOpts}\n activePlugins={activePlugins}\n onChange={props.onChange}\n />\n )}\n </StyledRoot>\n );\n}\n\nexport default TiptapContainer;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/editable-html-tip-tap",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0-next.0+c7578ca",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.jsx",
|
|
8
8
|
"author": "pie-framework developers",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/pie-framework/pie-lib"
|
|
12
|
+
},
|
|
9
13
|
"dependencies": {
|
|
10
14
|
"@dnd-kit/core": "6.3.1",
|
|
11
15
|
"@dnd-kit/modifiers": "9.0.0",
|
|
12
16
|
"@dnd-kit/utilities": "3.2.2",
|
|
13
17
|
"@mui/icons-material": "^7.3.4",
|
|
14
18
|
"@mui/material": "^7.3.4",
|
|
15
|
-
"@pie-lib/drag": "^3.
|
|
16
|
-
"@pie-lib/math-input": "^7.
|
|
17
|
-
"@pie-lib/math-rendering": "^4.
|
|
18
|
-
"@pie-lib/math-toolbar": "^2.
|
|
19
|
-
"@pie-lib/render-ui": "^5.
|
|
19
|
+
"@pie-lib/drag": "^3.2.0-next.0+c7578ca",
|
|
20
|
+
"@pie-lib/math-input": "^7.2.0-next.0+c7578ca",
|
|
21
|
+
"@pie-lib/math-rendering": "^4.2.0-next.0+c7578ca",
|
|
22
|
+
"@pie-lib/math-toolbar": "^2.2.0-next.0+c7578ca",
|
|
23
|
+
"@pie-lib/render-ui": "^5.2.0-next.0+c7578ca",
|
|
20
24
|
"@tiptap/core": "3.0.9",
|
|
21
25
|
"@tiptap/extension-character-count": "3.0.9",
|
|
22
26
|
"@tiptap/extension-color": "3.0.9",
|
|
@@ -57,6 +61,6 @@
|
|
|
57
61
|
"publishConfig": {
|
|
58
62
|
"access": "public"
|
|
59
63
|
},
|
|
60
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "c7578cae82de46ec0dae41b7d1ef924401e6226d",
|
|
61
65
|
"scripts": {}
|
|
62
66
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useMemo } from 'react';
|
|
1
|
+
import React, { useEffect, useMemo, useState, useRef } from 'react';
|
|
2
2
|
import { styled } from '@mui/material/styles';
|
|
3
3
|
import { color } from '@pie-lib/render-ui';
|
|
4
4
|
import { valueToSize } from '../utils/size';
|
|
@@ -62,7 +62,7 @@ const StyledRoot = styled('div', {
|
|
|
62
62
|
background: 'var(--black)',
|
|
63
63
|
borderRadius: '0.5rem',
|
|
64
64
|
color: 'var(--white)',
|
|
65
|
-
fontFamily:
|
|
65
|
+
fontFamily: '\'JetBrainsMono\', monospace',
|
|
66
66
|
margin: '1.5rem 0',
|
|
67
67
|
padding: '0.75rem 1rem',
|
|
68
68
|
'& code': {
|
|
@@ -127,10 +127,12 @@ const StyledEditorHolder = styled('div', {
|
|
|
127
127
|
const StyledChildren = styled('div', {
|
|
128
128
|
shouldForwardProp: (prop) => prop !== 'noPadding',
|
|
129
129
|
})(({ noPadding }) => ({
|
|
130
|
-
padding: noPadding ? 0 : '10px
|
|
130
|
+
padding: noPadding ? 0 : '10px 8px',
|
|
131
131
|
}));
|
|
132
132
|
|
|
133
133
|
function TiptapContainer(props) {
|
|
134
|
+
const [adjustedWidth, setAdjustedWidth] = useState(null);
|
|
135
|
+
const rootRef = useRef(null);
|
|
134
136
|
const {
|
|
135
137
|
editor,
|
|
136
138
|
disabled,
|
|
@@ -146,6 +148,7 @@ function TiptapContainer(props) {
|
|
|
146
148
|
minHeight,
|
|
147
149
|
height,
|
|
148
150
|
maxHeight,
|
|
151
|
+
ref,
|
|
149
152
|
} = props;
|
|
150
153
|
|
|
151
154
|
useEffect(() => {
|
|
@@ -156,16 +159,32 @@ function TiptapContainer(props) {
|
|
|
156
159
|
}
|
|
157
160
|
}, [editor, autoFocus]);
|
|
158
161
|
|
|
162
|
+
useEffect(() => {
|
|
163
|
+
if (props.adjustWidthForLimit) {
|
|
164
|
+
const el = document.createElement('p');
|
|
165
|
+
|
|
166
|
+
el.style.visibility = 'hidden';
|
|
167
|
+
el.style.position = 'absolute';
|
|
168
|
+
el.textContent = 'W'.repeat(props.charactersLimit);
|
|
169
|
+
|
|
170
|
+
rootRef.current.appendChild(el);
|
|
171
|
+
|
|
172
|
+
setAdjustedWidth(`${el.offsetWidth + 27}px`);
|
|
173
|
+
|
|
174
|
+
el.remove();
|
|
175
|
+
}
|
|
176
|
+
}, [props.adjustWidthForLimit, props.charactersLimit]);
|
|
177
|
+
|
|
159
178
|
const sizeStyle = useMemo(
|
|
160
179
|
() => ({
|
|
161
|
-
width: valueToSize(width),
|
|
180
|
+
width: valueToSize(adjustedWidth || width),
|
|
162
181
|
minWidth: valueToSize(minWidth),
|
|
163
182
|
maxWidth: valueToSize(maxWidth),
|
|
164
183
|
height: valueToSize(height),
|
|
165
184
|
minHeight: valueToSize(minHeight),
|
|
166
185
|
maxHeight: valueToSize(maxHeight),
|
|
167
186
|
}),
|
|
168
|
-
[minWidth, width, maxWidth, minHeight, height, maxHeight],
|
|
187
|
+
[adjustedWidth, minWidth, width, maxWidth, minHeight, height, maxHeight],
|
|
169
188
|
);
|
|
170
189
|
|
|
171
190
|
return (
|
|
@@ -174,6 +193,7 @@ function TiptapContainer(props) {
|
|
|
174
193
|
error={toolbarOpts && toolbarOpts.error}
|
|
175
194
|
className={props.className}
|
|
176
195
|
style={{ width: sizeStyle.width, minWidth: sizeStyle.minWidth, maxWidth: sizeStyle.maxWidth }}
|
|
196
|
+
ref={rootRef}
|
|
177
197
|
>
|
|
178
198
|
<StyledEditorHolder disableScrollbar={disableScrollbar}>
|
|
179
199
|
<StyledChildren noPadding={toolbarOpts && toolbarOpts.noPadding}>{children}</StyledChildren>
|
package/NEXT.CHANGELOG.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|