UNPKG

react-edit-text

Version:

Simple editable text component for React

1 lines 24.7 kB
{"version":3,"file":"index.modern.mjs","sources":["../src/components/EditIcon.js","../src/components/Input.js","../src/propTypes.js","../src/EditText.js","../src/components/Textarea.js","../src/EditTextarea.js"],"sourcesContent":["import React from 'react';\n\nconst EditIcon = () => {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'>\n <path d='M421.7 220.3L188.5 453.4L154.6 419.5L158.1 416H112C103.2 416 96 408.8 96 400V353.9L92.51 357.4C87.78 362.2 84.31 368 82.42 374.4L59.44 452.6L137.6 429.6C143.1 427.7 149.8 424.2 154.6 419.5L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3zM492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75z' />\n </svg>\n );\n};\n\nexport default EditIcon;\n","import classnames from 'classnames';\nimport React from 'react';\nimport styles from '../styles.module.css';\n\nconst Input = ({\n props: { id, inline, style, type, name },\n inputRef,\n handleBlur,\n handleKeydown,\n handleFocus,\n inputClassName,\n ...rest\n}) => {\n return (\n <input\n id={id}\n className={classnames(styles.shared, inputClassName, {\n [styles.inline]: inline\n })}\n style={style}\n ref={inputRef}\n type={type}\n name={name}\n onBlur={handleBlur}\n onKeyDown={handleKeydown}\n autoFocus\n onFocus={handleFocus}\n {...rest}\n />\n );\n};\n\nexport default Input;\n","import PropTypes from 'prop-types';\n\nconst sharedPropTypes = {\n id: PropTypes.string,\n name: PropTypes.string,\n className: PropTypes.string,\n value: PropTypes.string,\n formatDisplayText: PropTypes.func,\n defaultValue: PropTypes.string,\n placeholder: PropTypes.string,\n onSave: PropTypes.func,\n onChange: PropTypes.func,\n onEditMode: PropTypes.func,\n onBlur: PropTypes.func,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n readonly: PropTypes.bool,\n inputClassName: PropTypes.string\n};\n\nexport const EditTextPropTypes = {\n ...sharedPropTypes,\n type: PropTypes.string,\n inline: PropTypes.bool,\n showEditButton: PropTypes.bool,\n editButtonContent: PropTypes.any,\n editButtonProps: PropTypes.object\n};\n\nexport const EditTextareaPropTypes = {\n ...sharedPropTypes,\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['auto'])])\n};\n","import classnames from 'classnames';\nimport React from 'react';\nimport EditIcon from './components/EditIcon';\nimport Input from './components/Input';\nimport { EditTextPropTypes } from './propTypes';\nimport styles from './styles.module.css';\n\nexport default function EditText({\n id,\n name,\n className,\n placeholder = '',\n inline = false,\n style = {},\n readonly = false,\n type = 'text',\n value,\n defaultValue,\n formatDisplayText = (x) => x,\n onEditMode = () => {},\n onChange = () => {},\n onSave = () => {},\n onBlur = () => {},\n showEditButton = false,\n editButtonContent = <EditIcon />,\n editButtonProps = {},\n inputClassName\n}) {\n const inputRef = React.useRef(null);\n const [changeEvent, setChangeEvent] = React.useState({});\n const [previousValue, setPreviousValue] = React.useState('');\n const [savedText, setSavedText] = React.useState('');\n const [editMode, setEditMode] = React.useState(false);\n\n React.useEffect(() => {\n if (defaultValue !== undefined) {\n setPreviousValue(defaultValue);\n setSavedText(defaultValue);\n }\n }, [defaultValue]);\n\n React.useEffect(() => {\n if (value !== undefined) {\n setSavedText(value);\n if (!editMode) {\n setPreviousValue(value);\n }\n }\n }, [value, editMode]);\n\n const handleClickDisplay = () => {\n if (readonly || showEditButton) return;\n setEditMode(true);\n onEditMode();\n };\n\n const handleClickEditButton = () => {\n setEditMode(true);\n onEditMode();\n };\n\n const handleBlur = (save = true) => {\n if (inputRef.current) {\n const { name: inputName, value: inputValue } = inputRef.current;\n if (save && previousValue !== inputValue) {\n onSave({\n name: inputName,\n value: inputValue,\n previousValue: previousValue\n });\n setSavedText(inputValue);\n setPreviousValue(inputValue);\n } else if (!save) {\n onChange({\n ...changeEvent,\n target: changeEvent.target\n ? { ...changeEvent.target, value: previousValue }\n : { value: previousValue }\n });\n }\n setEditMode(false);\n onBlur();\n }\n };\n\n const handleKeydown = (e) => {\n if (e.keyCode === 13 || e.charCode === 13) {\n handleBlur();\n } else if (e.keyCode === 27 || e.charCode === 27) {\n handleBlur(false);\n }\n };\n\n const handleFocus = (e) => {\n if (type === 'text') {\n e.currentTarget.setSelectionRange(\n e.currentTarget.value.length,\n e.currentTarget.value.length\n );\n }\n };\n\n const renderDisplayMode = () => {\n return (\n <div\n className={classnames(styles.displayContainer, {\n [styles.inline]: inline\n })}\n >\n <div\n id={id}\n className={classnames(\n styles.label,\n styles.shared,\n {\n [styles.placeholder]: placeholder && !savedText,\n [styles.inline]: inline,\n [styles.readonly]: readonly || showEditButton\n },\n className\n )}\n onClick={handleClickDisplay}\n style={style}\n aria-label='display component'\n >\n {formatDisplayText(savedText) || placeholder}\n </div>\n {showEditButton && !readonly && (\n <button\n type='button'\n className={styles.editButton}\n {...editButtonProps}\n onClick={handleClickEditButton}\n >\n {editButtonContent}\n </button>\n )}\n </div>\n );\n };\n\n const renderEditMode = (controlled) => {\n const sharedProps = {\n inputRef: inputRef,\n handleBlur: handleBlur,\n handleKeydown: handleKeydown,\n handleFocus: handleFocus,\n props: { id, inline, style, type, name },\n ['aria-label']: 'input component'\n };\n return controlled ? (\n <Input\n {...sharedProps}\n value={value}\n onChange={(e) => {\n setChangeEvent(e);\n onChange(e);\n }}\n inputClassName={inputClassName}\n />\n ) : (\n <Input\n {...sharedProps}\n defaultValue={savedText}\n inputClassName={inputClassName}\n />\n );\n };\n\n return !readonly && editMode\n ? renderEditMode(value !== undefined && onChange !== undefined)\n : renderDisplayMode();\n}\n\nEditText.propTypes = EditTextPropTypes;\n","import classnames from 'classnames';\nimport React from 'react';\nimport styles from '../styles.module.css';\n\nconst Textarea = ({\n props: { id, rows, style, name },\n inputRef,\n handleBlur,\n handleKeydown,\n inputClassName,\n ...rest\n}) => {\n return (\n <textarea\n id={id}\n className={classnames(styles.shared, inputClassName)}\n style={style}\n ref={inputRef}\n rows={rows}\n name={name}\n onBlur={handleBlur}\n onKeyDown={handleKeydown}\n autoFocus\n onFocus={(e) =>\n e.currentTarget.setSelectionRange(\n e.currentTarget.value.length,\n e.currentTarget.value.length\n )\n }\n {...rest}\n />\n );\n};\n\nexport default Textarea;\n","import classnames from 'classnames';\nimport React from 'react';\nimport Textarea from './components/Textarea';\nimport { EditTextareaPropTypes } from './propTypes';\nimport styles from './styles.module.css';\n\nconst splitLines = (val) => (val ? val.split(/\\r?\\n/) : []);\n\nexport default function EditTextarea({\n id,\n rows = 3,\n name,\n className,\n placeholder = '',\n style = {},\n readonly = false,\n value,\n defaultValue,\n formatDisplayText = (x) => x,\n onEditMode = () => {},\n onChange = () => {},\n onSave = () => {},\n onBlur = () => {},\n inputClassName\n}) {\n const inputRef = React.useRef(null);\n const [changeEvent, setChangeEvent] = React.useState({});\n const [previousValue, setPreviousValue] = React.useState('');\n const [savedText, setSavedText] = React.useState('');\n const [editMode, setEditMode] = React.useState(false);\n\n React.useEffect(() => {\n if (defaultValue !== undefined) {\n setPreviousValue(defaultValue);\n setSavedText(defaultValue);\n }\n }, [defaultValue]);\n\n React.useEffect(() => {\n if (value !== undefined) {\n setSavedText(value);\n if (!editMode) {\n setPreviousValue(value);\n }\n }\n }, [value, editMode]);\n\n const handleClick = () => {\n if (readonly) return;\n setEditMode(true);\n onEditMode();\n };\n\n const handleBlur = (save = true) => {\n if (inputRef.current) {\n const { name: inputName, value: inputValue } = inputRef.current;\n if (save && previousValue !== inputValue) {\n onSave({\n name: inputName,\n value: inputValue,\n previousValue: previousValue\n });\n setSavedText(inputValue);\n setPreviousValue(inputValue);\n } else if (!save) {\n onChange({\n ...changeEvent,\n target: changeEvent.target\n ? { ...changeEvent.target, value: previousValue }\n : { value: previousValue }\n });\n }\n setEditMode(false);\n onBlur();\n }\n };\n\n const handleKeydown = (e) => {\n if (e.keyCode === 27 || e.charCode === 27) {\n handleBlur(false);\n }\n };\n\n const renderDisplayMode = () => {\n const textLines = splitLines(formatDisplayText(savedText));\n return (\n <div\n id={id}\n className={classnames(\n styles.shared,\n styles.textareaView,\n {\n [styles.placeholder]: placeholder && !savedText,\n [styles.readonly]: readonly\n },\n className\n )}\n onClick={handleClick}\n style={{\n ...style,\n height: rows === 'auto' ? 'auto' : `${rows * 24 + 16}px`\n }}\n aria-label='display component'\n >\n {textLines.length > 0 ? (\n textLines.map((text, index) => (\n <React.Fragment key={index}>\n <span>{text}</span>\n <br />\n </React.Fragment>\n ))\n ) : (\n <span>{placeholder}</span>\n )}\n </div>\n );\n };\n\n const renderEditMode = (controlled) => {\n const sharedProps = {\n inputRef: inputRef,\n handleBlur: handleBlur,\n handleKeydown: handleKeydown,\n props: { id, rows, style, name },\n ['aria-label']: 'textarea component'\n };\n return controlled ? (\n <Textarea\n {...sharedProps}\n value={value}\n onChange={(e) => {\n setChangeEvent(e);\n onChange(e);\n }}\n inputClassName={inputClassName}\n />\n ) : (\n <Textarea\n {...sharedProps}\n defaultValue={savedText}\n inputClassName={inputClassName}\n />\n );\n };\n\n return !readonly && editMode\n ? renderEditMode(value !== undefined && onChange !== undefined)\n : renderDisplayMode();\n}\n\nEditTextarea.propTypes = EditTextareaPropTypes;\n"],"names":["EditIcon","_jsx","Input","props","id","inline","style","type","name","inputRef","handleBlur","handleKeydown","handleFocus","inputClassName","rest","_excluded","classnames","styles","shared","sharedPropTypes","PropTypes","string","className","value","formatDisplayText","func","defaultValue","placeholder","onSave","onChange","onEditMode","onBlur","oneOfType","object","array","readonly","bool","EditTextPropTypes","showEditButton","editButtonContent","any","editButtonProps","EditTextareaPropTypes","rows","number","oneOf","EditText","x","React","useRef","changeEvent","setChangeEvent","useState","previousValue","setPreviousValue","savedText","setSavedText","editMode","setEditMode","useEffect","undefined","handleClickDisplay","handleClickEditButton","save","current","inputName","inputValue","target","e","keyCode","charCode","currentTarget","setSelectionRange","length","renderDisplayMode","_jsxs","displayContainer","label","editButton","renderEditMode","controlled","sharedProps","propTypes","Textarea","splitLines","val","split","EditTextarea","handleClick","textLines","textareaView","height","map","text","index"],"mappings":"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"}