// @flow import * as React from 'react'; import {FlatList, Image, Linking, View} from 'react-native'; import {Card, List, Text, withTheme, Avatar} from 'react-native-paper'; import i18n from 'i18n-js'; import type {MaterialCommunityIconsGlyphs} from 'react-native-vector-icons/MaterialCommunityIcons'; import CollapsibleFlatList from '../../components/Collapsible/CollapsibleFlatList'; import AMICALE_LOGO from '../../../assets/amicale.png'; import type { CardTitleIconPropsType, ListIconPropsType, } from '../../constants/PaperStyles'; type DatasetItemType = { name: string, email: string, icon: MaterialCommunityIconsGlyphs, }; /** * Class defining a planning event information page. */ class AmicaleContactScreen extends React.Component { // Dataset containing information about contacts CONTACT_DATASET: Array; constructor() { super(); this.CONTACT_DATASET = [ { name: i18n.t('screens.amicaleAbout.roles.interSchools'), email: 'inter.ecoles@amicale-insat.fr', icon: 'share-variant', }, { name: i18n.t('screens.amicaleAbout.roles.culture'), email: 'culture@amicale-insat.fr', icon: 'book', }, { name: i18n.t('screens.amicaleAbout.roles.animation'), email: 'animation@amicale-insat.fr', icon: 'emoticon', }, { name: i18n.t('screens.amicaleAbout.roles.clubs'), email: 'clubs@amicale-insat.fr', icon: 'account-group', }, { name: i18n.t('screens.amicaleAbout.roles.event'), email: 'evenements@amicale-insat.fr', icon: 'calendar-range', }, { name: i18n.t('screens.amicaleAbout.roles.tech'), email: 'technique@amicale-insat.fr', icon: 'cog', }, { name: i18n.t('screens.amicaleAbout.roles.communication'), email: 'amicale@amicale-insat.fr', icon: 'comment-account', }, { name: i18n.t('screens.amicaleAbout.roles.intraSchools'), email: 'intra.ecoles@amicale-insat.fr', icon: 'school', }, { name: i18n.t('screens.amicaleAbout.roles.publicRelations'), email: 'rp@amicale-insat.fr', icon: 'account-tie', }, ]; } keyExtractor = (item: DatasetItemType): string => item.email; getChevronIcon = (iconProps: ListIconPropsType): React.Node => ( ); getRenderItem = ({item}: {item: DatasetItemType}): React.Node => { const onPress = () => { Linking.openURL(`mailto:${item.email}`); }; return ( ( )} right={this.getChevronIcon} onPress={onPress} /> ); }; getScreen = (): React.Node => { return ( ( )} /> {i18n.t('screens.amicaleAbout.message')} ); }; render(): React.Node { return ( ); } } export default withTheme(AmicaleContactScreen);