/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow * @format */ 'use strict'; const React = require('react'); const SectionList = require('SectionList'); function renderMyListItem(info: {item: {title: string}, index: number}) { return ; } const renderMyHeader = ({section}: {section: {fooNumber: number} & Object}) => ( ); module.exports = { testGoodDataWithGoodItem() { const sections = [ { key: 'a', data: [ { title: 'foo', key: 1, }, ], }, ]; return ; }, testBadRenderItemFunction() { const sections = [ { key: 'a', data: [ { title: 'foo', key: 1, }, ], }, ]; return [ // $FlowExpectedError - title should be inside `item` } sections={sections} />, } sections={sections} />, // EverythingIsFine } sections={sections} />, ]; }, testBadInheritedDefaultProp(): React.Element<*> { const sections = []; return ( ); }, testMissingData(): React.Element<*> { // $FlowExpectedError - missing `sections` prop return ; }, testBadSectionsShape(): React.Element<*> { const sections = [ /* $FlowFixMe(>=0.63.0 site=react_native_fb) This comment suppresses an * error found when Flow v0.63 was deployed. To see the error delete this * comment and run Flow. */ { key: 'a', items: [ { title: 'foo', key: 1, }, ], }, ]; // $FlowExpectedError - section missing `data` field return ; }, testBadSectionsMetadata(): React.Element<*> { const sections = [ { key: 'a', // $FlowExpectedError - section has bad meta data `fooNumber` field of type string fooNumber: 'string', data: [ { title: 'foo', key: 1, }, ], }, ]; return ( ); }, };