example/main.js
/*eslint-disable */
const { React, ReactDOM, ReactTags } = window;
import GitHubCorner from './GithubCorner';
// List of countries in the world
const COUNTRIES = [
'Afghanistan',
'Albania',
'Algeria',
'Andorra',
'Angola',
'Anguilla',
'Antigua & Barbuda',
'Argentina',
'Armenia',
'Aruba',
'Australia',
'Austria',
'Azerbaijan',
'Bahamas',
'Bahrain',
'Bangladesh',
'Barbados',
'Belarus',
'Belgium',
'Belize',
'Benin',
'Bermuda',
'Bhutan',
'Bolivia',
'Bosnia & Herzegovina',
'Botswana',
'Brazil',
'British Virgin Islands',
'Brunei',
'Bulgaria',
'Burkina Faso',
'Burundi',
'Cambodia',
'Cameroon',
'Cape Verde',
'Cayman Islands',
'Chad',
'Chile',
'China',
'Colombia',
'Congo',
'Cook Islands',
'Costa Rica',
'Cote D Ivoire',
'Croatia',
'Cruise Ship',
'Cuba',
'Cyprus',
'Czech Republic',
'Denmark',
'Djibouti',
'Dominica',
'Dominican Republic',
'Ecuador',
'Egypt',
'El Salvador',
'Equatorial Guinea',
'Estonia',
'Ethiopia',
'Falkland Islands',
'Faroe Islands',
'Fiji',
'Finland',
'France',
'French Polynesia',
'French West Indies',
'Gabon',
'Gambia',
'Georgia',
'Germany',
'Ghana',
'Gibraltar',
'Greece',
'Greenland',
'Grenada',
'Guam',
'Guatemala',
'Guernsey',
'Guinea',
'Guinea Bissau',
'Guyana',
'Haiti',
'Honduras',
'Hong Kong',
'Hungary',
'Iceland',
'India',
'Indonesia',
'Iran',
'Iraq',
'Ireland',
'Isle of Man',
'Israel',
'Italy',
'Jamaica',
'Japan',
'Jersey',
'Jordan',
'Kazakhstan',
'Kenya',
'Kuwait',
'Kyrgyz Republic',
'Laos',
'Latvia',
'Lebanon',
'Lesotho',
'Liberia',
'Libya',
'Liechtenstein',
'Lithuania',
'Luxembourg',
'Macau',
'Macedonia',
'Madagascar',
'Malawi',
'Malaysia',
'Maldives',
'Mali',
'Malta',
'Mauritania',
'Mauritius',
'Mexico',
'Moldova',
'Monaco',
'Mongolia',
'Montenegro',
'Montserrat',
'Morocco',
'Mozambique',
'Namibia',
'Nepal',
'Netherlands',
'Netherlands Antilles',
'New Caledonia',
'New Zealand',
'Nicaragua',
'Niger',
'Nigeria',
'Norway',
'Oman',
'Pakistan',
'Palestine',
'Panama',
'Papua New Guinea',
'Paraguay',
'Peru',
'Philippines',
'Poland',
'Portugal',
'Puerto Rico',
'Qatar',
'Reunion',
'Romania',
'Russia',
'Rwanda',
'Saint Pierre & Miquelon',
'Samoa',
'San Marino',
'Satellite',
'Saudi Arabia',
'Senegal',
'Serbia',
'Seychelles',
'Sierra Leone',
'Singapore',
'Slovakia',
'Slovenia',
'South Africa',
'South Korea',
'Spain',
'Sri Lanka',
'St Kitts & Nevis',
'St Lucia',
'St Vincent',
'St. Lucia',
'Sudan',
'Suriname',
'Swaziland',
'Sweden',
'Switzerland',
'Syria',
'Taiwan',
'Tajikistan',
'Tanzania',
'Thailand',
"Timor L'Este",
'Togo',
'Tonga',
'Trinidad & Tobago',
'Tunisia',
'Turkey',
'Turkmenistan',
'Turks & Caicos',
'Uganda',
'Ukraine',
'United Arab Emirates',
'United Kingdom',
'United States of America',
'Uruguay',
'Uzbekistan',
'Venezuela',
'Vietnam',
'Virgin Islands (US)',
'Yemen',
'Zambia',
'Zimbabwe',
];
const suggestions = COUNTRIES.map((country) => {
return {
id: country,
text: country,
};
});
const KeyCodes = {
comma: 188,
enter: [10, 13],
};
const delimiters = [...KeyCodes.enter, KeyCodes.comma];
const Tags = ReactTags.WithContext;
const App = () => {
const [tags, setTags] = React.useState([
{ id: 'Thailand', text: 'Thailand' },
{ id: 'India', text: 'India' },
{ id: 'Vietnam', text: 'Vietnam' },
{ id: 'Turkey', text: 'Turkey' },
]);
const handleDelete = (i) => {
setTags(tags.filter((tag, index) => index !== i));
};
const onTagUpdate = (i, newTag) => {
const updatedTags = tags.slice();
updatedTags.splice(i, 1, newTag);
setTags(updatedTags);
};
const handleAddition = (tag) => {
setTags([...tags, tag]);
};
const handleDrag = (tag, currPos, newPos) => {
const newTags = tags.slice();
newTags.splice(currPos, 1);
newTags.splice(newPos, 0, tag);
// re-render
setTags(newTags);
};
const handleTagClick = (index) => {
console.log('The tag at index ' + index + ' was clicked');
};
const onClearAll = () => {
setTags([]);
};
return (
<div className="app">
<GitHubCorner />
<h1> React Tags Example </h1>
<div>
<Tags
tags={tags}
suggestions={suggestions}
delimiters={delimiters}
handleDelete={handleDelete}
handleAddition={handleAddition}
handleDrag={handleDrag}
handleTagClick={handleTagClick}
onTagUpdate={onTagUpdate}
inputFieldPosition="bottom"
autocomplete
editable
clearAll
onClearAll={onClearAll}
maxTags={7}
/>
</div>
</div>
);
};
ReactDOM.render(<App />, document.getElementById('app'));