react-dipswitch
Version:
An interactive & customizable Dipswitch component for react.
79 lines (62 loc) • 2.8 kB
Markdown
An interactive, customizable, SVG-based dipswitch component for react.
<img src="https://i.imgur.com/aZrFGGz.png"/>
[](https://codesandbox.io/s/84q35m2430)
The component takes the following props.
| Prop | Type | Description |
|-----------------------|------------|-------------|
| `switchCount` | _number_ | The number of switches available on the dipswitch |
| `value` | _number_ | The integer value of the dipswitch. The dipswitch will display this value in binary. |
| `width` | _number_ | Width of the dipswitch housing. The height will be scaled automatically based on this value |
| `mostSignificantBit` | _string_ | If `left`, the most significant bit will be on the left side of the dipswitch. If `right` (default), it will display on the right side. |
| `onValueChange` | _function_ | Callback function to invoke when the value of the switch has changed. Function signature is `function(value){}`. |
| `onSwitchClick` | _function_ | Callback function to invoke when a switch has been clicked. Function signature is `function(index){}` The index of the least significant bit is always 0. |
| `switchColor` | _string_ | Color of the switch. |
| `channelColor` | _string_ | Color of the channel that the switch sits in. |
| `bodyColor` | _string_ | Color of the switch dipswitch housing. |
| `labelColor` | _string_ | Color of the number labels. |
```bash
npm install react-dipswitch
```
```javascript
<Dipswitch switchCount={4} value={16}/>
```
```javascript
import React, { Component } from "react";
import Dipswitch from "react-dipswitch";
class ControlledDipswitch extends Component {
constructor(props) {
super();
this.state = { value: 127 };
this.onValueChange = this.onValueChange.bind(this);
}
onValueChange(value) {
this.setState({ value });
}
render() {
return (
<div>
<Dipswitch
switchCount={8}
value={this.state.value}
onValueChange={this.onValueChange}
width={100}
/>
{this.state.value}
</div>
);
}
}
export default ControlledDipswitch;
```
* Allow for switches to be inverted for cases where "on" is down.
* Allow for for height to be set instead of width or width+height for custom scaling.
* Allow for value to be supplied as an array of truthy/falsey values
* Allow for value to be output as an array of true/false
MIT