mirror of
https://github.com/expo/react-native-loading-container.git
synced 2026-11-14 19:11:56 -10:00
93 lines
1.5 KiB
JavaScript
93 lines
1.5 KiB
JavaScript
/**
|
|
* Copyright 2015-present 650 Industries. All rights reserved.
|
|
*
|
|
* @providesModule ExRouter
|
|
*/
|
|
'use strict';
|
|
|
|
import React from 'react';
|
|
import {
|
|
Platform,
|
|
Text,
|
|
View,
|
|
} from 'react-native';
|
|
|
|
import ExNavigator from '@expo/react-native-navigator';
|
|
|
|
import BackButton from 'BackButton';
|
|
|
|
let baseRoute = {
|
|
renderBackButton(navigator) {
|
|
return (
|
|
<BackButton navigator={navigator} />
|
|
);
|
|
},
|
|
};
|
|
|
|
const ExRouter = {
|
|
getHomeRoute() {
|
|
return {
|
|
...baseRoute,
|
|
|
|
getTitle() {
|
|
return '/r/reactnative';
|
|
},
|
|
|
|
renderTitle() {
|
|
return renderTitle(this);
|
|
},
|
|
|
|
getSceneClass() {
|
|
return require('ListScreen').default;
|
|
},
|
|
};
|
|
},
|
|
|
|
getDetailRoute(url) {
|
|
return {
|
|
...baseRoute,
|
|
|
|
renderScene(navigator) {
|
|
let DetailScreen = require('DetailScreen').default;
|
|
return (
|
|
<DetailScreen
|
|
url={url}
|
|
navigator={navigator}
|
|
/>
|
|
);
|
|
}
|
|
};
|
|
},
|
|
};
|
|
|
|
let titleContainerStyle = {
|
|
position: 'absolute',
|
|
top: 0,
|
|
left: 0,
|
|
bottom: 0,
|
|
right: 0,
|
|
alignItems: 'center',
|
|
};
|
|
|
|
if (Platform.OS === 'android') {
|
|
titleContainerStyle.right = 72;
|
|
}
|
|
|
|
let titleTextStyle = {
|
|
color: '#fff',
|
|
fontSize: Platform.OS === 'ios' ? 15 : 18,
|
|
fontWeight: 'bold',
|
|
marginTop: 13,
|
|
};
|
|
|
|
|
|
function renderTitle(route) {
|
|
return (
|
|
<View style={titleContainerStyle}>
|
|
<Text style={titleTextStyle}>{route.getTitle()}</Text>
|
|
</View>
|
|
);
|
|
}
|
|
|
|
export default ExRouter;
|