mirror of
https://github.com/zoriya/react-native-web.git
synced 2026-05-17 12:34:48 +00:00
committed by
Nicolas Gallagher
parent
c0e3409ace
commit
aaa58d7d75
@@ -0,0 +1,67 @@
|
||||
import React from 'react';
|
||||
import { StyleSheet } from 'react-native';
|
||||
import Example from '../../shared/example';
|
||||
import { SectionList, Text, View } from 'react-native-web';
|
||||
|
||||
function makeItems(length) {
|
||||
return Array(length)
|
||||
.fill(0)
|
||||
.map((value, index) => ({
|
||||
key: `item_${index}`,
|
||||
title: `Item ${index}`
|
||||
}));
|
||||
}
|
||||
|
||||
const sectionsData = [
|
||||
{ data: makeItems(9), title: 'Section A', color: 'red', key: 'a' },
|
||||
{ data: makeItems(6), title: 'Section B', color: 'green', key: 'b' },
|
||||
{ data: makeItems(3), title: 'Section C', color: 'yellow', key: 'c' }
|
||||
];
|
||||
|
||||
function renderItem({ item }) {
|
||||
return (
|
||||
<Text key={item.key} style={styles.itemTitleText}>
|
||||
{item.title}
|
||||
</Text>
|
||||
);
|
||||
}
|
||||
|
||||
function renderSectionHeader({ section }) {
|
||||
const extraStyle = { backgroundColor: section.color };
|
||||
return (
|
||||
<Text key={`sh_${section.key}`} style={[styles.sectionHeaderText, extraStyle]}>
|
||||
{section.title}
|
||||
</Text>
|
||||
);
|
||||
}
|
||||
|
||||
function renderSectionFooter({ section }) {
|
||||
const footerStyle = { height: 10, backgroundColor: section.color, marginBottom: 10 };
|
||||
return <View key={`sf_${section.key}`} style={footerStyle} />;
|
||||
}
|
||||
|
||||
export default function SectionListPage() {
|
||||
return (
|
||||
<Example title="SectionList">
|
||||
<SectionList
|
||||
ListFooterComponent={
|
||||
<Text style={styles.examplesFooter}>(Example ListFooterComponent Here)</Text>
|
||||
}
|
||||
ListHeaderComponent={
|
||||
<Text style={styles.examplesHeader}>(Example ListHeaderComponent Here)</Text>
|
||||
}
|
||||
renderItem={renderItem}
|
||||
renderSectionFooter={renderSectionFooter}
|
||||
renderSectionHeader={renderSectionHeader}
|
||||
sections={sectionsData}
|
||||
/>
|
||||
</Example>
|
||||
);
|
||||
}
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
examplesFooter: { fontSize: 22 },
|
||||
examplesHeader: { fontSize: 22, marginBottom: 20 },
|
||||
itemTitleText: { fontSize: 16 },
|
||||
sectionHeaderText: { fontSize: 20, fontWeight: 'bold' }
|
||||
});
|
||||
Reference in New Issue
Block a user