be-components 0.9.3 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,15 +4,27 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ var _ViewportObserver = require("../../Components/ViewportObserver");
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
12
  const CompanyAdCard = ({
11
13
  company_ad,
12
14
  ad_type,
13
- onClickAd
15
+ onClickAd,
16
+ onViewAd
14
17
  }) => {
18
+ const ref = (0, _react.useRef)(null);
19
+ const isInViewport = (0, _ViewportObserver.useIsInViewport)(ref);
20
+ (0, _react.useEffect)(() => {
21
+ if (!isInViewport) {
22
+ return;
23
+ }
24
+ onViewAd(company_ad);
25
+ }, [isInViewport]);
15
26
  return /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
27
+ ref: ref,
16
28
  onPress: () => onClickAd(company_ad)
17
29
  }, /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
18
30
  source: {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","obj","__esModule","default","CompanyAdCard","company_ad","ad_type","onClickAd","createElement","TouchableOpacity","onPress","Image","source","uri","ad_creative","url","style","width","height","resizeMode","_default","exports"],"sourceRoot":"../../../../src","sources":["AdServer/components/CompanyAdCard.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAsD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAStD,MAAMG,aAAa,GAAGA,CAAC;EAAEC,UAAU;EAAEC,OAAO;EAAEC;AAA6B,CAAC,KAAK;EAC7E,oBACIV,MAAA,CAAAM,OAAA,CAAAK,aAAA,CAACR,YAAA,CAAAS,gBAAgB;IAACC,OAAO,EAAEA,CAAA,KAAMH,SAAS,CAACF,UAAU;EAAE,gBACnDR,MAAA,CAAAM,OAAA,CAAAK,aAAA,CAACR,YAAA,CAAAW,KAAK;IACFC,MAAM,EAAE;MAAEC,GAAG,EAAER,UAAU,CAACS,WAAW,CAACC;IAAI,CAAE;IAC5CC,KAAK,EAAE;MAAEC,KAAK,EAAEX,OAAO,CAACW,KAAK;MAAEC,MAAM,EAAEZ,OAAO,CAACY;IAAO,CAAE;IACxDC,UAAU,EAAC;EAAO,CACrB,CACa,CAAC;AAE3B,CAAC;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAlB,OAAA,GAGcC,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_ViewportObserver","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CompanyAdCard","company_ad","ad_type","onClickAd","onViewAd","ref","useRef","isInViewport","useIsInViewport","useEffect","createElement","TouchableOpacity","onPress","Image","source","uri","ad_creative","url","style","width","height","resizeMode","_default","exports"],"sourceRoot":"../../../../src","sources":["AdServer/components/CompanyAdCard.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AAAoE,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AASpE,MAAMW,aAAa,GAAGA,CAAC;EAAEC,UAAU;EAAEC,OAAO;EAAEC,SAAS;EAAEC;AAA4B,CAAC,KAAK;EAEvF,MAAMC,GAAG,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EACxB,MAAMC,YAAY,GAAG,IAAAC,iCAAe,EAACH,GAAG,CAAC;EAEzC,IAAAI,gBAAS,EAAC,MAAM;IACZ,IAAG,CAACF,YAAY,EAAC;MAAE;IAAO;IAC1BH,QAAQ,CAACH,UAAU,CAAC;EACxB,CAAC,EAAC,CAACM,YAAY,CAAC,CAAC;EAEjB,oBACIhC,MAAA,CAAAW,OAAA,CAAAwB,aAAA,CAAChC,YAAA,CAAAiC,gBAAgB;IAACN,GAAG,EAAEA,GAAI;IAACO,OAAO,EAAEA,CAAA,KAAMT,SAAS,CAACF,UAAU;EAAE,gBAC7D1B,MAAA,CAAAW,OAAA,CAAAwB,aAAA,CAAChC,YAAA,CAAAmC,KAAK;IACFC,MAAM,EAAE;MAAEC,GAAG,EAAEd,UAAU,CAACe,WAAW,CAACC;IAAI,CAAE;IAC5CC,KAAK,EAAE;MAAEC,KAAK,EAAEjB,OAAO,CAACiB,KAAK;MAAEC,MAAM,EAAElB,OAAO,CAACkB;IAAO,CAAE;IACxDC,UAAU,EAAC;EAAO,CACrB,CACa,CAAC;AAE3B,CAAC;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAArC,OAAA,GAGcc,aAAa","ignoreList":[]}
@@ -73,28 +73,25 @@ const AdServer = ({
73
73
  const active_ad = selectedable_ads[Math.floor(Math.random() * selectedable_ads.length)];
74
74
  //const active_ad = data.company_ads[0]
75
75
 
76
- (0, _react.useEffect)(() => {
77
- if (!active_ad) {
78
- return;
79
- }
80
- onViewAd({
81
- event_name: 'ad_view',
82
- level: 2,
83
- event_data: {
84
- ad_placement_id,
85
- company_id: active_ad.company_id,
86
- company_ad_buy_id: active_ad_buy.company_ad_buy_id,
87
- ad_campaigns: active_ad.ad_campaigns,
88
- company_ad_id: active_ad.company_ad_id
89
- }
90
- });
91
- }, [active_ad]);
92
76
  if (!active_ad || !active_type) {
93
77
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
94
78
  }
95
79
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_CompanyAdCard.default, {
96
80
  company_ad: active_ad,
97
81
  ad_type: active_type,
82
+ onViewAd: ad => {
83
+ onViewAd({
84
+ event_name: 'ad_view',
85
+ level: 1,
86
+ event_data: {
87
+ ad_placement_id,
88
+ company_ad_buy_id: ad.company_ad_buy_id,
89
+ company_ad_id: ad.company_ad_id,
90
+ company_id: ad.company_id,
91
+ ad_campaigns: ad.ad_campaigns
92
+ }
93
+ });
94
+ },
98
95
  onClickAd: ad => {
99
96
  onClickAd({
100
97
  event_name: 'ad_click',
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_api","_CompanyAdCard","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","AdContext","createContext","loading","ad_types","ad_placements","distinct_id","undefined","session_id","AdProvider","children","ads_data","setData","useState","useEffect","AdServerApi","setEnvironment","getAds","ad_plcm","findAds","typs","getAdTypes","createElement","Provider","value","exports","AdServer","ad_placement_id","ad_type","onViewAd","onClickAd","data","useContext","active_type","find","active_placement","p","ad_buys","Fragment","active_ad_buy","Math","floor","random","length","selectedable_ads","company_ads","active_ad","event_name","level","event_data","company_id","company_ad_buy_id","ad_campaigns","company_ad_id","View","company_ad","ad","new_url","AdServerHelpers","generateUrl","landing_url","Linking","openURL","_default"],"sourceRoot":"../../../src","sources":["AdServer/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_api","_CompanyAdCard","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","AdContext","createContext","loading","ad_types","ad_placements","distinct_id","undefined","session_id","AdProvider","children","ads_data","setData","useState","useEffect","AdServerApi","setEnvironment","getAds","ad_plcm","findAds","typs","getAdTypes","createElement","Provider","value","exports","AdServer","ad_placement_id","ad_type","onViewAd","onClickAd","data","useContext","active_type","find","active_placement","p","ad_buys","Fragment","active_ad_buy","Math","floor","random","length","selectedable_ads","company_ads","active_ad","View","company_ad","ad","event_name","level","event_data","company_ad_buy_id","company_ad_id","company_id","ad_campaigns","new_url","AdServerHelpers","generateUrl","landing_url","Linking","openURL","_default"],"sourceRoot":"../../../src","sources":["AdServer/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAEA,IAAAG,cAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAAuD,SAAAI,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAY,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAhB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAWvD,MAAMW,SAAS,gBAAG,IAAAC,oBAAa,EAAC;EAC5BC,OAAO,EAAC,KAAK;EACbC,QAAQ,EAAC,EAAmB;EAC5BC,aAAa,EAAE,EAAwB;EACvCC,WAAW,EAAEC,SAA+B;EAC5CC,UAAU,EAAED;AAChB,CAAC,CAAC;AAQK,MAAME,UAAU,GAAGA,CAAC;EAAEC,QAAQ;EAAEJ,WAAW;EAAEE;AAA2B,CAAC,KAAK;EACjF,MAAM,CAAEG,QAAQ,EAAEC,OAAO,CAAE,GAAG,IAAAC,eAAQ,EAInC;IACCV,OAAO,EAAC,KAAK;IACbC,QAAQ,EAAE,EAAE;IACZC,aAAa,EAAC;EAClB,CAAC,CAAC;EAEF,IAAAS,gBAAS,EAAC,MAAM;IACZC,gBAAW,CAACC,cAAc,CAAC,CAAC;IAC5BC,MAAM,CAAC,CAAC;EACZ,CAAC,EAAC,EAAE,CAAC;EAEL,MAAMA,MAAM,GAAG,MAAAA,CAAA,KAAW;IACtB,MAAMC,OAAO,GAAG,MAAMH,gBAAW,CAACI,OAAO,CAAC,CAAC;IAC3C,MAAMC,IAAI,GAAG,MAAML,gBAAW,CAACM,UAAU,CAAC,CAAC;IAE3CT,OAAO,CAAC;MACJ,GAAGD,QAAQ;MACXP,QAAQ,EAACgB,IAAI;MACbf,aAAa,EAACa;IAClB,CAAC,CAAC;EACN,CAAC;EAGD,oBACI7C,MAAA,CAAAS,OAAA,CAAAwC,aAAA,CAACrB,SAAS,CAACsB,QAAQ;IAACC,KAAK,EAAE;MAAE,GAAGb,QAAQ;MAAEL,WAAW;MAAEE;IAAW;EAAE,GAC/DE,QACe,CAAC;AAE7B,CAAC;AAAAe,OAAA,CAAAhB,UAAA,GAAAA,UAAA;AAED,MAAMiB,QAAQ,GAAGA,CAAC;EAAEC,eAAe;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAwB,CAAC,KAAK;EAGlF,MAAMC,IAAI,GAAG,IAAAC,iBAAU,EAAC/B,SAAS,CAAC;EAClC,MAAMgC,WAAW,GAAGF,IAAI,CAAC3B,QAAQ,CAAC8B,IAAI,CAAC/C,CAAC,IAAIA,CAAC,CAACyC,OAAO,IAAIA,OAAO,CAAC;EACjE,MAAMO,gBAAgB,GAAGJ,IAAI,CAAC1B,aAAa,CAAC6B,IAAI,CAACE,CAAC,IAAIA,CAAC,CAACT,eAAe,IAAIA,eAAe,CAAC;EAC3F,IAAG,CAACQ,gBAAgB,EAAEE,OAAO,EAAC;IAAE,oBAAOhE,MAAA,CAAAS,OAAA,CAAAwC,aAAA,CAAAjD,MAAA,CAAAS,OAAA,CAAAwD,QAAA,MAAI,CAAC;EAAC;EAC7C,MAAMC,aAAa,GAAGJ,gBAAgB,CAACE,OAAO,CAACG,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAACP,gBAAgB,CAACE,OAAO,CAACM,MAAM,CAAC,CAAC;EACzG,IAAG,CAACJ,aAAa,EAAC;IAAE,oBAAOlE,MAAA,CAAAS,OAAA,CAAAwC,aAAA,CAAAjD,MAAA,CAAAS,OAAA,CAAAwD,QAAA,MAAI,CAAC;EAAC;EACjC,IAAIM,gBAAgB,GAAGL,aAAa,CAACM,WAAW;EAChD,IAAG,CAACD,gBAAgB,EAAC;IAAE,oBAAOvE,MAAA,CAAAS,OAAA,CAAAwC,aAAA,CAAAjD,MAAA,CAAAS,OAAA,CAAAwD,QAAA,MAAI,CAAC;EAAC;EACpC,MAAMQ,SAAS,GAAGF,gBAAgB,CAACJ,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAACE,gBAAgB,CAACD,MAAM,CAAC,CAAC;EACrF;;EAEA,IAAG,CAACG,SAAS,IAAI,CAACb,WAAW,EAAC;IAAE,oBAAO5D,MAAA,CAAAS,OAAA,CAAAwC,aAAA,CAAAjD,MAAA,CAAAS,OAAA,CAAAwD,QAAA,MAAI,CAAC;EAAC;EACzC,oBACAjE,MAAA,CAAAS,OAAA,CAAAwC,aAAA,CAAC9C,YAAA,CAAAuE,IAAI,qBACD1E,MAAA,CAAAS,OAAA,CAAAwC,aAAA,CAAC5C,cAAA,CAAAI,OAAa;IACVkE,UAAU,EAAEF,SAAU;IACtBlB,OAAO,EAAEK,WAAY;IACrBJ,QAAQ,EAAGoB,EAAE,IAAK;MACdpB,QAAQ,CAAC;QACLqB,UAAU,EAAC,SAAS;QACpBC,KAAK,EAAC,CAAC;QACPC,UAAU,EAAE;UACRzB,eAAe;UACf0B,iBAAiB,EAAEJ,EAAE,CAACI,iBAAiB;UACvCC,aAAa,EAAEL,EAAE,CAACK,aAAa;UAC/BC,UAAU,EAAEN,EAAE,CAACM,UAAU;UACzBC,YAAY,EAAEP,EAAE,CAACO;QAErB;MACJ,CAAC,CAAC;IACN,CAAE;IACF1B,SAAS,EAAGmB,EAAE,IAAK;MACfnB,SAAS,CAAC;QACNoB,UAAU,EAAC,UAAU;QACrBC,KAAK,EAAC,CAAC;QACPC,UAAU,EAAE;UACRzB,eAAe;UACf0B,iBAAiB,EAAEJ,EAAE,CAACI,iBAAiB;UACvCC,aAAa,EAAEL,EAAE,CAACK,aAAa;UAC/BC,UAAU,EAAEN,EAAE,CAACM,UAAU;UACzBC,YAAY,EAAEP,EAAE,CAACO;QAErB;MACJ,CAAC,CAAC;MACF,MAAMC,OAAO,GAAGC,oBAAe,CAACC,WAAW,CAACV,EAAE,CAACW,WAAW,EAAE7B,IAAI,CAACzB,WAAW,CAAC;MAC7EuD,oBAAO,CAACC,OAAO,CAACL,OAAO,CAAC;IAC5B;EAAE,CACL,CACC,CAAC;AAEf,CAAC;AAAA,IAAAM,QAAA,GAAAtC,OAAA,CAAA3C,OAAA,GAEc4C,QAAQ","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useIsInViewport = void 0;
7
+ var _react = require("react");
8
+ const useIsInViewport = ref => {
9
+ const [isIntersecting, setIsIntersecting] = (0, _react.useState)(false);
10
+ const observer = (0, _react.useMemo)(() => new IntersectionObserver(([entry]) => {
11
+ if (!entry) {
12
+ return;
13
+ }
14
+ setIsIntersecting(entry.isIntersecting);
15
+ }), []);
16
+ (0, _react.useEffect)(() => {
17
+ if (!ref?.current) {
18
+ return;
19
+ }
20
+ observer.observe(ref.current);
21
+ return () => {
22
+ observer.disconnect();
23
+ };
24
+ }, [ref, observer]);
25
+ return isIntersecting;
26
+ };
27
+ exports.useIsInViewport = useIsInViewport;
28
+ //# sourceMappingURL=ViewportObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","useIsInViewport","ref","isIntersecting","setIsIntersecting","useState","observer","useMemo","IntersectionObserver","entry","useEffect","current","observe","disconnect","exports"],"sourceRoot":"../../../src","sources":["Components/ViewportObserver.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,GAAIC,GAAO,IAAK;EACxC,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAE3D,MAAMC,QAAQ,GAAG,IAAAC,cAAO,EACtB,MACE,IAAIC,oBAAoB,CAAC,CAAC,CAACC,KAAK,CAAC,KAAK;IAClC,IAAG,CAACA,KAAK,EAAC;MAAE;IAAO;IACnBL,iBAAiB,CAACK,KAAK,CAACN,cAAc,CAAC;EAC3C,CACA,CAAC,EACH,EACF,CAAC;EAED,IAAAO,gBAAS,EAAC,MAAM;IACZ,IAAG,CAACR,GAAG,EAAES,OAAO,EAAC;MAAE;IAAO;IAC5BL,QAAQ,CAACM,OAAO,CAACV,GAAG,CAACS,OAAO,CAAC;IAE7B,OAAO,MAAM;MACXL,QAAQ,CAACO,UAAU,CAAC,CAAC;IACvB,CAAC;EAEH,CAAC,EAAE,CAACX,GAAG,EAAEI,QAAQ,CAAC,CAAC;EAEnB,OAAOH,cAAc;AACvB,CAAC;AAAAW,OAAA,CAAAb,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -1,11 +1,22 @@
1
- import React from 'react';
1
+ import React, { useEffect, useRef } from 'react';
2
2
  import { Image, TouchableOpacity } from "react-native";
3
+ import { useIsInViewport } from '../../Components/ViewportObserver';
3
4
  const CompanyAdCard = ({
4
5
  company_ad,
5
6
  ad_type,
6
- onClickAd
7
+ onClickAd,
8
+ onViewAd
7
9
  }) => {
10
+ const ref = useRef(null);
11
+ const isInViewport = useIsInViewport(ref);
12
+ useEffect(() => {
13
+ if (!isInViewport) {
14
+ return;
15
+ }
16
+ onViewAd(company_ad);
17
+ }, [isInViewport]);
8
18
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
19
+ ref: ref,
9
20
  onPress: () => onClickAd(company_ad)
10
21
  }, /*#__PURE__*/React.createElement(Image, {
11
22
  source: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","Image","TouchableOpacity","CompanyAdCard","company_ad","ad_type","onClickAd","createElement","onPress","source","uri","ad_creative","url","style","width","height","resizeMode"],"sourceRoot":"../../../../src","sources":["AdServer/components/CompanyAdCard.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,KAAK,EAAEC,gBAAgB,QAAQ,cAAc;AAStD,MAAMC,aAAa,GAAGA,CAAC;EAAEC,UAAU;EAAEC,OAAO;EAAEC;AAA6B,CAAC,KAAK;EAC7E,oBACIN,KAAA,CAAAO,aAAA,CAACL,gBAAgB;IAACM,OAAO,EAAEA,CAAA,KAAMF,SAAS,CAACF,UAAU;EAAE,gBACnDJ,KAAA,CAAAO,aAAA,CAACN,KAAK;IACFQ,MAAM,EAAE;MAAEC,GAAG,EAAEN,UAAU,CAACO,WAAW,CAACC;IAAI,CAAE;IAC5CC,KAAK,EAAE;MAAEC,KAAK,EAAET,OAAO,CAACS,KAAK;MAAEC,MAAM,EAAEV,OAAO,CAACU;IAAO,CAAE;IACxDC,UAAU,EAAC;EAAO,CACrB,CACa,CAAC;AAE3B,CAAC;AAGD,eAAeb,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useRef","Image","TouchableOpacity","useIsInViewport","CompanyAdCard","company_ad","ad_type","onClickAd","onViewAd","ref","isInViewport","createElement","onPress","source","uri","ad_creative","url","style","width","height","resizeMode"],"sourceRoot":"../../../../src","sources":["AdServer/components/CompanyAdCard.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChD,SAASC,KAAK,EAAEC,gBAAgB,QAAQ,cAAc;AAEtD,SAASC,eAAe,QAAQ,mCAAmC;AASnE,MAAMC,aAAa,GAAGA,CAAC;EAAEC,UAAU;EAAEC,OAAO;EAAEC,SAAS;EAAEC;AAA4B,CAAC,KAAK;EAEvF,MAAMC,GAAG,GAAGT,MAAM,CAAC,IAAI,CAAC;EACxB,MAAMU,YAAY,GAAGP,eAAe,CAACM,GAAG,CAAC;EAEzCV,SAAS,CAAC,MAAM;IACZ,IAAG,CAACW,YAAY,EAAC;MAAE;IAAO;IAC1BF,QAAQ,CAACH,UAAU,CAAC;EACxB,CAAC,EAAC,CAACK,YAAY,CAAC,CAAC;EAEjB,oBACIZ,KAAA,CAAAa,aAAA,CAACT,gBAAgB;IAACO,GAAG,EAAEA,GAAI;IAACG,OAAO,EAAEA,CAAA,KAAML,SAAS,CAACF,UAAU;EAAE,gBAC7DP,KAAA,CAAAa,aAAA,CAACV,KAAK;IACFY,MAAM,EAAE;MAAEC,GAAG,EAAET,UAAU,CAACU,WAAW,CAACC;IAAI,CAAE;IAC5CC,KAAK,EAAE;MAAEC,KAAK,EAAEZ,OAAO,CAACY,KAAK;MAAEC,MAAM,EAAEb,OAAO,CAACa;IAAO,CAAE;IACxDC,UAAU,EAAC;EAAO,CACrB,CACa,CAAC;AAE3B,CAAC;AAGD,eAAehB,aAAa","ignoreList":[]}
@@ -63,28 +63,25 @@ const AdServer = ({
63
63
  const active_ad = selectedable_ads[Math.floor(Math.random() * selectedable_ads.length)];
64
64
  //const active_ad = data.company_ads[0]
65
65
 
66
- useEffect(() => {
67
- if (!active_ad) {
68
- return;
69
- }
70
- onViewAd({
71
- event_name: 'ad_view',
72
- level: 2,
73
- event_data: {
74
- ad_placement_id,
75
- company_id: active_ad.company_id,
76
- company_ad_buy_id: active_ad_buy.company_ad_buy_id,
77
- ad_campaigns: active_ad.ad_campaigns,
78
- company_ad_id: active_ad.company_ad_id
79
- }
80
- });
81
- }, [active_ad]);
82
66
  if (!active_ad || !active_type) {
83
67
  return /*#__PURE__*/React.createElement(React.Fragment, null);
84
68
  }
85
69
  return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(CompanyAdCard, {
86
70
  company_ad: active_ad,
87
71
  ad_type: active_type,
72
+ onViewAd: ad => {
73
+ onViewAd({
74
+ event_name: 'ad_view',
75
+ level: 1,
76
+ event_data: {
77
+ ad_placement_id,
78
+ company_ad_buy_id: ad.company_ad_buy_id,
79
+ company_ad_id: ad.company_ad_id,
80
+ company_id: ad.company_id,
81
+ ad_campaigns: ad.ad_campaigns
82
+ }
83
+ });
84
+ },
88
85
  onClickAd: ad => {
89
86
  onClickAd({
90
87
  event_name: 'ad_click',
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useContext","useEffect","useState","View","Linking","AdServerApi","AdServerHelpers","CompanyAdCard","AdContext","loading","ad_types","ad_placements","distinct_id","undefined","session_id","AdProvider","children","ads_data","setData","setEnvironment","getAds","ad_plcm","findAds","typs","getAdTypes","createElement","Provider","value","AdServer","ad_placement_id","ad_type","onViewAd","onClickAd","data","active_type","find","t","active_placement","p","ad_buys","Fragment","active_ad_buy","Math","floor","random","length","selectedable_ads","company_ads","active_ad","event_name","level","event_data","company_id","company_ad_buy_id","ad_campaigns","company_ad_id","company_ad","ad","new_url","generateUrl","landing_url","openURL"],"sourceRoot":"../../../src","sources":["AdServer/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useContext","useEffect","useState","View","Linking","AdServerApi","AdServerHelpers","CompanyAdCard","AdContext","loading","ad_types","ad_placements","distinct_id","undefined","session_id","AdProvider","children","ads_data","setData","setEnvironment","getAds","ad_plcm","findAds","typs","getAdTypes","createElement","Provider","value","AdServer","ad_placement_id","ad_type","onViewAd","onClickAd","data","active_type","find","t","active_placement","p","ad_buys","Fragment","active_ad_buy","Math","floor","random","length","selectedable_ads","company_ads","active_ad","company_ad","ad","event_name","level","event_data","company_ad_buy_id","company_ad_id","company_id","ad_campaigns","new_url","generateUrl","landing_url","openURL"],"sourceRoot":"../../../src","sources":["AdServer/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ import { useState, useMemo, useEffect } from "react";
2
+ export const useIsInViewport = ref => {
3
+ const [isIntersecting, setIsIntersecting] = useState(false);
4
+ const observer = useMemo(() => new IntersectionObserver(([entry]) => {
5
+ if (!entry) {
6
+ return;
7
+ }
8
+ setIsIntersecting(entry.isIntersecting);
9
+ }), []);
10
+ useEffect(() => {
11
+ if (!ref?.current) {
12
+ return;
13
+ }
14
+ observer.observe(ref.current);
15
+ return () => {
16
+ observer.disconnect();
17
+ };
18
+ }, [ref, observer]);
19
+ return isIntersecting;
20
+ };
21
+ //# sourceMappingURL=ViewportObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","useMemo","useEffect","useIsInViewport","ref","isIntersecting","setIsIntersecting","observer","IntersectionObserver","entry","current","observe","disconnect"],"sourceRoot":"../../../src","sources":["Components/ViewportObserver.tsx"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,OAAO,EAAEC,SAAS,QAAQ,OAAO;AAEpD,OAAO,MAAMC,eAAe,GAAIC,GAAO,IAAK;EACxC,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGN,QAAQ,CAAC,KAAK,CAAC;EAE3D,MAAMO,QAAQ,GAAGN,OAAO,CACtB,MACE,IAAIO,oBAAoB,CAAC,CAAC,CAACC,KAAK,CAAC,KAAK;IAClC,IAAG,CAACA,KAAK,EAAC;MAAE;IAAO;IACnBH,iBAAiB,CAACG,KAAK,CAACJ,cAAc,CAAC;EAC3C,CACA,CAAC,EACH,EACF,CAAC;EAEDH,SAAS,CAAC,MAAM;IACZ,IAAG,CAACE,GAAG,EAAEM,OAAO,EAAC;MAAE;IAAO;IAC5BH,QAAQ,CAACI,OAAO,CAACP,GAAG,CAACM,OAAO,CAAC;IAE7B,OAAO,MAAM;MACXH,QAAQ,CAACK,UAAU,CAAC,CAAC;IACvB,CAAC;EAEH,CAAC,EAAE,CAACR,GAAG,EAAEG,QAAQ,CAAC,CAAC;EAEnB,OAAOF,cAAc;AACvB,CAAC","ignoreList":[]}
@@ -4,7 +4,8 @@ type CompanyAdCardProps = {
4
4
  company_ad: CompanyAdvertisementProps;
5
5
  ad_type: AdTypeProps;
6
6
  onClickAd: (ad: CompanyAdvertisementProps) => void;
7
+ onViewAd: (ad: CompanyAdvertisementProps) => void;
7
8
  };
8
- declare const CompanyAdCard: ({ company_ad, ad_type, onClickAd }: CompanyAdCardProps) => React.JSX.Element;
9
+ declare const CompanyAdCard: ({ company_ad, ad_type, onClickAd, onViewAd }: CompanyAdCardProps) => React.JSX.Element;
9
10
  export default CompanyAdCard;
10
11
  //# sourceMappingURL=CompanyAdCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompanyAdCard.d.ts","sourceRoot":"","sources":["../../../../../src/AdServer/components/CompanyAdCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAG1E,KAAK,kBAAkB,GAAG;IACtB,UAAU,EAAE,yBAAyB,CAAA;IACrC,OAAO,EAAC,WAAW,CAAC;IACpB,SAAS,EAAE,CAAC,EAAE,EAAC,yBAAyB,KAAK,IAAI,CAAA;CACpD,CAAA;AACD,QAAA,MAAM,aAAa,uCAAuC,kBAAkB,sBAU3E,CAAA;AAGD,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"CompanyAdCard.d.ts","sourceRoot":"","sources":["../../../../../src/AdServer/components/CompanyAdCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAI1E,KAAK,kBAAkB,GAAG;IACtB,UAAU,EAAE,yBAAyB,CAAA;IACrC,OAAO,EAAC,WAAW,CAAC;IACpB,SAAS,EAAE,CAAC,EAAE,EAAC,yBAAyB,KAAK,IAAI,CAAC;IAClD,QAAQ,EAAE,CAAC,EAAE,EAAC,yBAAyB,KAAK,IAAI,CAAA;CACnD,CAAA;AACD,QAAA,MAAM,aAAa,iDAAiD,kBAAkB,sBAmBrF,CAAA;AAGD,eAAe,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/AdServer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAK9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,KAAK,aAAa,GAAG;IACjB,eAAe,EAAC,MAAM,CAAC;IACvB,OAAO,EAAC,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,QAAQ,EAAC,YAAY,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,QAAQ,EAAC,YAAY,KAAK,IAAI,CAAC;CAC9C,CAAA;AAUD,KAAK,eAAe,GAAG;IACnB,QAAQ,EAAC,GAAG,CAAC;IACb,WAAW,CAAC,EAAC,MAAM,CAAC;IACpB,UAAU,CAAC,EAAC,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,UAAU,0CAA0C,eAAe,sBAiC/E,CAAA;AAED,QAAA,MAAM,QAAQ,sDAAsD,aAAa,sBAuDhF,CAAA;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/AdServer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAK9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,KAAK,aAAa,GAAG;IACjB,eAAe,EAAC,MAAM,CAAC;IACvB,OAAO,EAAC,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,QAAQ,EAAC,YAAY,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,QAAQ,EAAC,YAAY,KAAK,IAAI,CAAC;CAC9C,CAAA;AAUD,KAAK,eAAe,GAAG;IACnB,QAAQ,EAAC,GAAG,CAAC;IACb,WAAW,CAAC,EAAC,MAAM,CAAC;IACpB,UAAU,CAAC,EAAC,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,UAAU,0CAA0C,eAAe,sBAiC/E,CAAA;AAED,QAAA,MAAM,QAAQ,sDAAsD,aAAa,sBAqDhF,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const useIsInViewport: (ref: any) => boolean;
2
+ //# sourceMappingURL=ViewportObserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewportObserver.d.ts","sourceRoot":"","sources":["../../../../src/Components/ViewportObserver.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,QAAQ,GAAG,YAwBpC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "be-components",
3
- "version": "0.9.3",
3
+ "version": "0.9.4",
4
4
  "description": "Components for BettorEdge Apps",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -1,16 +1,27 @@
1
- import React from 'react';
1
+ import React, { useEffect, useRef } from 'react';
2
2
  import { Image, TouchableOpacity } from "react-native"
3
3
  import type { AdTypeProps, CompanyAdvertisementProps } from '../../types';
4
+ import { useIsInViewport } from '../../Components/ViewportObserver';
4
5
 
5
6
 
6
7
  type CompanyAdCardProps = {
7
8
  company_ad: CompanyAdvertisementProps
8
9
  ad_type:AdTypeProps,
9
- onClickAd: (ad:CompanyAdvertisementProps) => void
10
+ onClickAd: (ad:CompanyAdvertisementProps) => void,
11
+ onViewAd: (ad:CompanyAdvertisementProps) => void
10
12
  }
11
- const CompanyAdCard = ({ company_ad, ad_type, onClickAd }:CompanyAdCardProps) => {
13
+ const CompanyAdCard = ({ company_ad, ad_type, onClickAd, onViewAd }:CompanyAdCardProps) => {
14
+
15
+ const ref = useRef(null)
16
+ const isInViewport = useIsInViewport(ref)
17
+
18
+ useEffect(() => {
19
+ if(!isInViewport){ return }
20
+ onViewAd(company_ad)
21
+ },[isInViewport])
22
+
12
23
  return (
13
- <TouchableOpacity onPress={() => onClickAd(company_ad)}>
24
+ <TouchableOpacity ref={ref} onPress={() => onClickAd(company_ad)}>
14
25
  <Image
15
26
  source={{ uri: company_ad.ad_creative.url }}
16
27
  style={{ width: ad_type.width, height: ad_type.height }}
@@ -66,7 +66,6 @@ const AdServer = ({ ad_placement_id, ad_type, onViewAd, onClickAd }:AdServerProp
66
66
 
67
67
 
68
68
  const data = useContext(AdContext);
69
-
70
69
  const active_type = data.ad_types.find(t => t.ad_type == ad_type)
71
70
  const active_placement = data.ad_placements.find(p => p.ad_placement_id == ad_placement_id)
72
71
  if(!active_placement?.ad_buys){ return <></> }
@@ -77,27 +76,26 @@ const AdServer = ({ ad_placement_id, ad_type, onViewAd, onClickAd }:AdServerProp
77
76
  const active_ad = selectedable_ads[Math.floor(Math.random()*selectedable_ads.length)]
78
77
  //const active_ad = data.company_ads[0]
79
78
 
80
- useEffect(() => {
81
- if(!active_ad){ return }
82
- onViewAd({
83
- event_name:'ad_view',
84
- level:2,
85
- event_data: {
86
- ad_placement_id,
87
- company_id: active_ad.company_id,
88
- company_ad_buy_id: active_ad_buy.company_ad_buy_id,
89
- ad_campaigns: active_ad.ad_campaigns,
90
- company_ad_id: active_ad.company_ad_id
91
- }
92
- })
93
- },[active_ad])
94
-
95
79
  if(!active_ad || !active_type){ return <></> }
96
- return (
80
+ return (
97
81
  <View>
98
82
  <CompanyAdCard
99
83
  company_ad={active_ad}
100
84
  ad_type={active_type}
85
+ onViewAd={(ad) => {
86
+ onViewAd({
87
+ event_name:'ad_view',
88
+ level:1,
89
+ event_data: {
90
+ ad_placement_id,
91
+ company_ad_buy_id: ad.company_ad_buy_id,
92
+ company_ad_id: ad.company_ad_id,
93
+ company_id: ad.company_id,
94
+ ad_campaigns: ad.ad_campaigns
95
+
96
+ }
97
+ })
98
+ }}
101
99
  onClickAd={(ad) => {
102
100
  onClickAd({
103
101
  event_name:'ad_click',
@@ -0,0 +1,27 @@
1
+ import { useState, useMemo, useEffect } from "react";
2
+
3
+ export const useIsInViewport = (ref:any) => {
4
+ const [isIntersecting, setIsIntersecting] = useState(false);
5
+
6
+ const observer = useMemo(
7
+ () =>
8
+ new IntersectionObserver(([entry]) => {
9
+ if(!entry){ return }
10
+ setIsIntersecting(entry.isIntersecting)
11
+ }
12
+ ),
13
+ [],
14
+ );
15
+
16
+ useEffect(() => {
17
+ if(!ref?.current){ return }
18
+ observer.observe(ref.current);
19
+
20
+ return () => {
21
+ observer.disconnect();
22
+ };
23
+
24
+ }, [ref, observer]);
25
+
26
+ return isIntersecting;
27
+ }