diff --git a/.gitignore b/.gitignore
index 35b68d81..48263d80 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@ cmake-build-debug/
preferences
compile_commands.json
.vs/
+.vscode/
diff --git a/webclient/src/components/CountryDropdown/CountryDropdown.css b/webclient/src/components/CountryDropdown/CountryDropdown.css
new file mode 100644
index 00000000..c9537add
--- /dev/null
+++ b/webclient/src/components/CountryDropdown/CountryDropdown.css
@@ -0,0 +1,12 @@
+.CountryDropdown {
+ width: 100%;
+}
+
+.CountryDropdown-item {
+ display: flex;
+}
+
+.CountryDropdown-item__image {
+ width: 1.1em;
+ margin-right: 1em;
+}
diff --git a/webclient/src/components/CountryDropdown/CountryDropdown.tsx b/webclient/src/components/CountryDropdown/CountryDropdown.tsx
new file mode 100644
index 00000000..0d34318c
--- /dev/null
+++ b/webclient/src/components/CountryDropdown/CountryDropdown.tsx
@@ -0,0 +1,46 @@
+// eslint-disable-next-line
+import React, { useEffect, useState } from 'react';
+import { Select, MenuItem } from '@material-ui/core';
+import FormControl from '@material-ui/core/FormControl';
+import InputLabel from '@material-ui/core/InputLabel';
+import { Images } from 'images/Images';
+import './CountryDropdown.css';
+import { CountryLabel } from 'types';
+
+const CountryDropdown = ({ onChange }) => {
+ const [state, setState] = useState('');
+
+ return (
+
+ Country
+
+
+ )
+};
+
+export default CountryDropdown;
diff --git a/webclient/src/forms/RegisterForm/RegisterForm.tsx b/webclient/src/forms/RegisterForm/RegisterForm.tsx
index 7e8b1163..7e743d20 100644
--- a/webclient/src/forms/RegisterForm/RegisterForm.tsx
+++ b/webclient/src/forms/RegisterForm/RegisterForm.tsx
@@ -1,66 +1,66 @@
-// eslint-disable-next-line
+// eslint-disable-next-line
import React, { Component } from 'react';
-import { connect } from 'react-redux';
-import { Form, Field, reduxForm, change } from 'redux-form'
-
-import Button from '@material-ui/core/Button';
-
-import { InputField, KnownHosts } from 'components';
-import { FormKey } from 'types';
-
-import './RegisterForm.css';
-
-const RegisterForm = (props) => {
- const { dispatch, handleSubmit } = props;
-
- const onHostChange = ({ host, port }) => {
- dispatch(change(FormKey.REGISTER, 'host', host));
- dispatch(change(FormKey.REGISTER, 'port', port));
- }
- return (
-
- );
-};
-
-const propsMap = {
- form: FormKey.REGISTER,
-};
-
-const mapStateToProps = () => ({
- initialValues: {
-
- }
-});
-
-export default connect(mapStateToProps)(reduxForm(propsMap)(RegisterForm));
+import { connect } from 'react-redux';
+import { Form, Field, reduxForm, change } from 'redux-form'
+
+import Button from '@material-ui/core/Button';
+
+import { InputField, KnownHosts } from 'components';
+import { FormKey } from 'types';
+
+import './RegisterForm.css';
+
+const RegisterForm = (props) => {
+ const { dispatch, handleSubmit } = props;
+
+ const onHostChange = ({ host, port }) => {
+ dispatch(change(FormKey.REGISTER, 'host', host));
+ dispatch(change(FormKey.REGISTER, 'port', port));
+ }
+ return (
+
+ );
+};
+
+const propsMap = {
+ form: FormKey.REGISTER,
+};
+
+const mapStateToProps = () => ({
+ initialValues: {
+
+ }
+});
+
+export default connect(mapStateToProps)(reduxForm(propsMap)(RegisterForm));
diff --git a/webclient/src/images/countries/_Countries.ts b/webclient/src/images/countries/_Countries.ts
index 86028341..4278fa83 100644
--- a/webclient/src/images/countries/_Countries.ts
+++ b/webclient/src/images/countries/_Countries.ts
@@ -306,7 +306,7 @@ export const Countries = {
dj,
dk,
dm,
- _do,
+ do: _do,
dz,
ec,
ee,
@@ -351,7 +351,7 @@ export const Countries = {
ie,
il,
im,
- _in,
+ in: _in,
io,
iq,
ir,
diff --git a/webclient/src/types/countries.ts b/webclient/src/types/countries.ts
new file mode 100644
index 00000000..d6a313e2
--- /dev/null
+++ b/webclient/src/types/countries.ts
@@ -0,0 +1,252 @@
+export enum CountryLabel{
+ 'AF'= 'Afghanistan',
+ 'AX'= 'Åland Islands',
+ 'AL'= 'Albania',
+ 'DZ'= 'Algeria',
+ 'AS'= 'American Samoa',
+ 'AD'= 'Andorra',
+ 'AO'= 'Angola',
+ 'AI'= 'Anguilla',
+ 'AQ'= 'Antarctica',
+ 'AG'= 'Antigua and Barbuda',
+ 'AR'= 'Argentina',
+ 'AM'= 'Armenia',
+ 'AW'= 'Aruba',
+ 'AU'= 'Australia',
+ 'AT'= 'Austria',
+ 'AZ'= 'Azerbaijan',
+ 'BH'= 'Bahrain',
+ 'BS'= 'Bahamas',
+ 'BD'= 'Bangladesh',
+ 'BB'= 'Barbados',
+ 'BY'= 'Belarus',
+ 'BE'= 'Belgium',
+ 'BZ'= 'Belize',
+ 'BJ'= 'Benin',
+ 'BM'= 'Bermuda',
+ 'BT'= 'Bhutan',
+ 'BO'= 'Plurinational State of Bolivia',
+ 'BQ'= 'Sint Eustatius and Saba Bonaire',
+ 'BA'= 'Bosnia and Herzegovina',
+ 'BW'= 'Botswana',
+ 'BV'= 'Bouvet Island',
+ 'BR'= 'Brazil',
+ 'IO'= 'British Indian Ocean Territory',
+ 'BN'= 'Brunei Darussalam',
+ 'BG'= 'Bulgaria',
+ 'BF'= 'Burkina Faso',
+ 'BI'= 'Burundi',
+ 'KH'= 'Cambodia',
+ 'CM'= 'Cameroon',
+ 'CA'= 'Canada',
+ 'CV'= 'Cape Verde',
+ 'KY'= 'Cayman Islands',
+ 'CF'= 'Central African Republic',
+ 'TD'= 'Chad',
+ 'CL'= 'Chile',
+ 'CN'= 'China',
+ 'CX'= 'Christmas Island',
+ 'CC'= 'Cocos (Keeling) Islands',
+ 'CO'= 'Colombia',
+ 'KM'= 'Comoros',
+ 'CG'= 'Congo',
+ 'CD'= 'The Democratic Republic of the Congo',
+ 'CK'= 'Cook Islands',
+ 'CR'= 'Costa Rica',
+ 'CI'= 'Côte d\'Ivoire',
+ 'HR'= 'Croatia',
+ 'CU'= 'Cuba',
+ 'CW'= 'Curaçao',
+ 'CY'= 'Cyprus',
+ 'CZ'= 'Czech Republic',
+ 'DK'= 'Denmark',
+ 'DJ'= 'Djibouti',
+ 'DM'= 'Dominica',
+ 'DO'= 'Dominican Republic',
+ 'EC'= 'Ecuador',
+ 'EG'= 'Egypt',
+ 'SV'= 'El Salvador',
+ 'GQ'= 'Equatorial Guinea',
+ 'ER'= 'Eritrea',
+ 'EE'= 'Estonia',
+ 'ET'= 'Ethiopia',
+ 'EU'= 'European Union',
+ 'FK'= 'Falkland Islands (Malvinas)',
+ 'FO'= 'Faroe Islands',
+ 'FJ'= 'Fiji',
+ 'FI'= 'Finland',
+ 'FR'= 'France',
+ 'GF'= 'French Guiana',
+ 'PF'= 'French Polynesia',
+ 'TF'= 'French Southern Territories',
+ 'GA'= 'Gabon',
+ 'GM'= 'Gambia',
+ 'GE'= 'Georgia',
+ 'DE'= 'Germany',
+ 'GH'= 'Ghana',
+ 'GI'= 'Gibraltar',
+ 'GR'= 'Greece',
+ 'GL'= 'Greenland',
+ 'GD'= 'Grenada',
+ 'GP'= 'Guadeloupe',
+ 'GU'= 'Guam',
+ 'GT'= 'Guatemala',
+ 'GG'= 'Guernsey',
+ 'GN'= 'Guinea',
+ 'GW'= 'Guinea-Bissau',
+ 'GY'= 'Guyana',
+ 'HT'= 'Haiti',
+ 'HM'= 'Heard Island and McDonald Islands',
+ 'VA'= 'Holy See (Vatican City State)',
+ 'HN'= 'Honduras',
+ 'HK'= 'Hong Kong',
+ 'HU'= 'Hungary',
+ 'IS'= 'Iceland',
+ 'IN'= 'India',
+ 'ID'= 'Indonesia',
+ 'IR'= 'Islamic Republic of Iran',
+ 'IQ'= 'Iraq',
+ 'IE'= 'Ireland',
+ 'IM'= 'Isle of Man',
+ 'IL'= 'Israel',
+ 'IT'= 'Italy',
+ 'JM'= 'Jamaica',
+ 'JP'= 'Japan',
+ 'JE'= 'Jersey',
+ 'JO'= 'Jordan',
+ 'KZ'= 'Kazakhstan',
+ 'KE'= 'Kenya',
+ 'KI'= 'Kiribati',
+ 'KP'= 'Democratic People\'s Republic of Korea',
+ 'KR'= 'Republic of Korea',
+ 'KW'= 'Kuwait',
+ 'KG'= 'Kyrgyzstan',
+ 'LA'= 'Lao People\'s Democratic Republic',
+ 'LV'= 'Latvia',
+ 'LB'= 'Lebanon',
+ 'LS'= 'Lesotho',
+ 'LR'= 'Liberia',
+ 'LY'= 'Libya',
+ 'LI'= 'Liechtenstein',
+ 'LT'= 'Lithuania',
+ 'LU'= 'Luxembourg',
+ 'MO'= 'Macao',
+ 'MK'= 'The Former Yugoslav Republic of Macedonia',
+ 'MG'= 'Madagascar',
+ 'MW'= 'Malawi',
+ 'MY'= 'Malaysia',
+ 'MV'= 'Maldives',
+ 'ML'= 'Mali',
+ 'MT'= 'Malta',
+ 'MH'= 'Marshall Islands',
+ 'MQ'= 'Martinique',
+ 'MR'= 'Mauritania',
+ 'MU'= 'Mauritius',
+ 'YT'= 'Mayotte',
+ 'MX'= 'Mexico',
+ 'FM'= 'Federated States of Micronesia',
+ 'MD'= 'Republic of Moldova',
+ 'MC'= 'Monaco',
+ 'MN'= 'Mongolia',
+ 'ME'= 'Montenegro',
+ 'MS'= 'Montserrat',
+ 'MA'= 'Morocco',
+ 'MZ'= 'Mozambique',
+ 'MM'= 'Myanmar',
+ 'NA'= 'Namibia',
+ 'NR'= 'Nauru',
+ 'NP'= 'Nepal',
+ 'NL'= 'Netherlands',
+ 'NC'= 'New Caledonia',
+ 'NZ'= 'New Zealand',
+ 'NI'= 'Nicaragua',
+ 'NE'= 'Niger',
+ 'NG'= 'Nigeria',
+ 'NU'= 'Niue',
+ 'NF'= 'Norfolk Island',
+ 'MP'= 'Northern Mariana Islands',
+ 'NO'= 'Norway',
+ 'OM'= 'Oman',
+ 'PK'= 'Pakistan',
+ 'PW'= 'Palau',
+ 'PS'= 'State of Palestine',
+ 'PA'= 'Panama',
+ 'PG'= 'Papua New Guinea',
+ 'PY'= 'Paraguay',
+ 'PE'= 'Peru',
+ 'PH'= 'Philippines',
+ 'PN'= 'Pitcairn',
+ 'PL'= 'Poland',
+ 'PT'= 'Portugal',
+ 'PR'= 'Puerto Rico',
+ 'QA'= 'Qatar',
+ 'RE'= 'Réunion',
+ 'RO'= 'Romania',
+ 'RU'= 'Russian Federation',
+ 'RW'= 'Rwanda',
+ 'BL'= 'Saint Barthélemy',
+ 'SH'= 'Ascension and Tristan da Cunha Saint Helena',
+ 'KN'= 'Saint Kitts and Nevis',
+ 'LC'= 'Saint Lucia',
+ 'MF'= 'Saint Martin (French part)',
+ 'PM'= 'Saint Pierre and Miquelon',
+ 'VC'= 'Saint Vincent and the Grenadines',
+ 'WS'= 'Samoa',
+ 'SM'= 'San Marino',
+ 'ST'= 'Sao Tome and Principe',
+ 'SA'= 'Saudi Arabia',
+ 'SN'= 'Senegal',
+ 'RS'= 'Serbia',
+ 'SC'= 'Seychelles',
+ 'SL'= 'Sierra Leone',
+ 'SG'= 'Singapore',
+ 'SX'= 'Sint Maarten (Dutch part)',
+ 'SK'= 'Slovakia',
+ 'SI'= 'Slovenia',
+ 'SB'= 'Solomon Islands',
+ 'SO'= 'Somalia',
+ 'ZA'= 'South Africa',
+ 'GS'= 'South Georgia and the South Sandwich Islands',
+ 'SS'= 'South Sudan',
+ 'ES'= 'Spain',
+ 'LK'= 'Sri Lanka',
+ 'SD'= 'Sudan',
+ 'SR'= 'Suriname',
+ 'SJ'= 'Svalbard and Jan Mayen',
+ 'SZ'= 'Swaziland',
+ 'SE'= 'Sweden',
+ 'CH'= 'Switzerland',
+ 'SY'= 'Syrian Arab Republic',
+ 'TW'= 'Taiwan',
+ 'TJ'= 'Tajikistan',
+ 'TZ'= 'United Republic of Tanzania',
+ 'TH'= 'Thailand',
+ 'TL'= 'Timor-Leste',
+ 'TG'= 'Togo',
+ 'TK'= 'Tokelau',
+ 'TO'= 'Tonga',
+ 'TT'= 'Trinidad and Tobago',
+ 'TN'= 'Tunisia',
+ 'TR'= 'Turkey',
+ 'TM'= 'Turkmenistan',
+ 'TC'= 'Turks and Caicos Islands',
+ 'TV'= 'Tuvalu',
+ 'UG'= 'Uganda',
+ 'UA'= 'Ukraine',
+ 'AE'= 'United Arab Emirates',
+ 'GB'= 'United Kingdom',
+ 'US'= 'United States',
+ 'UM'= 'United States Minor Outlying Islands',
+ 'UY'= 'Uruguay',
+ 'UZ'= 'Uzbekistan',
+ 'VU'= 'Vanuatu',
+ 'VE'= 'Bolivarian Republic of Venezuela',
+ 'VN'= 'Viet Nam',
+ 'VG'= 'British Virgin Islands',
+ 'VI'= 'U.S. Virgin Islands',
+ 'WF'= 'Wallis and Futuna',
+ 'EH'= 'Western Sahara',
+ 'YE'= 'Yemen',
+ 'ZM'= 'Zambia',
+ 'ZW'= 'Zimbabwe'
+ };
diff --git a/webclient/src/types/index.ts b/webclient/src/types/index.ts
index 17abf21a..91e56204 100644
--- a/webclient/src/types/index.ts
+++ b/webclient/src/types/index.ts
@@ -1,5 +1,6 @@
export * from './cards';
export * from './constants';
+export * from './countries';
export * from './game';
export * from './room';
export * from './server';