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.

ServicesSectionScreen.js 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // @flow
  2. import * as React from 'react';
  3. import {Collapsible} from 'react-navigation-collapsible';
  4. import {CommonActions} from '@react-navigation/native';
  5. import {StackNavigationProp} from '@react-navigation/stack';
  6. import CardList from '../../components/Lists/CardList/CardList';
  7. import CustomTabBar from '../../components/Tabbar/CustomTabBar';
  8. import {withCollapsible} from '../../utils/withCollapsible';
  9. import type {ServiceCategoryType} from '../../managers/ServicesManager';
  10. type PropsType = {
  11. navigation: StackNavigationProp,
  12. route: {params: {data: ServiceCategoryType | null}},
  13. collapsibleStack: Collapsible,
  14. };
  15. class ServicesSectionScreen extends React.Component<PropsType> {
  16. finalDataset: ServiceCategoryType;
  17. constructor(props: PropsType) {
  18. super(props);
  19. this.handleNavigationParams();
  20. }
  21. /**
  22. * Recover the list to display from navigation parameters
  23. */
  24. handleNavigationParams() {
  25. const {props} = this;
  26. if (props.route.params != null) {
  27. if (props.route.params.data != null) {
  28. this.finalDataset = props.route.params.data;
  29. // reset params to prevent infinite loop
  30. props.navigation.dispatch(CommonActions.setParams({data: null}));
  31. props.navigation.setOptions({
  32. headerTitle: this.finalDataset.title,
  33. });
  34. }
  35. }
  36. }
  37. render(): React.Node {
  38. const {props} = this;
  39. const {
  40. containerPaddingTop,
  41. scrollIndicatorInsetTop,
  42. onScroll,
  43. } = props.collapsibleStack;
  44. return (
  45. <CardList
  46. dataset={this.finalDataset.content}
  47. isHorizontal={false}
  48. onScroll={onScroll}
  49. contentContainerStyle={{
  50. paddingTop: containerPaddingTop,
  51. paddingBottom: CustomTabBar.TAB_BAR_HEIGHT + 20,
  52. }}
  53. scrollIndicatorInsets={{top: scrollIndicatorInsetTop}}
  54. />
  55. );
  56. }
  57. }
  58. export default withCollapsible(ServicesSectionScreen);