diff --git a/SampleApp/javascript/js/App.js b/SampleApp/javascript/js/App.js
index 93a59e4d3..e90334ef2 100644
--- a/SampleApp/javascript/js/App.js
+++ b/SampleApp/javascript/js/App.js
@@ -3,6 +3,7 @@ import { NavigationContainer } from '@react-navigation/native';
import { coffees } from './Data';
import { createStackNavigator } from '@react-navigation/stack';
import HomeScreen from './HomeScreen';
+import BannerViewScreen from './BannerViewScreen';
import NotificationViewScreen from './NotificationViewScreen';
const Stack = createStackNavigator();
@@ -54,6 +55,7 @@ export default class App extends React.Component {
return (
+
)
diff --git a/SampleApp/javascript/js/BannerViewScreen.d.ts b/SampleApp/javascript/js/BannerViewScreen.d.ts
new file mode 100644
index 000000000..9fe51c8dc
--- /dev/null
+++ b/SampleApp/javascript/js/BannerViewScreen.d.ts
@@ -0,0 +1,13 @@
+import { Component } from 'react';
+import { RouteProp } from '@react-navigation/native';
+import { StackNavigationProp } from '@react-navigation/stack';
+
+declare type BannerViewScreenProps = {
+ route: RouteProp;
+ navigation: StackNavigationProp;
+};
+export default class BannerViewScreen extends Component {
+ constructor(props: BannerViewScreenProps);
+ render(): JSX.Element;
+}
+export {};
diff --git a/SampleApp/javascript/js/BannerViewScreen.js b/SampleApp/javascript/js/BannerViewScreen.js
new file mode 100644
index 000000000..8d2a69882
--- /dev/null
+++ b/SampleApp/javascript/js/BannerViewScreen.js
@@ -0,0 +1,26 @@
+import React, { Component } from 'react';
+import { View } from 'react-native';
+import IterableBannerView from './components/IterableBannerView';
+
+export default class BannerViewScreen extends Component {
+ constructor(props) {
+ super(props);
+ }
+
+ render() {
+ return
+
+
+
+ }
+}
diff --git a/SampleApp/javascript/js/HomeScreen.js b/SampleApp/javascript/js/HomeScreen.js
index 7d7e33606..2f17e8c0c 100644
--- a/SampleApp/javascript/js/HomeScreen.js
+++ b/SampleApp/javascript/js/HomeScreen.js
@@ -5,19 +5,20 @@ export default class HomeScreen extends Component {
constructor(props) {
super(props);
}
-
navigateToCardView() {
console.log("Card View");
}
-
+
+ navigateToBannerView() {
+ console.log("Banner View");
+ this.props.navigation.navigate('BannerView');
+ }
+
navigateToNotificationView() {
+ console.log("Notification View");
this.props.navigation.navigate('NotificationView');
}
- navigateToBannerView() {
- console.log("Banner View");
- }
-
render() {
return
this.navigateToCardView()}>
diff --git a/SampleApp/javascript/js/components/IterableBannerView.tsx b/SampleApp/javascript/js/components/IterableBannerView.tsx
new file mode 100644
index 000000000..ffabe2c87
--- /dev/null
+++ b/SampleApp/javascript/js/components/IterableBannerView.tsx
@@ -0,0 +1,76 @@
+// @ts-nocheck
+import React from 'react'
+import {
+ View,
+ Text,
+ Image,
+ TouchableOpacity
+} from 'react-native'
+import {
+ containerProps,
+ imageProps,
+ titleLabelProps,
+ subTitleLabelProps,
+ btnPrimaryProps,
+ btnSecondaryProps
+} from '../types/commonType';
+
+type bannerViewProps = containerProps & imageProps & titleLabelProps & subTitleLabelProps & btnPrimaryProps & btnSecondaryProps
+
+const IterableBannerView = (props: bannerViewProps) => {
+
+ const imgURI = props?.imgSrc ? props.imgSrc : 'https://codesymphony.in/assets/projects/noobstrom/noob-web-4.png';
+ const bannerBorderRadius = props.borderRadius ? props.borderRadius : 10;
+
+ return (
+
+
+
+
+ {props?.titleText ? props?.titleText : 'Banner View Title'}
+
+
+
+
+
+
+ {props?.subTitleText ? props?.subTitleText : "Lorem ipsum dummy text, Lorem ipsum dummy text, Lorem ipsum dummy text, Lorem ipsum dummy text"}
+
+
+ props?.btnPrimaryOnClick ? props?.btnPrimaryOnClick() : null}
+ style={{ height: 35, paddingHorizontal: 10, borderRadius: 25, justifyContent: 'center', alignItems: 'center', backgroundColor: props?.btnPrimaryBgColor ? props?.btnPrimaryBgColor : '#6A266D'}}>
+
+ {props?.btnPrimaryText ? props.btnPrimaryText : "Learn more"}
+
+
+ {props?.isShowbtnSecondary ? props?.btnSecondaryOnClick ? props?.btnSecondaryOnClick() : null} style={{ justifyContent: 'center', alignItems: 'center', marginLeft: 20 }}>
+
+ {props?.btnSecondaryText ? props?.btnSecondaryText : "action"}
+
+ : null}
+
+
+
+ )
+}
+
+export default IterableBannerView
\ No newline at end of file
diff --git a/SampleApp/typescript/ios/SampleApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SampleApp/typescript/ios/SampleApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 000000000..18d981003
--- /dev/null
+++ b/SampleApp/typescript/ios/SampleApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/ts/components/IterableBannerView.tsx b/ts/components/IterableBannerView.tsx
new file mode 100644
index 000000000..ffabe2c87
--- /dev/null
+++ b/ts/components/IterableBannerView.tsx
@@ -0,0 +1,76 @@
+// @ts-nocheck
+import React from 'react'
+import {
+ View,
+ Text,
+ Image,
+ TouchableOpacity
+} from 'react-native'
+import {
+ containerProps,
+ imageProps,
+ titleLabelProps,
+ subTitleLabelProps,
+ btnPrimaryProps,
+ btnSecondaryProps
+} from '../types/commonType';
+
+type bannerViewProps = containerProps & imageProps & titleLabelProps & subTitleLabelProps & btnPrimaryProps & btnSecondaryProps
+
+const IterableBannerView = (props: bannerViewProps) => {
+
+ const imgURI = props?.imgSrc ? props.imgSrc : 'https://codesymphony.in/assets/projects/noobstrom/noob-web-4.png';
+ const bannerBorderRadius = props.borderRadius ? props.borderRadius : 10;
+
+ return (
+
+
+
+
+ {props?.titleText ? props?.titleText : 'Banner View Title'}
+
+
+
+
+
+
+ {props?.subTitleText ? props?.subTitleText : "Lorem ipsum dummy text, Lorem ipsum dummy text, Lorem ipsum dummy text, Lorem ipsum dummy text"}
+
+
+ props?.btnPrimaryOnClick ? props?.btnPrimaryOnClick() : null}
+ style={{ height: 35, paddingHorizontal: 10, borderRadius: 25, justifyContent: 'center', alignItems: 'center', backgroundColor: props?.btnPrimaryBgColor ? props?.btnPrimaryBgColor : '#6A266D'}}>
+
+ {props?.btnPrimaryText ? props.btnPrimaryText : "Learn more"}
+
+
+ {props?.isShowbtnSecondary ? props?.btnSecondaryOnClick ? props?.btnSecondaryOnClick() : null} style={{ justifyContent: 'center', alignItems: 'center', marginLeft: 20 }}>
+
+ {props?.btnSecondaryText ? props?.btnSecondaryText : "action"}
+
+ : null}
+
+
+
+ )
+}
+
+export default IterableBannerView
\ No newline at end of file
diff --git a/ts/index.ts b/ts/index.ts
index 9bbe6079d..2370681c4 100644
--- a/ts/index.ts
+++ b/ts/index.ts
@@ -40,8 +40,8 @@ import useDeviceOrientation from './useDeviceOrientation'
import InboxImpressionRowInfo from './InboxImpressionRowInfo'
import IterableConfig from './IterableConfig'
+import IterableBannerView from './components/IterableBannerView'
import { IterableDataRegion } from './IterableDataRegion'
-
import IterableNotificationView from './components/IterableNotificationView';
export {
@@ -63,6 +63,7 @@ export {
IterableInAppMessage,
IterableInAppCloseSource,
IterableInAppDeleteSource,
+ IterableBannerView,
IterableNotificationView,
IterableInboxEmptyState,
IterableInboxMessageCell,
diff --git a/ts/types/commonType.ts b/ts/types/commonType.ts
index 64595a5b2..1135f530e 100644
--- a/ts/types/commonType.ts
+++ b/ts/types/commonType.ts
@@ -42,4 +42,4 @@ export type btnSecondaryProps = {
btnSecondaryBgColor?: string,
isShowbtnSecondary?: boolean,
btnSecondaryOnClick?: Function
-}
\ No newline at end of file
+}