in js/tabs/schedule/GeneralScheduleView.js [125:208]
icon: require("../../common/img/header/filter.png"),
title: "Filter",
onPress: this.openFilterScreen
}}
>
<ScheduleListView
title="Day 1"
day={1}
sessions={sessions}
renderEmptyList={this.renderEmptyList}
renderHeader={_ => this.renderGanttChart(1, sessions)}
renderFooter={_ => <F8TimelineBackground height={80} />}
navigator={this.props.navigator}
/>
<ScheduleListView
title="Day 2"
day={2}
sessions={sessions}
renderEmptyList={this.renderEmptyList}
renderHeader={_ => this.renderGanttChart(2, sessions)}
renderFooter={_ => <F8TimelineBackground height={80} />}
navigator={this.props.navigator}
/>
</ListContainer>
);
if (Platform.OS === "ios") {
return content;
} else {
return (
<View style={{ flex: 1 }}>
{content}
<FilterScreen
visible={this.state.filterModal}
topics={this.props.topics}
selectedTopics={this.props.filter}
onClose={_ => this.setState({ filterModal: false })}
onApply={selected => this.props.filterTopics(selected)}
/>
</View>
);
}
}
renderStickyHeader() {
let hideCompletedBar;
if (this.state.sessionsHappeningToday) {
hideCompletedBar = (
<HideCompleted
enabled={this.state.hideCompleted}
onChange={hideCompleted => this.setState({ hideCompleted })}
/>
);
}
let filterHeader;
if (Object.keys(this.props.filter).length > 0) {
filterHeader = (
<FilterHeader
filter={this.props.filter}
onClear={_ => this.props.clearFilter()}
/>
);
}
return (
<View>
{hideCompletedBar}
{filterHeader}
</View>
);
}
renderGanttChart(day: number, sessions: Array<Session>) {
const hasFilters = Object.keys(this.props.filter).length > 0;
if (hasFilters || !sessions.length) {
// intercept when list is filtered
// also disallow empty sessions to prevent the overflow color view from rendering
return <View style={{ height: 15 }} />; // TODO: better solution than spacer view
}
return (
<View style={{ paddingBottom: 15 }}>
<View
style={{