Skip to content

React component with all USA States with customizable options. No D3 needed.

License

Notifications You must be signed in to change notification settings

foxio/react-usa-map

Repository files navigation

react-usa-map | A simple SVG USA map rendering on React

Build Statuscodebeat badge

This is an alternate version for you that just want a simple customizable map on HTML. This maps shows states delimitations including DC, Alaska, and Hawaii. D3 is not needed.

It uses the Albers projection.

Live: http://react-usa-map-demo.herokuapp.com

Code: http://github.com/gabidavila/react-usa-map-demo

Installation

It requires react 16.13.1 or higher. Run:

yarn add react-usa-map

or

npm install react-usa-map --save

Usage

The below example shows the mandatory onClick event.

importReact,{Component}from'react';importUSAMapfrom"react-usa-map";classAppextendsComponent{/* mandatory */mapHandler=(event)=>{alert(event.target.dataset.name);};render(){return(<divclassName="App"><USAMaponClick={this.mapHandler}/></div>);}}exportdefaultApp;

Example with optional props, App.js:

importReact,{Component}from'react';import'./App.css';/* optional for styling like the :hover pseudo-class */importUSAMapfrom"react-usa-map";classAppextendsComponent{/* mandatory */mapHandler=(event)=>{alert(event.target.dataset.name);};/* optional customization of filling per state and calling custom callbacks per state */statesCustomConfig=()=>{return{"NJ": {fill: "navy",clickHandler: (event)=>console.log('Custom handler for NJ',event.target.dataset)},"NY": {fill: "#CC0000"}};};render(){return(<divclassName="App"><USAMapcustomize={this.statesCustomConfig()}onClick={this.mapHandler}/></div>);}}exportdefaultApp;

App.css:

path{pointer-events: all} path:hover{opacity:0.50; cursor: pointer}

All optional props:

propdescription
titleContent for the Title attribute on the svg
widthThe width for rendering, numeric, no px suffix
heightThe height for rendering, numeric, no px suffix
defaultFillThe default color for filling
customizeOptional customization of filling per state

Additionally each path tag has an abbreviation of the current state followed by a state class:

<pathfill="#{custom color or #D3D3D3}" data-name="CA" class="CA state" d="...{polygon dimensions here}..."></path>

License

MIT.

Sources

The map is sourced from Wikimedia and is under Creative Commons Attribution-Share Alike 3.0 Unported license. This package is inspired on the react-us-state-map package, in fact the initial SVG class system is based on it.

Contributing

Fork and PR. Not much fuss, I will be try to be as responsive as possible.

Maintainer

Package maintaned by Gabriela D'Ávila Ferrara, website.

About

React component with all USA States with customizable options. No D3 needed.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript100.0%