Skip to content

Instantly share code, notes, and snippets.

@praisegeek
Last active November 10, 2016 05:11
Show Gist options
  • Save praisegeek/51374382bb31cd6f942f65d45cc9b0ae to your computer and use it in GitHub Desktop.
Save praisegeek/51374382bb31cd6f942f65d45cc9b0ae to your computer and use it in GitHub Desktop.
import React, {Component} from 'react';
import {View, TouchableOpacity, Text} from 'react-native';
import t from 'tcomb-form-native';
const Form = t.form.Form;
const Country = t.enums({
"AD":"Andorra","AE":"United Arab Emirates","AF":"Afghanistan","AG":"Antigua and Barbuda","AI":"Anguilla","AL":"Albania","AM":"Armenia","AO":"Angola","AQ":"Antarctica","AR":"Argentina","AS":"American Samoa","AT":"Austria","AU":"Australia","AW":"Aruba","AX":"Åland","AZ":"Azerbaijan","BA":"Bosnia and Herzegovina","BB":"Barbados","BD":"Bangladesh","BE":"Belgium","BF":"Burkina Faso","BG":"Bulgaria","BH":"Bahrain","BI":"Burundi","BJ":"Benin","BL":"Saint Barthélemy","BM":"Bermuda","BN":"Brunei","BO":"Bolivia","BQ":"Bonaire","BR":"Brazil","BS":"Bahamas","BT":"Bhutan","BV":"Bouvet Island","BW":"Botswana","BY":"Belarus","BZ":"Belize","CA":"Canada","CC":"Cocos [Keeling] Islands","CD":"Democratic Republic of the Congo","CF":"Central African Republic","CG":"Republic of the Congo","CH":"Switzerland","CI":"Ivory Coast","CK":"Cook Islands","CL":"Chile","CM":"Cameroon","CN":"China","CO":"Colombia","CR":"Costa Rica","CU":"Cuba","CV":"Cape Verde","CW":"Curacao","CX":"Christmas Island","CY":"Cyprus","CZ":"Czech Republic","DE":"Germany","DJ":"Djibouti","DK":"Denmark","DM":"Dominica","DO":"Dominican Republic","DZ":"Algeria","EC":"Ecuador","EE":"Estonia","EG":"Egypt","EH":"Western Sahara","ER":"Eritrea","ES":"Spain","ET":"Ethiopia","FI":"Finland","FJ":"Fiji","FK":"Falkland Islands","FM":"Micronesia","FO":"Faroe Islands","FR":"France","GA":"Gabon","GB":"United Kingdom","GD":"Grenada","GE":"Georgia","GF":"French Guiana","GG":"Guernsey","GH":"Ghana","GI":"Gibraltar","GL":"Greenland","GM":"Gambia","GN":"Guinea","GP":"Guadeloupe","GQ":"Equatorial Guinea","GR":"Greece","GS":"South Georgia and the South Sandwich Islands","GT":"Guatemala","GU":"Guam","GW":"Guinea-Bissau","GY":"Guyana","HK":"Hong Kong","HM":"Heard Island and McDonald Islands","HN":"Honduras","HR":"Croatia","HT":"Haiti","HU":"Hungary","ID":"Indonesia","IE":"Ireland","IL":"Israel","IM":"Isle of Man","IN":"India","IO":"British Indian Ocean Territory","IQ":"Iraq","IR":"Iran","IS":"Iceland","IT":"Italy","JE":"Jersey","JM":"Jamaica","JO":"Jordan","JP":"Japan","KE":"Kenya","KG":"Kyrgyzstan","KH":"Cambodia","KI":"Kiribati","KM":"Comoros","KN":"Saint Kitts and Nevis","KP":"North Korea","KR":"South Korea","KW":"Kuwait","KY":"Cayman Islands","KZ":"Kazakhstan","LA":"Laos","LB":"Lebanon","LC":"Saint Lucia","LI":"Liechtenstein","LK":"Sri Lanka","LR":"Liberia","LS":"Lesotho","LT":"Lithuania","LU":"Luxembourg","LV":"Latvia","LY":"Libya","MA":"Morocco","MC":"Monaco","MD":"Moldova","ME":"Montenegro","MF":"Saint Martin","MG":"Madagascar","MH":"Marshall Islands","MK":"Macedonia","ML":"Mali","MM":"Myanmar [Burma]","MN":"Mongolia","MO":"Macao","MP":"Northern Mariana Islands","MQ":"Martinique","MR":"Mauritania","MS":"Montserrat","MT":"Malta","MU":"Mauritius","MV":"Maldives","MW":"Malawi","MX":"Mexico","MY":"Malaysia","MZ":"Mozambique","NA":"Namibia","NC":"New Caledonia","NE":"Niger","NF":"Norfolk Island","NG":"Nigeria","NI":"Nicaragua","NL":"Netherlands","NO":"Norway","NP":"Nepal","NR":"Nauru","NU":"Niue","NZ":"New Zealand","OM":"Oman","PA":"Panama","PE":"Peru","PF":"French Polynesia","PG":"Papua New Guinea","PH":"Philippines","PK":"Pakistan","PL":"Poland","PM":"Saint Pierre and Miquelon","PN":"Pitcairn Islands","PR":"Puerto Rico","PS":"Palestine","PT":"Portugal","PW":"Palau","PY":"Paraguay","QA":"Qatar","RE":"Réunion","RO":"Romania","RS":"Serbia","RU":"Russia","RW":"Rwanda","SA":"Saudi Arabia","SB":"Solomon Islands","SC":"Seychelles","SD":"Sudan","SE":"Sweden","SG":"Singapore","SH":"Saint Helena","SI":"Slovenia","SJ":"Svalbard and Jan Mayen","SK":"Slovakia","SL":"Sierra Leone","SM":"San Marino","SN":"Senegal","SO":"Somalia","SR":"Suriname","SS":"South Sudan","ST":"São Tomé and Príncipe","SV":"El Salvador","SX":"Sint Maarten","SY":"Syria","SZ":"Swaziland","TC":"Turks and Caicos Islands","TD":"Chad","TF":"French Southern Territories","TG":"Togo","TH":"Thailand","TJ":"Tajikistan","TK":"Tokelau","TL":"East Timor","TM":"Turkmenistan","TN":"Tunisia","TO":"Tonga","TR":"Turkey","TT":"Trinidad and Tobago","TV":"Tuvalu","TW":"Taiwan","TZ":"Tanzania","UA":"Ukraine","UG":"Uganda","UM":"U.S. Minor Outlying Islands","US":"United States","UY":"Uruguay","UZ":"Uzbekistan","VA":"Vatican City","VC":"Saint Vincent and the Grenadines","VE":"Venezuela","VG":"British Virgin Islands","VI":"U.S. Virgin Islands","VN":"Vietnam","VU":"Vanuatu","WF":"Wallis and Futuna","WS":"Samoa","XK":"Kosovo","YE":"Yemen","YT":"Mayotte","ZA":"South Africa","ZM":"Zambia","ZW":"Zimbabwe"
});
const Person = t.struct({
country: Country,
});
var options = {
fields: {
country: {
nullOption: {value: '', text: 'Select country'}
options: [{"text":"Afghanistan","value":"AF"},{"text":"Åland Islands","value":"AX"},{"text":"Albania","value":"AL"},{"text":"Algeria","value":"DZ"},{"text":"American Samoa","value":"AS"},{"text":"Andorra","value":"AD"},{"text":"Angola","value":"AO"},{"text":"Anguilla","value":"AI"},{"text":"Antarctica","value":"AQ"},{"text":"Antigua and Barbuda","value":"AG"},{"text":"Argentina","value":"AR"},{"text":"Armenia","value":"AM"},{"text":"Aruba","value":"AW"},{"text":"Australia","value":"AU"},{"text":"Austria","value":"AT"},{"text":"Azerbaijan","value":"AZ"},{"text":"Bahamas","value":"BS"},{"text":"Bahrain","value":"BH"},{"text":"Bangladesh","value":"BD"},{"text":"Barbados","value":"BB"},{"text":"Belarus","value":"BY"},{"text":"Belgium","value":"BE"},{"text":"Belize","value":"BZ"},{"text":"Benin","value":"BJ"},{"text":"Bermuda","value":"BM"},{"text":"Bhutan","value":"BT"},{"text":"Bolivia, Plurinational State of","value":"BO"},{"text":"Bonaire, Sint Eustatius and Saba","value":"BQ"},{"text":"Bosnia and Herzegovina","value":"BA"},{"text":"Botswana","value":"BW"},{"text":"Bouvet Island","value":"BV"},{"text":"Brazil","value":"BR"},{"text":"British Indian Ocean Territory","value":"IO"},{"text":"Brunei Darussalam","value":"BN"},{"text":"Bulgaria","value":"BG"},{"text":"Burkina Faso","value":"BF"},{"text":"Burundi","value":"BI"},{"text":"Cambodia","value":"KH"},{"text":"Cameroon","value":"CM"},{"text":"Canada","value":"CA"},{"text":"Cape Verde","value":"CV"},{"text":"Cayman Islands","value":"KY"},{"text":"Central African Republic","value":"CF"},{"text":"Chad","value":"TD"},{"text":"Chile","value":"CL"},{"text":"China","value":"CN"},{"text":"Christmas Island","value":"CX"},{"text":"Cocos (Keeling) Islands","value":"CC"},{"text":"Colombia","value":"CO"},{"text":"Comoros","value":"KM"},{"text":"Congo","value":"CG"},{"text":"Congo, the Democratic Republic of the","value":"CD"},{"text":"Cook Islands","value":"CK"},{"text":"Costa Rica","value":"CR"},{"text":"Côte d'Ivoire","value":"CI"},{"text":"Croatia","value":"HR"},{"text":"Cuba","value":"CU"},{"text":"Curaçao","value":"CW"},{"text":"Cyprus","value":"CY"},{"text":"Czech Republic","value":"CZ"},{"text":"Denmark","value":"DK"},{"text":"Djibouti","value":"DJ"},{"text":"Dominica","value":"DM"},{"text":"Dominican Republic","value":"DO"},{"text":"Ecuador","value":"EC"},{"text":"Egypt","value":"EG"},{"text":"El Salvador","value":"SV"},{"text":"Equatorial Guinea","value":"GQ"},{"text":"Eritrea","value":"ER"},{"text":"Estonia","value":"EE"},{"text":"Ethiopia","value":"ET"},{"text":"Falkland Islands (Malvinas)","value":"FK"},{"text":"Faroe Islands","value":"FO"},{"text":"Fiji","value":"FJ"},{"text":"Finland","value":"FI"},{"text":"France","value":"FR"},{"text":"French Guiana","value":"GF"},{"text":"French Polynesia","value":"PF"},{"text":"French Southern Territories","value":"TF"},{"text":"Gabon","value":"GA"},{"text":"Gambia","value":"GM"},{"text":"Georgia","value":"GE"},{"text":"Germany","value":"DE"},{"text":"Ghana","value":"GH"},{"text":"Gibraltar","value":"GI"},{"text":"Greece","value":"GR"},{"text":"Greenland","value":"GL"},{"text":"Grenada","value":"GD"},{"text":"Guadeloupe","value":"GP"},{"text":"Guam","value":"GU"},{"text":"Guatemala","value":"GT"},{"text":"Guernsey","value":"GG"},{"text":"Guinea","value":"GN"},{"text":"Guinea-Bissau","value":"GW"},{"text":"Guyana","value":"GY"},{"text":"Haiti","value":"HT"},{"text":"Heard Island and McDonald Islands","value":"HM"},{"text":"Holy See (Vatican City State)","value":"VA"},{"text":"Honduras","value":"HN"},{"text":"Hong Kong","value":"HK"},{"text":"Hungary","value":"HU"},{"text":"Iceland","value":"IS"},{"text":"India","value":"IN"},{"text":"Indonesia","value":"ID"},{"text":"Iran, Islamic Republic of","value":"IR"},{"text":"Iraq","value":"IQ"},{"text":"Ireland","value":"IE"},{"text":"Isle of Man","value":"IM"},{"text":"Israel","value":"IL"},{"text":"Italy","value":"IT"},{"text":"Jamaica","value":"JM"},{"text":"Japan","value":"JP"},{"text":"Jersey","value":"JE"},{"text":"Jordan","value":"JO"},{"text":"Kazakhstan","value":"KZ"},{"text":"Kenya","value":"KE"},{"text":"Kiribati","value":"KI"},{"text":"Korea, Democratic People's Republic of","value":"KP"},{"text":"Korea, Republic of","value":"KR"},{"text":"Kuwait","value":"KW"},{"text":"Kyrgyzstan","value":"KG"},{"text":"Lao People's Democratic Republic","value":"LA"},{"text":"Latvia","value":"LV"},{"text":"Lebanon","value":"LB"},{"text":"Lesotho","value":"LS"},{"text":"Liberia","value":"LR"},{"text":"Libya","value":"LY"},{"text":"Liechtenstein","value":"LI"},{"text":"Lithuania","value":"LT"},{"text":"Luxembourg","value":"LU"},{"text":"Macao","value":"MO"},{"text":"Macedonia, the Former Yugoslav Republic of","value":"MK"},{"text":"Madagascar","value":"MG"},{"text":"Malawi","value":"MW"},{"text":"Malaysia","value":"MY"},{"text":"Maldives","value":"MV"},{"text":"Mali","value":"ML"},{"text":"Malta","value":"MT"},{"text":"Marshall Islands","value":"MH"},{"text":"Martinique","value":"MQ"},{"text":"Mauritania","value":"MR"},{"text":"Mauritius","value":"MU"},{"text":"Mayotte","value":"YT"},{"text":"Mexico","value":"MX"},{"text":"Micronesia, Federated States of","value":"FM"},{"text":"Moldova, Republic of","value":"MD"},{"text":"Monaco","value":"MC"},{"text":"Mongolia","value":"MN"},{"text":"Montenegro","value":"ME"},{"text":"Montserrat","value":"MS"},{"text":"Morocco","value":"MA"},{"text":"Mozambique","value":"MZ"},{"text":"Myanmar","value":"MM"},{"text":"Namibia","value":"NA"},{"text":"Nauru","value":"NR"},{"text":"Nepal","value":"NP"},{"text":"Netherlands","value":"NL"},{"text":"New Caledonia","value":"NC"},{"text":"New Zealand","value":"NZ"},{"text":"Nicaragua","value":"NI"},{"text":"Niger","value":"NE"},{"text":"Nigeria","value":"NG"},{"text":"Niue","value":"NU"},{"text":"Norfolk Island","value":"NF"},{"text":"Northern Mariana Islands","value":"MP"},{"text":"Norway","value":"NO"},{"text":"Oman","value":"OM"},{"text":"Pakistan","value":"PK"},{"text":"Palau","value":"PW"},{"text":"Palestine, State of","value":"PS"},{"text":"Panama","value":"PA"},{"text":"Papua New Guinea","value":"PG"},{"text":"Paraguay","value":"PY"},{"text":"Peru","value":"PE"},{"text":"Philippines","value":"PH"},{"text":"Pitcairn","value":"PN"},{"text":"Poland","value":"PL"},{"text":"Portugal","value":"PT"},{"text":"Puerto Rico","value":"PR"},{"text":"Qatar","value":"QA"},{"text":"Réunion","value":"RE"},{"text":"Romania","value":"RO"},{"text":"Russian Federation","value":"RU"},{"text":"Rwanda","value":"RW"},{"text":"Saint Barthélemy","value":"BL"},{"text":"Saint Helena, Ascension and Tristan da Cunha","value":"SH"},{"text":"Saint Kitts and Nevis","value":"KN"},{"text":"Saint Lucia","value":"LC"},{"text":"Saint Martin (French part)","value":"MF"},{"text":"Saint Pierre and Miquelon","value":"PM"},{"text":"Saint Vincent and the Grenadines","value":"VC"},{"text":"Samoa","value":"WS"},{"text":"San Marino","value":"SM"},{"text":"Sao Tome and Principe","value":"ST"},{"text":"Saudi Arabia","value":"SA"},{"text":"Senegal","value":"SN"},{"text":"Serbia","value":"RS"},{"text":"Seychelles","value":"SC"},{"text":"Sierra Leone","value":"SL"},{"text":"Singapore","value":"SG"},{"text":"Sint Maarten (Dutch part)","value":"SX"},{"text":"Slovakia","value":"SK"},{"text":"Slovenia","value":"SI"},{"text":"Solomon Islands","value":"SB"},{"text":"Somalia","value":"SO"},{"text":"South Africa","value":"ZA"},{"text":"South Georgia and the South Sandwich Islands","value":"GS"},{"text":"South Sudan","value":"SS"},{"text":"Spain","value":"ES"},{"text":"Sri Lanka","value":"LK"},{"text":"Sudan","value":"SD"},{"text":"Suritext","value":"SR"},{"text":"Svalbard and Jan Mayen","value":"SJ"},{"text":"Swaziland","value":"SZ"},{"text":"Sweden","value":"SE"},{"text":"Switzerland","value":"CH"},{"text":"Syrian Arab Republic","value":"SY"},{"text":"Taiwan, Province of China","value":"TW"},{"text":"Tajikistan","value":"TJ"},{"text":"Tanzania, United Republic of","value":"TZ"},{"text":"Thailand","value":"TH"},{"text":"Timor-Leste","value":"TL"},{"text":"Togo","value":"TG"},{"text":"Tokelau","value":"TK"},{"text":"Tonga","value":"TO"},{"text":"Trinidad and Tobago","value":"TT"},{"text":"Tunisia","value":"TN"},{"text":"Turkey","value":"TR"},{"text":"Turkmenistan","value":"TM"},{"text":"Turks and Caicos Islands","value":"TC"},{"text":"Tuvalu","value":"TV"},{"text":"Uganda","value":"UG"},{"text":"Ukraine","value":"UA"},{"text":"United Arab Emirates","value":"AE"},{"text":"United Kingdom","value":"GB"},{"text":"United States","value":"US"},{"text":"United States Minor Outlying Islands","value":"UM"},{"text":"Uruguay","value":"UY"},{"text":"Uzbekistan","value":"UZ"},{"text":"Vanuatu","value":"VU"},{"text":"Venezuela, Bolivarian Republic of","value":"VE"},{"text":"Viet Nam","value":"VN"},{"text":"Virgin Islands, British","value":"VG"},{"text":"Virgin Islands, U.S.","value":"VI"},{"text":"Wallis and Futuna","value":"WF"},{"text":"Western Sahara","value":"EH"},{"text":"Yemen","value":"YE"},{"text":"Zambia","value":"ZM"},{"text":"Zimbabwe","value":"ZW"}]
}
}
};
export default class Login extends Component {
handleSubmit() {
var value = this.refs.form.getValue();
if(value) //null if validation fails
console.log(value);
}
render() {
return (
<Form ref="form" type={Person} options={options} />
<TouchableOpacity onPress={this.handleSubmit.bind(this)}>
<Text>Submit</Text>
</TouchableOpacity>
)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment