react-native-rectangle-color-picker

2.0.2 • Public • Published

react-native-rectangle-color-picker

npm version npm downloads npm licence Platform

A color picker on diamond or rectangle palette.

Install

For RN >= 0.60

npm i --save react-native-rectangle-color-picker react-native-gesture-handler

For RN < 0.60

npm i --save react-native-rectangle-color-picker@1.x react-native-gesture-handler@1.2.2

And be aware of https://github.com/software-mansion/react-native-gesture-handler/issues/1164 if you use react-native-web and want to slide on web.

Usage

import React from 'react';
import tinycolor from 'tinycolor2';
import ColorPicker from 'react-native-rectangle-color-picker';

// if react-native-gesture-handler@1.x, no need <GestureHandlerRootView />
// but just <View />, ref to
// https://docs.swmansion.com/react-native-gesture-handler/docs/guides/migrating-off-rnghenabledroot/
// You should put <GestureHandlerRootView /> in your root component,
// example below is just playing the role of a root component
import {GestureHandlerRootView} from 'react-native-gesture-handler';

export default class SliderColorPickerExample extends React.Component {
    constructor(props) {
        super(props);
        this.state = { oldColor: '#dc402b' };
    }

    componentDidMount() {
        setTimeout(() => this.setState({ oldColor: '#fde200' }), 1000);
    }

    changeColor = colorHsv => this.setState({ oldColor: tinycolor(colorHsv).toHexString() })

    render() {
        return (
            <GestureHandlerRootView style={{alignItems: 'center'}}>
                <ColorPicker
                    ref={view => {this.colorPicker = view;}}
                    oldColor={this.state.oldColor}
                    onColorChange={this.changeColor}
                    textSaturation={'Saturation'}
                    diamond={true}
                    staticPalette={true}/>
            </GestureHandlerRootView>
        );
    }
}

Props

Prop Type Optional Default Description
oldColor Color string Yes undefined Initial positon of the picker indicator
onColorChange function Yes Callback called while the user click a color or release the slider. The 1st argument is color in HSV representation (see below). The 2nd string argument is always 'end'.
hideSliders bool Yes false Set this to true to hide the saturation sliders.
textSaturation string Yes 'Saturation' Set the title text of the saturation slider.
diamond bool Yes true Show diamond or rectangle palette.
staticPalette bool Yes true Set this to false to let the slider change the saturation of palette.

HSV color representation is an object literal with properties:

{
    h: number, // <0, 360>
    s: number, // <0, 1>
    v: number, // <0, 1>
}

Donate

To support my work, please consider donate.

  • ETH: 0xd02fa2738dcbba988904b5a9ef123f7a957dbb3e

Package Sidebar

Install

npm i react-native-rectangle-color-picker

Weekly Downloads

16

Version

2.0.2

License

MIT

Unpacked Size

731 kB

Total Files

8

Last publish

Collaborators

  • flyskywhy