@bigbinary/neeto-molecules 3.9.8 → 3.9.9
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/dist/DocumentEditor.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
-
import { useCallback, memo, useRef, useState, useMemo } from 'react';
|
|
3
|
+
import { useCallback, memo, useRef, useState, useEffect, useMemo } from 'react';
|
|
4
4
|
import classnames from 'classnames';
|
|
5
5
|
import { isPresent, noop } from '@bigbinary/neeto-cist';
|
|
6
6
|
import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
|
|
@@ -117,6 +117,9 @@ var Editor = function Editor(_ref) {
|
|
|
117
117
|
_useState2 = _slicedToArray(_useState, 2),
|
|
118
118
|
attachments = _useState2[0],
|
|
119
119
|
setAttachments = _useState2[1];
|
|
120
|
+
useEffect(function () {
|
|
121
|
+
setAttachments(getUniqueAttachments(initialAttachments));
|
|
122
|
+
}, [initialAttachments]);
|
|
120
123
|
var _useEditor = useEditor({
|
|
121
124
|
onContentChange: onContentChange,
|
|
122
125
|
editorContentFieldName: editorContentFieldName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentEditor.js","sources":["../src/components/DocumentEditor/constants.js","../src/components/DocumentEditor/hooks/useEditor.js","../src/components/DocumentEditor/utils.js","../src/components/DocumentEditor/index.jsx"],"sourcesContent":["export const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"video-upload\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"image-upload-unsplash\",\n \"divider\",\n \"video-embed\",\n \"undo\",\n \"redo\",\n \"table\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isCharacterCountActive: true,\n isMenuIndependent: true,\n addons: [],\n};\n","import { useCallback } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n setAttachments,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = useCallback(\n content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange?.(content);\n },\n [editorContentFieldName, onContentChange, setFieldValue]\n );\n\n const handleAttachmentChange = useCallback(\n attachments => {\n setAttachments(attachments);\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange?.(attachments);\n },\n [onAttachmentChange, setAttachments, setFieldValue]\n );\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange?.(title);\n };\n\n const handleEditorBackspaceKeypress = () => {\n const editor = editorRef.current?.editor;\n const selection = editor?.state?.selection;\n if (\n editor?.isFocused &&\n isPresent(titleRef.current) &&\n selection?.anchor === 1\n ) {\n const title = titleRef.current.value;\n titleRef.current.focus();\n titleRef.current.setSelectionRange(title?.length, title?.length);\n }\n };\n\n const titleHotkeyRef = useHotkeys(\n \"return\",\n () => {\n editorRef.current?.editor?.commands?.insertContentAt(0, \"<p />\");\n editorRef.current?.editor?.commands?.focus(\"start\");\n },\n { mode: \"scoped\" }\n );\n\n const editorHotkeyRef = useHotkeys(\n \"backspace\",\n handleEditorBackspaceKeypress,\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","export const getUniqueAttachments = attachments => {\n const uniqueAttachments = attachments?.reduce(\n (uniqueAttachments, attachment) => ({\n ...uniqueAttachments,\n [attachment.signedId]: attachment,\n }),\n {}\n );\n\n return Object.values(uniqueAttachments || {});\n};\n","import { memo, useCallback, useMemo, useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { Textarea } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.scss\";\nimport useEditor from \"./hooks/useEditor\";\nimport { getUniqueAttachments } from \"./utils\";\n\nconst Editor = ({\n attachments: initialAttachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n menuClassName,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps = DEFAULT_EDITOR_PROPS,\n titleProps = {},\n}) => {\n const { t } = useTranslation();\n\n const titleRef = useRef();\n const editorRef = useRef();\n\n const [attachments, setAttachments] = useState(() =>\n getUniqueAttachments(initialAttachments)\n );\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n setAttachments,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = useCallback(node => {\n editorRef.current = node;\n getEditorRef(node);\n }, []);\n\n const addons = useMemo(\n () => EDITOR_ADDONS.concat(editorProps.addons || []),\n [editorProps.addons]\n );\n\n return (\n <div\n className=\"neeto-molecules-document__wrapper\"\n data-testid=\"document-editor-container\"\n ref={editorHotkeyRef}\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments w-full flex-shrink-0\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper neeto-molecules-document__container\"\n data-cy=\"neeto-molecules-document-content-text-area\"\n error={undefined}\n errorWrapperClassName=\"w-full min-h-full flex flex-col items-center\"\n name={editorContentFieldName}\n ref={setEditorRef}\n menuClassName={classNames(\n \"neeto-molecules-document-editor__menubar\",\n menuClassName\n )}\n {...{ attachments, ...editorProps, addons }}\n contentWrapperClassName=\"w-full flex flex-col flex-grow\"\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n <div className=\"neeto-molecules-document__container px-4\">\n <Textarea\n nakedTextarea\n className=\"neeto-molecules-document__title\"\n data-cy=\"neeto-molecules-document-title-text-field\"\n name={titleFieldName}\n ref={setTitleRef}\n rows={1}\n placeholder={\n titleProps.placeholder || t(\"neetoMolecules.documentEditor.title\")\n }\n onChange={handleTitleChange}\n onKeyDown={e =>\n e.key === \"Enter\" && !e.shiftKey && e.preventDefault()\n }\n {...titleProps}\n />\n {errors[editorContentFieldName] && (\n <Typography\n className=\"neeto-ui-input__error neeto-molecules-editor-content__error\"\n data-cy=\"articles-content-input-error\"\n style=\"body3\"\n >\n {errors[editorContentFieldName]}\n </Typography>\n )}\n </div>\n </FormikEditor>\n </div>\n );\n};\n\nEditor.propTypes = {\n /**\n * List of initial attachments.\n */\n attachments: PropTypes.arrayOf(\n PropTypes.shape({\n contentType: PropTypes.string,\n filename: PropTypes.string,\n signedId: PropTypes.string,\n url: PropTypes.string,\n })\n ),\n /**\n * Callback that will be triggered when the editor content changes.\n * This function is not throttled.\n */\n onContentChange: PropTypes.func,\n /**\n * Callback that will be triggered when the attachments changes.\n */\n onAttachmentChange: PropTypes.func,\n /**\n * Callback that will be triggered when the article title changes.\n */\n onTitleChange: PropTypes.func,\n /**\n * This function will be called with the title node reference.\n */\n getTitleRef: PropTypes.func,\n /**\n * This function will be called with editor reference.\n */\n getEditorRef: PropTypes.func,\n /**\n * Formik field name of the editor. The default value is `htmlContent`.\n */\n editorContentFieldName: PropTypes.string,\n /**\n * Formik field name of the title. The default value is `title`.\n */\n titleFieldName: PropTypes.string,\n /**\n * These props will be passed down to the editor component.\n */\n editorProps: PropTypes.object,\n /**\n * These props will be passed down to the title text area component.\n */\n titleProps: PropTypes.object,\n /**\n * A prop to pass class names to the editor menubar.\n */\n menuClassName: PropTypes.string,\n};\n\nEditor.displayName = \"DocumentEditor\";\n\nexport default memo(Editor);\n"],"names":["EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isCharacterCountActive","isMenuIndependent","addons","useEditor","_ref","onContentChange","editorContentFieldName","setAttachments","onAttachmentChange","onTitleChange","titleFieldName","editorRef","titleRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","useCallback","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","handleEditorBackspaceKeypress","_editorRef$current","_editor$state","editor","current","selection","state","isFocused","isPresent","anchor","focus","setSelectionRange","length","titleHotkeyRef","useHotkeys","_editorRef$current2","_editorRef$current2$e","_editorRef$current2$e2","_editorRef$current3","_editorRef$current3$e","_editorRef$current3$e2","commands","insertContentAt","mode","editorHotkeyRef","getUniqueAttachments","uniqueAttachments","reduce","attachment","_objectSpread","_defineProperty","signedId","Object","values","Editor","initialAttachments","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","menuClassName","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","_ref$titleProps","titleProps","_useTranslation","useTranslation","t","useRef","_useState","useState","_useState2","_slicedToArray","_useEditor","setTitleRef","node","setEditorRef","useMemo","concat","_jsx","className","ref","children","FormikEditor","attachmentsClassName","contentClassName","error","undefined","errorWrapperClassName","name","classNames","contentWrapperClassName","onChange","onChangeAttachments","_jsxs","Textarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","Typography","style","displayName","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DocumentEditor.js","sources":["../src/components/DocumentEditor/constants.js","../src/components/DocumentEditor/hooks/useEditor.js","../src/components/DocumentEditor/utils.js","../src/components/DocumentEditor/index.jsx"],"sourcesContent":["export const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"video-upload\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"image-upload-unsplash\",\n \"divider\",\n \"video-embed\",\n \"undo\",\n \"redo\",\n \"table\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isCharacterCountActive: true,\n isMenuIndependent: true,\n addons: [],\n};\n","import { useCallback } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n setAttachments,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = useCallback(\n content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange?.(content);\n },\n [editorContentFieldName, onContentChange, setFieldValue]\n );\n\n const handleAttachmentChange = useCallback(\n attachments => {\n setAttachments(attachments);\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange?.(attachments);\n },\n [onAttachmentChange, setAttachments, setFieldValue]\n );\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange?.(title);\n };\n\n const handleEditorBackspaceKeypress = () => {\n const editor = editorRef.current?.editor;\n const selection = editor?.state?.selection;\n if (\n editor?.isFocused &&\n isPresent(titleRef.current) &&\n selection?.anchor === 1\n ) {\n const title = titleRef.current.value;\n titleRef.current.focus();\n titleRef.current.setSelectionRange(title?.length, title?.length);\n }\n };\n\n const titleHotkeyRef = useHotkeys(\n \"return\",\n () => {\n editorRef.current?.editor?.commands?.insertContentAt(0, \"<p />\");\n editorRef.current?.editor?.commands?.focus(\"start\");\n },\n { mode: \"scoped\" }\n );\n\n const editorHotkeyRef = useHotkeys(\n \"backspace\",\n handleEditorBackspaceKeypress,\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","export const getUniqueAttachments = attachments => {\n const uniqueAttachments = attachments?.reduce(\n (uniqueAttachments, attachment) => ({\n ...uniqueAttachments,\n [attachment.signedId]: attachment,\n }),\n {}\n );\n\n return Object.values(uniqueAttachments || {});\n};\n","import { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { Textarea } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.scss\";\nimport useEditor from \"./hooks/useEditor\";\nimport { getUniqueAttachments } from \"./utils\";\n\nconst Editor = ({\n attachments: initialAttachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n menuClassName,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps = DEFAULT_EDITOR_PROPS,\n titleProps = {},\n}) => {\n const { t } = useTranslation();\n\n const titleRef = useRef();\n const editorRef = useRef();\n\n const [attachments, setAttachments] = useState(() =>\n getUniqueAttachments(initialAttachments)\n );\n\n useEffect(() => {\n setAttachments(getUniqueAttachments(initialAttachments));\n }, [initialAttachments]);\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n setAttachments,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = useCallback(node => {\n editorRef.current = node;\n getEditorRef(node);\n }, []);\n\n const addons = useMemo(\n () => EDITOR_ADDONS.concat(editorProps.addons || []),\n [editorProps.addons]\n );\n\n return (\n <div\n className=\"neeto-molecules-document__wrapper\"\n data-testid=\"document-editor-container\"\n ref={editorHotkeyRef}\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments w-full flex-shrink-0\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper neeto-molecules-document__container\"\n data-cy=\"neeto-molecules-document-content-text-area\"\n error={undefined}\n errorWrapperClassName=\"w-full min-h-full flex flex-col items-center\"\n name={editorContentFieldName}\n ref={setEditorRef}\n menuClassName={classNames(\n \"neeto-molecules-document-editor__menubar\",\n menuClassName\n )}\n {...{ attachments, ...editorProps, addons }}\n contentWrapperClassName=\"w-full flex flex-col flex-grow\"\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n <div className=\"neeto-molecules-document__container px-4\">\n <Textarea\n nakedTextarea\n className=\"neeto-molecules-document__title\"\n data-cy=\"neeto-molecules-document-title-text-field\"\n name={titleFieldName}\n ref={setTitleRef}\n rows={1}\n placeholder={\n titleProps.placeholder || t(\"neetoMolecules.documentEditor.title\")\n }\n onChange={handleTitleChange}\n onKeyDown={e =>\n e.key === \"Enter\" && !e.shiftKey && e.preventDefault()\n }\n {...titleProps}\n />\n {errors[editorContentFieldName] && (\n <Typography\n className=\"neeto-ui-input__error neeto-molecules-editor-content__error\"\n data-cy=\"articles-content-input-error\"\n style=\"body3\"\n >\n {errors[editorContentFieldName]}\n </Typography>\n )}\n </div>\n </FormikEditor>\n </div>\n );\n};\n\nEditor.propTypes = {\n /**\n * List of initial attachments.\n */\n attachments: PropTypes.arrayOf(\n PropTypes.shape({\n contentType: PropTypes.string,\n filename: PropTypes.string,\n signedId: PropTypes.string,\n url: PropTypes.string,\n })\n ),\n /**\n * Callback that will be triggered when the editor content changes.\n * This function is not throttled.\n */\n onContentChange: PropTypes.func,\n /**\n * Callback that will be triggered when the attachments changes.\n */\n onAttachmentChange: PropTypes.func,\n /**\n * Callback that will be triggered when the article title changes.\n */\n onTitleChange: PropTypes.func,\n /**\n * This function will be called with the title node reference.\n */\n getTitleRef: PropTypes.func,\n /**\n * This function will be called with editor reference.\n */\n getEditorRef: PropTypes.func,\n /**\n * Formik field name of the editor. The default value is `htmlContent`.\n */\n editorContentFieldName: PropTypes.string,\n /**\n * Formik field name of the title. The default value is `title`.\n */\n titleFieldName: PropTypes.string,\n /**\n * These props will be passed down to the editor component.\n */\n editorProps: PropTypes.object,\n /**\n * These props will be passed down to the title text area component.\n */\n titleProps: PropTypes.object,\n /**\n * A prop to pass class names to the editor menubar.\n */\n menuClassName: PropTypes.string,\n};\n\nEditor.displayName = \"DocumentEditor\";\n\nexport default memo(Editor);\n"],"names":["EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isCharacterCountActive","isMenuIndependent","addons","useEditor","_ref","onContentChange","editorContentFieldName","setAttachments","onAttachmentChange","onTitleChange","titleFieldName","editorRef","titleRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","useCallback","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","handleEditorBackspaceKeypress","_editorRef$current","_editor$state","editor","current","selection","state","isFocused","isPresent","anchor","focus","setSelectionRange","length","titleHotkeyRef","useHotkeys","_editorRef$current2","_editorRef$current2$e","_editorRef$current2$e2","_editorRef$current3","_editorRef$current3$e","_editorRef$current3$e2","commands","insertContentAt","mode","editorHotkeyRef","getUniqueAttachments","uniqueAttachments","reduce","attachment","_objectSpread","_defineProperty","signedId","Object","values","Editor","initialAttachments","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","menuClassName","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","_ref$titleProps","titleProps","_useTranslation","useTranslation","t","useRef","_useState","useState","_useState2","_slicedToArray","useEffect","_useEditor","setTitleRef","node","setEditorRef","useMemo","concat","_jsx","className","ref","children","FormikEditor","attachmentsClassName","contentClassName","error","undefined","errorWrapperClassName","name","classNames","contentWrapperClassName","onChange","onChangeAttachments","_jsxs","Textarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","Typography","style","displayName","memo"],"mappings":"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"}
|
|
@@ -119,6 +119,9 @@ var Editor = function Editor(_ref) {
|
|
|
119
119
|
_useState2 = _slicedToArray(_useState, 2),
|
|
120
120
|
attachments = _useState2[0],
|
|
121
121
|
setAttachments = _useState2[1];
|
|
122
|
+
React.useEffect(function () {
|
|
123
|
+
setAttachments(getUniqueAttachments(initialAttachments));
|
|
124
|
+
}, [initialAttachments]);
|
|
122
125
|
var _useEditor = useEditor({
|
|
123
126
|
onContentChange: onContentChange,
|
|
124
127
|
editorContentFieldName: editorContentFieldName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentEditor.js","sources":["../../src/components/DocumentEditor/constants.js","../../src/components/DocumentEditor/hooks/useEditor.js","../../src/components/DocumentEditor/utils.js","../../src/components/DocumentEditor/index.jsx"],"sourcesContent":["export const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"video-upload\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"image-upload-unsplash\",\n \"divider\",\n \"video-embed\",\n \"undo\",\n \"redo\",\n \"table\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isCharacterCountActive: true,\n isMenuIndependent: true,\n addons: [],\n};\n","import { useCallback } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n setAttachments,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = useCallback(\n content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange?.(content);\n },\n [editorContentFieldName, onContentChange, setFieldValue]\n );\n\n const handleAttachmentChange = useCallback(\n attachments => {\n setAttachments(attachments);\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange?.(attachments);\n },\n [onAttachmentChange, setAttachments, setFieldValue]\n );\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange?.(title);\n };\n\n const handleEditorBackspaceKeypress = () => {\n const editor = editorRef.current?.editor;\n const selection = editor?.state?.selection;\n if (\n editor?.isFocused &&\n isPresent(titleRef.current) &&\n selection?.anchor === 1\n ) {\n const title = titleRef.current.value;\n titleRef.current.focus();\n titleRef.current.setSelectionRange(title?.length, title?.length);\n }\n };\n\n const titleHotkeyRef = useHotkeys(\n \"return\",\n () => {\n editorRef.current?.editor?.commands?.insertContentAt(0, \"<p />\");\n editorRef.current?.editor?.commands?.focus(\"start\");\n },\n { mode: \"scoped\" }\n );\n\n const editorHotkeyRef = useHotkeys(\n \"backspace\",\n handleEditorBackspaceKeypress,\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","export const getUniqueAttachments = attachments => {\n const uniqueAttachments = attachments?.reduce(\n (uniqueAttachments, attachment) => ({\n ...uniqueAttachments,\n [attachment.signedId]: attachment,\n }),\n {}\n );\n\n return Object.values(uniqueAttachments || {});\n};\n","import { memo, useCallback, useMemo, useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { Textarea } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.scss\";\nimport useEditor from \"./hooks/useEditor\";\nimport { getUniqueAttachments } from \"./utils\";\n\nconst Editor = ({\n attachments: initialAttachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n menuClassName,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps = DEFAULT_EDITOR_PROPS,\n titleProps = {},\n}) => {\n const { t } = useTranslation();\n\n const titleRef = useRef();\n const editorRef = useRef();\n\n const [attachments, setAttachments] = useState(() =>\n getUniqueAttachments(initialAttachments)\n );\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n setAttachments,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = useCallback(node => {\n editorRef.current = node;\n getEditorRef(node);\n }, []);\n\n const addons = useMemo(\n () => EDITOR_ADDONS.concat(editorProps.addons || []),\n [editorProps.addons]\n );\n\n return (\n <div\n className=\"neeto-molecules-document__wrapper\"\n data-testid=\"document-editor-container\"\n ref={editorHotkeyRef}\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments w-full flex-shrink-0\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper neeto-molecules-document__container\"\n data-cy=\"neeto-molecules-document-content-text-area\"\n error={undefined}\n errorWrapperClassName=\"w-full min-h-full flex flex-col items-center\"\n name={editorContentFieldName}\n ref={setEditorRef}\n menuClassName={classNames(\n \"neeto-molecules-document-editor__menubar\",\n menuClassName\n )}\n {...{ attachments, ...editorProps, addons }}\n contentWrapperClassName=\"w-full flex flex-col flex-grow\"\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n <div className=\"neeto-molecules-document__container px-4\">\n <Textarea\n nakedTextarea\n className=\"neeto-molecules-document__title\"\n data-cy=\"neeto-molecules-document-title-text-field\"\n name={titleFieldName}\n ref={setTitleRef}\n rows={1}\n placeholder={\n titleProps.placeholder || t(\"neetoMolecules.documentEditor.title\")\n }\n onChange={handleTitleChange}\n onKeyDown={e =>\n e.key === \"Enter\" && !e.shiftKey && e.preventDefault()\n }\n {...titleProps}\n />\n {errors[editorContentFieldName] && (\n <Typography\n className=\"neeto-ui-input__error neeto-molecules-editor-content__error\"\n data-cy=\"articles-content-input-error\"\n style=\"body3\"\n >\n {errors[editorContentFieldName]}\n </Typography>\n )}\n </div>\n </FormikEditor>\n </div>\n );\n};\n\nEditor.propTypes = {\n /**\n * List of initial attachments.\n */\n attachments: PropTypes.arrayOf(\n PropTypes.shape({\n contentType: PropTypes.string,\n filename: PropTypes.string,\n signedId: PropTypes.string,\n url: PropTypes.string,\n })\n ),\n /**\n * Callback that will be triggered when the editor content changes.\n * This function is not throttled.\n */\n onContentChange: PropTypes.func,\n /**\n * Callback that will be triggered when the attachments changes.\n */\n onAttachmentChange: PropTypes.func,\n /**\n * Callback that will be triggered when the article title changes.\n */\n onTitleChange: PropTypes.func,\n /**\n * This function will be called with the title node reference.\n */\n getTitleRef: PropTypes.func,\n /**\n * This function will be called with editor reference.\n */\n getEditorRef: PropTypes.func,\n /**\n * Formik field name of the editor. The default value is `htmlContent`.\n */\n editorContentFieldName: PropTypes.string,\n /**\n * Formik field name of the title. The default value is `title`.\n */\n titleFieldName: PropTypes.string,\n /**\n * These props will be passed down to the editor component.\n */\n editorProps: PropTypes.object,\n /**\n * These props will be passed down to the title text area component.\n */\n titleProps: PropTypes.object,\n /**\n * A prop to pass class names to the editor menubar.\n */\n menuClassName: PropTypes.string,\n};\n\nEditor.displayName = \"DocumentEditor\";\n\nexport default memo(Editor);\n"],"names":["EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isCharacterCountActive","isMenuIndependent","addons","useEditor","_ref","onContentChange","editorContentFieldName","setAttachments","onAttachmentChange","onTitleChange","titleFieldName","editorRef","titleRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","useCallback","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","handleEditorBackspaceKeypress","_editorRef$current","_editor$state","editor","current","selection","state","isFocused","isPresent","anchor","focus","setSelectionRange","length","titleHotkeyRef","useHotkeys","_editorRef$current2","_editorRef$current2$e","_editorRef$current2$e2","_editorRef$current3","_editorRef$current3$e","_editorRef$current3$e2","commands","insertContentAt","mode","editorHotkeyRef","getUniqueAttachments","uniqueAttachments","reduce","attachment","_objectSpread","_defineProperty","signedId","Object","values","Editor","initialAttachments","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","menuClassName","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","_ref$titleProps","titleProps","_useTranslation","useTranslation","t","useRef","_useState","useState","_useState2","_slicedToArray","_useEditor","setTitleRef","node","setEditorRef","useMemo","concat","_jsx","className","ref","children","FormikEditor","attachmentsClassName","contentClassName","error","undefined","errorWrapperClassName","name","classNames","contentWrapperClassName","onChange","onChangeAttachments","_jsxs","Textarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","Typography","style","displayName","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DocumentEditor.js","sources":["../../src/components/DocumentEditor/constants.js","../../src/components/DocumentEditor/hooks/useEditor.js","../../src/components/DocumentEditor/utils.js","../../src/components/DocumentEditor/index.jsx"],"sourcesContent":["export const EDITOR_ADDONS = [\n \"highlight\",\n \"emoji\",\n \"video-upload\",\n \"code-block\",\n \"block-quote\",\n \"image-upload\",\n \"image-upload-unsplash\",\n \"divider\",\n \"video-embed\",\n \"undo\",\n \"redo\",\n \"table\",\n];\n\nexport const DEFAULT_EDITOR_PROPS = {\n isCharacterCountActive: true,\n isMenuIndependent: true,\n addons: [],\n};\n","import { useCallback } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isPresent } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\n\nconst useEditor = ({\n onContentChange,\n editorContentFieldName,\n setAttachments,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n}) => {\n const { setFieldValue, errors } = useFormikContext();\n\n const handleContentChange = useCallback(\n content => {\n setFieldValue(editorContentFieldName, content);\n onContentChange?.(content);\n },\n [editorContentFieldName, onContentChange, setFieldValue]\n );\n\n const handleAttachmentChange = useCallback(\n attachments => {\n setAttachments(attachments);\n setFieldValue(\"attachments\", attachments);\n onAttachmentChange?.(attachments);\n },\n [onAttachmentChange, setAttachments, setFieldValue]\n );\n\n const handleTitleChange = event => {\n const title = event.target.value;\n setFieldValue(titleFieldName, title);\n onTitleChange?.(title);\n };\n\n const handleEditorBackspaceKeypress = () => {\n const editor = editorRef.current?.editor;\n const selection = editor?.state?.selection;\n if (\n editor?.isFocused &&\n isPresent(titleRef.current) &&\n selection?.anchor === 1\n ) {\n const title = titleRef.current.value;\n titleRef.current.focus();\n titleRef.current.setSelectionRange(title?.length, title?.length);\n }\n };\n\n const titleHotkeyRef = useHotkeys(\n \"return\",\n () => {\n editorRef.current?.editor?.commands?.insertContentAt(0, \"<p />\");\n editorRef.current?.editor?.commands?.focus(\"start\");\n },\n { mode: \"scoped\" }\n );\n\n const editorHotkeyRef = useHotkeys(\n \"backspace\",\n handleEditorBackspaceKeypress,\n { mode: \"scoped\" }\n );\n\n return {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n };\n};\n\nexport default useEditor;\n","export const getUniqueAttachments = attachments => {\n const uniqueAttachments = attachments?.reduce(\n (uniqueAttachments, attachment) => ({\n ...uniqueAttachments,\n [attachment.signedId]: attachment,\n }),\n {}\n );\n\n return Object.values(uniqueAttachments || {});\n};\n","import { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport classNames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Typography } from \"neetoui\";\nimport { Textarea } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { DEFAULT_EDITOR_PROPS, EDITOR_ADDONS } from \"./constants\";\nimport \"./editor.scss\";\nimport useEditor from \"./hooks/useEditor\";\nimport { getUniqueAttachments } from \"./utils\";\n\nconst Editor = ({\n attachments: initialAttachments,\n onContentChange,\n onAttachmentChange,\n onTitleChange,\n getTitleRef = noop,\n getEditorRef = noop,\n menuClassName,\n editorContentFieldName = \"htmlContent\",\n titleFieldName = \"title\",\n editorProps = DEFAULT_EDITOR_PROPS,\n titleProps = {},\n}) => {\n const { t } = useTranslation();\n\n const titleRef = useRef();\n const editorRef = useRef();\n\n const [attachments, setAttachments] = useState(() =>\n getUniqueAttachments(initialAttachments)\n );\n\n useEffect(() => {\n setAttachments(getUniqueAttachments(initialAttachments));\n }, [initialAttachments]);\n\n const {\n handleContentChange,\n handleAttachmentChange,\n handleTitleChange,\n editorHotkeyRef,\n titleHotkeyRef,\n errors,\n } = useEditor({\n onContentChange,\n editorContentFieldName,\n setAttachments,\n onAttachmentChange,\n onTitleChange,\n titleFieldName,\n editorRef,\n titleRef,\n });\n\n const setTitleRef = node => {\n titleHotkeyRef.current = node;\n getTitleRef(node);\n titleRef.current = node;\n };\n\n const setEditorRef = useCallback(node => {\n editorRef.current = node;\n getEditorRef(node);\n }, []);\n\n const addons = useMemo(\n () => EDITOR_ADDONS.concat(editorProps.addons || []),\n [editorProps.addons]\n );\n\n return (\n <div\n className=\"neeto-molecules-document__wrapper\"\n data-testid=\"document-editor-container\"\n ref={editorHotkeyRef}\n >\n <FormikEditor\n attachmentsClassName=\"editor-content-attachments w-full flex-shrink-0\"\n className=\"h-full w-full\"\n contentClassName=\"editor-content__wrapper neeto-molecules-document__container\"\n data-cy=\"neeto-molecules-document-content-text-area\"\n error={undefined}\n errorWrapperClassName=\"w-full min-h-full flex flex-col items-center\"\n name={editorContentFieldName}\n ref={setEditorRef}\n menuClassName={classNames(\n \"neeto-molecules-document-editor__menubar\",\n menuClassName\n )}\n {...{ attachments, ...editorProps, addons }}\n contentWrapperClassName=\"w-full flex flex-col flex-grow\"\n onChange={handleContentChange}\n onChangeAttachments={handleAttachmentChange}\n >\n <div className=\"neeto-molecules-document__container px-4\">\n <Textarea\n nakedTextarea\n className=\"neeto-molecules-document__title\"\n data-cy=\"neeto-molecules-document-title-text-field\"\n name={titleFieldName}\n ref={setTitleRef}\n rows={1}\n placeholder={\n titleProps.placeholder || t(\"neetoMolecules.documentEditor.title\")\n }\n onChange={handleTitleChange}\n onKeyDown={e =>\n e.key === \"Enter\" && !e.shiftKey && e.preventDefault()\n }\n {...titleProps}\n />\n {errors[editorContentFieldName] && (\n <Typography\n className=\"neeto-ui-input__error neeto-molecules-editor-content__error\"\n data-cy=\"articles-content-input-error\"\n style=\"body3\"\n >\n {errors[editorContentFieldName]}\n </Typography>\n )}\n </div>\n </FormikEditor>\n </div>\n );\n};\n\nEditor.propTypes = {\n /**\n * List of initial attachments.\n */\n attachments: PropTypes.arrayOf(\n PropTypes.shape({\n contentType: PropTypes.string,\n filename: PropTypes.string,\n signedId: PropTypes.string,\n url: PropTypes.string,\n })\n ),\n /**\n * Callback that will be triggered when the editor content changes.\n * This function is not throttled.\n */\n onContentChange: PropTypes.func,\n /**\n * Callback that will be triggered when the attachments changes.\n */\n onAttachmentChange: PropTypes.func,\n /**\n * Callback that will be triggered when the article title changes.\n */\n onTitleChange: PropTypes.func,\n /**\n * This function will be called with the title node reference.\n */\n getTitleRef: PropTypes.func,\n /**\n * This function will be called with editor reference.\n */\n getEditorRef: PropTypes.func,\n /**\n * Formik field name of the editor. The default value is `htmlContent`.\n */\n editorContentFieldName: PropTypes.string,\n /**\n * Formik field name of the title. The default value is `title`.\n */\n titleFieldName: PropTypes.string,\n /**\n * These props will be passed down to the editor component.\n */\n editorProps: PropTypes.object,\n /**\n * These props will be passed down to the title text area component.\n */\n titleProps: PropTypes.object,\n /**\n * A prop to pass class names to the editor menubar.\n */\n menuClassName: PropTypes.string,\n};\n\nEditor.displayName = \"DocumentEditor\";\n\nexport default memo(Editor);\n"],"names":["EDITOR_ADDONS","DEFAULT_EDITOR_PROPS","isCharacterCountActive","isMenuIndependent","addons","useEditor","_ref","onContentChange","editorContentFieldName","setAttachments","onAttachmentChange","onTitleChange","titleFieldName","editorRef","titleRef","_useFormikContext","useFormikContext","setFieldValue","errors","handleContentChange","useCallback","content","handleAttachmentChange","attachments","handleTitleChange","event","title","target","value","handleEditorBackspaceKeypress","_editorRef$current","_editor$state","editor","current","selection","state","isFocused","isPresent","anchor","focus","setSelectionRange","length","titleHotkeyRef","useHotkeys","_editorRef$current2","_editorRef$current2$e","_editorRef$current2$e2","_editorRef$current3","_editorRef$current3$e","_editorRef$current3$e2","commands","insertContentAt","mode","editorHotkeyRef","getUniqueAttachments","uniqueAttachments","reduce","attachment","_objectSpread","_defineProperty","signedId","Object","values","Editor","initialAttachments","_ref$getTitleRef","getTitleRef","noop","_ref$getEditorRef","getEditorRef","menuClassName","_ref$editorContentFie","_ref$titleFieldName","_ref$editorProps","editorProps","_ref$titleProps","titleProps","_useTranslation","useTranslation","t","useRef","_useState","useState","_useState2","_slicedToArray","useEffect","_useEditor","setTitleRef","node","setEditorRef","useMemo","concat","_jsx","className","ref","children","FormikEditor","attachmentsClassName","contentClassName","error","undefined","errorWrapperClassName","name","classNames","contentWrapperClassName","onChange","onChangeAttachments","_jsxs","Textarea","nakedTextarea","rows","placeholder","onKeyDown","e","key","shiftKey","preventDefault","Typography","style","displayName","memo"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "3.9.
|
|
3
|
+
"version": "3.9.9",
|
|
4
4
|
"description": "A package of reusable molecular components for neeto products.",
|
|
5
5
|
"repository": "git@github.com:bigbinary/neeto-molecules.git",
|
|
6
6
|
"author": "Amaljith K <amaljith.k@bigbinary.com>",
|