Skip to content

Commit ca9401d

Browse files
Merge pull request #642 from StoDevX/carleton-caf-menus
Carleton caf menus
2 parents 7e8a0d6 + 6a284cf commit ca9401d

File tree

4 files changed

+81
-1
lines changed

4 files changed

+81
-1
lines changed

app.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import HomeView from './views/home'
2828
import MapView from './views/map'
2929
import StreamingView from './views/streaming'
3030
import {MenusView} from './views/menus'
31+
import {BonAppHostedMenu} from './views/menus/menu-bonapp'
3132
import {FilterView} from './views/components/filter'
3233
import NewsView from './views/news'
3334
import NewsItemView from './views/news/news-item'
@@ -54,6 +55,7 @@ function renderScene(route, navigator) {
5455
switch (route.id) {
5556
case 'HomeView': return <HomeView {...props} />
5657
case 'MenusView': return <MenusView {...props} />
58+
case 'BonAppHostedMenu': return <BonAppHostedMenu {...props} />
5759
case 'FilterView': return <FilterView {...props} />
5860
case 'DirectoryView': return <DirectoryView {...props} />
5961
case 'CalendarView': return <CalendarView {...props} />

views/menus/carleton-list.js

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// @flow
2+
import React from 'react'
3+
import {View, Platform, ScrollView, StyleSheet} from 'react-native'
4+
import type {TopLevelViewPropsType} from '../types'
5+
import type {CarletonDetailMenuType} from './types'
6+
import {Row} from '../components/layout'
7+
import {ListRow, ListSeparator, Title} from '../components/list'
8+
import {NoticeView} from '../components/notice'
9+
10+
import {carleton} from './tabs'
11+
12+
const styles = StyleSheet.create({
13+
rowText: {
14+
paddingVertical: 6,
15+
},
16+
})
17+
18+
export class CarletonMenuPicker extends React.Component {
19+
props: TopLevelViewPropsType;
20+
21+
onPressRow = (data: CarletonDetailMenuType) => {
22+
let name = data.title
23+
let id = data.props.cafeId
24+
let message = data.props.loadingMessage
25+
26+
this.props.navigator.push({
27+
id: 'BonAppHostedMenu',
28+
title: name,
29+
backButtonTitle: 'Carleton',
30+
index: this.props.route.index + 1,
31+
props: {
32+
name: name,
33+
loadingMessage: message,
34+
cafeId: id,
35+
},
36+
})
37+
}
38+
39+
render() {
40+
if (!carleton) {
41+
return <NoticeView text={'No Carleton Cafes to choose.'} />
42+
}
43+
44+
return (
45+
<ScrollView style={{paddingTop: Platform.OS === 'ios' ? 20 : 0}}>
46+
{carleton.map((loc: CarletonDetailMenuType, i, collection) =>
47+
<View key={`${i}`}>
48+
<ListRow
49+
onPress={() => this.onPressRow(loc)}
50+
arrowPosition='center'>
51+
<Row alignItems='center'>
52+
<Title style={styles.rowText}>{loc.title}</Title>
53+
</Row>
54+
</ListRow>
55+
{i < collection.length - 1 ? <ListSeparator spacing={{left: 15}} /> : null}
56+
</View>
57+
)}
58+
</ScrollView>
59+
)
60+
}
61+
}

views/menus/tabs.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
// @flow
22
import {BonAppHostedMenu} from './menu-bonapp'
33
import {GitHubHostedMenu} from './menu-github'
4-
// import {BonAppPickerView} from './dev-bonapp-picker'
4+
import {CarletonMenuPicker} from './carleton-list'
5+
//import {BonAppPickerView} from './dev-bonapp-picker'
56

67
const stolaf = [
78
{
@@ -46,6 +47,15 @@ const stolaf = [
4647
],
4748
},
4849
},
50+
{
51+
id: 'CarletonMenuListView',
52+
title: 'Carleton',
53+
rnVectorIcon: {iconName: 'menu'},
54+
component: CarletonMenuPicker,
55+
props: {
56+
name: 'carleton',
57+
},
58+
},
4959
// {
5060
// id: 'BonAppDevToolView',
5161
// title: 'BonApp',

views/menus/types.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,13 @@ export type CafeMenuType = {
6262
dayparts: DayPartsCollectionType,
6363
};
6464

65+
export type CarletonDetailMenuType = {
66+
component: any,
67+
id: string,
68+
props: {cafeId: string, loadingMessage: Array<string>},
69+
title: string,
70+
};
71+
6572
export type MenuForDayType = {
6673
date: string,
6774
cafes: {[key: string]: CafeMenuType},

0 commit comments

Comments
 (0)