react-country-flags-select
v1.1.2
Published
react-country-flags-select component
Downloads
929
Readme
react-country-flags-select
A customizable SVG flags select component and standalone SVG flags components are provided by this React component.
Live demo example
Installation and usage
npm install react-country-flags-select
Usage
ReactCountryFlagsSelect
import React, { useState } from "react";
import ReactCountryFlagsSelect from "react-country-flags-select";
const App = () => {
const [selected, setSelected] = useState(null);
<ReactCountryFlagsSelect selected={selected} onSelect={setSelected} />;
};
export default App;
Countries
List of Countries with country codes. Countries.
Props
selected
- is a requiredobject
prop that contains current label and country code of the input.onSelect
- is a requiredfunction
prop that receive the selected country from the user, which will be used to update the selected value.customCountries
- an optionobject
prop that you can pass to replace default countries with your ownobject
.searchable
- an optionboolean
prop that you can pass to make select searchable.false
by default.customLabelOptions
- an optionobject
prop that you can pass to rewrite original labels.labelWithCountryCode
- an optionboolean
prop that you can pass to see the country label in formatUnited States (US)
.false
by default.labelOnlyCountryCode
- an optionboolean
prop that you can pass to see the country label in formatUS
.false
by default.searchPlaceholder
- an optionstring
prop that you can pass to replace default placeholder in searchable mode.selectPlaceholder
- an optionstring
prop that you can pass to replace default placeholder in not searchable mode.CustomOpenIcon
&CustomCloseIcon
- an option props that you can pass to replace default open and close icons.clearIcon
- an optionboolean
prop that you can pass to remove clear icon.true
by default.selectWidth
&selectHeight
- an optionnumber
props that you can pass to change the width or height of the select. By defaultselectWidth = 250px
,selectHeight = 30px
.optionSize
&selectedSize
an optionnumber
props that you can pass to change font size of the option or selected element. By defaultoptionSize = 16px
,selectedSize = 16px
.fullWidth
= an optionboolean
prop that you can pass to make select element full width. By defaultfalse
. iffullWidth = true
will ignoreselectWidth
&selectHeight
props.optionsListMaxHeight
- an optionnumber
prop that you can pass to change the max height of the dropdown overlay. By defaultoptionsListMaxHeight = 300px
.disabled
= an optionboolean
prop that you can pass to disable select element.id
= an optionstring
prop that you can pass to container element.classes
= an optionobject
prop that you can pass to rewrite default classes.
you can override such classes
as:
container
, selectWrapper
, searchSelect
, buttonSelect
, buttonSelectText
, clearIcon
, optionsWrapper
,
option
, optionFlag
, optionText
, openIcon
, closeIcon
.
import { ReactComponent as SomeIcon } from "../SomeIcon.svg";
const [selected, setSelected] = useState(null);
const customCountries = {
US: "United States",
AF: "Afghanistan",
AL: "Albania",
DZ: "Algeria",
US: "United States",
};
const customLabelOptions = {
US: "U*S*A",
};
const searchPlaceholder = "some custom placeholder";
const selectPlaceholder = "some custom placeholder";
const classes = {
container: "someNewClass",
selectWrapper: "someNewClass",
searchSelect: "someNewClass",
buttonSelect: "someNewClass",
buttonSelectText: "someNewClass",
clearIcon: "someNewClass",
optionsWrapper: "someNewClass",
option: "someNewClass",
optionFlag: "someNewClass",
optionText: "someNewClass",
openIcon: "someNewClass",
closeIcon: "someNewClass",
};
<ReactCountryFlagsSelect
selected={selected}
onSelect={onSelect}
customCountries={customCountries}
customLabelOptions={customLabelOptions}
searchPlaceholder={searchPlaceholder}
selectPlaceholder={selectPlaceholder}
CustomOpenIcon={SomeIcon}
CustomCloseIcon={SomeIcon}
clearIcon={false}
searchable
labelWithCountryCode
labelOnlyCountryCode
selectWidth={350}
selectHeight={40}
optionSize={20}
selectedSize={20}
fullWidth
disabled
classes={classes}
optionsListMaxHeight={300}
id
/>;
Country Flag
import React from "react";
import { Us } from "react-country-flags-select";
const Region = () => (
<div>
<Us /> United States
</div>
);
export default Region;
Contribution
This project is written in Typescript. Storybook. Tests are written with Jest and React Testing Library. Raise a pull request with your changes.
Installation
npm install
License
MIT license.