0.0.7 • Published 6 years ago

react-native-optiongroup v0.0.7

Weekly downloads
28
License
MIT
Repository
github
Last release
6 years ago

react-native-optiongroup

A simple option group control.

alt text

Installation

React Native >= 0.49

yarn add react-native-optiongroup

Attributes

PropDescriptionDefault
string backgroundColorSpecifies the background color of the componenttransparent
string borderColorSpecifies the border color of the component#828186
number borderWidthSpecifies the border width of the component1
number borderRadiusSpecifies the border radius of the component3
number contentPaddingThe text padding between the boxes10
string inverseTextColorThe text color used when a option is selected#ffffff
array/object optionsAn array or object with the valuesrequired
any selectedThe current selected itemundefined
any defaultValueSame as selectedundefined
object styleA standard style object, refer below for more informationundefined
string useLabelValueA string indicating which key should be used for the label in an array object.undefined
string useKeyValueA string indicating which key should be used for the key in an array object.undefined
string themeOne of the following theme strings: red, yellow, blue or greenundefined
bool invertKeyLabelIf true the label becomes the key and the key becomes the labelfalse
string fontFamilyThe font familyundefined
string fontSizeThe font sizeundefined

Events

PropDescription
onChangeExecuted when another option value was selected

Examples

Import the component:

import OptionGroup from 'react-native-optiongroup';

Array Options

<OptionGroup
    options={['Yes', 'No', 'Maybe']}
    onChange={(value) => console.log(value, 'selected')}
/>

Object Options

<OptionGroup
    options={{'Yes': 0, 'No': 1, 'Maybe': 2}}
    onChange={(value) => console.log(value, 'selected')}
/>

Complex Object Options

<OptionGroup
    options={[
    	{
    		'answerResult': 0,
    		'label': 'Yes'
    	},
    	{
    		'answerResult': 1,
    		'label': 'No'
    	},
    	{
    		'answerResult': 2,
    		'label': 'Maybe'
    	},
    ]}
    useLabelValue={'label'}
    useKeyValue={'answerResult'}
    onChange={(value) => console.log(value, 'selected')}
/>

Inverted Options

<OptionGroup
    options={{yes: 'Yes, no: 'No', maybe: 'Maybe'}}
    onChange={(value) => console.log(value, 'selected')}
    invertKeyLabel={true}
/>

Attribute Styles

alt text

<OptionGroup
	borderColor={'green'}
	borderWidth={2}
	borderRadius={5}
	backgroundColor={'white'}
    options={{'Yes': 0, 'No': 1, 'Maybe': 2}}
    onChange={(value) => console.log(value, 'selected')}
/>

Standard Styles

alt text

<OptionGroup
	style={{fontSize: 20, margin: 20}}
    options={{'Yes': 0, 'No': 1, 'Maybe': 2}}
    onChange={(value) => console.log(value, 'selected')}
/>

A subset of standard styles are supported including margin, fontSize, fontFamily, backgroundColor, borderColor, borderWidth, borderRadius, contentPadding and inverseTextColor.

Theme Styles

alt text

<OptionGroup
	defaultValue={0}
	theme={'red'}
    options={{'Yes': 0, 'No': 1, 'Maybe': 2}}
    onChange={(value) => console.log(value, 'selected')}
/>

<OptionGroup
	defaultValue={0}
	theme={'blue'}
    options={{'Yes': 0, 'No': 1, 'Maybe': 2}}
    onChange={(value) => console.log(value, 'selected')}
/>

<OptionGroup
	defaultValue={0}
	theme={'green'}
    options={{'Yes': 0, 'No': 1, 'Maybe': 2}}
    onChange={(value) => console.log(value, 'selected')}
/>

<OptionGroup
	defaultValue={0}
	theme={'yellow'}
    options={{'Yes': 0, 'No': 1, 'Maybe': 2}}
    onChange={(value) => console.log(value, 'selected')}
/>

Default Theme Id's are light, dark, grey, red, yellow, blue and green