// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React, {useMemo} from 'react';
import {View} from 'react-native';
import {useTheme} from '@context/theme';
import {makeStyleSheetFromTheme, changeOpacity} from '@utils/theme';
import Footer from '../footer';
import Label from '../label';
import RadioEntry from './radio_entry';
import type {AvailableScreens} from '@typings/screens/navigation';
const getStyleSheet = makeStyleSheetFromTheme((theme: Theme) => {
return {
items: {
backgroundColor: theme.centerChannelBg,
borderTopWidth: 1,
borderBottomWidth: 1,
borderTopColor: changeOpacity(theme.centerChannelColor, 0.1),
borderBottomColor: changeOpacity(theme.centerChannelColor, 0.1),
},
};
});
type Props = {
label: string;
options?: DialogOption[];
onChange: (value: string) => void;
helpText?: string;
errorText?: string;
value?: string;
testID: string;
location: AvailableScreens;
}
function RadioSetting({
label,
options,
onChange,
helpText = '',
errorText = '',
testID,
value,
location,
}: Props) {
const theme = useTheme();
const style = getStyleSheet(theme);
const optionsRender = useMemo(() => {
if (!options) {
return [];
}
const elements = [];
for (const [i, {value: entryValue, text}] of options.entries()) {
elements.push(
,
);
}
return elements;
}, [value, onChange, options, testID]);
return (
{optionsRender}
);
}
export default RadioSetting;