# react-native-settings-list
**Repository Path**: zowork/react-native-settings-list
## Basic Information
- **Project Name**: react-native-settings-list
- **Description**: react-native-settings-list
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2016-12-12
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# react-native-settings-list
---
A clean and highly customizable React Native implementation of a list of settings for a settings page.
## Quick Access
* Installation
* Usage
* New changes/additions
* Contributing
* Prop values
* \
* \
* \
* Simple Example
* Realistic Example
## Installation
---
Install the module with:
```
npm install react-native-settings-list --save
```
## Usage
---
In your code, simply require/import the module:
```
import SettingsList from 'react-native-settings-list';
```
###### Top
## New changes/additions
* Ability for an authorization-type component [example updated to show a practical use]
* Allows for complete customization of the TextInput by passing into the two props authPropsUser and authPassPW (overwrites defaults
* Uses existing onPress prop for callback
* Preview:
*
* Ability for custom arrow image/component
* Simply use the new arrowIcon prop to inject any type of object as the new arrow (with proper style formatting)
* Added defaultTitleStyle prop to \ to set the style of the tiles for all children removing the need for duplicate code
###### Top
## Contributing
Feel free to do pull requests if a certain feature you want is missing. I accept all PR's that are enhancements to the project.
###### Top
## Prop values
---
### \
The following props are used:
| Name | Description | Type |
|-------------------|------------------------------------------------|------------------------|
| backgroundColor | Sets default background color for all children | React.PropTypes.string |
| borderColor | Sets default border color for all children | React.PropTypes.string |
| defaultItemSize | Sets default width for all children | React.PropTypes.number |
| underlayColor | Sets default underlayColor for all children | React.PropTypes.string |
| defaultTitleStyle | Sets default style for all children's titles | React.PropTypes.string |
### \
The following props are used:
| Name | Description | Type |
|-------------|-----------------------------------------|------------------------|
| headerText | Text for the header | React.PropTypes.string |
| headerStyle | Sets border color for the settings list | Text.propTypes.style |
### \
The following props are used:
| Name | Description | Type |
|---------------------|----------------------------------------------------------------------------------------------------------|------------------------|
| title | Text for the item | React.PropTypes.string |
| titleStyle | Text Style | Text.propTypes.style |
| icon | A component for the icon. Doesn't need to be an image | React.PropTypes.node |
| itemWidth | Changes the individual item's width. Overwrites **\** defaultItemSize | React.PropTypes.number |
| backgroundColor | Changes the individual item's background color. Overwrites default **\** backgroundColor | React.PropTypes.string |
| underlayColor | Changes the individual item's underlayColor color. Overwrites default **\** underlayColor | React.PropTypes.string |
| onPress | On press Callback for item [used for auth callback as well] | React.PropTypes.func |
| hasNavArrow | Displays a navigation arrow | React.PropTypes.bool |
| arrowStyle | Style for the navigation arrow | Image.propTypes.style |
| arrowIcon | Inject custom arrow into the end of the item | React.PropTypes.node |
| hasSwitch | Enable a switch component | React.PropTypes.bool |
| switchProps | RN switch props | React.PropTypes.object |
| switchOnValueChange | On switches value change callback | React.PropTypes.func |
| titleInfo | Right side title information string | React.PropTypes.string |
| titleInfoStyle | Style for title information string | Text.propTypes.style |
| isAuth | Sets item as an authorization item | React.PropTypes.bool |
| authPropsUser | Changes the props for the first TextInput component; overwrites default | React.PropTypes.node |
| authPropsPW | Changes the props for the second TextInput component; overwrites default | React.PropTypes.node |
###### Top
## Simple Example
---
Here is a simple example of the different things you can do with the module:
The code behind it:
```
constructor(){
super();
this.onValueChange = this.onValueChange.bind(this);
this.state = {switchValue: false};
}
render() {
return (
}
itemWidth={50}
title='Icon Example'
onPress={() => Alert.alert('Icon Example Pressed')}
/>
Alert.alert('Different Colors Example Pressed')}/>
);
}
onValueChange(value){
this.setState({switchValue: value});
}
```
###### Top
## A more realistic example
---
Here is an example that looks very very close to the default iPhone settings page.
The code behind this is:
```
constructor(){
super();
this.onValueChange = this.onValueChange.bind(this);
this.state = {switchValue: false};
}
render() {
var bgColor = '#DCE3F4';
return (
Settings
}
hasSwitch={true}
switchState={this.state.switchValue}
switchOnValueChange={this.onValueChange}
hasNavArrow={false}
title='Airplane Mode'
/>
}
title='Wi-Fi'
titleInfo='Bill Wi The Science Fi'
titleInfoStyle={styles.titleInfoStyle}
onPress={() => Alert.alert('Route to Wifi Page')}
/>
}
title='Blutooth'
titleInfo='Off'
titleInfoStyle={styles.titleInfoStyle}
onPress={() => Alert.alert('Route to Blutooth Page')}
/>
}
title='Cellular'
onPress={() => Alert.alert('Route To Cellular Page')}
/>
}
title='Personal Hotspot'
titleInfo='Off'
titleInfoStyle={styles.titleInfoStyle}
onPress={() => Alert.alert('Route To Hotspot Page')}
/>
}
title='Notifications'
onPress={() => Alert.alert('Route To Notifications Page')}
/>
}
title='Control Center'
onPress={() => Alert.alert('Route To Control Center Page')}
/>
}
title='Do Not Disturb'
onPress={() => Alert.alert('Route To Do Not Disturb Page')}
/>
}
title='General'
onPress={() => Alert.alert('Route To General Page')}
/>
}
title='Display & Brightness'
onPress={() => Alert.alert('Route To Display Page')}
/>
);
}
onValueChange(value){
this.setState({switchValue: value});
}
```
Here is an example of the android page:
The code can be found here
###### Top