Application Android et IOS pour l'amicale des élèves https://play.google.com/store/apps/details?id=fr.amicaleinsat.application
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ProfileMembershipCard.tsx 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React from 'react';
  2. import { Avatar, Card, List, useTheme } from 'react-native-paper';
  3. import i18n from 'i18n-js';
  4. import { StyleSheet } from 'react-native';
  5. type Props = {
  6. valid?: boolean;
  7. };
  8. const styles = StyleSheet.create({
  9. card: {
  10. margin: 10,
  11. },
  12. icon: {
  13. backgroundColor: 'transparent',
  14. },
  15. });
  16. export default function ProfileMembershipCard(props: Props) {
  17. const theme = useTheme();
  18. const state = props.valid === true;
  19. return (
  20. <Card style={styles.card}>
  21. <Card.Title
  22. title={i18n.t('screens.profile.membership')}
  23. subtitle={i18n.t('screens.profile.membershipSubtitle')}
  24. left={(iconProps) => (
  25. <Avatar.Icon
  26. size={iconProps.size}
  27. icon="credit-card"
  28. color={theme.colors.primary}
  29. style={styles.icon}
  30. />
  31. )}
  32. />
  33. <Card.Content>
  34. <List.Section>
  35. <List.Item
  36. title={
  37. state
  38. ? i18n.t('screens.profile.membershipPayed')
  39. : i18n.t('screens.profile.membershipNotPayed')
  40. }
  41. left={(leftProps) => (
  42. <List.Icon
  43. style={leftProps.style}
  44. color={state ? theme.colors.success : theme.colors.danger}
  45. icon={state ? 'check' : 'close'}
  46. />
  47. )}
  48. />
  49. </List.Section>
  50. </Card.Content>
  51. </Card>
  52. );
  53. }