react-native-inapp-inspector 2.3.23 → 2.3.25

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.
Files changed (149) hide show
  1. package/dist/commonjs/components/AnalyticsDetail.js +8 -8
  2. package/dist/commonjs/components/AnalyticsEventCard.js +11 -8
  3. package/dist/commonjs/components/AppHeaderLogo.js +1 -1
  4. package/dist/commonjs/components/BrandSquareIcon.js +12 -12
  5. package/dist/commonjs/components/ConsoleLogCard.d.ts +1 -0
  6. package/dist/commonjs/components/ConsoleLogCard.js +92 -80
  7. package/dist/commonjs/components/EndOfListFooter.d.ts +5 -1
  8. package/dist/commonjs/components/EndOfListFooter.js +27 -5
  9. package/dist/commonjs/components/Inspector/AnalyticsTab.js +30 -298
  10. package/dist/commonjs/components/Inspector/ConsoleTab.js +38 -93
  11. package/dist/commonjs/components/Inspector/CrashDetail.js +12 -12
  12. package/dist/commonjs/components/Inspector/CrashTab.js +43 -33
  13. package/dist/commonjs/components/Inspector/DebuggingTab.js +9 -9
  14. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +54 -52
  15. package/dist/commonjs/components/Inspector/InspectorHeader.js +1 -1
  16. package/dist/commonjs/components/Inspector/LogDetail.js +6 -6
  17. package/dist/commonjs/components/Inspector/MainScreen.js +23 -25
  18. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +1 -1
  19. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +3 -3
  20. package/dist/commonjs/components/Inspector/NetworkTab.js +31 -31
  21. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +3 -3
  22. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +21 -22
  23. package/dist/commonjs/components/Inspector/ReduxDetail.js +1 -1
  24. package/dist/commonjs/components/Inspector/ReduxTab.js +110 -97
  25. package/dist/commonjs/components/Inspector/SettingsPanel.js +48 -100
  26. package/dist/commonjs/components/Inspector/StorageTab.js +56 -52
  27. package/dist/commonjs/components/Inspector/TabBar.js +29 -26
  28. package/dist/commonjs/components/JsonViewer.js +169 -164
  29. package/dist/commonjs/components/LogCard.js +34 -38
  30. package/dist/commonjs/components/LogSyntaxHighlighter.js +3 -3
  31. package/dist/commonjs/components/SegmentedTabs.d.ts +4 -1
  32. package/dist/commonjs/components/SegmentedTabs.js +8 -8
  33. package/dist/commonjs/constants/index.js +1 -1
  34. package/dist/commonjs/constants/version.d.ts +1 -1
  35. package/dist/commonjs/constants/version.js +1 -1
  36. package/dist/commonjs/customHooks/networkLogger.js +1 -2
  37. package/dist/commonjs/helpers/index.d.ts +6 -0
  38. package/dist/commonjs/helpers/index.js +4 -4
  39. package/dist/commonjs/helpers/memoryManager.d.ts +0 -1
  40. package/dist/commonjs/helpers/memoryManager.js +1 -1
  41. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  42. package/dist/commonjs/helpers/settingsStore.js +1 -1
  43. package/dist/commonjs/i18n/index.d.ts +35 -0
  44. package/dist/commonjs/i18n/index.js +1 -1
  45. package/dist/commonjs/i18n/locales/ar.json +1 -0
  46. package/dist/commonjs/i18n/locales/de.json +1 -0
  47. package/dist/commonjs/i18n/locales/en.json +1 -1
  48. package/dist/commonjs/i18n/locales/es.json +1 -0
  49. package/dist/commonjs/i18n/locales/fr.json +1 -0
  50. package/dist/commonjs/i18n/locales/hi.json +1 -0
  51. package/dist/commonjs/i18n/locales/ja.json +1 -0
  52. package/dist/commonjs/i18n/locales/ko.json +1 -0
  53. package/dist/commonjs/i18n/locales/pt.json +1 -0
  54. package/dist/commonjs/i18n/locales/ru.json +1 -0
  55. package/dist/commonjs/i18n/locales/zh.json +1 -0
  56. package/dist/commonjs/index.d.ts +2 -4
  57. package/dist/commonjs/index.js +2 -2
  58. package/dist/commonjs/styles/AppColors.d.ts +40 -0
  59. package/dist/commonjs/styles/AppColors.js +1 -1
  60. package/dist/commonjs/styles/index.js +1 -1
  61. package/dist/commonjs/types/enums.d.ts +0 -20
  62. package/dist/commonjs/types/enums.js +1 -1
  63. package/dist/esm/components/AnalyticsDetail.js +75 -75
  64. package/dist/esm/components/AnalyticsEventCard.js +20 -17
  65. package/dist/esm/components/AppHeaderLogo.js +5 -5
  66. package/dist/esm/components/BrandSquareIcon.js +39 -39
  67. package/dist/esm/components/ConsoleLogCard.d.ts +1 -0
  68. package/dist/esm/components/ConsoleLogCard.js +98 -86
  69. package/dist/esm/components/EndOfListFooter.d.ts +5 -1
  70. package/dist/esm/components/EndOfListFooter.js +36 -14
  71. package/dist/esm/components/Inspector/AnalyticsTab.js +47 -315
  72. package/dist/esm/components/Inspector/ConsoleTab.js +61 -116
  73. package/dist/esm/components/Inspector/CrashDetail.js +49 -49
  74. package/dist/esm/components/Inspector/CrashTab.js +75 -65
  75. package/dist/esm/components/Inspector/DebuggingTab.js +31 -31
  76. package/dist/esm/components/Inspector/DeviceInfoTab.js +146 -144
  77. package/dist/esm/components/Inspector/InspectorHeader.js +5 -5
  78. package/dist/esm/components/Inspector/LogDetail.js +1 -1
  79. package/dist/esm/components/Inspector/MainScreen.js +51 -53
  80. package/dist/esm/components/Inspector/MediaGalleryTab.js +1 -1
  81. package/dist/esm/components/Inspector/MediaPreviewModal.js +31 -31
  82. package/dist/esm/components/Inspector/NetworkTab.js +63 -63
  83. package/dist/esm/components/Inspector/NpmStarPrompt.js +42 -42
  84. package/dist/esm/components/Inspector/NpmUpdateToast.js +45 -46
  85. package/dist/esm/components/Inspector/ReduxDetail.js +1 -1
  86. package/dist/esm/components/Inspector/ReduxTab.js +163 -150
  87. package/dist/esm/components/Inspector/SettingsPanel.js +136 -188
  88. package/dist/esm/components/Inspector/StorageTab.js +88 -84
  89. package/dist/esm/components/Inspector/TabBar.js +37 -34
  90. package/dist/esm/components/JsonViewer.js +173 -168
  91. package/dist/esm/components/LogCard.js +38 -42
  92. package/dist/esm/components/LogSyntaxHighlighter.js +1 -1
  93. package/dist/esm/components/SegmentedTabs.d.ts +4 -1
  94. package/dist/esm/components/SegmentedTabs.js +8 -8
  95. package/dist/esm/constants/index.js +1 -1
  96. package/dist/esm/constants/version.d.ts +1 -1
  97. package/dist/esm/constants/version.js +1 -1
  98. package/dist/esm/customHooks/networkLogger.js +1 -2
  99. package/dist/esm/helpers/index.d.ts +6 -0
  100. package/dist/esm/helpers/index.js +4 -4
  101. package/dist/esm/helpers/memoryManager.d.ts +0 -1
  102. package/dist/esm/helpers/memoryManager.js +1 -1
  103. package/dist/esm/helpers/remoteConfig.js +1 -1
  104. package/dist/esm/helpers/settingsStore.js +1 -1
  105. package/dist/esm/i18n/index.d.ts +35 -0
  106. package/dist/esm/i18n/index.js +1 -1
  107. package/dist/esm/i18n/locales/ar.json +1 -0
  108. package/dist/esm/i18n/locales/de.json +1 -0
  109. package/dist/esm/i18n/locales/en.json +1 -1
  110. package/dist/esm/i18n/locales/es.json +1 -0
  111. package/dist/esm/i18n/locales/fr.json +1 -0
  112. package/dist/esm/i18n/locales/hi.json +1 -0
  113. package/dist/esm/i18n/locales/ja.json +1 -0
  114. package/dist/esm/i18n/locales/ko.json +1 -0
  115. package/dist/esm/i18n/locales/pt.json +1 -0
  116. package/dist/esm/i18n/locales/ru.json +1 -0
  117. package/dist/esm/i18n/locales/zh.json +1 -0
  118. package/dist/esm/index.d.ts +2 -4
  119. package/dist/esm/index.js +5 -5
  120. package/dist/esm/styles/AppColors.d.ts +40 -0
  121. package/dist/esm/styles/AppColors.js +1 -1
  122. package/dist/esm/styles/index.js +1 -1
  123. package/dist/esm/types/enums.d.ts +0 -20
  124. package/dist/esm/types/enums.js +1 -1
  125. package/package.json +1 -15
  126. package/dist/commonjs/bundle.d.ts +0 -2
  127. package/dist/commonjs/bundle.js +0 -1
  128. package/dist/commonjs/components/Inspector/BundleTab.d.ts +0 -48
  129. package/dist/commonjs/components/Inspector/BundleTab.js +0 -1297
  130. package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +0 -27
  131. package/dist/commonjs/components/Inspector/PerformanceTab.js +0 -454
  132. package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +0 -115
  133. package/dist/commonjs/customHooks/bundleAnalyzer.js +0 -1
  134. package/dist/commonjs/customHooks/performanceTracker.d.ts +0 -144
  135. package/dist/commonjs/customHooks/performanceTracker.js +0 -63
  136. package/dist/commonjs/performance.d.ts +0 -2
  137. package/dist/commonjs/performance.js +0 -1
  138. package/dist/esm/bundle.d.ts +0 -2
  139. package/dist/esm/bundle.js +0 -1
  140. package/dist/esm/components/Inspector/BundleTab.d.ts +0 -48
  141. package/dist/esm/components/Inspector/BundleTab.js +0 -1297
  142. package/dist/esm/components/Inspector/PerformanceTab.d.ts +0 -27
  143. package/dist/esm/components/Inspector/PerformanceTab.js +0 -454
  144. package/dist/esm/customHooks/bundleAnalyzer.d.ts +0 -115
  145. package/dist/esm/customHooks/bundleAnalyzer.js +0 -1
  146. package/dist/esm/customHooks/performanceTracker.d.ts +0 -144
  147. package/dist/esm/customHooks/performanceTracker.js +0 -63
  148. package/dist/esm/performance.d.ts +0 -2
  149. package/dist/esm/performance.js +0 -1
@@ -1,99 +1,111 @@
1
- import z,{useState as G}from"react";import{useTranslation as v}from"../i18n";import{Pressable as N,StyleSheet as K,Text as I,View as T}from"react-native";import{AppColors as o}from"../styles/AppColors";import{AppFonts as b}from"../styles/AppFonts";import{formatTime as j,getJsonContent as Y,getJsonPreviewText as X,parseStackLine as J,openInVSCode as Q}from"../helpers";import Z from"./CopyButton";import P from"./LogSyntaxHighlighter";import{ChevronIcon as D,ExternalLinkIcon as _,FlaskIcon as ee,ZapIcon as W,GlobeIcon as oe,DiceIcon as re,AtomIcon as H,BarChartIcon as te,KeyIcon as le,SmartphoneIcon as ae,AlertTriangleIcon as ne,BugIcon as ie,TagIcon as de,MapPinIcon as M,StorageIcon as ce,SignalIcon as se,FlameIcon as ge,MoneyIcon as pe,CircleCheckIcon as fe,RefreshCcwIcon as Te,PerformanceIcon as ue,ChipIcon as be,SettingsIcon as Ce,TerminalIcon as ye,InfoCircleIcon as Ie,ShieldAlertIcon as me,LayoutIcon as he,ClockIcon as Ee}from"./NetworkIcons";import{useInspector as Be}from"./Inspector/InspectorContext";const $=(B,t,E,F,S)=>{if(!B)return null;const h=/^((?:\[[^\]]+\]\s*)+)/,A=B.match(h);if(A){const C=A[1],R=B.substring(C.length),V=C.match(/\[[^\]]+\]/g)||[],u=O=>{const e=O.replace(/[\[\]]/g,"").trim().toUpperCase();return e==="AXIOS"?{color:o.emerald600,Icon:W,label:"AXIOS"}:e==="API"||e==="FETCH"||e==="HTTP"||e==="REST"||e==="NETWORK"?{color:o.sky600,Icon:oe,label:e}:e==="GRAPHQL"||e==="GQL"||e==="APOLLO"||e==="MUTATION"||e==="QUERY"?{color:o.pink500,Icon:H,label:e}:e==="WS"||e==="WEBSOCKET"||e==="SOCKET"||e==="SOCKET.IO"||e==="REALTIME"?{color:o.cyan600,Icon:se,label:e}:e==="REDUX"||e==="STORE"||e==="STATE"||e==="ZUSTAND"||e==="MOBX"||e==="RECOIL"||e==="ACTION"||e==="DISPATCH"?{color:o.violet600,Icon:H,label:e}:e==="ANALYTICS"||e==="FIREBASE"||e==="GA4"||e==="GA"||e==="SEGMENT"||e==="MIXPANEL"||e==="POSTHOG"||e==="TRACK"||e==="EVENT"?{color:o.teal600,Icon:te,label:e}:e==="AUTH"||e==="TOKEN"||e==="SESSION"||e==="JWT"||e==="LOGIN"||e==="LOGOUT"||e==="USER"?{color:o.amber600,Icon:le,label:e}:e==="SECURITY"||e==="SHIELD"||e==="PERMISSION"||e==="PERMISSIONS"?{color:o.indigo600Alt,Icon:me,label:e}:e==="NAV"||e==="NAVIGATION"||e==="ROUTE"||e==="SCREEN"||e==="ROUTER"||e==="DEEPLINK"?{color:o.indigo600Alt,Icon:M,label:e}:e==="STORAGE"||e==="ASYNCSTORAGE"||e==="MMKV"||e==="SQLITE"||e==="DB"||e==="DATABASE"||e==="REALM"||e==="CACHE"?{color:o.purple500,Icon:ce,label:e}:e==="PERF"||e==="RENDER"||e==="PERFORMANCE"||e==="FPS"||e==="MEMORY"?{color:o.violet500,Icon:ue,label:e}:e==="INIT"||e==="BOOT"||e==="STARTUP"||e==="LIFECYCLE"||e==="MOUNT"||e==="UNMOUNT"?{color:o.blue600,Icon:W,label:e}:e==="SYNC"||e==="REFRESH"||e==="BACKGROUND"||e==="JOB"||e==="WORKER"?{color:o.sky600,Icon:Te,label:e}:e==="PUSH"||e==="NOTIF"||e==="NOTIFICATION"||e==="FCM"||e==="APNS"?{color:o.darkOrange,Icon:ge,label:e}:e==="PAY"||e==="PAYMENT"||e==="STRIPE"||e==="IAP"||e==="BILLING"||e==="CHECKOUT"||e==="CART"?{color:o.emerald600,Icon:pe,label:e}:e==="DEVICE"||e==="HARDWARE"||e==="BLE"||e==="BLUETOOTH"||e==="NFC"||e==="SENSOR"?{color:o.slate600,Icon:be,label:e}:e==="LOCATION"||e==="GPS"||e==="GEO"?{color:o.emerald600,Icon:M,label:e}:e==="APP"?{color:o.indigo600Alt,Icon:ae,label:"APP"}:e==="UI"||e==="VIEW"||e==="THEME"||e==="STYLE"||e==="LAYOUT"?{color:o.pink600,Icon:he,label:e}:e==="TEST"||e==="MOCK"||e==="SPEC"?{color:o.emerald500,Icon:ee,label:"TEST"}:e==="SAMPLE"||e==="BATCH"?{color:o.indigo600Alt,Icon:re,label:e}:e==="CONFIG"||e==="ENV"||e==="SETTINGS"?{color:o.slate700,Icon:Ce,label:e}:e==="DEBUG"||e==="TRACE"?{color:o.purpleText,Icon:ye,label:e}:e==="INFO"?{color:o.sky600,Icon:Ie,label:"INFO"}:e==="SUCCESS"||e==="OK"||e==="DONE"||e==="PASSED"?{color:o.green600,Icon:fe,label:e}:e==="WARN"||e==="WARNING"?{color:o.amber600,Icon:ne,label:"WARN"}:e==="ERROR"||e==="CRASH"||e==="BUG"||e==="FATAL"||e==="EXCEPTION"||e==="FAIL"?{color:o.red600,Icon:ie,label:e==="CRASH"||e==="BUG"||e==="FATAL"||e==="EXCEPTION"||e==="FAIL"?e:"ERROR"}:{color:o.slate600,Icon:de,label:e}};return<T style={{flexDirection:"column",gap:6}}>
2
- <T style={{flexDirection:"row",flexWrap:"wrap",gap:5}}>
3
- {V.map((O,e)=>{const m=u(O),L=m.Icon;return<T key={e}style={[r.prefixTag,{backgroundColor:`${m.color}14`,borderColor:`${m.color}33`}]}>
4
- <L color={m.color}size={10}/>
5
- <I style={[r.prefixTagText,{color:m.color}]}>
6
- {m.label}
7
- </I>
1
+ import z from"react";import{useTranslation as G}from"../i18n";import{Pressable as K,StyleSheet as Y,Text as E,View as T}from"react-native";import{AppColors as r}from"../styles/AppColors";import{AppFonts as B}from"../styles/AppFonts";import{formatTime as X,getJsonContent as J,getJsonPreviewText as Q,parseStackLine as Z,openInVSCode as q,getSize as _,getCleanCallerDisplay as ee}from"../helpers";import Te from"./TouchableScale";import N from"./LogSyntaxHighlighter";import{ForwardChevronIcon as Ce,ExternalLinkIcon as Ie,FlaskIcon as he,ZapIcon as V,GlobeIcon as xe,DiceIcon as ye,AtomIcon as M,BarChartIcon as Se,KeyIcon as me,SmartphoneIcon as Ee,AlertTriangleIcon as Be,BugIcon as Re,TagIcon as Ae,MapPinIcon as $,StorageIcon as Oe,SignalIcon as Pe,FlameIcon as we,MoneyIcon as ke,CircleCheckIcon as U,CircleAlertIcon as Ne,CircleXIcon as Le,RefreshCcwIcon as He,PerformanceIcon as Ve,ChipIcon as Fe,SettingsIcon as De,TerminalIcon as ze,InfoCircleIcon as W,ShieldAlertIcon as Me,LayoutIcon as $e,ClockIcon as Ue,SizeIcon as We}from"./NetworkIcons";import{useInspector as Ge}from"./Inspector/InspectorContext";const ve=(w,C,O,F,L)=>{if(!w)return null;const x=/^((?:\[[^\]]+\]\s*)+)/,k=w.match(x);if(k){const I=k[1],D=w.substring(I.length),h=I.match(/\[[^\]]+\]/g)||[],H=P=>{const e=P.replace(/[\[\]]/g,"").trim().toUpperCase();return e==="AXIOS"?{color:r.emerald600,Icon:V,label:"AXIOS"}:e==="API"||e==="FETCH"||e==="HTTP"||e==="REST"||e==="NETWORK"?{color:r.sky600,Icon:xe,label:e}:e==="GRAPHQL"||e==="GQL"||e==="APOLLO"||e==="MUTATION"||e==="QUERY"?{color:r.pink500,Icon:M,label:e}:e==="WS"||e==="WEBSOCKET"||e==="SOCKET"||e==="SOCKET.IO"||e==="REALTIME"?{color:r.cyan600,Icon:Pe,label:e}:e==="REDUX"||e==="STORE"||e==="STATE"||e==="ZUSTAND"||e==="MOBX"||e==="RECOIL"||e==="ACTION"||e==="DISPATCH"?{color:r.violet600,Icon:M,label:e}:e==="ANALYTICS"||e==="FIREBASE"||e==="GA4"||e==="GA"||e==="SEGMENT"||e==="MIXPANEL"||e==="POSTHOG"||e==="TRACK"||e==="EVENT"?{color:r.teal600,Icon:Se,label:e}:e==="AUTH"||e==="TOKEN"||e==="SESSION"||e==="JWT"||e==="LOGIN"||e==="LOGOUT"||e==="USER"?{color:r.amber600,Icon:me,label:e}:e==="SECURITY"||e==="SHIELD"||e==="PERMISSION"||e==="PERMISSIONS"?{color:r.indigo600Alt,Icon:Me,label:e}:e==="NAV"||e==="NAVIGATION"||e==="ROUTE"||e==="SCREEN"||e==="ROUTER"||e==="DEEPLINK"?{color:r.indigo600Alt,Icon:$,label:e}:e==="STORAGE"||e==="ASYNCSTORAGE"||e==="MMKV"||e==="SQLITE"||e==="DB"||e==="DATABASE"||e==="REALM"||e==="CACHE"?{color:r.purple500,Icon:Oe,label:e}:e==="PERF"||e==="RENDER"||e==="PERFORMANCE"||e==="FPS"||e==="MEMORY"?{color:r.violet500,Icon:Ve,label:e}:e==="INIT"||e==="BOOT"||e==="STARTUP"||e==="LIFECYCLE"||e==="MOUNT"||e==="UNMOUNT"?{color:r.blue600,Icon:V,label:e}:e==="SYNC"||e==="REFRESH"||e==="BACKGROUND"||e==="JOB"||e==="WORKER"?{color:r.sky600,Icon:He,label:e}:e==="PUSH"||e==="NOTIF"||e==="NOTIFICATION"||e==="FCM"||e==="APNS"?{color:r.darkOrange,Icon:we,label:e}:e==="PAY"||e==="PAYMENT"||e==="STRIPE"||e==="IAP"||e==="BILLING"||e==="CHECKOUT"||e==="CART"?{color:r.emerald600,Icon:ke,label:e}:e==="DEVICE"||e==="HARDWARE"||e==="BLE"||e==="BLUETOOTH"||e==="NFC"||e==="SENSOR"?{color:r.slate600,Icon:Fe,label:e}:e==="LOCATION"||e==="GPS"||e==="GEO"?{color:r.emerald600,Icon:$,label:e}:e==="APP"?{color:r.indigo600Alt,Icon:Ee,label:"APP"}:e==="UI"||e==="VIEW"||e==="THEME"||e==="STYLE"||e==="LAYOUT"?{color:r.pink600,Icon:$e,label:e}:e==="TEST"||e==="MOCK"||e==="SPEC"?{color:r.emerald500,Icon:he,label:"TEST"}:e==="SAMPLE"||e==="BATCH"?{color:r.indigo600Alt,Icon:ye,label:e}:e==="CONFIG"||e==="ENV"||e==="SETTINGS"?{color:r.slate700,Icon:De,label:e}:e==="DEBUG"||e==="TRACE"?{color:r.purpleText,Icon:ze,label:e}:e==="INFO"?{color:r.sky600,Icon:W,label:"INFO"}:e==="SUCCESS"||e==="OK"||e==="DONE"||e==="PASSED"?{color:r.green600,Icon:U,label:e}:e==="WARN"||e==="WARNING"?{color:r.amber600,Icon:Be,label:"WARN"}:e==="ERROR"||e==="CRASH"||e==="BUG"||e==="FATAL"||e==="EXCEPTION"||e==="FAIL"?{color:r.red600,Icon:Re,label:e==="CRASH"||e==="BUG"||e==="FATAL"||e==="EXCEPTION"||e==="FAIL"?e:"ERROR"}:{color:r.slate600,Icon:Ae,label:e}};return<T style={{flexDirection:"column",gap:2}}>
2
+ <T style={{flexDirection:"row",gap:4,overflow:"hidden"}}>
3
+ {h.slice(0,2).map((P,e)=>{const R=H(P),S=R.Icon;return<T key={e}style={[o.prefixTag,{backgroundColor:`${R.color}12`,borderColor:`${R.color}30`}]}>
4
+ <S color={R.color}size={8.5}/>
5
+ <E style={[o.prefixTagText,{color:R.color}]}>
6
+ {R.label}
7
+ </E>
8
8
  </T>})}
9
9
  </T>
10
- <P text={R}search={t}style={E}numberOfLines={S}detectLinks={!0}/>
11
- </T>}return<P text={B}search={t}style={E}numberOfLines={S}detectLinks={!0}/>};export const ConsoleLogCard=z.memo(function({item:t,searchStr:E=""}){const{setSelectedLog:F}=Be(),{t:S}=v(),[h,A]=G(!1),C=Y(t.message),R=t.message.toLowerCase().includes("[analytics error]"),V=t.sourceMethod==="log",u=t.caller&&t.caller!=="Unknown"?J(t.caller,!0):null,e=(()=>{const y=(t.type||"log").toLowerCase(),x=(t.sourceMethod||y).toLowerCase();return R||y==="error"||x==="error"?{border:o.errorColor,badgeBg:`${o.errorColor}18`,badgeText:o.errorColor,label:"ERROR",cardBg:o.errorCardBg,methodBorder:`${o.errorColor}30`,methodBg:`${o.errorColor}12`,methodText:o.errorColor,textColor:o.redErrorText}:y==="warn"||x==="warn"?{border:o.amber600,badgeBg:`${o.amber600}18`,badgeText:o.amber800,label:"WARN",cardBg:o.warnCardBg,methodBorder:`${o.amber600}33`,methodBg:`${o.amber600}14`,methodText:o.amber800,textColor:o.amber800}:y==="debug"||x==="debug"?{border:o.purple500,badgeBg:`${o.purple500}18`,badgeText:o.purple,label:"DEBUG",cardBg:o.purpleTintBg,methodBorder:`${o.purple500}33`,methodBg:`${o.purple500}12`,methodText:o.purple,textColor:o.purpleText}:x==="info"||y==="info"&&x!=="log"?{border:o.sky500,badgeBg:`${o.sky500}18`,badgeText:o.sky600,label:"INFO",cardBg:o.blueTintBg,methodBorder:`${o.sky500}33`,methodBg:`${o.sky500}12`,methodText:o.sky600,textColor:o.blue800}:{border:o.indigo500,badgeBg:`${o.indigo500}15`,badgeText:o.indigo600Alt,label:"LOG",cardBg:o.white,methodBorder:o.dividerColor,methodBg:o.indigo50,methodText:o.indigo600Alt,textColor:o.primaryBlack}})(),m=C?X(C.data):null,L=()=>{F(t)},U=y=>{y?.stopPropagation?.(),A(x=>!x)};return<T style={r.container}>
12
- <N onPress={L}style={({pressed:y})=>[r.card,{borderLeftColor:e.border,borderLeftWidth:3.5,backgroundColor:e.cardBg},y&&r.cardPressed]}>
13
-
14
- <T style={r.cardHeader}>
15
- <T style={r.headerLeft}>
16
- <T style={r.idBadge}>
17
- <I style={r.idBadgeText}>
18
- #{t.id!=null?t.id+1:1}
19
- </I>
20
- </T>
21
- <T style={[r.typeChip,{backgroundColor:e.badgeBg}]}>
22
- <T style={[r.typeDot,{backgroundColor:e.badgeText}]}/>
23
- <I style={[r.typeChipText,{color:e.badgeText,fontFamily:b.interBold}]}>
24
- {e.label}
25
- </I>
10
+ <N text={D}search={C}style={O}numberOfLines={1}detectLinks={!1}/>
11
+ </T>}return<N text={w}search={C}style={O}numberOfLines={L||2}detectLinks={!1}/>};export const ConsoleLogCard=z.memo(function({item:C,searchStr:O=""}){const{setSelectedLog:F}=Ge(),{t:L}=G(),x=J(C.message),k=C.message.toLowerCase().includes("[analytics error]"),I=z.useMemo(()=>{const S=ee(C.caller);if(!S)return null;const A=Z(C.caller,!0);return{...A,display:S.display,fileName:S.fileName,lineNumber:S.lineNumber||A.lineNumber}},[C.caller]),h=(()=>{const S=(C.type||"log").toLowerCase(),A=(C.sourceMethod||S).toLowerCase();return k||S==="error"||A==="error"?{badgeColor:r.errorColor,border:r.errorColor,badgeBg:`${r.errorColor}18`,badgeText:r.errorColor,label:"ERROR",cardBg:r.errorCardBg,statusPillBg:`${r.errorColor}14`,statusPillBorder:`${r.errorColor}33`,statusPillText:r.errorColor,StatusIcon:Le}:S==="warn"||A==="warn"?{badgeColor:r.darkOrange,border:r.darkOrange,badgeBg:`${r.darkOrange}18`,badgeText:r.darkOrange,label:"WARN",cardBg:r.warnCardBg,statusPillBg:`${r.darkOrange}14`,statusPillBorder:`${r.darkOrange}33`,statusPillText:r.darkOrange,StatusIcon:Ne}:S==="debug"||A==="debug"?{badgeColor:r.purple,border:r.purple,badgeBg:`${r.purple}18`,badgeText:r.purple,label:"DEBUG",cardBg:r.purpleTintBg,statusPillBg:`${r.purple}14`,statusPillBorder:`${r.purple}33`,statusPillText:r.purple,StatusIcon:V}:A==="info"||S==="info"&&A!=="log"?{badgeColor:r.sky600,border:r.sky600,badgeBg:`${r.sky600}18`,badgeText:r.sky600,label:"INFO",cardBg:r.blueTintBg,statusPillBg:`${r.sky600}14`,statusPillBorder:`${r.sky600}33`,statusPillText:r.sky600,StatusIcon:W}:{badgeColor:r.brandPurple,border:r.brandPurple,badgeBg:`${r.brandPurple}15`,badgeText:r.brandPurple,label:"LOG",cardBg:r.white,statusPillBg:`${r.brandPurple}12`,statusPillBorder:`${r.brandPurple}2E`,statusPillText:r.brandPurple,StatusIcon:U}})(),H=h.StatusIcon,P=x?Q(x.data):null,e=()=>{F(C)},R=("sourceMethod"in C?C.sourceMethod:void 0)||C.type||"log";return<T style={o.container}>
12
+ <Te onPress={e}style={[o.card,{borderLeftWidth:3.5,borderLeftColor:h.border,backgroundColor:h.cardBg}]}>
13
+ <T style={o.cardBody}>
14
+
15
+ <T style={o.cardHeaderRow}>
16
+ <T style={o.cardHeaderLeft}>
17
+ <E style={o.serialNumber}>
18
+ #{C.id!=null?C.id+1:1}
19
+ </E>
20
+
21
+
22
+ <T style={[o.methodBadge,{backgroundColor:h.badgeColor}]}>
23
+ <E style={o.methodBadgeText}>{h.label}</E>
24
+ </T>
25
+
26
+
27
+ <T style={[o.chip,{backgroundColor:`${h.badgeColor}12`,borderColor:`${h.badgeColor}2E`}]}>
28
+ <E style={[o.chipText,{color:h.badgeColor}]}numberOfLines={1}>
29
+ console.{R}
30
+ </E>
31
+ </T>
32
+
33
+
34
+ {x&&<T style={[o.chip,{backgroundColor:`${r.teal600}14`,borderColor:`${r.teal600}33`}]}>
35
+ <E style={[o.chipText,{color:r.teal600}]}>
36
+ {Array.isArray(x.data)?`Array[${x.data.length}]`:`Object{${Object.keys(x.data).length}}`}
37
+ </E>
38
+ </T>}
39
+
40
+
41
+ {"duplicateCount"in C&&C.duplicateCount!=null&&C.duplicateCount>1&&<T style={o.dupBadge}>
42
+ <E style={o.dupBadgeText}>
43
+ ×{C.duplicateCount}
44
+ </E>
45
+ </T>}
26
46
  </T>
27
- <T style={[r.metaChip,{backgroundColor:e.methodBg,borderColor:e.methodBorder}]}>
28
- <I style={[r.metaChipText,{color:e.methodText,fontFamily:b.interBold}]}>
29
- console.
30
- {("sourceMethod"in t?t.sourceMethod:void 0)||t.type||"log"}
31
- </I>
47
+
48
+
49
+ <T style={o.cardHeaderRight}>
50
+ <T style={[o.statusPill,{backgroundColor:h.statusPillBg,borderColor:h.statusPillBorder}]}>
51
+ <H color={h.statusPillText}size={9.5}/>
52
+ <E style={[o.statusPillText,{color:h.statusPillText}]}>
53
+ {h.label}
54
+ </E>
55
+ </T>
56
+ <Ce color={r.grayTextWeak}size={13}/>
32
57
  </T>
33
- {C&&<T style={[r.metaChip,{backgroundColor:`${o.teal600}14`,borderColor:`${o.teal600}33`}]}>
34
- <I style={[r.metaChipText,{color:o.teal600,fontFamily:b.interBold}]}>
35
- {Array.isArray(C.data)?`Array[${C.data.length}]`:`Object{${Object.keys(C.data).length}}`}
36
- </I>
37
- </T>}
38
- {"duplicateCount"in t&&t.duplicateCount!=null&&t.duplicateCount>1&&<T style={[r.metaChip,{backgroundColor:`${o.purple}1A`,borderColor:`${o.purple}3D`}]}>
39
- <I style={[r.metaChipText,{color:o.purple,fontFamily:b.interBold}]}>
40
- ×{t.duplicateCount}
41
- </I>
42
- </T>}
43
58
  </T>
44
59
 
45
- <T style={r.headerRight}>
46
- <Z value={t.message}label={S("console.logMessage")}/>
47
- <D color={o.grayTextWeak}size={14}/>
60
+
61
+ <T style={o.messageBox}>
62
+ {x?<T style={o.jsonPreviewRow}>
63
+ {x.header?<N text={x.header}search={O}style={o.messageText}detectLinks={!1}numberOfLines={1}/>:null}
64
+ {P&&<N text={P.text.replace(/\s+/g," ")}search={O}style={o.jsonPreviewText}detectLinks={!1}numberOfLines={x.header?2:3}/>}
65
+ </T>:ve(C.message,O,o.messageText,o.highlight,3)}
48
66
  </T>
49
- </T>
50
67
 
51
-
52
- <T style={r.cardBody}>
53
- {C?<>
54
- {C.header?$(C.header,E,[r.messageText,{color:o.primaryBlack}],r.highlight,h?void 0:2):null}
55
- {m&&<T style={r.jsonPreviewContainer}>
56
- <P text={m.text}search={E}style={[r.jsonPreviewText,{color:o.primaryBlack}]}detectLinks={!1}numberOfLines={h?void 0:4}/>
57
- {m.text.split(`
58
- `).length>4&&<N onPress={U}hitSlop={6}style={r.expandToggle}>
59
- <I style={r.expandToggleText}>
60
- {h?"Show less":"Show full preview"}
61
- </I>
62
- <D color={o.purple}size={11}direction={h?"up":"down"}/>
63
- </N>}
64
- </T>}
65
- </>:$(t.message,E,[r.messageText,{color:o.primaryBlack}],r.highlight,h?void 0:4)}
66
- </T>
68
+
69
+ <T style={o.cardFooterRow}>
70
+ <T style={o.footerLeft}>
71
+ <T style={o.cardDateRow}>
72
+ <Ue color={r.grayTextWeak}size={10}/>
73
+ <E style={o.cardDateText}numberOfLines={1}>
74
+ {X(C.timestamp)}
75
+ </E>
76
+ </T>
67
77
 
68
-
69
- <T style={r.cardFooter}>
70
- <T style={r.footerLeft}>
71
- <Ee color={o.grayTextWeak}size={11}/>
72
- <I style={r.footerTime}>{j(t.timestamp)}</I>
73
- {u&&<>
74
- <T style={r.footerDot}/>
75
- <N onPress={y=>{y.stopPropagation?.(),Q(u.rawFilePath||u.fullPath||u.fileName,u.lineNumber,u.columnNumber)}}hitSlop={8}style={r.callerPill}>
76
- {u.fileExt&&u.fileExt!=="other"&&<T style={[r.extBadge,{backgroundColor:u.fileExt==="tsx"||u.fileExt==="ts"?`${o.brandPurple}22`:`${o.teal600}22`}]}>
77
- <I style={[r.extBadgeText,{color:u.fileExt==="tsx"||u.fileExt==="ts"?o.brandPurple:o.teal600}]}>
78
- {u.fileExt.toUpperCase()}
79
- </I>
78
+ {I&&<K onPress={S=>{S.stopPropagation?.(),q(I.rawFilePath||I.fullPath||I.fileName,I.lineNumber,I.columnNumber)}}hitSlop={8}style={o.callerChip}>
79
+ {I.fileExt&&I.fileExt!=="other"&&<T style={[o.extBadge,{backgroundColor:I.fileExt==="tsx"||I.fileExt==="ts"?`${r.brandPurple}22`:`${r.teal600}22`}]}>
80
+ <E style={[o.extBadgeText,{color:I.fileExt==="tsx"||I.fileExt==="ts"?r.brandPurple:r.teal600}]}>
81
+ {I.fileExt.toUpperCase()}
82
+ </E>
80
83
  </T>}
81
- <I style={r.callerFileName}numberOfLines={1}ellipsizeMode="middle">
82
- {u.fileName}
83
- {u.lineNumber?`:${u.lineNumber}`:""}
84
- </I>
85
- <_ color={o.sky600}size={8.5}/>
86
- </N>
87
- </>}
84
+ <E style={o.callerChipText}numberOfLines={1}ellipsizeMode="middle">
85
+ {I.display}
86
+ </E>
87
+ <Ie color={r.sky600}size={8}/>
88
+ </K>}
89
+ </T>
90
+
91
+ <T style={o.footerRight}>
92
+ {x&&<T style={o.metaStatChip}>
93
+ <We color={r.purple}size={8.5}/>
94
+ <E style={o.metaStatText}>
95
+ {_(x.data)}
96
+ </E>
97
+ </T>}
98
+
99
+ {k&&<T style={[o.chip,{backgroundColor:`${r.skyBlue}15`,borderColor:`${r.skyBlue}30`}]}>
100
+ <E style={[o.chipText,{color:r.skyBlue}]}>
101
+ {L("console.analyticsBadge")||"ANALYTICS"}
102
+ </E>
103
+ </T>}
104
+ </T>
88
105
  </T>
89
106
 
90
- {R&&<T style={r.footerRight}>
91
- <T style={[r.footerBadge,{backgroundColor:`${o.skyBlue}15`,borderColor:`${o.skyBlue}30`}]}>
92
- <I style={[r.footerBadgeText,{color:o.skyBlue}]}>
93
- {S("console.analyticsBadge")}
94
- </I>
95
- </T>
96
- </T>}
107
+
108
+ <T style={[o.bottomAccentBar,{backgroundColor:`${h.border}35`}]}/>
97
109
  </T>
98
- </N>
99
- </T>});const r=K.create({container:{paddingHorizontal:10,paddingVertical:3.5},card:{alignSelf:"stretch",borderRadius:11,borderWidth:1,borderColor:o.grayBorderSecondary,borderLeftWidth:3.5,paddingHorizontal:12,paddingTop:10,paddingBottom:9,backgroundColor:o.white,shadowColor:o.black,shadowOpacity:.04,shadowRadius:3,shadowOffset:{width:0,height:1.5},elevation:1.5},cardPressed:{opacity:.88,transform:[{scale:.995}]},cardHeader:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:6,gap:8},headerLeft:{flexDirection:"row",alignItems:"center",flexWrap:"wrap",gap:6,flex:1},idBadge:{paddingHorizontal:6,paddingVertical:2,borderRadius:6,backgroundColor:`${o.slate500}12`,borderWidth:1,borderColor:`${o.slate500}22`},idBadgeText:{fontFamily:b.interBold,fontSize:10,color:o.grayTextWeak,letterSpacing:.2},headerRight:{flexDirection:"row",alignItems:"center",gap:6},typeChip:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:7,paddingVertical:2.5,borderRadius:6},typeDot:{width:5,height:5,borderRadius:2.5},typeChipText:{fontFamily:b.interBold,fontSize:9.5,letterSpacing:.5},metaChip:{paddingHorizontal:6,paddingVertical:2,borderRadius:6,borderWidth:1},metaChipText:{fontFamily:b.interBold,fontSize:9.5,letterSpacing:.2},cardBody:{paddingVertical:2},messageText:{fontFamily:b.interMedium,fontSize:12.5,color:o.primaryBlack,lineHeight:18},highlight:{backgroundColor:o.yellowHighlight,color:o.primaryBlack,borderRadius:2},jsonPreviewContainer:{marginTop:6,backgroundColor:o.grayBackground,borderRadius:8,borderWidth:1,borderColor:o.grayBorderSecondary,borderLeftWidth:3,borderLeftColor:o.teal600,paddingHorizontal:10,paddingVertical:7},jsonPreviewText:{fontFamily:b.interRegular,fontSize:11,color:o.primaryBlack,lineHeight:16},expandToggle:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:4,marginTop:5,paddingVertical:3,borderTopWidth:1,borderTopColor:o.dividerColor},expandToggleText:{fontFamily:b.interBold,fontSize:10.5,color:o.purple},cardFooter:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginTop:7,paddingTop:6,borderTopWidth:1,borderTopColor:`${o.dividerColor}88`,gap:6},footerLeft:{flexDirection:"row",alignItems:"center",gap:5,flex:1,flexWrap:"wrap"},footerRight:{flexDirection:"row",alignItems:"center",gap:4},footerDot:{width:3,height:3,borderRadius:1.5,backgroundColor:o.grayTextWeak,opacity:.6},footerId:{fontFamily:b.interBold,fontSize:10,color:o.grayTextWeak},footerTime:{fontFamily:b.interMedium,fontSize:10,color:o.grayTextWeak,letterSpacing:.1},callerPill:{flexDirection:"row",alignItems:"center",gap:4,maxWidth:185,backgroundColor:`${o.sky600}10`,borderColor:`${o.sky600}2B`,borderWidth:1,borderRadius:5,paddingHorizontal:5,paddingVertical:1.5},extBadge:{borderRadius:3,paddingHorizontal:3.5,paddingVertical:.5},extBadgeText:{fontFamily:b.interBold,fontSize:8},callerFileName:{fontFamily:b.interBold,color:o.sky600,fontSize:9.5},footerBadge:{paddingHorizontal:6,paddingVertical:1.5,borderRadius:5,borderWidth:1},footerBadgeText:{fontFamily:b.interBold,fontSize:9},prefixTag:{flexDirection:"row",alignItems:"center",gap:3.5,paddingHorizontal:6.5,paddingVertical:2,borderRadius:5,borderWidth:1},prefixTagText:{fontFamily:b.interBold,fontSize:9.5,letterSpacing:.3}});
110
+ </Te>
111
+ </T>});const o=Y.create({container:{paddingHorizontal:8,paddingVertical:4,height:148,justifyContent:"center"},card:{height:140,alignSelf:"stretch",borderRadius:10,overflow:"hidden",borderWidth:1,borderColor:r.dividerColor,shadowColor:r.shadowColorString},cardBody:{height:"100%",paddingHorizontal:12,paddingTop:10,paddingBottom:8,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22},cardHeaderLeft:{flexDirection:"row",alignItems:"center",flex:1,marginRight:8,gap:6,minWidth:0,overflow:"hidden"},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:0},serialNumber:{fontFamily:B.interBold,color:r.grayTextWeak,fontSize:10},methodBadge:{paddingHorizontal:7,paddingVertical:2.5,borderRadius:5,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:B.interBold,fontSize:9.5,lineHeight:12,letterSpacing:.5,color:r.white},chip:{paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1},chipText:{fontFamily:B.interBold,fontSize:9,lineHeight:12},dupBadge:{backgroundColor:`${r.purple}14`,borderColor:`${r.purple}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},dupBadgeText:{fontFamily:B.interBold,fontSize:8.5,color:r.purple},statusPill:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:7,paddingVertical:2.5,borderRadius:6,borderWidth:1,flexShrink:0},statusPillText:{fontFamily:B.interBold,fontSize:10,lineHeight:13},messageBox:{backgroundColor:r.grayBackground,borderRadius:7,borderWidth:1,borderColor:r.dividerColor,paddingHorizontal:10,paddingVertical:6,height:68,minHeight:68,maxHeight:68,justifyContent:"center",gap:2,overflow:"hidden"},messageText:{fontFamily:B.interMedium,fontSize:12,color:r.primaryBlack,lineHeight:17},highlight:{backgroundColor:r.yellowHighlight,color:r.primaryBlack,borderRadius:2},jsonPreviewRow:{flexDirection:"column",justifyContent:"center",gap:2},jsonPreviewText:{fontFamily:B.interMedium,fontSize:11,color:r.teal700,lineHeight:15},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:6},footerLeft:{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0},cardDateRow:{flexDirection:"row",alignItems:"center",gap:3.5},cardDateText:{fontFamily:B.interRegular,fontSize:10,lineHeight:13,color:r.slate400},callerChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:r.skySoftBg,borderColor:r.skySoftBorder,borderWidth:1,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,flexShrink:1,minWidth:0},extBadge:{borderRadius:3,paddingHorizontal:3,paddingVertical:.5},extBadgeText:{fontFamily:B.interBold,fontSize:7.5},callerChipText:{color:r.skySoftText,fontSize:9,lineHeight:12,fontFamily:B.interBold},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:r.violetSoftBg,borderColor:r.violetSoftBorder,borderWidth:1,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4},metaStatText:{fontFamily:B.interBold,color:r.violetSoftText,fontSize:9,lineHeight:12},prefixTag:{flexDirection:"row",alignItems:"center",gap:2.5,paddingHorizontal:5,paddingVertical:1.5,borderRadius:3.5,borderWidth:1},prefixTagText:{fontFamily:B.interBold,fontSize:8.5,letterSpacing:.3},bottomAccentBar:{height:2.5,width:"100%",borderRadius:1.5,marginTop:2}});export default ConsoleLogCard;
@@ -1,8 +1,12 @@
1
1
  import React from 'react';
2
- interface EndOfListFooterProps {
2
+ export interface EndOfListFooterProps {
3
3
  count?: number;
4
+ totalCount?: number;
4
5
  label?: string;
5
6
  message?: string;
7
+ hasMore?: boolean;
8
+ onLoadMore?: () => void;
9
+ loadMoreStep?: number;
6
10
  }
7
11
  export declare const EndOfListFooter: React.FC<EndOfListFooterProps>;
8
12
  export default EndOfListFooter;
@@ -1,15 +1,37 @@
1
- import B from"react";import{Platform as V,StyleSheet as v,Text as T,View as C}from"react-native";import{AppColors as e}from"../styles/AppColors";import{AppFonts as S}from"../styles/AppFonts";import{CheckIcon as L}from"./NetworkIcons";export const EndOfListFooter=B.memo(({count:w,label:b,message:k="You've reached the end of the list"})=><C style={o.container}>
2
- <C style={o.dividerLine}/>
3
- <C style={o.badgePill}>
4
- <C style={o.iconCircle}>
5
- <L color={e.purple}size={8}/>
6
- </C>
7
- <T style={o.messageText}>{k}</T>
8
- {w!=null&&w>0&&<C style={o.countBadge}>
9
- <T style={o.countText}>
10
- {w} {b?w===1?b.replace(/s$/,""):b:""}
1
+ import $ from"react";import{Platform as H,StyleSheet as j,Text as B,View as T}from"react-native";import{AppColors as o}from"../styles/AppColors";import{AppFonts as V}from"../styles/AppFonts";import{CheckIcon as A,ChevronIcon as D}from"./NetworkIcons";import E from"./TouchableScale";import{useTranslation as Y}from"../i18n";export const EndOfListFooter=$.memo(({count:C,totalCount:S,label:M="items",message:O,hasMore:F=!1,onLoadMore:z,loadMoreStep:v=10})=>{const{t:I}=Y(),L=O??I("footer.endOfList","You've reached the end of the list"),W=F||S!=null&&C!=null&&C<S&&!!z,P=S!=null&&C!=null?Math.max(0,S-C):v,R=Math.min(P||v,v);if(W&&z)return<T style={e.container}>
2
+ <T style={e.dividerLine}/>
3
+ <T style={e.loadMoreContainer}>
4
+ <E onPress={z}hitSlop={6}style={e.loadMoreBtn}>
5
+ <T style={e.loadMoreIconWrap}>
6
+ <D color={o.white}size={9}direction="down"/>
11
7
  </T>
12
- </C>}
13
- </C>
14
- <C style={o.dividerLine}/>
15
- </C>);const o=v.create({container:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingHorizontal:16,paddingTop:16,paddingBottom:V.OS==="ios"?44:32,gap:8},dividerLine:{flex:1,height:1,backgroundColor:e.dividerColor,opacity:.7},badgePill:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:5,borderRadius:999,backgroundColor:e.primaryLight,borderWidth:1,borderColor:e.grayBorderSecondary,shadowColor:e.black,shadowOffset:{width:0,height:1},shadowOpacity:.04,shadowRadius:2,elevation:1},iconCircle:{width:14,height:14,borderRadius:7,backgroundColor:`${e.purple}18`,alignItems:"center",justifyContent:"center"},messageText:{fontFamily:S.interMedium,fontSize:11,color:e.grayTextWeak,letterSpacing:.1},countBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:6,backgroundColor:e.grayBackground,borderWidth:1,borderColor:e.grayBorderSecondary},countText:{fontFamily:S.interBold,fontSize:9.5,color:e.grayTextStrong}});export default EndOfListFooter;
8
+ <B style={e.loadMoreBtnText}>
9
+ {I("footer.loadMore",{count:R,defaultValue:`Load ${R} More`})}
10
+ </B>
11
+ {S!=null&&C!=null&&<T style={e.loadMoreCountBadge}>
12
+ <B style={e.loadMoreCountText}>
13
+ {C}/{S}
14
+ </B>
15
+ </T>}
16
+ </E>
17
+ {S!=null&&C!=null&&<B style={e.loadMoreSubtitle}>
18
+ {I("footer.showingOf",{count:C,total:S,label:M,defaultValue:`Showing ${C} of ${S} ${M}`})}
19
+ </B>}
20
+ </T>
21
+ <T style={e.dividerLine}/>
22
+ </T>;const k=C??S;return<T style={e.container}>
23
+ <T style={e.dividerLine}/>
24
+ <T style={e.badgePill}>
25
+ <T style={e.iconCircle}>
26
+ <A color={o.purple}size={8}/>
27
+ </T>
28
+ <B style={e.messageText}>{L}</B>
29
+ {k!=null&&k>0&&<T style={e.countBadge}>
30
+ <B style={e.countText}>
31
+ {k}{" "}
32
+ {M?k===1?M.replace(/s$/,""):M:""}
33
+ </B>
34
+ </T>}
35
+ </T>
36
+ <T style={e.dividerLine}/>
37
+ </T>});const e=j.create({container:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingHorizontal:16,paddingTop:14,paddingBottom:H.OS==="ios"?40:28,gap:8},dividerLine:{flex:1,height:1,backgroundColor:o.dividerColor,opacity:.7},loadMoreContainer:{alignItems:"center",gap:5},loadMoreBtn:{flexDirection:"row",alignItems:"center",backgroundColor:o.brandPurple,paddingVertical:6,paddingHorizontal:12,borderRadius:20,gap:6,shadowColor:o.brandPurple,shadowOffset:{width:0,height:2},shadowOpacity:.25,shadowRadius:4,elevation:2,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.2)"},loadMoreIconWrap:{width:15,height:15,borderRadius:7.5,backgroundColor:"rgba(255, 255, 255, 0.25)",alignItems:"center",justifyContent:"center"},loadMoreBtnText:{fontFamily:V.interBold,fontSize:11,color:o.white,letterSpacing:.2},loadMoreCountBadge:{backgroundColor:"rgba(255, 255, 255, 0.2)",paddingHorizontal:5,paddingVertical:1,borderRadius:10},loadMoreCountText:{fontFamily:V.interBold,fontSize:9.5,color:o.white},loadMoreSubtitle:{fontFamily:V.interMedium,fontSize:10,color:o.grayTextWeak,letterSpacing:.1},badgePill:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:5,borderRadius:999,backgroundColor:o.primaryLight,borderWidth:1,borderColor:o.grayBorderSecondary,shadowColor:o.black,shadowOffset:{width:0,height:1},shadowOpacity:.04,shadowRadius:2,elevation:1},iconCircle:{width:14,height:14,borderRadius:7,backgroundColor:`${o.purple}18`,alignItems:"center",justifyContent:"center"},messageText:{fontFamily:V.interMedium,fontSize:11,color:o.grayTextWeak,letterSpacing:.1},countBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:6,backgroundColor:o.grayBackground,borderWidth:1,borderColor:o.grayBorderSecondary},countText:{fontFamily:V.interBold,fontSize:9.5,color:o.grayTextStrong}});export default EndOfListFooter;