# 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