Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-native-country-state-city

Package Overview
Dependencies
Maintainers
0
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-country-state-city

A lightweight and easy-to-use React Native library that provides a comprehensive list of countries, states, cities and languages for creating dynamic and searchable dropdowns. Ideal for building forms and input fields that require accurate and up-to-date

  • 0.1.0
  • unpublished
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

react-native-country-state-city

A lightweight and easy-to-use React Native library that provides a comprehensive list of countries, states, cities and languages for creating dynamic and searchable dropdowns. Ideal for building forms and input fields that require accurate and up-to-date geographical selections, with seamless integration for improved user experience.

Installation

$ npm install --save react-native-country-state-city
$ yarn add react-native-country-state-city

$ import {
  CitySelect,
  CountrySelect,
  StateSelect,
  LanguageSelect,
} from "react-native-country-state-city";

Features

  • Easy to set up for real, you can make it work in less than 1minute!
  • Super easy to customize
  • Can also use it in your own custom UI.
  • Autosuggest: a list of matching countries is displayed when the input text changes.
  • Country data is provided, State data is provided based on given country id, City data is provided based on given country id and state id.
  • Country flag icons.
  • onChange and onTextChange callbacks.
  • And much more !
  • Language dropdown to list and search all languages in English and native too.

The gist

Default

import {
  CitySelect,
  CountrySelect,
  StateSelect,
  LanguageSelect,
} from "react-native-country-state-city";
import {Text,View} from 'react-native';
function App() {
  const [countryid, setCountryid] = useState(0);
  const [stateid, setstateid] = useState(0);
  return (
    <View>
      <Text>Country</Text>
      <CountrySelect
        onChange={(e) => {
          setCountryid(e.id);
        }}
        placeHolder="Select Country"
      />
      <Text>State</Text>
      <StateSelect
        countryid={countryid}
        onChange={(e) => {
          setstateid(e.id);
        }}
        placeHolder="Select State"
      />
      <Text>City</Text>
      <CitySelect
        countryid={countryid}
        stateid={stateid}
        onChange={(e) => {
          console.log(e);
        }}
        placeHolder="Select City"
      />
      <Text>Language</Text>
      <LanguageSelect
        onChange={(e) => {
          console.log(e);
        }}
        placeHolder="Select Language"
      />
    </View>
  );
}

Custom

import {
  GetCountries,
  GetState,
  GetCity,
  GetLanguages, //async functions
} from "react-native-country-state-city";
import {Picker,Text,View} from 'react-native';
function App() {
  const [countryid, setCountryid] = useState(0);
  const [stateid, setStateid] = useState(0);
  const [cityid, setCityid] = useState(0);
  const [language, setLanguage] = useState(0);

  const [countriesList, setCountriesList] = useState([]);
  const [stateList, setStateList] = useState([]);
  const [cityList, setCityList] = useState([]);
  const [languageList, setLanguageList] = useState([]);

  useEffect(() => {
    GetCountries().then((result) => {
      setCountries(result);
    });

    GetLanguages().then((result) => {
      setLanguageList(result);
    });
  }, []);
  return (
    <View>
      <Text>Country</Text>
      <Picker
        onValueChange={(val) => {
          const country = stateList[val]; //here you will get full country object.
          setCountryid(country.id);
          GetState(country.id).then((result) => {
            setStateList(result);
          });
        }}
        selectedValue={countryid}
      >
        {countryList.map((item, index) => (
          <Picker.Item label={item.name} key={index} value={index} />
        ))}
      </Picker>
      <Text>State</Text>
      <Picker
        onValueChange={(val) => {
          const state = stateList[val]; //here you will get full state object.
          setStateid(state.id);
          GetCity(countryid, state.id).then((result) => {
            setCityList(result);
          });
        }}
        selectedValue={stateid}
      >
        {stateList.map((item, index) => (
          <Picker.Item label={item.name} key={index} value={index} />
        ))}
      </Picker>
      <Text>City</Text>
      <Picker
        onValueChange={(val) => {
          const city = cityList[val]; //here you will get full city object.
          setCityid(city.id);
        }}
        selectedValue={cityid}
      >
        {cityList.map((item, index) => (
          <Picker.Item label={item.name} key={index} value={index} />
        ))}
      </Picker>
      <Text>Language</Text>
      <Picker
        onValueChange={(val) => {
          setLanguage(val);
        }}
        selectedValue={language}
      >
        {languageList.map((item, index) => (
          <Picker.Item label={item.name} key={index} value={index} />
        ))}
      </Picker>
    </View>
  );
}

City Example

React country state city example screenshot

GetCity - Result

[ { id: number; name: string; latitude: string; longitude: string; }, ... ]

State Example

React country state city example screenshot

GetState - Result

[ { id: number; name: string; state_code: string; latitude: string; longitude: string; }, ... ]

Country Example

React country state city example screenshot

GetCountries - Result

[ { id: number; name: string; iso3: string; iso2: string; numeric_code: string; phone_code: number; capital: string; currency: string; currency_name: string; currency_symbol: string; native: string; region: string; subregion: string; emoji: string; emojiU: string; tld: string; latitude: string; longitude: string; }, ... ]

Language Example

React country state city example screenshot React country state city example screenshot

GetLanguages - Result

[ { code: string; name: string; native: string; }, ... ]

The Country Select Properties

Properties used to customise the rendering:

NameTypeDescription
defaultValueCountryoptional The current value: a country object
containerClassNamestringoptional styles for a container
inputClassNamestringoptional styles for input box
onChangefunctionoptional The current value: a country object.The argument is the country object
onTextChangefunctionoptional A callback fired when the input text changes.
placeHolderstringoptional Placeholder text displayed in empty input
showFlagbooleanoptional Flags are displayed when true and not displayed when false. default is true.

State Select Properties

The same country select properties and additionally

NameTypeDescription
countryidnumberrequired The id of the selected country object

City Select Properties

The same country select properties and additionally

NameTypeDescription
countryidnumberrequired The id of the selected country object
stateidnumberrequired The id of the selected state object

The Language Select Properties

Properties used to customise the rendering:

NameTypeDescription
defaultValueCountryoptional The current value: a country object
containerClassNamestringoptional styles for a container
inputClassNamestringoptional styles for input box
onChangefunctionoptional The current value: a country object.The argument is the country object
onTextChangefunctionoptional A callback fired when the input text changes.
placeHolderstringoptional Placeholder text displayed in empty input
displayNativebooleanoptional value are used to display the languages in native language when is true and display in english when is false. default is false.

Demo

A demo is worth a thousand words

Contribute

Show your ❤️ and support by giving a ⭐. Any suggestions are welcome! venkatmcajj@gmail.com

Financial Contributors

Buy me a cup of coffee,

Binance Smart Chain or Ethereum - 0x7C6Bfb7f240f6028Fd2a0039924826eD8B879635

License

Licensed under MIT

Keywords

FAQs

Package last updated on 25 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc