Banner Reuse
Reuse the same banner placement
let store = createStore(combineReducers({
homeScreenBannerVisible: determineHomeBannerVisible,
settingsScreenBannerVisible: determineSettingsBannerVisible,
}));
function determineHomeBannerVisible(state, action) {
if (typeof state === 'undefined') {
return true;
}
switch (action.type) {
case 'HOME':
return true;
case 'SETTINGS':
return false;
default:
return true;
}
}
function determineSettingsBannerVisible(state, action) {
if (typeof state === 'undefined') {
return true;
}
switch (action.type) {
case 'HOME':
return false;
case 'SETTINGS':
return true;
default:
return true;
}
}
let HomeScreenContainer = connect(state => ({ bannerVisible: state.homeScreenBannerVisible }))(HomeScreen);
let SettingsScreenContainer = connect(state => ({ bannerVisible: state.settingsScreenBannerVisible }))(SettingsScreen);
function HomeScreen({ bannerVisible }) {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Home screen</Text>
<RNAatkitBanner
name="BannerOne"
size={RNAatkit.PlacementSize_Banner320x53}
autoreload={true}
visible={bannerVisible} />
</View>
);
}
function SettingsScreen({ bannerVisible }) {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Text>Settings screen</Text>
<RNAatkitBanner
name="BannerOne"
size={RNAatkit.PlacementSize_Banner320x53}
autoreload={true}
visible={bannerVisible} />
</View>
);
}
export default function App() {
return (
<Provider store={store}>
<NavigationContainer>
<Tab.Navigator>
<Tab.Screen
name="Home"
component={HomeScreenContainer}
listeners={{
tabPress: e => {
store.dispatch({ type: 'HOME' });
}
}}
/>
<Tab.Screen
name="Settings"
component={SettingsScreenContainer}
listeners={{
tabPress: e => {
store.dispatch({ type: 'SETTINGS' });
}
}}
/>
</Tab.Navigator>
</NavigationContainer>
</Provider>
);
}Last updated