react-native-inapp-inspector 2.4.1 → 2.4.2
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/README.ar.md +163 -0
- package/README.de.md +163 -0
- package/README.es.md +164 -0
- package/README.fr.md +163 -0
- package/README.hi.md +163 -0
- package/README.ja.md +180 -0
- package/README.ko.md +163 -0
- package/README.md +340 -243
- package/README.pt-BR.md +163 -0
- package/README.ru.md +163 -0
- package/README.zh-CN.md +387 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +82 -21
- package/assets/banner_dark.svg +186 -0
- package/assets/banner_light.svg +186 -0
- package/assets/icon_circle.svg +148 -0
- package/assets/icon_square.svg +369 -0
- package/assets/inapp_inspector_icon.gif +0 -0
- package/assets/inapp_inspector_icon_original.gif +0 -0
- package/assets/social_preview.png +0 -0
- package/assets/walkthrough.gif +0 -0
- package/dist/commonjs/components/AnimatedBrandOwl.d.ts +7 -0
- package/dist/commonjs/components/AnimatedBrandOwl.js +175 -0
- package/dist/commonjs/components/AppHeaderLogo.d.ts +1 -0
- package/dist/commonjs/components/AppHeaderLogo.js +7 -5
- package/dist/commonjs/components/BrandSquareIcon.d.ts +5 -0
- package/dist/commonjs/components/BrandSquareIcon.js +139 -0
- package/dist/commonjs/components/ConsoleLogCard.d.ts +2 -1
- package/dist/commonjs/components/ConsoleLogCard.js +23 -39
- package/dist/commonjs/components/Inspector/AboutModal.js +44 -54
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +5 -5
- package/dist/commonjs/components/Inspector/ConfirmationModal.d.ts +13 -0
- package/dist/commonjs/components/Inspector/ConfirmationModal.js +32 -0
- package/dist/commonjs/components/Inspector/ConsoleTab.js +11 -11
- package/dist/commonjs/components/Inspector/CrashTab.js +14 -12
- package/dist/commonjs/components/Inspector/DebuggingTab.js +17 -17
- package/dist/commonjs/components/Inspector/FabLauncher.js +22 -30
- package/dist/commonjs/components/Inspector/FeatureUnderDevNotice.js +2 -2
- package/dist/commonjs/components/Inspector/LanguageSelectorModal.d.ts +15 -0
- package/dist/commonjs/components/Inspector/LanguageSelectorModal.js +90 -0
- package/dist/commonjs/components/Inspector/MainScreen.js +46 -33
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +21 -19
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +85 -101
- package/dist/commonjs/components/Inspector/NetworkTab.js +50 -50
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +1 -1
- package/dist/commonjs/components/Inspector/PushCard.d.ts +3 -2
- package/dist/commonjs/components/Inspector/PushCard.js +5 -4
- package/dist/commonjs/components/Inspector/PushDetail.js +32 -23
- package/dist/commonjs/components/Inspector/PushTab.js +12 -12
- package/dist/commonjs/components/Inspector/ReduxDetail.js +32 -32
- package/dist/commonjs/components/Inspector/ReduxTab.js +5 -5
- package/dist/commonjs/components/Inspector/SettingsPanel.js +258 -139
- package/dist/commonjs/components/Inspector/SocketCard.d.ts +5 -0
- package/dist/commonjs/components/Inspector/SocketCard.js +116 -0
- package/dist/commonjs/components/Inspector/SocketDetail.d.ts +4 -0
- package/dist/commonjs/components/Inspector/SocketDetail.js +317 -0
- package/dist/commonjs/components/Inspector/SocketFilterModal.d.ts +13 -0
- package/dist/commonjs/components/Inspector/SocketFilterModal.js +69 -0
- package/dist/commonjs/components/Inspector/SocketTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/SocketTab.js +112 -0
- package/dist/commonjs/components/Inspector/StorageTab.js +38 -36
- package/dist/commonjs/components/Inspector/SupportModal.d.ts +7 -0
- package/dist/commonjs/components/Inspector/SupportModal.js +125 -0
- package/dist/commonjs/components/Inspector/SupportPage.d.ts +5 -0
- package/dist/commonjs/components/Inspector/SupportPage.js +227 -0
- package/dist/commonjs/components/Inspector/TabBar.js +24 -23
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +24 -24
- package/dist/commonjs/components/JsonViewer.js +7 -7
- package/dist/commonjs/components/LogCard.d.ts +3 -2
- package/dist/commonjs/components/LogCard.js +13 -13
- package/dist/commonjs/components/LogSyntaxHighlighter.js +5 -5
- package/dist/commonjs/components/ModuleErrorBoundary.js +2 -2
- package/dist/commonjs/components/NetworkIcons.d.ts +15 -0
- package/dist/commonjs/components/NetworkIcons.js +38 -3
- package/dist/commonjs/components/SegmentedTabs.js +1 -1
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/socketLogger.d.ts +26 -0
- package/dist/commonjs/customHooks/socketLogger.js +2 -0
- package/dist/commonjs/helpers/index.js +3 -3
- package/dist/commonjs/helpers/memoryManager.d.ts +1 -0
- package/dist/commonjs/helpers/memoryManager.js +1 -1
- package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -1
- package/dist/commonjs/helpers/searchQueryParser.js +5 -1
- package/dist/commonjs/helpers/settingsStore.d.ts +1 -0
- package/dist/commonjs/helpers/settingsStore.js +1 -1
- package/dist/commonjs/helpers/shareFormatter.d.ts +3 -1
- package/dist/commonjs/helpers/shareFormatter.js +8 -7
- package/dist/commonjs/i18n/index.d.ts +99 -1
- package/dist/commonjs/i18n/index.js +1 -1
- package/dist/commonjs/i18n/locales/ar.json +1 -1
- package/dist/commonjs/i18n/locales/bn.json +1 -0
- package/dist/commonjs/i18n/locales/de.json +1 -1
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/i18n/locales/es.json +1 -1
- package/dist/commonjs/i18n/locales/fr.json +1 -1
- package/dist/commonjs/i18n/locales/gu.json +1 -0
- package/dist/commonjs/i18n/locales/hi.json +1 -1
- package/dist/commonjs/i18n/locales/id.json +1 -0
- package/dist/commonjs/i18n/locales/it.json +1 -0
- package/dist/commonjs/i18n/locales/ja.json +1 -1
- package/dist/commonjs/i18n/locales/kn.json +1 -0
- package/dist/commonjs/i18n/locales/ko.json +1 -1
- package/dist/commonjs/i18n/locales/ml.json +1 -0
- package/dist/commonjs/i18n/locales/mr.json +1 -0
- package/dist/commonjs/i18n/locales/nl.json +1 -0
- package/dist/commonjs/i18n/locales/pa.json +1 -0
- package/dist/commonjs/i18n/locales/pl.json +1 -0
- package/dist/commonjs/i18n/locales/pt.json +1 -1
- package/dist/commonjs/i18n/locales/ru.json +1 -1
- package/dist/commonjs/i18n/locales/ta.json +1 -0
- package/dist/commonjs/i18n/locales/te.json +1 -0
- package/dist/commonjs/i18n/locales/tr.json +1 -0
- package/dist/commonjs/i18n/locales/vi.json +1 -0
- package/dist/commonjs/i18n/locales/zh.json +1 -1
- package/dist/commonjs/index.d.ts +13 -13
- package/dist/commonjs/index.js +5 -4
- package/dist/commonjs/native/NativeInspector.d.ts +1 -0
- package/dist/commonjs/socket.d.ts +4 -0
- package/dist/commonjs/socket.js +1 -0
- package/dist/commonjs/styles/index.d.ts +23 -0
- package/dist/commonjs/styles/index.js +1 -1
- package/dist/commonjs/types/enums.d.ts +40 -0
- package/dist/commonjs/types/enums.js +1 -1
- package/dist/commonjs/types/interfaces.d.ts +122 -1
- package/dist/esm/components/AnimatedBrandOwl.d.ts +7 -0
- package/dist/esm/components/AnimatedBrandOwl.js +175 -0
- package/dist/esm/components/AppHeaderLogo.d.ts +1 -0
- package/dist/esm/components/AppHeaderLogo.js +7 -5
- package/dist/esm/components/BrandSquareIcon.d.ts +5 -0
- package/dist/esm/components/BrandSquareIcon.js +139 -0
- package/dist/esm/components/ConsoleLogCard.d.ts +2 -1
- package/dist/esm/components/ConsoleLogCard.js +61 -77
- package/dist/esm/components/Inspector/AboutModal.js +85 -95
- package/dist/esm/components/Inspector/AnalyticsTab.js +15 -15
- package/dist/esm/components/Inspector/ConfirmationModal.d.ts +13 -0
- package/dist/esm/components/Inspector/ConfirmationModal.js +32 -0
- package/dist/esm/components/Inspector/ConsoleTab.js +47 -47
- package/dist/esm/components/Inspector/CrashTab.js +34 -32
- package/dist/esm/components/Inspector/DebuggingTab.js +29 -29
- package/dist/esm/components/Inspector/FabLauncher.js +50 -58
- package/dist/esm/components/Inspector/FeatureUnderDevNotice.js +7 -7
- package/dist/esm/components/Inspector/LanguageSelectorModal.d.ts +15 -0
- package/dist/esm/components/Inspector/LanguageSelectorModal.js +90 -0
- package/dist/esm/components/Inspector/MainScreen.js +123 -110
- package/dist/esm/components/Inspector/MediaGalleryTab.js +64 -62
- package/dist/esm/components/Inspector/MediaPreviewModal.js +107 -123
- package/dist/esm/components/Inspector/NetworkTab.js +90 -90
- package/dist/esm/components/Inspector/NpmUpdateToast.js +1 -1
- package/dist/esm/components/Inspector/PushCard.d.ts +3 -2
- package/dist/esm/components/Inspector/PushCard.js +23 -22
- package/dist/esm/components/Inspector/PushDetail.js +34 -25
- package/dist/esm/components/Inspector/PushTab.js +23 -23
- package/dist/esm/components/Inspector/ReduxDetail.js +42 -42
- package/dist/esm/components/Inspector/ReduxTab.js +22 -22
- package/dist/esm/components/Inspector/SettingsPanel.js +495 -376
- package/dist/esm/components/Inspector/SocketCard.d.ts +5 -0
- package/dist/esm/components/Inspector/SocketCard.js +116 -0
- package/dist/esm/components/Inspector/SocketDetail.d.ts +4 -0
- package/dist/esm/components/Inspector/SocketDetail.js +317 -0
- package/dist/esm/components/Inspector/SocketFilterModal.d.ts +13 -0
- package/dist/esm/components/Inspector/SocketFilterModal.js +69 -0
- package/dist/esm/components/Inspector/SocketTab.d.ts +3 -0
- package/dist/esm/components/Inspector/SocketTab.js +112 -0
- package/dist/esm/components/Inspector/StorageTab.js +145 -143
- package/dist/esm/components/Inspector/SupportModal.d.ts +7 -0
- package/dist/esm/components/Inspector/SupportModal.js +125 -0
- package/dist/esm/components/Inspector/SupportPage.d.ts +5 -0
- package/dist/esm/components/Inspector/SupportPage.js +227 -0
- package/dist/esm/components/Inspector/TabBar.js +36 -35
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +22 -22
- package/dist/esm/components/JsonViewer.js +55 -55
- package/dist/esm/components/LogCard.d.ts +3 -2
- package/dist/esm/components/LogCard.js +60 -60
- package/dist/esm/components/LogSyntaxHighlighter.js +5 -5
- package/dist/esm/components/ModuleErrorBoundary.js +23 -23
- package/dist/esm/components/NetworkIcons.d.ts +15 -0
- package/dist/esm/components/NetworkIcons.js +38 -3
- package/dist/esm/components/SegmentedTabs.js +7 -7
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/socketLogger.d.ts +26 -0
- package/dist/esm/customHooks/socketLogger.js +2 -0
- package/dist/esm/helpers/index.js +3 -3
- package/dist/esm/helpers/memoryManager.d.ts +1 -0
- package/dist/esm/helpers/memoryManager.js +1 -1
- package/dist/esm/helpers/searchQueryParser.d.ts +1 -1
- package/dist/esm/helpers/searchQueryParser.js +5 -1
- package/dist/esm/helpers/settingsStore.d.ts +1 -0
- package/dist/esm/helpers/settingsStore.js +1 -1
- package/dist/esm/helpers/shareFormatter.d.ts +3 -1
- package/dist/esm/helpers/shareFormatter.js +8 -7
- package/dist/esm/i18n/index.d.ts +99 -1
- package/dist/esm/i18n/index.js +1 -1
- package/dist/esm/i18n/locales/ar.json +1 -1
- package/dist/esm/i18n/locales/bn.json +1 -0
- package/dist/esm/i18n/locales/de.json +1 -1
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/i18n/locales/es.json +1 -1
- package/dist/esm/i18n/locales/fr.json +1 -1
- package/dist/esm/i18n/locales/gu.json +1 -0
- package/dist/esm/i18n/locales/hi.json +1 -1
- package/dist/esm/i18n/locales/id.json +1 -0
- package/dist/esm/i18n/locales/it.json +1 -0
- package/dist/esm/i18n/locales/ja.json +1 -1
- package/dist/esm/i18n/locales/kn.json +1 -0
- package/dist/esm/i18n/locales/ko.json +1 -1
- package/dist/esm/i18n/locales/ml.json +1 -0
- package/dist/esm/i18n/locales/mr.json +1 -0
- package/dist/esm/i18n/locales/nl.json +1 -0
- package/dist/esm/i18n/locales/pa.json +1 -0
- package/dist/esm/i18n/locales/pl.json +1 -0
- package/dist/esm/i18n/locales/pt.json +1 -1
- package/dist/esm/i18n/locales/ru.json +1 -1
- package/dist/esm/i18n/locales/ta.json +1 -0
- package/dist/esm/i18n/locales/te.json +1 -0
- package/dist/esm/i18n/locales/tr.json +1 -0
- package/dist/esm/i18n/locales/vi.json +1 -0
- package/dist/esm/i18n/locales/zh.json +1 -1
- package/dist/esm/index.d.ts +13 -13
- package/dist/esm/index.js +8 -7
- package/dist/esm/native/NativeInspector.d.ts +1 -0
- package/dist/esm/socket.d.ts +4 -0
- package/dist/esm/socket.js +1 -0
- package/dist/esm/styles/index.d.ts +23 -0
- package/dist/esm/styles/index.js +1 -1
- package/dist/esm/types/enums.d.ts +40 -0
- package/dist/esm/types/enums.js +1 -1
- package/dist/esm/types/interfaces.d.ts +122 -1
- package/ios/NetworkInspectorModule.mm +102 -12
- package/package.json +204 -2
- package/src/native/NativeInspector.ts +8 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(e,
|
|
2
|
-
<react_native_svg_1.Path d="M4 17l6-6-6-6M12 19h8"stroke={
|
|
3
|
-
</react_native_svg_1.default>,DebuggingTab=()=>{const
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(o,e,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(e,n);(!r||("get"in r?!e.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(o,i,r)}):(function(o,e,n,i){i===void 0&&(i=n),o[i]=e[n]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(o,e){Object.defineProperty(o,"default",{enumerable:!0,value:e})}):function(o,e){o.default=e}),__importStar=this&&this.__importStar||(function(){var o=function(e){return o=Object.getOwnPropertyNames||function(n){var i=[];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(i[i.length]=r);return i},o(e)};return function(e){if(e&&e.__esModule)return e;var n={};if(e!=null)for(var i=o(e),r=0;r<i.length;r++)i[r]!=="default"&&__createBinding(n,e,i[r]);return __setModuleDefault(n,e),n}})(),__importDefault=this&&this.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.DebuggingTab=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),QRCodeView_1=__importDefault(require("../QRCodeView")),TouchableScale_1=__importDefault(require("../TouchableScale")),toast_1=require("../../helpers/toast"),NativeInspector_1=require("../../native/NativeInspector"),NetworkIcons_1=require("../NetworkIcons"),react_native_svg_1=__importStar(require("react-native-svg")),TerminalConsoleIcon=({color:o=AppColors_1.AppColors.purple,size:e=13})=><react_native_svg_1.default width={e}height={e}viewBox="0 0 24 24"fill="none">
|
|
2
|
+
<react_native_svg_1.Path d="M4 17l6-6-6-6M12 19h8"stroke={o}strokeWidth="2"strokeLinecap="round"strokeLinejoin="round"/>
|
|
3
|
+
</react_native_svg_1.default>,DebuggingTab=()=>{const{t:o}=(0,i18n_1.useTranslation)(),e=(0,react_1.useMemo)(()=>{const a=react_native_1.NativeModules.SourceCode?.scriptURL||"";let s="localhost",t=8081;try{if(a.includes("://")){const d=a.split("://")[1].split("/")[0];if(d.includes(":")){const u=d.split(":");s=u[0];const y=parseInt(u[1],10);isNaN(y)||(t=y)}else s=d}}catch{}return{host:s,port:t,scriptURL:a}},[]),[n,i]=(0,react_1.useState)(()=>e.host&&e.host!=="localhost"&&e.host!=="127.0.0.1"&&e.host!=="10.0.2.2"?e.host:"192.168.1.2"),[r,B]=(0,react_1.useState)(e.port||8083),[V,m]=(0,react_1.useState)("app-debug.apk"),[T,x]=(0,react_1.useState)(null),[g,v]=(0,react_1.useState)("assembleRelease"),[f,k]=(0,react_1.useState)(!0),[l,w]=(0,react_1.useState)({status:"idle",scheme:"assembleRelease",clean:!0,progress:0,currentTask:"",error:null,apkName:null,apkSize:null}),p=(0,react_1.useRef)(null),_=(0,react_1.useRef)(new react_native_1.Animated.Value(0)).current,[A,I]=(0,react_1.useState)(!0),S=(0,react_1.useRef)(null);(0,react_1.useEffect)(()=>{react_native_1.Animated.timing(_,{toValue:Math.max(0,Math.min(100,l.progress)),duration:350,useNativeDriver:!1}).start()},[l.progress,_]),(0,react_1.useEffect)(()=>{l.logs&&l.logs.length>0&&setTimeout(()=>{S.current?.scrollToEnd({animated:!0})},50)},[l.logs]);const C=(0,react_1.useCallback)(async()=>{const a=Array.from(new Set([e.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([e.port,8083,8081,8082].filter(Boolean)));for(const t of a)for(const h of s)try{const d=new AbortController,u=setTimeout(()=>d.abort(),1200),y=await fetch(`http://${t}:${h}/__inapp_inspector/apk-info`,{signal:d.signal});if(clearTimeout(u),y.ok){const c=await y.json();c.hostIp&&c.hostIp!=="127.0.0.1"&&c.hostIp!=="localhost"&&c.hostIp!=="10.0.2.2"&&i(c.hostIp),c.port&&B(c.port),c.apkName&&m(c.apkName),c.apkSize&&x((c.apkSize/(1024*1024)).toFixed(1));return}}catch{}},[e.host,e.port]);(0,react_1.useEffect)(()=>{C()},[C]),(0,react_1.useEffect)(()=>()=>{p.current&&clearInterval(p.current)},[]);const R=(0,react_1.useCallback)(()=>{p.current&&clearInterval(p.current);const a=e.host||"10.0.2.2";p.current=setInterval(async()=>{try{const s=await fetch(`http://${a}:${r}/__inapp_inspector/build-status`);if(s.ok){const t=await s.json();w(t),t.status==="completed"?(p.current&&clearInterval(p.current),(0,NativeInspector_1.triggerNativeHaptic)("success"),(0,toast_1.showToast)(o("debugging.buildSuccess","APK Build Generated Successfully!")),t.apkSize&&x((t.apkSize/(1024*1024)).toFixed(1)),t.apkName&&m(t.apkName),C()):t.status==="failed"&&(p.current&&clearInterval(p.current),(0,NativeInspector_1.triggerNativeHaptic)("error"),(0,toast_1.showToast)(o("debugging.buildFailed",{error:t.error||"Gradle error"})))}}catch{}},1e3)},[e.host,r,C]),F=async()=>{(0,NativeInspector_1.triggerNativeHaptic)("medium"),w({status:"running",scheme:g,clean:f,progress:5,currentTask:f?"Cleaning build cache...":"Initializing build...",error:null,apkName:null,apkSize:null});const a=Array.from(new Set([e.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([r,8083,8081,8082].filter(Boolean)));let t=!1;for(const h of a)for(const d of s)try{const u=new AbortController,y=setTimeout(()=>u.abort(),2e3),c=await fetch(`http://${h}:${d}/__inapp_inspector/build-apk?scheme=${g}&clean=${f}`,{signal:u.signal});if(clearTimeout(y),c.ok){t=!0,R();return}}catch{}t||w(h=>({...h,status:"failed",error:"Cannot reach build server. Ensure npm start or npm run serve-apk is running on host."}))},D=async()=>{(0,NativeInspector_1.triggerNativeHaptic)("warning"),p.current&&clearInterval(p.current);const a=Array.from(new Set([e.host,"10.0.2.2","localhost","127.0.0.1"].filter(Boolean))),s=Array.from(new Set([r,8083,8081,8082].filter(Boolean)));for(const t of a)for(const h of s)try{const d=new AbortController,u=setTimeout(()=>d.abort(),1500);await fetch(`http://${t}:${h}/__inapp_inspector/stop-build`,{signal:d.signal}),clearTimeout(u)}catch{}w(t=>({...t,status:"idle",currentTask:o("debugging.buildCancelled","Build cancelled by user"),logs:[...t.logs||[],`[Build] ${o("debugging.buildCancelled","Build cancelled by user")}.`]})),(0,toast_1.showToast)(o("debugging.buildCancelled","Build cancelled"))},z=`http://${n}:${r}/${V.replace(/^\/+/,"")}`,b=l.status==="running";return<react_native_1.ScrollView style={styles.scrollArea}contentContainerStyle={styles.scrollContent}showsVerticalScrollIndicator={!1}>
|
|
4
4
|
|
|
5
5
|
<react_native_1.View style={styles.heroCard}>
|
|
6
6
|
<react_native_1.View style={styles.heroHeader}>
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
<react_native_1.View style={styles.heroMetricItem}>
|
|
27
27
|
<react_native_1.Text style={styles.heroMetricLabel}>HOST IP</react_native_1.Text>
|
|
28
28
|
<react_native_1.Text style={styles.heroMetricValue}numberOfLines={1}>
|
|
29
|
-
{
|
|
29
|
+
{n}
|
|
30
30
|
</react_native_1.Text>
|
|
31
31
|
</react_native_1.View>
|
|
32
32
|
<react_native_1.View style={styles.heroMetricDivider}/>
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
|
|
65
65
|
<react_native_1.View style={styles.qrCenteredWrapper}>
|
|
66
66
|
<react_native_1.View style={styles.qrInnerFrame}>
|
|
67
|
-
<QRCodeView_1.default value={
|
|
67
|
+
<QRCodeView_1.default value={z}size={235}color={AppColors_1.AppColors.primaryBlack}backgroundColor={AppColors_1.AppColors.white}/>
|
|
68
68
|
</react_native_1.View>
|
|
69
69
|
</react_native_1.View>
|
|
70
70
|
</react_native_1.View>
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
<NetworkIcons_1.BoltIcon size={13}color={AppColors_1.AppColors.purple}/>
|
|
77
77
|
<react_native_1.Text style={styles.sectionTitle}>BUILD GENERATOR (GRADLE)</react_native_1.Text>
|
|
78
78
|
</react_native_1.View>
|
|
79
|
-
{
|
|
79
|
+
{l.status==="completed"&&<react_native_1.View style={styles.completedBadge}>
|
|
80
80
|
<NetworkIcons_1.CheckIcon size={10}color={AppColors_1.AppColors.emerald500}/>
|
|
81
81
|
<react_native_1.Text style={styles.completedBadgeText}>100% Ready</react_native_1.Text>
|
|
82
82
|
</react_native_1.View>}
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
</react_native_1.View>
|
|
105
105
|
|
|
106
106
|
|
|
107
|
-
<react_native_1.TouchableOpacity disabled={b}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),
|
|
107
|
+
<react_native_1.TouchableOpacity disabled={b}activeOpacity={.7}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),k(!f)}}style={styles.cleanRow}>
|
|
108
108
|
<react_native_1.View style={[styles.checkboxBox,f&&styles.checkboxBoxActive]}>
|
|
109
109
|
{f&&<NetworkIcons_1.CheckIcon size={11}color={AppColors_1.AppColors.white}/>}
|
|
110
110
|
</react_native_1.View>
|
|
@@ -119,11 +119,11 @@
|
|
|
119
119
|
<react_native_1.View style={styles.progressTaskGroup}>
|
|
120
120
|
<react_native_1.ActivityIndicator size="small"color={AppColors_1.AppColors.purple}/>
|
|
121
121
|
<react_native_1.Text style={styles.progressTaskText}numberOfLines={1}>
|
|
122
|
-
{
|
|
122
|
+
{l.currentTask||"Executing Gradle tasks..."}
|
|
123
123
|
</react_native_1.Text>
|
|
124
124
|
</react_native_1.View>
|
|
125
125
|
<react_native_1.Text style={styles.progressPercentageText}>
|
|
126
|
-
{
|
|
126
|
+
{l.progress}%
|
|
127
127
|
</react_native_1.Text>
|
|
128
128
|
</react_native_1.View>
|
|
129
129
|
|
|
@@ -134,21 +134,21 @@
|
|
|
134
134
|
</react_native_1.View>}
|
|
135
135
|
|
|
136
136
|
|
|
137
|
-
{
|
|
137
|
+
{l.status==="failed"&&<react_native_1.View style={styles.errorContainer}>
|
|
138
138
|
<NetworkIcons_1.CircleXIcon size={13}color={AppColors_1.AppColors.errorColor}/>
|
|
139
139
|
<react_native_1.Text style={styles.errorText}numberOfLines={2}>
|
|
140
|
-
{
|
|
140
|
+
{l.error||"Build execution failed."}
|
|
141
141
|
</react_native_1.Text>
|
|
142
142
|
</react_native_1.View>}
|
|
143
143
|
|
|
144
144
|
|
|
145
|
-
{(
|
|
145
|
+
{(l.logs&&l.logs.length>0||b)&&<react_native_1.View style={styles.consoleContainer}>
|
|
146
146
|
<react_native_1.View style={styles.consoleHeaderRow}>
|
|
147
147
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
|
|
148
148
|
<TerminalConsoleIcon color={AppColors_1.AppColors.sky400}size={12}/>
|
|
149
149
|
<react_native_1.Text style={styles.consoleHeaderTitle}>GRADLE VERBOSE OUTPUT</react_native_1.Text>
|
|
150
150
|
</react_native_1.View>
|
|
151
|
-
<react_native_1.TouchableOpacity activeOpacity={.7}onPress={()=>
|
|
151
|
+
<react_native_1.TouchableOpacity activeOpacity={.7}onPress={()=>I(!A)}style={styles.consoleToggleBtn}>
|
|
152
152
|
<react_native_1.Text style={styles.consoleToggleText}>
|
|
153
153
|
{A?"Hide Console":"Show Console"}
|
|
154
154
|
</react_native_1.Text>
|
|
@@ -156,7 +156,7 @@
|
|
|
156
156
|
</react_native_1.View>
|
|
157
157
|
|
|
158
158
|
{A&&<react_native_1.ScrollView ref={S}style={styles.consoleLogBox}contentContainerStyle={styles.consoleLogContent}nestedScrollEnabled showsVerticalScrollIndicator>
|
|
159
|
-
{
|
|
159
|
+
{l.logs&&l.logs.length>0?l.logs.map((a,s)=>{let t=AppColors_1.AppColors.slate400;return a.startsWith("> Task :")?t=AppColors_1.AppColors.sky400:a.includes("BUILD SUCCESSFUL")?t=AppColors_1.AppColors.buildSuccessGreen:a.includes("FAILURE")||a.includes("error:")?t=AppColors_1.AppColors.buildFailureRed:a.includes("UP-TO-DATE")&&(t=AppColors_1.AppColors.purple400),<react_native_1.Text key={s}style={[styles.consoleLogLine,{color:t}]}>
|
|
160
160
|
{a}
|
|
161
161
|
</react_native_1.Text>}):<react_native_1.Text style={styles.consoleLogPlaceholder}>
|
|
162
162
|
Waiting for Gradle daemon output...
|
|
@@ -169,15 +169,15 @@
|
|
|
169
169
|
<react_native_1.View style={styles.buildingStatusPill}>
|
|
170
170
|
<react_native_1.ActivityIndicator size="small"color={AppColors_1.AppColors.purple}/>
|
|
171
171
|
<react_native_1.Text style={styles.buildingStatusPillText}numberOfLines={1}>
|
|
172
|
-
Building ({
|
|
172
|
+
Building ({l.progress}%)
|
|
173
173
|
</react_native_1.Text>
|
|
174
174
|
</react_native_1.View>
|
|
175
175
|
|
|
176
|
-
<TouchableScale_1.default onPress={
|
|
176
|
+
<TouchableScale_1.default onPress={D}style={styles.stopBtn}>
|
|
177
177
|
<NetworkIcons_1.CircleXIcon size={13}color={AppColors_1.AppColors.white}/>
|
|
178
178
|
<react_native_1.Text style={styles.stopBtnText}>Stop Build</react_native_1.Text>
|
|
179
179
|
</TouchableScale_1.default>
|
|
180
|
-
</react_native_1.View>:<TouchableScale_1.default onPress={
|
|
180
|
+
</react_native_1.View>:<TouchableScale_1.default onPress={F}style={styles.generateBtn}>
|
|
181
181
|
<react_native_1.View style={styles.ctaContentRow}>
|
|
182
182
|
<NetworkIcons_1.SparkleIcon size={14}color={AppColors_1.AppColors.white}/>
|
|
183
183
|
<react_native_1.Text style={styles.generateBtnText}>
|
|
@@ -1,19 +1,12 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,r,a
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,r,o,a){a===void 0&&(a=o);var n=Object.getOwnPropertyDescriptor(r,o);(!n||("get"in n?!r.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return r[o]}}),Object.defineProperty(t,a,n)}):(function(t,r,o,a){a===void 0&&(a=o),t[a]=r[o]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}):function(t,r){t.default=r}),__importStar=this&&this.__importStar||(function(){var t=function(r){return t=Object.getOwnPropertyNames||function(o){var a=[];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(a[a.length]=n);return a},t(r)};return function(r){if(r&&r.__esModule)return r;var o={};if(r!=null)for(var a=t(r),n=0;n<a.length;n++)a[n]!=="default"&&__createBinding(o,r,a[n]);return __setModuleDefault(o,r),o}})(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),react_native_linear_gradient_1=__importDefault(require("react-native-linear-gradient")),InspectorContext_1=require("./InspectorContext"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppHeaderLogo_1=__importDefault(require("../AppHeaderLogo")),NetworkIcons_1=require("../NetworkIcons"),capture_1=require("../../capture"),NativeInspector_1=require("../../native/NativeInspector"),toast_1=require("../../helpers/toast"),helpers_1=require("../../helpers"),constants_1=require("../../constants"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),styles_1=__importDefault(require("../../styles")),i18n_1=require("../../i18n"),MediaPreviewModal_1=require("./MediaPreviewModal"),FabLauncher=()=>{const{setVisible:t,isMinimized:r,setIsMinimized:o,dismissInspector:a,appIcon:n,fabPan:R,fabPanResponder:T,fabDraggedRef:A,pulseAnim:I,fabShineAnim:D,refreshMediaCount:u,captureFps:_,captureScale:v,captureBitrate:b,captureMaxDurationSeconds:w,captureAudioMode:C}=(0,InspectorContext_1.useInspector)(),{width:$}=(0,react_native_1.useWindowDimensions)(),{t:s}=(0,i18n_1.useTranslation)(),[P]=(0,react_1.useState)(()=>(0,helpers_1.getAppVersionAndBuild)().formatted),[l,g]=(0,react_1.useState)(!1),[M,y]=(0,react_1.useState)(0),p=(0,react_1.useRef)(null),[S,h]=(0,react_1.useState)(null),c=(0,react_1.useRef)(new react_native_1.Animated.ValueXY({x:0,y:0})).current,m=(0,react_1.useRef)({x:0,y:0});(0,react_1.useEffect)(()=>{const e=c.x.addListener(f=>m.current.x=f.value),i=c.y.addListener(f=>m.current.y=f.value);return()=>{c.x.removeListener(e),c.y.removeListener(i)}},[c]);const d=(0,react_1.useRef)(!1),V=(0,react_1.useRef)(react_native_1.PanResponder.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,i)=>Math.abs(i.dx)>4||Math.abs(i.dy)>4,onPanResponderGrant:()=>{d.current=!0,c.setOffset({x:m.current.x,y:m.current.y}),c.setValue({x:0,y:0})},onPanResponderMove:react_native_1.Animated.event([null,{dx:c.x,dy:c.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{c.flattenOffset(),setTimeout(()=>{d.current=!1},50)},onPanResponderTerminate:()=>{c.flattenOffset(),d.current=!1}})).current;(0,react_1.useEffect)(()=>{capture_1.ScreenCapture.isRecording().then(e=>{g(!!e)}).catch(()=>{})},[]),(0,react_1.useEffect)(()=>(l?(y(0),p.current=setInterval(()=>{y(e=>e+1)},1e3)):(p.current&&(clearInterval(p.current),p.current=null),y(0)),()=>{p.current&&clearInterval(p.current)}),[l]);const z=(0,react_1.useCallback)(async()=>{if(!d.current)try{(0,NativeInspector_1.triggerNativeHaptic)("light");const e=await capture_1.ScreenCapture.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(e){(0,NativeInspector_1.triggerNativeHaptic)("success");const i={id:`screenshot_${e.timestamp}.png`,type:"image",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||`screenshot_${e.timestamp}.png`,sizeBytes:e.sizeBytes,timestamp:e.timestamp,width:e.width,height:e.height};h(i),u?.().catch(()=>{}),(0,toast_1.showToast)(s("header.screenshotCaptured","Screenshot captured"))}else(0,toast_1.showToast)(s("header.screenshotFailed","Failed to capture screenshot"))}catch{(0,toast_1.showToast)(s("header.screenshotError","Error capturing screenshot"))}},[u,s]),B=(0,react_1.useCallback)(async()=>{if(!d.current)try{if(l){(0,NativeInspector_1.triggerNativeHaptic)("medium");const e=await capture_1.ScreenCapture.stopRecording();if(g(!1),e){(0,NativeInspector_1.triggerNativeHaptic)("success");const i={id:`video_${e.timestamp}.${e.format}`,type:e.format==="gif"?"gif":"video",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||`video_${e.timestamp}.${e.format}`,sizeBytes:e.sizeBytes,timestamp:e.timestamp,durationMs:e.durationMs,width:e.width,height:e.height,hasAudio:e.hasAudio,thumbnailUri:e.thumbnailUri};h(i),u?.().catch(()=>{}),(0,toast_1.showToast)(s("header.recordingSaved",{duration:(e.durationMs/1e3).toFixed(1),defaultValue:`Recording saved (${(e.durationMs/1e3).toFixed(1)}s)`}))}}else(0,NativeInspector_1.triggerNativeHaptic)("medium"),await capture_1.ScreenCapture.startRecording({fps:_,scale:v,audioSource:C,bitrate:b>0?b:void 0,maxDurationSeconds:w})?(g(!0),(0,toast_1.showToast)(s("header.recordingStarted","Recording started"))):(0,toast_1.showToast)(s("header.recordingStartFailed","Failed to start recording"))}catch{(0,toast_1.showToast)(s("header.recordingError","Error during screen recording")),g(!1)}},[l,_,v,b,w,C,u,s]),x=(0,react_1.useCallback)(()=>{d.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),o?.(!1),t(!0))},[o,t]),O=(0,react_1.useCallback)(()=>{d.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),o?.(!1),t(!1))},[o,t]),q=e=>{const i=Math.floor(e/60),f=e%60;return`${i}:${f<10?"0":""}${f}`};return<>
|
|
2
2
|
|
|
3
|
-
{r?<react_native_1.Animated.View style={[fabStyles.playerContainer,{transform:
|
|
3
|
+
{r?<react_native_1.Animated.View style={[fabStyles.playerContainer,{transform:c.getTranslateTransform()}]}{...V.panHandlers}>
|
|
4
4
|
|
|
5
5
|
<react_native_linear_gradient_1.default colors={[AppColors_1.AppColors.indigo600,AppColors_1.AppColors.violet600]}start={{x:0,y:0}}end={{x:1,y:1}}style={fabStyles.gradientBg}pointerEvents="none"/>
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
<react_native_1.
|
|
9
|
-
<
|
|
10
|
-
<react_native_linear_gradient_1.default colors={["rgba(255, 255, 255, 0)","rgba(255, 255, 255, 0.18)","rgba(255, 255, 255, 0.70)","rgba(255, 255, 255, 1)","rgba(255, 255, 255, 0.70)","rgba(255, 255, 255, 0.18)","rgba(255, 255, 255, 0)"]}locations={[0,.22,.44,.5,.56,.78,1]}start={{x:0,y:.5}}end={{x:1,y:.5}}style={{flex:1}}/>
|
|
11
|
-
</react_native_1.Animated.View>
|
|
12
|
-
</react_native_1.View>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<react_native_1.TouchableOpacity activeOpacity={.75}onPress={w}style={fabStyles.brandSection}accessibilityRole="button"accessibilityLabel={s("mediaGallery.expand","Expand Inspector")}>
|
|
16
|
-
<AppHeaderLogo_1.default size={36}customIcon={n}/>
|
|
8
|
+
<react_native_1.TouchableOpacity activeOpacity={.75}onPress={x}style={fabStyles.brandSection}accessibilityRole="button"accessibilityLabel={s("mediaGallery.expand","Expand Inspector")}>
|
|
9
|
+
<AppHeaderLogo_1.default size={36}customIcon={n}shape="circle"/>
|
|
17
10
|
<react_native_1.View style={fabStyles.titleWrapper}>
|
|
18
11
|
<react_native_1.Text style={fabStyles.appTitle}numberOfLines={1}>
|
|
19
12
|
{(0,helpers_1.getAppName)()}
|
|
@@ -23,7 +16,7 @@
|
|
|
23
16
|
<react_native_1.View style={fabStyles.versionChip}>
|
|
24
17
|
{react_native_1.Platform.OS==="ios"?<NetworkIcons_1.AppleIcon color={`${AppColors_1.AppColors.white}E6`}size={9}/>:<NetworkIcons_1.AndroidIcon color={`${AppColors_1.AppColors.white}E6`}size={9}/>}
|
|
25
18
|
<react_native_1.Text style={fabStyles.versionChipText}numberOfLines={1}>
|
|
26
|
-
{
|
|
19
|
+
{P}
|
|
27
20
|
</react_native_1.Text>
|
|
28
21
|
</react_native_1.View>
|
|
29
22
|
|
|
@@ -41,7 +34,7 @@
|
|
|
41
34
|
|
|
42
35
|
<react_native_1.View style={fabStyles.actionsRow}>
|
|
43
36
|
|
|
44
|
-
<TouchableScale_1.default onPress={
|
|
37
|
+
<TouchableScale_1.default onPress={z}hitSlop={{top:6,bottom:6,left:4,right:4}}style={fabStyles.actionBtn}>
|
|
45
38
|
<NetworkIcons_1.CameraIcon size={12}color={AppColors_1.AppColors.white}/>
|
|
46
39
|
<react_native_1.Text style={fabStyles.actionText}>
|
|
47
40
|
{s("header.photo","Photo")}
|
|
@@ -49,36 +42,35 @@
|
|
|
49
42
|
</TouchableScale_1.default>
|
|
50
43
|
|
|
51
44
|
|
|
52
|
-
<TouchableScale_1.default onPress={
|
|
53
|
-
{
|
|
54
|
-
<react_native_1.Text style={[fabStyles.actionText,
|
|
55
|
-
{
|
|
45
|
+
<TouchableScale_1.default onPress={B}hitSlop={{top:6,bottom:6,left:4,right:4}}style={[fabStyles.actionBtn,l&&fabStyles.recordingBtnActive]}>
|
|
46
|
+
{l?<react_native_1.View style={fabStyles.recordingDot}/>:<NetworkIcons_1.VideoCameraIcon size={12}color={AppColors_1.AppColors.white}/>}
|
|
47
|
+
<react_native_1.Text style={[fabStyles.actionText,l&&{color:AppColors_1.AppColors.red300}]}>
|
|
48
|
+
{l?`${s("header.rec","REC")} ${q(M)}`:s("header.record","Record")}
|
|
56
49
|
</react_native_1.Text>
|
|
57
50
|
</TouchableScale_1.default>
|
|
58
51
|
|
|
59
52
|
|
|
60
|
-
<TouchableScale_1.default onPress={
|
|
53
|
+
<TouchableScale_1.default onPress={x}hitSlop={{top:6,bottom:6,left:4,right:4}}accessibilityRole="button"accessibilityLabel={s("common.expand","Expand")}style={fabStyles.actionBtnSquare}>
|
|
61
54
|
<NetworkIcons_1.MaximizeIcon size={12}color={AppColors_1.AppColors.white}/>
|
|
62
55
|
</TouchableScale_1.default>
|
|
63
56
|
|
|
64
57
|
|
|
65
|
-
<TouchableScale_1.default onPress={
|
|
58
|
+
<TouchableScale_1.default onPress={O}hitSlop={{top:6,bottom:6,left:4,right:6}}accessibilityRole="button"accessibilityLabel={s("common.close","Close")}style={fabStyles.actionBtnSquare}>
|
|
66
59
|
<NetworkIcons_1.CloseWhite size={10}color={AppColors_1.AppColors.white}/>
|
|
67
60
|
</TouchableScale_1.default>
|
|
68
61
|
</react_native_1.View>
|
|
69
|
-
</react_native_1.Animated.View>:<react_native_1.Animated.View style={[styles_1.default.fabWrapper,{transform:
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
</react_native_1.View>
|
|
62
|
+
</react_native_1.Animated.View>:<react_native_1.Animated.View style={[styles_1.default.fabWrapper,{transform:R.getTranslateTransform()}]}{...T.panHandlers}>
|
|
63
|
+
<TouchableScale_1.default style={{alignItems:"center",justifyContent:"center"}}onPress={()=>{A.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),t(!0))}}hitSlop={10}>
|
|
64
|
+
<react_native_1.Animated.View style={[styles_1.default.fabPulseRing,{transform:[{scale:I}]}]}/>
|
|
65
|
+
<AppHeaderLogo_1.default size={68}customIcon={n}shape="circle"/>
|
|
66
|
+
</TouchableScale_1.default>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
<TouchableScale_1.default accessible={!0}accessibilityRole="button"accessibilityLabel={s("common.close","Close")}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("medium"),a(),(0,toast_1.showToast)(s("common.inspectorDismissed","In-App Inspector closed for this session"))}}hitSlop={8}style={styles_1.default.fabCloseBadge}>
|
|
70
|
+
<NetworkIcons_1.CloseWhite size={9.5}/>
|
|
79
71
|
</TouchableScale_1.default>
|
|
80
72
|
</react_native_1.Animated.View>}
|
|
81
73
|
|
|
82
74
|
|
|
83
|
-
<MediaPreviewModal_1.MediaPreviewModal item={
|
|
75
|
+
<MediaPreviewModal_1.MediaPreviewModal item={S}visible={!!S}onClose={()=>h(null)}onDelete={async e=>{await capture_1.ScreenCapture.deleteMedia(e.uri),u?.().catch(()=>{}),h(null)}}onConvertToGif={async e=>{const i=await capture_1.ScreenCapture.convertToGif(e.uri,{fps:12,width:480});i&&(u?.().catch(()=>{}),h({id:`anim_${i.timestamp}.gif`,type:"gif",format:"gif",uri:i.uri,filename:i.uri.split("/").pop()||`anim_${i.timestamp}.gif`,sizeBytes:i.sizeBytes,timestamp:i.timestamp,durationMs:i.durationMs}))}}/>
|
|
84
76
|
</>},fabStyles=react_native_1.StyleSheet.create({playerContainer:{position:"absolute",bottom:react_native_1.Platform.OS==="ios"?34:18,left:12,right:12,minHeight:58,flexDirection:"row",alignItems:"center",justifyContent:"space-between",borderRadius:16,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.28)",paddingHorizontal:12,paddingVertical:7,gap:8,zIndex:99999,elevation:25,shadowColor:AppColors_1.AppColors.indigo600,shadowOffset:{width:0,height:8},shadowOpacity:.45,shadowRadius:14,overflow:"hidden"},gradientBg:{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:16},playerShineClip:{position:"absolute",top:0,left:0,right:0,bottom:0,borderRadius:16,overflow:"hidden"},playerShineStreak:{position:"absolute",top:-60,width:75,height:200},brandSection:{flexDirection:"row",alignItems:"center",gap:9,flex:1,minWidth:0,paddingVertical:2},titleWrapper:{flex:1,minWidth:0,justifyContent:"center",gap:2},appTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:13.5,color:AppColors_1.AppColors.white,letterSpacing:-.2},versionRow:{flexDirection:"row",alignItems:"center",gap:4,minWidth:0},versionChip:{flexDirection:"row",alignItems:"center",backgroundColor:`${AppColors_1.AppColors.white}1F`,borderRadius:5,paddingHorizontal:5,paddingVertical:1.5,gap:3,borderWidth:1,borderColor:`${AppColors_1.AppColors.white}2E`,flexShrink:1,minWidth:0},versionChipText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:8.5,color:`${AppColors_1.AppColors.white}EB`,letterSpacing:.1},actionsRow:{flexDirection:"row",alignItems:"center",gap:4.5,flexShrink:0},actionBtn:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:"rgba(255, 255, 255, 0.22)",paddingHorizontal:8,paddingVertical:5.5,borderRadius:7,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.32)"},actionBtnSquare:{alignItems:"center",justifyContent:"center",width:27,height:27,backgroundColor:"rgba(255, 255, 255, 0.22)",borderRadius:7,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.32)"},recordingBtnActive:{backgroundColor:"rgba(239, 68, 68, 0.32)",borderColor:AppColors_1.AppColors.red500},recordingDot:{width:6,height:6,borderRadius:3,backgroundColor:AppColors_1.AppColors.red500},actionText:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:10.5,color:AppColors_1.AppColors.white}});exports.default=FabLauncher;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(n,e,r,t){t===void 0&&(t=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(n,t,i)}):(function(n,e,r,t){t===void 0&&(t=r),n[t]=e[r]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(r){var t=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[t.length]=i);return t},n(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t=n(e),i=0;i<t.length;i++)t[i]!=="default"&&__createBinding(r,e,t[i]);return __setModuleDefault(r,e),r}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.FeatureUnderDevNotice=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),NetworkIcons_1=require("../NetworkIcons"),FeatureUnderDevNotice=({featureName:n,compact:e=!1})=>{const[r,t]=(0,react_1.useState)(!1);return r?null:<react_native_1.View style={[styles.container,e&&styles.containerCompact]}>
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(n,e,r,t){t===void 0&&(t=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(n,t,i)}):(function(n,e,r,t){t===void 0&&(t=r),n[t]=e[r]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(n,e){Object.defineProperty(n,"default",{enumerable:!0,value:e})}):function(n,e){n.default=e}),__importStar=this&&this.__importStar||(function(){var n=function(e){return n=Object.getOwnPropertyNames||function(r){var t=[];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[t.length]=i);return t},n(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var t=n(e),i=0;i<t.length;i++)t[i]!=="default"&&__createBinding(r,e,t[i]);return __setModuleDefault(r,e),r}})();Object.defineProperty(exports,"__esModule",{value:!0}),exports.FeatureUnderDevNotice=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),NetworkIcons_1=require("../NetworkIcons"),i18n_1=require("../../i18n"),FeatureUnderDevNotice=({featureName:n,compact:e=!1})=>{const[r,t]=(0,react_1.useState)(!1);return r?null:<react_native_1.View style={[styles.container,e&&styles.containerCompact]}>
|
|
2
2
|
<react_native_1.View style={styles.contentRow}>
|
|
3
3
|
<react_native_1.View style={styles.badgeWrap}>
|
|
4
4
|
<NetworkIcons_1.WarningTriangleIcon color={AppColors_1.AppColors.warningIconGold}size={12}/>
|
|
5
|
-
<react_native_1.Text style={styles.badgeText}>IN ACTIVE DEVELOPMENT</react_native_1.Text>
|
|
5
|
+
<react_native_1.Text style={styles.badgeText}>{(0,i18n_1.t)("common.inActiveDevelopment","IN ACTIVE DEVELOPMENT")}</react_native_1.Text>
|
|
6
6
|
</react_native_1.View>
|
|
7
7
|
|
|
8
8
|
<react_native_1.Pressable onPress={()=>t(!0)}hitSlop={8}style={styles.dismissBtn}accessible={!0}accessibilityRole="button"accessibilityLabel="Dismiss notice">
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface CountryOption {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
flag: string;
|
|
6
|
+
badge?: string;
|
|
7
|
+
langCodes?: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare const COUNTRY_OPTIONS: CountryOption[];
|
|
10
|
+
interface LanguageSelectorModalProps {
|
|
11
|
+
visible: boolean;
|
|
12
|
+
onClose: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare const LanguageSelectorModal: React.MemoExoticComponent<({ visible, onClose }: LanguageSelectorModalProps) => React.JSX.Element>;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(r,t,a,o){o===void 0&&(o=a);var n=Object.getOwnPropertyDescriptor(t,a);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(r,o,n)}):(function(r,t,a,o){o===void 0&&(o=a),r[o]=t[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(r,t){Object.defineProperty(r,"default",{enumerable:!0,value:t})}):function(r,t){r.default=t}),__importStar=this&&this.__importStar||(function(){var r=function(t){return r=Object.getOwnPropertyNames||function(a){var o=[];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(o[o.length]=n);return o},r(t)};return function(t){if(t&&t.__esModule)return t;var a={};if(t!=null)for(var o=r(t),n=0;n<o.length;n++)o[n]!=="default"&&__createBinding(a,t,o[n]);return __setModuleDefault(a,t),a}})(),__importDefault=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.LanguageSelectorModal=exports.COUNTRY_OPTIONS=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),NetworkIcons_1=require("../NetworkIcons"),i18n_1=require("../../i18n"),settingsStore_1=require("../../helpers/settingsStore"),NativeInspector_1=require("../../native/NativeInspector"),toast_1=require("../../helpers/toast");exports.COUNTRY_OPTIONS=[{id:"all",name:"All",flag:"\u{1F310}",badge:"25"},{id:"in",name:"India",flag:"\u{1F1EE}\u{1F1F3}",badge:"38% Vol",langCodes:["hi","ta","te","kn","ml","bn","mr","gu","pa"]},{id:"us",name:"United States",flag:"\u{1F1FA}\u{1F1F8}",badge:"24% Vol",langCodes:["en","es"]},{id:"gb",name:"United Kingdom",flag:"\u{1F1EC}\u{1F1E7}",badge:"15% Vol",langCodes:["en"]},{id:"de",name:"Germany",flag:"\u{1F1E9}\u{1F1EA}",badge:"9% Vol",langCodes:["de"]},{id:"jp",name:"Japan",flag:"\u{1F1EF}\u{1F1F5}",badge:"6% Vol",langCodes:["ja"]},{id:"ca",name:"Canada",flag:"\u{1F1E8}\u{1F1E6}",badge:"5% Vol",langCodes:["en","fr"]},{id:"global",name:"Global / ROW",flag:"\u{1F310}",badge:"3% Vol",langCodes:["it","id","tr","vi","nl","pl","pt","ru","ar","zh","ko"]}],exports.LanguageSelectorModal=react_1.default.memo(({visible:r,onClose:t})=>{const{t:a}=(0,i18n_1.useTranslation)(),[o,n]=(0,react_1.useState)(""),[i,g]=(0,react_1.useState)("all"),u=(0,i18n_1.getLanguage)(),c=AppColors_1.AppColors.primaryLight!==AppColors_1.AppColors.white,s=(0,react_1.useMemo)(()=>exports.COUNTRY_OPTIONS.find(e=>e.id===i)||exports.COUNTRY_OPTIONS[0],[i]),p=(0,react_1.useMemo)(()=>i18n_1.SUPPORTED_LANGUAGES.filter(e=>{if(i!=="all"&&s?.langCodes&&!s.langCodes.includes(e.code))return!1;if(!o.trim())return!0;const l=o.trim().toLowerCase();return e.name.toLowerCase().includes(l)||e.nativeName.toLowerCase().includes(l)||e.code.toLowerCase().includes(l)}),[o,i,s]),h=async(e,l,y)=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),(0,i18n_1.setLanguage)(e);try{const d=await(0,settingsStore_1.loadSettings)();(0,settingsStore_1.saveSettings)({...d,language:e})}catch{}t(),n(""),(0,toast_1.showToast)(`${l} ${y}`)};return<react_native_1.Modal visible={r}transparent={!0}animationType="slide"onRequestClose={t}>
|
|
2
|
+
<react_native_1.View style={styles.overlay}>
|
|
3
|
+
|
|
4
|
+
<react_native_1.Pressable style={styles.backdrop}onPress={t}accessibilityRole="button"accessibilityLabel="Close bottom sheet"/>
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
<react_native_1.View style={[styles.bottomSheet,{backgroundColor:c?AppColors_1.AppColors.npmDark:AppColors_1.AppColors.white}]}>
|
|
8
|
+
|
|
9
|
+
<react_native_1.View style={styles.handleBarWrap}>
|
|
10
|
+
<react_native_1.View style={[styles.handleBar,{backgroundColor:c?"rgba(255,255,255,0.25)":"rgba(0,0,0,0.18)"}]}/>
|
|
11
|
+
</react_native_1.View>
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
<react_native_1.View style={styles.header}>
|
|
15
|
+
<react_native_1.View style={styles.headerTitleRow}>
|
|
16
|
+
<react_native_1.View style={styles.globeIconWrap}>
|
|
17
|
+
<NetworkIcons_1.GlobeIcon size={16}color={AppColors_1.AppColors.blue600}/>
|
|
18
|
+
</react_native_1.View>
|
|
19
|
+
<react_native_1.View>
|
|
20
|
+
<react_native_1.Text style={styles.titleText}>
|
|
21
|
+
{a("settings.general.selectLanguage","Select Language")}
|
|
22
|
+
</react_native_1.Text>
|
|
23
|
+
<react_native_1.Text style={styles.subTitleText}>
|
|
24
|
+
{a("settings.general.languageDescription","Choose preferred display language")}
|
|
25
|
+
</react_native_1.Text>
|
|
26
|
+
</react_native_1.View>
|
|
27
|
+
</react_native_1.View>
|
|
28
|
+
<TouchableScale_1.default onPress={t}hitSlop={10}style={styles.closeBtn}>
|
|
29
|
+
<NetworkIcons_1.CloseWhite size={12}color={AppColors_1.AppColors.grayText}/>
|
|
30
|
+
</TouchableScale_1.default>
|
|
31
|
+
</react_native_1.View>
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
<react_native_1.View style={styles.searchContainer}>
|
|
35
|
+
<react_native_1.TextInput value={o}onChangeText={n}placeholder={a("common.search","Search language, country or code...")}placeholderTextColor={AppColors_1.AppColors.grayTextWeak}style={styles.searchInput}autoCapitalize="none"autoCorrect={!1}clearButtonMode="while-editing"/>
|
|
36
|
+
{o.length>0&&<TouchableScale_1.default onPress={()=>n("")}style={styles.searchClearBtn}>
|
|
37
|
+
<NetworkIcons_1.CloseWhite size={11}color={AppColors_1.AppColors.grayText}/>
|
|
38
|
+
</TouchableScale_1.default>}
|
|
39
|
+
</react_native_1.View>
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
<react_native_1.View style={styles.countryScrollWrap}>
|
|
43
|
+
<react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={!1}contentContainerStyle={styles.countryScrollContent}>
|
|
44
|
+
{exports.COUNTRY_OPTIONS.map(e=>{const l=e.id===i;return<TouchableScale_1.default key={e.id}onPress={()=>{(0,NativeInspector_1.triggerNativeHaptic)("light"),g(e.id)}}style={[styles.countryChip,l&&styles.countryChipActive]}>
|
|
45
|
+
<react_native_1.Text style={styles.countryChipFlag}>{e.flag}</react_native_1.Text>
|
|
46
|
+
<react_native_1.Text style={[styles.countryChipText,l&&styles.countryChipTextActive]}>
|
|
47
|
+
{e.name}
|
|
48
|
+
</react_native_1.Text>
|
|
49
|
+
{e.badge&&<react_native_1.View style={[styles.countryChipBadge,l&&styles.countryChipBadgeActive]}>
|
|
50
|
+
<react_native_1.Text style={[styles.countryChipBadgeText,l&&styles.countryChipBadgeTextActive]}>
|
|
51
|
+
{e.badge}
|
|
52
|
+
</react_native_1.Text>
|
|
53
|
+
</react_native_1.View>}
|
|
54
|
+
</TouchableScale_1.default>})}
|
|
55
|
+
</react_native_1.ScrollView>
|
|
56
|
+
</react_native_1.View>
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
<react_native_1.ScrollView style={styles.scrollList}contentContainerStyle={styles.scrollContent}showsVerticalScrollIndicator={!0}keyboardShouldPersistTaps="handled">
|
|
60
|
+
{p.length===0?<react_native_1.View style={styles.emptyStateWrap}>
|
|
61
|
+
<react_native_1.Text style={styles.emptyStateText}>
|
|
62
|
+
{a("common.noMatches","No languages match your search")}
|
|
63
|
+
</react_native_1.Text>
|
|
64
|
+
</react_native_1.View>:p.map(e=>{const l=e.code===u;return<TouchableScale_1.default key={e.code}onPress={()=>h(e.code,e.flag,e.nativeName)}style={[styles.langRow,l&&styles.langRowSelected]}>
|
|
65
|
+
<react_native_1.View style={styles.langRowLeft}>
|
|
66
|
+
<react_native_1.Text style={styles.langFlag}>{e.flag}</react_native_1.Text>
|
|
67
|
+
<react_native_1.View style={styles.langTextCol}>
|
|
68
|
+
<react_native_1.View style={styles.langTitleRow}>
|
|
69
|
+
<react_native_1.Text style={[styles.langNativeName,l&&styles.langNativeNameSelected]}>
|
|
70
|
+
{e.nativeName}
|
|
71
|
+
</react_native_1.Text>
|
|
72
|
+
<react_native_1.View style={styles.codePill}>
|
|
73
|
+
<react_native_1.Text style={styles.codePillText}>
|
|
74
|
+
{e.code.toUpperCase()}
|
|
75
|
+
</react_native_1.Text>
|
|
76
|
+
</react_native_1.View>
|
|
77
|
+
</react_native_1.View>
|
|
78
|
+
<react_native_1.Text style={styles.langEnglishName}>
|
|
79
|
+
{e.name}
|
|
80
|
+
</react_native_1.Text>
|
|
81
|
+
</react_native_1.View>
|
|
82
|
+
</react_native_1.View>
|
|
83
|
+
{l&&<react_native_1.View style={styles.checkIconWrap}>
|
|
84
|
+
<NetworkIcons_1.CheckIcon size={13}color={AppColors_1.AppColors.white}/>
|
|
85
|
+
</react_native_1.View>}
|
|
86
|
+
</TouchableScale_1.default>})}
|
|
87
|
+
</react_native_1.ScrollView>
|
|
88
|
+
</react_native_1.View>
|
|
89
|
+
</react_native_1.View>
|
|
90
|
+
</react_native_1.Modal>});const styles=react_native_1.StyleSheet.create({overlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.55)",justifyContent:"flex-end"},backdrop:{...react_native_1.StyleSheet.absoluteFillObject},bottomSheet:{width:"100%",height:Math.min(Math.max(react_native_1.Dimensions.get("window").height*.7,480),580),borderTopLeftRadius:24,borderTopRightRadius:24,paddingTop:8,paddingBottom:react_native_1.Platform.OS==="ios"?28:16,shadowColor:AppColors_1.AppColors.black,shadowOpacity:.25,shadowRadius:16,shadowOffset:{width:0,height:-4},elevation:12},handleBarWrap:{alignItems:"center",paddingVertical:6},handleBar:{width:38,height:4.5,borderRadius:2.5},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:16,paddingVertical:10,borderBottomWidth:react_native_1.StyleSheet.hairlineWidth,borderBottomColor:AppColors_1.AppColors.grayBorderSecondary},headerTitleRow:{flexDirection:"row",alignItems:"center",gap:10},globeIconWrap:{width:30,height:30,borderRadius:8,backgroundColor:`${AppColors_1.AppColors.blue600}14`,alignItems:"center",justifyContent:"center"},titleText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:15,color:AppColors_1.AppColors.primaryBlack},subTitleText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11,color:AppColors_1.AppColors.grayText,marginTop:1},closeBtn:{width:28,height:28,borderRadius:14,backgroundColor:AppColors_1.AppColors.grayBackground,alignItems:"center",justifyContent:"center"},closeBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12,color:AppColors_1.AppColors.grayText},searchContainer:{flexDirection:"row",alignItems:"center",marginHorizontal:14,marginTop:10,marginBottom:6,paddingHorizontal:10,height:38,borderRadius:10,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary},searchInput:{flex:1,height:"100%",fontSize:12.5,fontFamily:AppFonts_1.AppFonts.interRegular,color:AppColors_1.AppColors.primaryBlack,paddingVertical:0},searchClearBtn:{padding:4},searchClearText:{fontSize:12,color:AppColors_1.AppColors.grayText,fontFamily:AppFonts_1.AppFonts.interBold},countryScrollWrap:{borderBottomWidth:react_native_1.StyleSheet.hairlineWidth,borderBottomColor:AppColors_1.AppColors.grayBorderSecondary,paddingVertical:6},countryScrollContent:{paddingHorizontal:14,gap:6,flexDirection:"row",alignItems:"center"},countryChip:{flexDirection:"row",alignItems:"center",paddingHorizontal:10,paddingVertical:6,borderRadius:16,backgroundColor:AppColors_1.AppColors.grayBackground,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,gap:5},countryChipActive:{backgroundColor:`${AppColors_1.AppColors.purple}14`,borderColor:`${AppColors_1.AppColors.purple}55`},countryChipFlag:{fontSize:13},countryChipText:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:11.5,color:AppColors_1.AppColors.primaryBlack},countryChipTextActive:{fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.purple},countryChipBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:8,backgroundColor:`${AppColors_1.AppColors.black}0A`},countryChipBadgeActive:{backgroundColor:`${AppColors_1.AppColors.purple}22`},countryChipBadgeText:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:9.5,color:AppColors_1.AppColors.grayText},countryChipBadgeTextActive:{color:AppColors_1.AppColors.purple,fontFamily:AppFonts_1.AppFonts.interBold},scrollList:{flex:1},scrollContent:{paddingBottom:16},emptyStateWrap:{padding:30,alignItems:"center",justifyContent:"center"},emptyStateText:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:12.5,color:AppColors_1.AppColors.grayText},langRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:16,paddingVertical:12,borderBottomWidth:react_native_1.StyleSheet.hairlineWidth,borderBottomColor:AppColors_1.AppColors.grayBorderSecondary},langRowSelected:{backgroundColor:`${AppColors_1.AppColors.purple}10`},langRowLeft:{flexDirection:"row",alignItems:"center",gap:12,flex:1},langFlag:{fontSize:20},langTextCol:{flex:1},langTitleRow:{flexDirection:"row",alignItems:"center",gap:6},langNativeName:{fontFamily:AppFonts_1.AppFonts.interSemiBold,fontSize:13.5,color:AppColors_1.AppColors.primaryBlack},langNativeNameSelected:{fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.purple},codePill:{backgroundColor:`${AppColors_1.AppColors.purple}14`,paddingHorizontal:5,paddingVertical:1,borderRadius:4},codePillText:{fontSize:9.5,fontFamily:AppFonts_1.AppFonts.interBold,color:AppColors_1.AppColors.purple,letterSpacing:.5},langEnglishName:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11,color:AppColors_1.AppColors.grayText,marginTop:1},checkIconWrap:{width:22,height:22,borderRadius:11,backgroundColor:AppColors_1.AppColors.purple,alignItems:"center",justifyContent:"center"}});
|