1.1.2 • Published 1 year ago

react-country-flags-select v1.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

react-country-flags-select

A customizable SVG flags select component and standalone SVG flags components are provided by this React component.

Live demo example

Live demo stackblitz.com

Storybook

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 required object prop that contains current label and country code of the input.

  • onSelect - is a required function prop that receive the selected country from the user, which will be used to update the selected value.

  • customCountries - an option object prop that you can pass to replace default countries with your own object.

  • searchable - an option boolean 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 option boolean prop that you can pass to see the country label in format United States (US). false by default.

  • labelOnlyCountryCode - an option boolean prop that you can pass to see the country label in format US. false by default.

  • searchPlaceholder - an option string prop that you can pass to replace default placeholder in searchable mode.

  • selectPlaceholder - an option string 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 option boolean prop that you can pass to remove clear icon. true by default.

  • selectWidth & selectHeight - an option number props that you can pass to change the width or height of the select. By default selectWidth = 250px, selectHeight = 30px.

  • optionSize & selectedSize an option number props that you can pass to change font size of the option or selected element. By default optionSize = 16px, selectedSize = 16px.

  • fullWidth = an option boolean prop that you can pass to make select element full width. By default false. if fullWidth = true will ignore selectWidth & selectHeight props.

  • optionsListMaxHeight - an option number prop that you can pass to change the max height of the dropdown overlay. By default optionsListMaxHeight = 300px.

  • disabled = an option boolean prop that you can pass to disable select element.

  • id = an option string prop that you can pass to container element.

  • classes = an option object 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.

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.3

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.0.2

1 year ago