@kontextso/sdk-react-native 0.0.5-rc.6 → 0.0.5-rc.7
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.
- package/dist/index.js +30 -26
- package/dist/index.mjs +30 -26
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -301,7 +301,7 @@ function useInitializeAds({
|
|
|
301
301
|
}
|
|
302
302
|
}
|
|
303
303
|
).catch((e) => {
|
|
304
|
-
import_loglevel.default.
|
|
304
|
+
import_loglevel.default.warn("[BRAIN] Error initializing ads", e);
|
|
305
305
|
setError(e.message);
|
|
306
306
|
});
|
|
307
307
|
} else {
|
|
@@ -382,8 +382,7 @@ function usePreloadAds({
|
|
|
382
382
|
setPreloadDone(true);
|
|
383
383
|
import_loglevel2.default.log("[BRAIN] preload ads finished");
|
|
384
384
|
} catch (e) {
|
|
385
|
-
import_loglevel2.default.
|
|
386
|
-
setPreloadDone(true);
|
|
385
|
+
import_loglevel2.default.warn("[BRAIN] Error preloading ads", e);
|
|
387
386
|
}
|
|
388
387
|
}
|
|
389
388
|
preload();
|
|
@@ -624,7 +623,11 @@ if (import_react_native.Platform.OS !== "web") {
|
|
|
624
623
|
patchFetch = require("react-native-fetch-api").fetch;
|
|
625
624
|
}
|
|
626
625
|
ErrorUtils.setGlobalHandler((error, isFatal) => {
|
|
627
|
-
|
|
626
|
+
if (!isFatal) {
|
|
627
|
+
import_loglevel3.default.warn(error);
|
|
628
|
+
} else {
|
|
629
|
+
import_loglevel3.default.error(error);
|
|
630
|
+
}
|
|
628
631
|
});
|
|
629
632
|
function useStreamAds({
|
|
630
633
|
userId,
|
|
@@ -729,7 +732,7 @@ function useStreamAds({
|
|
|
729
732
|
);
|
|
730
733
|
import_loglevel3.default.log(`[BRAIN] streaming ${code} ad done`);
|
|
731
734
|
} catch (e) {
|
|
732
|
-
import_loglevel3.default.
|
|
735
|
+
import_loglevel3.default.warn("[BRAIN] Error streaming ad", e);
|
|
733
736
|
setAds((oldAds) => [...oldAds, { isError: true, code }]);
|
|
734
737
|
}
|
|
735
738
|
};
|
|
@@ -746,22 +749,23 @@ function useStreamAds({
|
|
|
746
749
|
}
|
|
747
750
|
|
|
748
751
|
// src/context/AdsProvider.tsx
|
|
749
|
-
var
|
|
752
|
+
var import_loglevel5 = __toESM(require("loglevel"));
|
|
750
753
|
|
|
751
754
|
// src/components/ErrorBoundary.tsx
|
|
752
755
|
var import_react4 = __toESM(require("react"));
|
|
756
|
+
var import_loglevel4 = __toESM(require("loglevel"));
|
|
753
757
|
var captureErrorFn = (adServerUrl, error, componentStack, context) => {
|
|
754
758
|
fetch(`${adServerUrl}/error`, {
|
|
755
759
|
method: "POST",
|
|
756
760
|
body: JSON.stringify({
|
|
757
|
-
error: error
|
|
761
|
+
error: error?.message,
|
|
758
762
|
stack: componentStack,
|
|
759
763
|
context
|
|
760
764
|
})
|
|
761
765
|
}).catch((e) => {
|
|
762
|
-
|
|
766
|
+
import_loglevel4.default.warn("Error reporting client error", e);
|
|
763
767
|
}).finally(() => {
|
|
764
|
-
|
|
768
|
+
import_loglevel4.default.warn(error, componentStack);
|
|
765
769
|
});
|
|
766
770
|
};
|
|
767
771
|
var ErrorBoundary = class extends import_react4.default.Component {
|
|
@@ -779,7 +783,7 @@ var ErrorBoundary = class extends import_react4.default.Component {
|
|
|
779
783
|
componentDidCatch(error, info) {
|
|
780
784
|
const adServerUrl = this.props.adserverUrl;
|
|
781
785
|
if (adServerUrl) {
|
|
782
|
-
captureErrorFn(adServerUrl, error, info
|
|
786
|
+
captureErrorFn(adServerUrl, error, info?.componentStack, this.props.reqBodyParams);
|
|
783
787
|
}
|
|
784
788
|
}
|
|
785
789
|
render() {
|
|
@@ -812,7 +816,7 @@ var AdsProviderWithoutBoundary = ({
|
|
|
812
816
|
}) => {
|
|
813
817
|
const [viewedAds, setViewedAds] = (0, import_react5.useState)([]);
|
|
814
818
|
const adServerUrlOrDefault = adserverUrl || "https://server.megabrain.co";
|
|
815
|
-
|
|
819
|
+
import_loglevel5.default.setLevel(logLevel || "ERROR");
|
|
816
820
|
const {
|
|
817
821
|
ads: initAds,
|
|
818
822
|
sessionId,
|
|
@@ -860,7 +864,7 @@ var AdsProviderWithoutBoundary = ({
|
|
|
860
864
|
throw new Error("Test error");
|
|
861
865
|
}
|
|
862
866
|
const markAdAsViewed = (ad) => {
|
|
863
|
-
|
|
867
|
+
import_loglevel5.default.debug("[Brain] Calling onAdView");
|
|
864
868
|
onAdView && onAdView({
|
|
865
869
|
id: ad.id,
|
|
866
870
|
code: ad.code,
|
|
@@ -872,7 +876,7 @@ var AdsProviderWithoutBoundary = ({
|
|
|
872
876
|
setViewedAds((old) => [...old, ad.id]);
|
|
873
877
|
};
|
|
874
878
|
const onAdClickInternal = (ad) => {
|
|
875
|
-
|
|
879
|
+
import_loglevel5.default.debug("[Brain] Calling onAdClick");
|
|
876
880
|
onAdClick && onAdClick({
|
|
877
881
|
id: ad.id,
|
|
878
882
|
code: ad.code,
|
|
@@ -959,7 +963,7 @@ var AdsProvider = ({
|
|
|
959
963
|
|
|
960
964
|
// src/hooks/useAdViewed.tsx
|
|
961
965
|
var import_react7 = require("react");
|
|
962
|
-
var
|
|
966
|
+
var import_loglevel6 = __toESM(require("loglevel"));
|
|
963
967
|
function useAdViewed(ad) {
|
|
964
968
|
const context = (0, import_react7.useContext)(AdsContext);
|
|
965
969
|
const [stillMounted, setStillMounted] = (0, import_react6.useState)(false);
|
|
@@ -979,34 +983,34 @@ function useAdViewed(ad) {
|
|
|
979
983
|
if (!response.ok) {
|
|
980
984
|
throw new Error("Error sending view request");
|
|
981
985
|
}
|
|
982
|
-
|
|
986
|
+
import_loglevel6.default.log("[BRAIN] ad marked as viewed", ad.id, ad.code);
|
|
983
987
|
} catch (e) {
|
|
984
|
-
|
|
988
|
+
import_loglevel6.default.warn("[BRAIN] Error sending view request", e);
|
|
985
989
|
}
|
|
986
990
|
};
|
|
987
991
|
(0, import_react6.useEffect)(() => {
|
|
988
992
|
if (!ad || ad.isError || ad.isLoading || ad.isStreaming || ad.viewed || stillMounted) {
|
|
989
993
|
return;
|
|
990
994
|
}
|
|
991
|
-
|
|
995
|
+
import_loglevel6.default.log("[BRAIN] setting timeout", ad.id, ad.code);
|
|
992
996
|
setTimeout(() => {
|
|
993
|
-
|
|
997
|
+
import_loglevel6.default.log("[BRAIN] setting setStillMounted", ad.id, ad.code);
|
|
994
998
|
setStillMounted(true);
|
|
995
999
|
}, 1e3);
|
|
996
1000
|
}, [ad]);
|
|
997
1001
|
(0, import_react6.useEffect)(() => {
|
|
998
1002
|
if (stillMounted) {
|
|
999
|
-
|
|
1003
|
+
import_loglevel6.default.log("[BRAIN] sending request");
|
|
1000
1004
|
sendRequest();
|
|
1001
1005
|
}
|
|
1002
1006
|
}, [stillMounted]);
|
|
1003
1007
|
}
|
|
1004
1008
|
|
|
1005
1009
|
// src/formats/InlineAd.tsx
|
|
1006
|
-
var
|
|
1010
|
+
var import_loglevel9 = __toESM(require("loglevel"));
|
|
1007
1011
|
|
|
1008
1012
|
// src/components/MarkdownText.tsx
|
|
1009
|
-
var
|
|
1013
|
+
var import_loglevel7 = __toESM(require("loglevel"));
|
|
1010
1014
|
var import_react8 = require("react");
|
|
1011
1015
|
var import_react_native2 = require("react-native");
|
|
1012
1016
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
@@ -1020,7 +1024,7 @@ function MarkdownText({
|
|
|
1020
1024
|
const linkClickHandler = (href) => {
|
|
1021
1025
|
onLinkClick();
|
|
1022
1026
|
import_react_native2.Linking.openURL(href).catch(
|
|
1023
|
-
(err) =>
|
|
1027
|
+
(err) => import_loglevel7.default.warn("Failed to open URL:", err)
|
|
1024
1028
|
);
|
|
1025
1029
|
return false;
|
|
1026
1030
|
};
|
|
@@ -1047,7 +1051,7 @@ function MarkdownText({
|
|
|
1047
1051
|
|
|
1048
1052
|
// src/components/VideoPlayer.tsx
|
|
1049
1053
|
var import_expo_av = require("expo-av");
|
|
1050
|
-
var
|
|
1054
|
+
var import_loglevel8 = __toESM(require("loglevel"));
|
|
1051
1055
|
var import_react10 = require("react");
|
|
1052
1056
|
var import_react_native4 = require("react-native");
|
|
1053
1057
|
|
|
@@ -1142,7 +1146,7 @@ var VideoPlayer = ({
|
|
|
1142
1146
|
};
|
|
1143
1147
|
const handleLinkClick = (url) => {
|
|
1144
1148
|
if (url) {
|
|
1145
|
-
import_react_native4.Linking.openURL(url).catch((err) =>
|
|
1149
|
+
import_react_native4.Linking.openURL(url).catch((err) => import_loglevel8.default.warn("Failed to open URL:", err));
|
|
1146
1150
|
onLinkClick();
|
|
1147
1151
|
}
|
|
1148
1152
|
};
|
|
@@ -1244,7 +1248,7 @@ var InlineAd = ({ code, messageId, wrapper }) => {
|
|
|
1244
1248
|
if (ad.isLoading || ad.content?.trim().toLowerCase().includes("none"))
|
|
1245
1249
|
return null;
|
|
1246
1250
|
const onProgress = (progress) => {
|
|
1247
|
-
|
|
1251
|
+
import_loglevel9.default.log(`Progress: ${progress}`);
|
|
1248
1252
|
};
|
|
1249
1253
|
const handleImageClick = (url) => {
|
|
1250
1254
|
if (url) {
|
|
@@ -1253,7 +1257,7 @@ var InlineAd = ({ code, messageId, wrapper }) => {
|
|
|
1253
1257
|
window.open(url, "_blank");
|
|
1254
1258
|
} else {
|
|
1255
1259
|
import_react_native5.Linking.openURL(url).catch(
|
|
1256
|
-
(err) =>
|
|
1260
|
+
(err) => import_loglevel9.default.warn("Failed to open URL:", err)
|
|
1257
1261
|
);
|
|
1258
1262
|
}
|
|
1259
1263
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -275,7 +275,7 @@ function useInitializeAds({
|
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
277
|
).catch((e) => {
|
|
278
|
-
log.
|
|
278
|
+
log.warn("[BRAIN] Error initializing ads", e);
|
|
279
279
|
setError(e.message);
|
|
280
280
|
});
|
|
281
281
|
} else {
|
|
@@ -356,8 +356,7 @@ function usePreloadAds({
|
|
|
356
356
|
setPreloadDone(true);
|
|
357
357
|
log2.log("[BRAIN] preload ads finished");
|
|
358
358
|
} catch (e) {
|
|
359
|
-
log2.
|
|
360
|
-
setPreloadDone(true);
|
|
359
|
+
log2.warn("[BRAIN] Error preloading ads", e);
|
|
361
360
|
}
|
|
362
361
|
}
|
|
363
362
|
preload();
|
|
@@ -598,7 +597,11 @@ if (Platform.OS !== "web") {
|
|
|
598
597
|
patchFetch = __require("react-native-fetch-api").fetch;
|
|
599
598
|
}
|
|
600
599
|
ErrorUtils.setGlobalHandler((error, isFatal) => {
|
|
601
|
-
|
|
600
|
+
if (!isFatal) {
|
|
601
|
+
log3.warn(error);
|
|
602
|
+
} else {
|
|
603
|
+
log3.error(error);
|
|
604
|
+
}
|
|
602
605
|
});
|
|
603
606
|
function useStreamAds({
|
|
604
607
|
userId,
|
|
@@ -703,7 +706,7 @@ function useStreamAds({
|
|
|
703
706
|
);
|
|
704
707
|
log3.log(`[BRAIN] streaming ${code} ad done`);
|
|
705
708
|
} catch (e) {
|
|
706
|
-
log3.
|
|
709
|
+
log3.warn("[BRAIN] Error streaming ad", e);
|
|
707
710
|
setAds((oldAds) => [...oldAds, { isError: true, code }]);
|
|
708
711
|
}
|
|
709
712
|
};
|
|
@@ -720,22 +723,23 @@ function useStreamAds({
|
|
|
720
723
|
}
|
|
721
724
|
|
|
722
725
|
// src/context/AdsProvider.tsx
|
|
723
|
-
import
|
|
726
|
+
import log5 from "loglevel";
|
|
724
727
|
|
|
725
728
|
// src/components/ErrorBoundary.tsx
|
|
726
729
|
import React from "react";
|
|
730
|
+
import log4 from "loglevel";
|
|
727
731
|
var captureErrorFn = (adServerUrl, error, componentStack, context) => {
|
|
728
732
|
fetch(`${adServerUrl}/error`, {
|
|
729
733
|
method: "POST",
|
|
730
734
|
body: JSON.stringify({
|
|
731
|
-
error: error
|
|
735
|
+
error: error?.message,
|
|
732
736
|
stack: componentStack,
|
|
733
737
|
context
|
|
734
738
|
})
|
|
735
739
|
}).catch((e) => {
|
|
736
|
-
|
|
740
|
+
log4.warn("Error reporting client error", e);
|
|
737
741
|
}).finally(() => {
|
|
738
|
-
|
|
742
|
+
log4.warn(error, componentStack);
|
|
739
743
|
});
|
|
740
744
|
};
|
|
741
745
|
var ErrorBoundary = class extends React.Component {
|
|
@@ -753,7 +757,7 @@ var ErrorBoundary = class extends React.Component {
|
|
|
753
757
|
componentDidCatch(error, info) {
|
|
754
758
|
const adServerUrl = this.props.adserverUrl;
|
|
755
759
|
if (adServerUrl) {
|
|
756
|
-
captureErrorFn(adServerUrl, error, info
|
|
760
|
+
captureErrorFn(adServerUrl, error, info?.componentStack, this.props.reqBodyParams);
|
|
757
761
|
}
|
|
758
762
|
}
|
|
759
763
|
render() {
|
|
@@ -786,7 +790,7 @@ var AdsProviderWithoutBoundary = ({
|
|
|
786
790
|
}) => {
|
|
787
791
|
const [viewedAds, setViewedAds] = useState4([]);
|
|
788
792
|
const adServerUrlOrDefault = adserverUrl || "https://server.megabrain.co";
|
|
789
|
-
|
|
793
|
+
log5.setLevel(logLevel || "ERROR");
|
|
790
794
|
const {
|
|
791
795
|
ads: initAds,
|
|
792
796
|
sessionId,
|
|
@@ -834,7 +838,7 @@ var AdsProviderWithoutBoundary = ({
|
|
|
834
838
|
throw new Error("Test error");
|
|
835
839
|
}
|
|
836
840
|
const markAdAsViewed = (ad) => {
|
|
837
|
-
|
|
841
|
+
log5.debug("[Brain] Calling onAdView");
|
|
838
842
|
onAdView && onAdView({
|
|
839
843
|
id: ad.id,
|
|
840
844
|
code: ad.code,
|
|
@@ -846,7 +850,7 @@ var AdsProviderWithoutBoundary = ({
|
|
|
846
850
|
setViewedAds((old) => [...old, ad.id]);
|
|
847
851
|
};
|
|
848
852
|
const onAdClickInternal = (ad) => {
|
|
849
|
-
|
|
853
|
+
log5.debug("[Brain] Calling onAdClick");
|
|
850
854
|
onAdClick && onAdClick({
|
|
851
855
|
id: ad.id,
|
|
852
856
|
code: ad.code,
|
|
@@ -933,7 +937,7 @@ var AdsProvider = ({
|
|
|
933
937
|
|
|
934
938
|
// src/hooks/useAdViewed.tsx
|
|
935
939
|
import { useContext } from "react";
|
|
936
|
-
import
|
|
940
|
+
import log6 from "loglevel";
|
|
937
941
|
function useAdViewed(ad) {
|
|
938
942
|
const context = useContext(AdsContext);
|
|
939
943
|
const [stillMounted, setStillMounted] = useState5(false);
|
|
@@ -953,34 +957,34 @@ function useAdViewed(ad) {
|
|
|
953
957
|
if (!response.ok) {
|
|
954
958
|
throw new Error("Error sending view request");
|
|
955
959
|
}
|
|
956
|
-
|
|
960
|
+
log6.log("[BRAIN] ad marked as viewed", ad.id, ad.code);
|
|
957
961
|
} catch (e) {
|
|
958
|
-
|
|
962
|
+
log6.warn("[BRAIN] Error sending view request", e);
|
|
959
963
|
}
|
|
960
964
|
};
|
|
961
965
|
useEffect5(() => {
|
|
962
966
|
if (!ad || ad.isError || ad.isLoading || ad.isStreaming || ad.viewed || stillMounted) {
|
|
963
967
|
return;
|
|
964
968
|
}
|
|
965
|
-
|
|
969
|
+
log6.log("[BRAIN] setting timeout", ad.id, ad.code);
|
|
966
970
|
setTimeout(() => {
|
|
967
|
-
|
|
971
|
+
log6.log("[BRAIN] setting setStillMounted", ad.id, ad.code);
|
|
968
972
|
setStillMounted(true);
|
|
969
973
|
}, 1e3);
|
|
970
974
|
}, [ad]);
|
|
971
975
|
useEffect5(() => {
|
|
972
976
|
if (stillMounted) {
|
|
973
|
-
|
|
977
|
+
log6.log("[BRAIN] sending request");
|
|
974
978
|
sendRequest();
|
|
975
979
|
}
|
|
976
980
|
}, [stillMounted]);
|
|
977
981
|
}
|
|
978
982
|
|
|
979
983
|
// src/formats/InlineAd.tsx
|
|
980
|
-
import
|
|
984
|
+
import log9 from "loglevel";
|
|
981
985
|
|
|
982
986
|
// src/components/MarkdownText.tsx
|
|
983
|
-
import
|
|
987
|
+
import log7 from "loglevel";
|
|
984
988
|
import { useContext as useContext2 } from "react";
|
|
985
989
|
import {
|
|
986
990
|
Linking,
|
|
@@ -997,7 +1001,7 @@ function MarkdownText({
|
|
|
997
1001
|
const linkClickHandler = (href) => {
|
|
998
1002
|
onLinkClick();
|
|
999
1003
|
Linking.openURL(href).catch(
|
|
1000
|
-
(err) =>
|
|
1004
|
+
(err) => log7.warn("Failed to open URL:", err)
|
|
1001
1005
|
);
|
|
1002
1006
|
return false;
|
|
1003
1007
|
};
|
|
@@ -1024,7 +1028,7 @@ function MarkdownText({
|
|
|
1024
1028
|
|
|
1025
1029
|
// src/components/VideoPlayer.tsx
|
|
1026
1030
|
import { ResizeMode, Video } from "expo-av";
|
|
1027
|
-
import
|
|
1031
|
+
import log8 from "loglevel";
|
|
1028
1032
|
import { useContext as useContext4, useEffect as useEffect7, useRef, useState as useState7 } from "react";
|
|
1029
1033
|
import { Linking as Linking2, Text as Text2, TouchableOpacity, View as View2 } from "react-native";
|
|
1030
1034
|
|
|
@@ -1119,7 +1123,7 @@ var VideoPlayer = ({
|
|
|
1119
1123
|
};
|
|
1120
1124
|
const handleLinkClick = (url) => {
|
|
1121
1125
|
if (url) {
|
|
1122
|
-
Linking2.openURL(url).catch((err) =>
|
|
1126
|
+
Linking2.openURL(url).catch((err) => log8.warn("Failed to open URL:", err));
|
|
1123
1127
|
onLinkClick();
|
|
1124
1128
|
}
|
|
1125
1129
|
};
|
|
@@ -1221,7 +1225,7 @@ var InlineAd = ({ code, messageId, wrapper }) => {
|
|
|
1221
1225
|
if (ad.isLoading || ad.content?.trim().toLowerCase().includes("none"))
|
|
1222
1226
|
return null;
|
|
1223
1227
|
const onProgress = (progress) => {
|
|
1224
|
-
|
|
1228
|
+
log9.log(`Progress: ${progress}`);
|
|
1225
1229
|
};
|
|
1226
1230
|
const handleImageClick = (url) => {
|
|
1227
1231
|
if (url) {
|
|
@@ -1230,7 +1234,7 @@ var InlineAd = ({ code, messageId, wrapper }) => {
|
|
|
1230
1234
|
window.open(url, "_blank");
|
|
1231
1235
|
} else {
|
|
1232
1236
|
Linking3.openURL(url).catch(
|
|
1233
|
-
(err) =>
|
|
1237
|
+
(err) => log9.warn("Failed to open URL:", err)
|
|
1234
1238
|
);
|
|
1235
1239
|
}
|
|
1236
1240
|
}
|