mattermost-mobile/app/components/radio_button/radio_button_group.js
Joseph Baylon 0dfb776290
MM-30165 Detox/E2E: Add e2e tests for channel notification preference (#4949)
* Detox/E2E: Add e2e tests for channel notification preference

* Fixed unit snap files

* Moved e2e to notifications and updated formatting

* Added basic snapshot tests

* Update app/components/radio_button/radio_button_group.test.js

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Update app/components/radio_button/radio_button_group.test.js

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Update app/components/radio_button/radio_button_group.test.js

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Update app/components/sidebars/settings/drawer_item.test.js

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Update app/screens/channel_info/edit_channel/edit_channel.tsx

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Update app/screens/channel_info/notification_preference/notification_preference.test.js

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Update app/screens/channel_info/notification_preference/notification_preference.tsx

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Update app/components/radio_button/radio_button_group.test.js

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Fix radio button group snap file

* Simplified element call

* Rename channel sidebar to main sidebar

* Rename drawer button files

* Update app/components/sidebars/settings/settings_sidebar.test.js

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Update app/screens/channel_info/channel_info_row.test.js

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Update comments

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-11-10 10:53:38 -07:00

63 lines
1.6 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React, {PureComponent} from 'react';
import PropTypes from 'prop-types';
import {View} from 'react-native';
import RadioButton from './radio_button';
export default class RadioButtonGroup extends PureComponent {
static propTypes = {
options: PropTypes.array,
name: PropTypes.string.isRequired,
onSelect: PropTypes.func,
};
static defaultProps = {
options: [],
};
onChange = (value) => {
const {onSelect} = this.props;
if (onSelect) {
onSelect(value);
}
};
render = () => {
let options;
if (this.props.options.length) {
options = this.props.options.map((option) => {
const {
testID,
value,
label,
disabled,
...other
} = option;
const {name} = this.props;
return (
<RadioButton
testID={testID}
{...other}
name={name}
key={`${name}-${value}`}
value={value}
label={label}
disabled={disabled}
onCheck={this.onChange}
checked={option.checked}
/>
);
});
}
return (
<View>
{options}
</View>
);
};
}