Package Exports
- react-multi-email
- react-multi-email/dist/commonjs/index.js
- react-multi-email/dist/es6/index.js
- react-multi-email/dist/style.css
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-multi-email) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
react-multi-email
A simple react component to format multiple email as the user types.
- Simple code
- No dependency
- Small size
- Simple customization
Installation
npm install react-multi-emailUsage
import * as React from 'react';
import { ReactMultiEmail, isEmail } from 'react-multi-email';
import 'react-multi-email/dist/style.css';
interface Props {}
function BasicExample(props: Props) {
const [emails, setEmails] = React.useState<string[]>([]);
const [focused, setFocused] = React.useState(false);
return (
<form>
<h3>Email</h3>
<ReactMultiEmail
placeholder='Input your email'
emails={emails}
onChange={(_emails: string[]) => {
setEmails(_emails);
}}
autoFocus={true}
onFocus={() => setFocused(true)}
onBlur={() => setFocused(false)}
getLabel={(email, index, removeEmail) => {
return (
<div data-tag key={index}>
<div data-tag-item>{email}</div>
<span data-tag-handle onClick={() => removeEmail(index)}>
×
</span>
</div>
);
}}
/>
<br />
<h4>react-multi-email value</h4>
<h3>Focused: {focused ? 'true' : 'false'}</h3>
<p>{emails.join(', ') || 'empty'}</p>
</form>
);
}
export default BasicExample;Props
| Property | Type | Default | Description |
|---|---|---|---|
| id | string | ||
| emails | string[] | ||
| onChange | (emails: string[]) => void; | ||
| enable | ({ emailCnt }: { emailCnt: number }) => boolean; | ||
| onDisabled | () => void; | ||
| onChangeInput | (value: string) => void; | ||
| onFocus | () => void; | ||
| onBlur | () => void; | ||
| onKeyDown | (evt: React.KeyboardEvent |
||
| onKeyUp | (evt: React.KeyboardEvent |
||
| noClass | boolean | ||
| validateEmail | (email: string) => boolean | Promise |
||
| enableSpinner | boolean | ||
| style | React.CSSProperties | ||
| getLabel | ( email: string, index: number, removeEmail: (index: number, isDisabled?: boolean) => void, ) => React.ReactNode; | ||
| className | string | '' | |
| inputClassName | string | '' | |
| placeholder | string | React.ReactNode; | ||
| autoFocus | boolean; | ||
| spinner | () => React.ReactNode; | ||
| delimiter | string; | '[ ,;]' | |
| autoComplete | string | undefined | ||
| initialInputValue | string | undefined | '' | |
| disableOnBlurValidation | boolean | undefined | false | |
| inputValue | string | undefined | undefined |
License
If you don't mind, don't forget to press "star" before leaving.