2.0.2 • Published 1 year ago

react-native-rectangle-color-picker v2.0.2

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

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

PropTypeOptionalDefaultDescription
oldColorColor stringYesundefinedInitial positon of the picker indicator
onColorChangefunctionYesCallback 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'.
hideSlidersboolYesfalseSet this to true to hide the saturation sliders.
textSaturationstringYes'Saturation'Set the title text of the saturation slider.
diamondboolYestrueShow diamond or rectangle palette.
staticPaletteboolYestrueSet 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