react-native-inapp-inspector 2.3.25 → 2.4.1
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.md +26 -5
- package/dist/commonjs/components/AnalyticsDetail.js +9 -6
- package/dist/commonjs/components/AppHeaderLogo.js +4 -6
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +1 -1
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +18 -22
- package/dist/commonjs/components/Inspector/ConsoleTab.js +13 -16
- package/dist/commonjs/components/Inspector/CrashDetail.js +7 -6
- package/dist/commonjs/components/Inspector/CrashTab.js +23 -23
- package/dist/commonjs/components/Inspector/DebuggingTab.js +6 -6
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +77 -43
- package/dist/commonjs/components/Inspector/FabLauncher.js +8 -9
- package/dist/commonjs/components/Inspector/InspectorHeader.js +93 -70
- package/dist/commonjs/components/Inspector/LogDetail.js +10 -7
- package/dist/commonjs/components/Inspector/MainScreen.js +67 -29
- package/dist/commonjs/components/Inspector/NetworkDetail.js +29 -28
- package/dist/commonjs/components/Inspector/NetworkFilterModal.js +1 -1
- package/dist/commonjs/components/Inspector/NetworkTab.js +87 -85
- package/dist/commonjs/components/Inspector/PushCard.d.ts +4 -0
- package/dist/commonjs/components/Inspector/PushCard.js +89 -0
- package/dist/commonjs/components/Inspector/PushDetail.d.ts +4 -0
- package/dist/commonjs/components/Inspector/PushDetail.js +190 -0
- package/dist/commonjs/components/Inspector/PushTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/PushTab.js +45 -0
- package/dist/commonjs/components/Inspector/ReduxDetail.js +16 -13
- package/dist/commonjs/components/Inspector/ReduxTab.js +18 -28
- package/dist/commonjs/components/Inspector/SettingsPanel.js +253 -105
- package/dist/commonjs/components/Inspector/StorageTab.js +40 -40
- package/dist/commonjs/components/Inspector/TabBar.js +9 -8
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +2 -2
- package/dist/commonjs/components/JsonViewer.js +77 -90
- package/dist/commonjs/components/LogCard.js +9 -6
- package/dist/commonjs/components/ModuleErrorBoundary.d.ts +24 -0
- package/dist/commonjs/components/ModuleErrorBoundary.js +33 -0
- package/dist/commonjs/components/NetworkIcons.d.ts +3 -3
- package/dist/commonjs/components/NetworkIcons.js +10 -6
- package/dist/commonjs/components/SegmentedTabs.d.ts +4 -1
- package/dist/commonjs/components/SegmentedTabs.js +12 -8
- package/dist/commonjs/components/ShareButton.d.ts +11 -0
- package/dist/commonjs/components/ShareButton.js +6 -0
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/crashHandler.js +4 -4
- package/dist/commonjs/customHooks/networkLogger.js +1 -1
- package/dist/commonjs/customHooks/pushNotificationLogger.d.ts +19 -0
- package/dist/commonjs/customHooks/pushNotificationLogger.js +1 -0
- package/dist/commonjs/helpers/memoryManager.d.ts +2 -1
- package/dist/commonjs/helpers/memoryManager.js +1 -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 +13 -0
- package/dist/commonjs/helpers/shareFormatter.js +7 -0
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/index.d.ts +5 -2
- package/dist/commonjs/index.js +4 -4
- package/dist/commonjs/push.d.ts +4 -0
- package/dist/commonjs/push.js +1 -0
- package/dist/commonjs/types/enums.d.ts +30 -0
- package/dist/commonjs/types/enums.js +1 -1
- package/dist/commonjs/types/index.d.ts +10 -0
- package/dist/commonjs/types/interfaces.d.ts +63 -7
- package/dist/esm/components/AnalyticsDetail.js +28 -25
- package/dist/esm/components/AppHeaderLogo.js +5 -7
- package/dist/esm/components/Inspector/AnalyticsFilterModal.js +14 -14
- package/dist/esm/components/Inspector/AnalyticsTab.js +36 -40
- package/dist/esm/components/Inspector/ConsoleTab.js +52 -55
- package/dist/esm/components/Inspector/CrashDetail.js +11 -10
- package/dist/esm/components/Inspector/CrashTab.js +23 -23
- package/dist/esm/components/Inspector/DebuggingTab.js +10 -10
- package/dist/esm/components/Inspector/DeviceInfoTab.js +208 -174
- package/dist/esm/components/Inspector/FabLauncher.js +41 -42
- package/dist/esm/components/Inspector/InspectorHeader.js +138 -115
- package/dist/esm/components/Inspector/LogDetail.js +24 -21
- package/dist/esm/components/Inspector/MainScreen.js +100 -62
- package/dist/esm/components/Inspector/NetworkDetail.js +88 -87
- package/dist/esm/components/Inspector/NetworkFilterModal.js +8 -8
- package/dist/esm/components/Inspector/NetworkTab.js +136 -134
- package/dist/esm/components/Inspector/PushCard.d.ts +4 -0
- package/dist/esm/components/Inspector/PushCard.js +89 -0
- package/dist/esm/components/Inspector/PushDetail.d.ts +4 -0
- package/dist/esm/components/Inspector/PushDetail.js +190 -0
- package/dist/esm/components/Inspector/PushTab.d.ts +3 -0
- package/dist/esm/components/Inspector/PushTab.js +45 -0
- package/dist/esm/components/Inspector/ReduxDetail.js +40 -37
- package/dist/esm/components/Inspector/ReduxTab.js +109 -119
- package/dist/esm/components/Inspector/SettingsPanel.js +406 -258
- package/dist/esm/components/Inspector/StorageTab.js +174 -174
- package/dist/esm/components/Inspector/TabBar.js +28 -27
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +1 -1
- package/dist/esm/components/JsonViewer.js +101 -114
- package/dist/esm/components/LogCard.js +25 -22
- package/dist/esm/components/ModuleErrorBoundary.d.ts +24 -0
- package/dist/esm/components/ModuleErrorBoundary.js +33 -0
- package/dist/esm/components/NetworkIcons.d.ts +3 -3
- package/dist/esm/components/NetworkIcons.js +7 -3
- package/dist/esm/components/SegmentedTabs.d.ts +4 -1
- package/dist/esm/components/SegmentedTabs.js +12 -8
- package/dist/esm/components/ShareButton.d.ts +11 -0
- package/dist/esm/components/ShareButton.js +6 -0
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/crashHandler.js +6 -6
- package/dist/esm/customHooks/networkLogger.js +1 -1
- package/dist/esm/customHooks/pushNotificationLogger.d.ts +19 -0
- package/dist/esm/customHooks/pushNotificationLogger.js +1 -0
- package/dist/esm/helpers/memoryManager.d.ts +2 -1
- package/dist/esm/helpers/memoryManager.js +1 -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 +13 -0
- package/dist/esm/helpers/shareFormatter.js +7 -0
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/index.d.ts +5 -2
- package/dist/esm/index.js +7 -7
- package/dist/esm/push.d.ts +4 -0
- package/dist/esm/push.js +1 -0
- package/dist/esm/types/enums.d.ts +30 -0
- package/dist/esm/types/enums.js +1 -1
- package/dist/esm/types/index.d.ts +10 -0
- package/dist/esm/types/interfaces.d.ts +63 -7
- package/package.json +53 -10
- package/src/native/NativeInspector.ts +0 -1
- package/dist/commonjs/components/BrandSquareIcon.d.ts +0 -5
- package/dist/commonjs/components/BrandSquareIcon.js +0 -112
- package/dist/esm/components/BrandSquareIcon.d.ts +0 -5
- package/dist/esm/components/BrandSquareIcon.js +0 -112
|
@@ -1,188 +1,189 @@
|
|
|
1
|
-
import{useMemo as Qe,useState as
|
|
2
|
-
<
|
|
1
|
+
import{useMemo as Qe,useState as G,useEffect as Re,useRef as yo}from"react";import{Alert as O,Animated as Fe,DevSettings as He,Platform as Xe,ScrollView as M,StyleSheet as Ye,Text as S,TextInput as Co,View as C}from"react-native";import So,{Path as Ze}from"react-native-svg";import{animateNextLayout as ie,useInspector as ko}from"./InspectorContext";import V from"../TouchableScale";import To from"../Slider";import{toggleGlobalTheme as Vo}from"../../styles";import{AppColors as e}from"../../styles/AppColors";import{AppFonts as x}from"../../styles/AppFonts";import{calculateRamBasedLimits as Bo}from"../../helpers/settingsStore";import{clearNetworkLogs as zo}from"../../customHooks/networkLogger";import{clearConsoleLogs as Ro}from"../../customHooks/consoleLogger";import{clearAnalyticsEvents as Fo}from"../../customHooks/analyticsLogger";import{clearCrashRecords as Ho}from"../../customHooks/crashHandler";import{isReduxConnected as Io}from"../../customHooks/reduxLogger";import{isAnalyticsConnected as vo}from"../../customHooks/analyticsLogger";import{useTranslation as Do}from"../../i18n";import{SignalIcon as Cr,TerminalIcon as Sr,AnalyticsIcon as Tr,SettingsIcon as Po,SunIcon as $o,MoonIcon as Lo,ScreenIcon as Vr,MotionIcon as Wo,LayersIcon as Q,EyeIcon as Ie,CheckIcon as U,TrashIcon as E,PackageIcon as Ao,ReduxIcon as Br,CrashIcon as Oo,ShieldAlertIcon as Rr,ForwardChevronIcon as Mo,ChevronDownIcon as Eo,BrainIcon as Fr,SmartphoneIcon as No,DatabaseIcon as Go,QrCodeIcon as Uo,FilmIcon as Hr,ScreencastIcon as Jo,CameraIcon as Ce,VideoCameraIcon as Ir,MicrophoneIcon as Dr,GifIcon as Pr,ImageIcon as $r,BellIcon as Lr}from"../NetworkIcons";import{ScreenCapture as ve}from"../../capture";import{triggerNativeHaptic as H}from"../../native/NativeInspector";import{isLocalDebugEnvironment as Ko}from"../../helpers";import{showToast as R}from"../../helpers/toast";import{pruneAllLogs as _o}from"../../helpers/memoryManager";const Qo=()=>{const{t:w}=Do(),{settingsPage:A,setSettingsPage:De,settingsActiveSubTab:q,setSettingsActiveSubTab:Wr,tabVisibility:T,toggleTabVisibility:Ar,defaultTab:J,setDefaultTab:Or,isDark:_,setIsDark:Mr,modalHeightPercent:X,setModalHeightPercent:Er,modalAnimationType:Nr,setModalAnimationType:Gr,showDuplicateLogs:we,setShowDuplicateLogs:jr,showUpdateToast:xe,setShowUpdateToast:Ur,showConsoleLevels:qr,setShowConsoleLevels:Jr,closeModal:Kr,logs:Pe,consoleLogs:$e,analyticsEvents:Le,reduxState:We,maxConsoleLogs:Se,setMaxConsoleLogs:_r,maxAnalyticsEventsLimit:Ae,setMaxAnalyticsEventsLimit:Qr,isAutoRamLimitEnabled:I,setIsAutoRamLimitEnabled:Xr,deviceFreeRamMb:ke,reduxAutoRefresh:Te,setReduxAutoRefreshState:Yr,reduxExpandDepth:Oe,setReduxExpandDepth:Zr,setSelected:eo,setSelectedEvent:ro,setReduxState:oo,crashRecords:Me,maxCrashLogs:Ee,setMaxCrashLogs:to,pushRecords:io,maxPushLogs:lo,setMaxPushLogs:ao,clearAllPushLogs:no,simulatePush:Y}=ko(),[Z,Ne]=G(X),[Ve,Ge]=G("PNG"),[P,ee]=G(!0),[je,Ue]=G("Muted"),[qe,Je]=G("30"),[L,re]=G(!0);Re(()=>{Ne(X)},[X]);const oe=Bo(ke),$=Qe(()=>[{id:1,key:"apis",label:"APIs (Network)",category:"core",icon:"apis",desc:"HTTP/HTTPS requests, GraphQL, Axios & WebSocket inspector"},{id:2,key:"logs",label:"Console Logs",category:"core",icon:"logs",desc:"Terminal console logs, warnings, errors & stack traces"},{id:3,key:"analytics",label:"Analytics Logger",category:"telemetry",icon:"analytics",desc:"Firebase & custom analytics events, user properties & params"},{id:4,key:"redux",label:"Redux Inspector",category:"telemetry",icon:"redux",desc:"Store state diffing, action history & reducer timeline"},{id:5,key:"storage",label:"Storage Inspector",category:"telemetry",icon:"storage",desc:"AsyncStorage & MMKV key-value store viewer with full CRUD support"},{id:6,key:"device",label:"Device Info",category:"diagnostic",icon:"device",desc:"Hardware specs, IP address, screen metrics, UDID & runtime stats"},{id:7,key:"crash",label:"Crash Protection",category:"diagnostic",icon:"crash",desc:"Runtime exception guard, breadcrumbs & memory snapshot"},{id:8,key:"debugging",label:"Multi-Device Debugging",category:"diagnostic",icon:"debugging",desc:"QR Code bridge for direct Debug APK download & Metro live-reload sync"},{id:9,key:"media",label:"Screencast",category:"diagnostic",icon:"media",desc:"Screenshots, video recordings, audio narration & animated GIFs"},{id:10,key:"push",label:"Push Notifications",category:"telemetry",icon:"push",desc:"Universal push & local notification logger (Salesforce, FCM, APNs, Braze, Expo)"}].filter(r=>r.key==="debugging"?Xe.OS==="android"&&Ko():!0),[]),[j,Be]=G(()=>({apis:!0,logs:!!T?.logs,analytics:!!T?.analytics,redux:!!T?.redux,storage:!!T?.storage,device:!!T?.device,crash:!!T?.crash,debugging:!!T?.debugging,media:!!(T?.media??!0),push:!!(T?.push??!0)}));Re(()=>{Be({apis:!0,logs:!!T?.logs,analytics:!!T?.analytics,redux:!!T?.redux,storage:!!T?.storage,device:!!T?.device,crash:!!T?.crash,debugging:!!T?.debugging,media:!!(T?.media??!0),push:!!(T?.push??!0)})},[T]);const K=Qe(()=>$.some(r=>!!j[r.key]!=!!T?.[r.key]),[j,T,$]),so=$.filter(r=>r.key==="apis"||!!j[r.key]).length,co=()=>{K&&O.alert("Apply Changes & Reload","Are you sure you want to save module changes? The inspector will close and reload the app to apply the new configuration.",[{text:"Cancel",style:"cancel",onPress:()=>{Be({apis:!0,logs:!!T?.logs,analytics:!!T?.analytics,redux:!!T?.redux,storage:!!T?.storage,device:!!T?.device,crash:!!T?.crash,debugging:!!T?.debugging,media:!!(T?.media??!0),push:!!(T?.push??!0)})}},{text:"Save & Reload",style:"default",onPress:()=>{ie(),$.forEach(r=>{if(r.key!=="apis"){const k=!!j[r.key],D=!!T?.[r.key];k!==D&&Ar(r.key)}}),Kr(),setTimeout(()=>{__DEV__&&He&&He.reload&&He.reload()},350)}}])},[ze,Ke]=G(!1),z=r=><C style={{paddingVertical:12,borderBottomWidth:r.isLast?0:1,borderBottomColor:e.dividerColor}}>
|
|
2
|
+
<V disabled={!r.onPress}onPress={r.onPress}style={{flexDirection:"row",alignItems:"center",gap:12}}>
|
|
3
3
|
<C style={{width:36,height:36,borderRadius:10,backgroundColor:e.purpleShade50,borderWidth:1,borderColor:`${e.purple}2E`,alignItems:"center",justifyContent:"center"}}>
|
|
4
4
|
{r.icon}
|
|
5
5
|
</C>
|
|
6
6
|
<C style={{flex:1}}>
|
|
7
|
-
<S style={{fontFamily:
|
|
7
|
+
<S style={{fontFamily:x.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
|
|
8
8
|
{r.label}
|
|
9
9
|
</S>
|
|
10
|
-
{r.description?<S style={{fontFamily:
|
|
10
|
+
{r.description?<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
11
11
|
{r.description}
|
|
12
12
|
</S>:null}
|
|
13
13
|
</C>
|
|
14
14
|
{r.right||null}
|
|
15
|
-
</
|
|
15
|
+
</V>
|
|
16
16
|
{r.numericInput&&<C style={{marginTop:10,gap:6}}>
|
|
17
17
|
<C style={{flexDirection:"row",alignItems:"center",backgroundColor:e.grayBackground,borderRadius:8,borderWidth:1,borderColor:e.dividerColor,paddingHorizontal:12,paddingVertical:4}}>
|
|
18
|
-
<Co style={{flex:1,fontFamily:
|
|
19
|
-
<S style={{fontFamily:
|
|
18
|
+
<Co style={{flex:1,fontFamily:x.interMedium,fontSize:14,lineHeight:18,color:e.primaryBlack,paddingVertical:6}}value={String(r.numericInput.value||"")}onChangeText={k=>{const D=parseInt(k.replace(/[^0-9]/g,""),10);if(!isNaN(D)){const F=Math.max(r.numericInput?.min??1,Math.min(r.numericInput?.max??1e4,D));r.numericInput?.onChange(F)}}}keyboardType={r.numericInput.keyboardType??"number-pad"}placeholder={r.numericInput.placeholder}placeholderTextColor={e.grayTextWeak}maxLength={6}selectTextOnFocus/>
|
|
19
|
+
<S style={{fontFamily:x.interBold,fontSize:11,color:e.purple,marginLeft:6}}>
|
|
20
20
|
MAX
|
|
21
21
|
</S>
|
|
22
22
|
</C>
|
|
23
|
-
{r.numericInput.min!==void 0||r.numericInput.max!==void 0?<S style={{fontFamily:
|
|
23
|
+
{r.numericInput.min!==void 0||r.numericInput.max!==void 0?<S style={{fontFamily:x.interRegular,fontSize:10,lineHeight:13,color:e.grayTextWeak}}>
|
|
24
24
|
Range: {r.numericInput.min??1} -{" "}
|
|
25
25
|
{r.numericInput.max??"\u221E"}
|
|
26
26
|
</S>:null}
|
|
27
27
|
</C>}
|
|
28
28
|
{r.picker&&<C style={{flexDirection:"row",backgroundColor:e.grayBackground,borderRadius:8,padding:2.5,marginTop:10,borderWidth:1,borderColor:e.dividerColor}}>
|
|
29
|
-
{r.picker.options.map(
|
|
30
|
-
<S style={{fontFamily:
|
|
31
|
-
{r.picker.formatLabel?r.picker.formatLabel(
|
|
29
|
+
{r.picker.options.map(k=>{const D=r.picker.selectedValue===k;return<V key={String(k)}onPress={()=>r.picker.onSelect(k)}style={{flex:1,paddingVertical:6,alignItems:"center",borderRadius:6,backgroundColor:D?e.purple:"transparent"}}>
|
|
30
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:D?e.white:e.grayText}}>
|
|
31
|
+
{r.picker.formatLabel?r.picker.formatLabel(k):k}
|
|
32
32
|
</S>
|
|
33
|
-
</
|
|
33
|
+
</V>})}
|
|
34
34
|
</C>}
|
|
35
|
-
</C>,
|
|
36
|
-
<
|
|
35
|
+
</C>,go=()=><C style={{flex:1,backgroundColor:e.grayBackground}}>
|
|
36
|
+
<M style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:14}}showsVerticalScrollIndicator={!1}>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<C style={{backgroundColor:e.primaryLight,borderRadius:13,paddingVertical:4,paddingHorizontal:4,borderWidth:1,borderColor:e.grayBorderSecondary,shadowColor:e.black,shadowOpacity:.04,shadowRadius:4,shadowOffset:{width:0,height:2}}}>
|
|
40
|
-
<
|
|
41
|
-
{[{key:"module",label:
|
|
42
|
-
<
|
|
43
|
-
<S style={{fontFamily:
|
|
40
|
+
<M horizontal showsHorizontalScrollIndicator={!1}contentContainerStyle={{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:2}}>
|
|
41
|
+
{[{key:"module",label:w("settings.modulesAndTools","Modules & Tools"),Icon:Q,badge:`${$.filter(r=>j?.[r.key]||r.key==="apis").length}/${$.length}`},{key:"ui",label:w("settings.uiPreferences","UI Preferences"),Icon:Vr},{key:"limits",label:w("settings.ramLimits","RAM & Limits"),Icon:Fr},{key:"capture",label:w("settings.screenVideoCapture","Screen & Video Capture"),Icon:Ce}].map(r=>{const k=q===r.key,D=r.Icon;return<V key={r.key}accessible={!0}accessibilityRole="tab"accessibilityLabel={r.label}accessibilityState={{selected:k}}onPress={()=>{ie(),Wr(r.key)}}style={{paddingVertical:8,paddingHorizontal:14,flexDirection:"row",alignItems:"center",justifyContent:"center",gap:6,borderRadius:9,backgroundColor:k?e.purple:"transparent"}}>
|
|
42
|
+
<D color={k?e.white:e.grayText}size={13}/>
|
|
43
|
+
<S style={{fontFamily:x.interBold,fontSize:12.5,lineHeight:16,color:k?e.white:e.grayText}}>
|
|
44
44
|
{r.label}
|
|
45
45
|
</S>
|
|
46
|
-
{r.badge&&<C style={{backgroundColor:
|
|
47
|
-
<S style={{fontFamily:
|
|
46
|
+
{r.badge&&<C style={{backgroundColor:k?"rgba(255,255,255,0.25)":`${e.purple}18`,paddingHorizontal:5.5,paddingVertical:1,borderRadius:10}}>
|
|
47
|
+
<S style={{fontFamily:x.interBold,fontSize:9.5,color:k?e.white:e.purple}}>
|
|
48
48
|
{r.badge}
|
|
49
49
|
</S>
|
|
50
50
|
</C>}
|
|
51
|
-
</
|
|
52
|
-
</
|
|
51
|
+
</V>})}
|
|
52
|
+
</M>
|
|
53
53
|
</C>
|
|
54
54
|
|
|
55
|
-
{
|
|
55
|
+
{q==="module"&&<C style={{gap:12}}>
|
|
56
56
|
|
|
57
57
|
<C style={{gap:10}}>
|
|
58
|
-
{
|
|
58
|
+
{$.map(r=>{const k=Io(),D=vo(),F=r.key==="redux"&&!k||r.key==="analytics"&&!D,W=r.key==="apis"||F,B=r.key==="apis"||!!j?.[r.key]&&!F,po=r.key==="apis"?`${Pe.length} requests`:r.key==="logs"?`${$e.length} logs \u2022 Limit: ${Se}`:r.key==="crash"?`${Me?.length||0} crashes recorded \u2022 Crash Guard`:r.key==="analytics"?`${Le.length} events logged`:r.key==="redux"?`${Object.keys(We||{}).length} slices \u2022 Depth: ${Oe}`:"";return<C key={r.key}style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1.5,borderColor:B?`${e.purple}38`:e.grayBorderSecondary,padding:14,gap:10,shadowColor:e.black,shadowOpacity:B?.04:.02,shadowRadius:5,shadowOffset:{width:0,height:2}}}>
|
|
59
59
|
|
|
60
60
|
<C style={{flexDirection:"row",alignItems:"flex-start",gap:10}}>
|
|
61
61
|
|
|
62
|
-
<
|
|
63
|
-
{r.key==="apis"
|
|
64
|
-
<
|
|
65
|
-
<
|
|
62
|
+
<V accessible={!0}accessibilityRole="checkbox"accessibilityLabel={`Select ${r.label}`}accessibilityState={{checked:B,disabled:W}}disabled={W}onPress={()=>{W||Be(_e=>({..._e,[r.key]:!_e[r.key]}))}}hitSlop={8}style={{width:22,height:22,borderRadius:6,borderWidth:B?0:1.8,borderColor:W?e.dividerColor:e.grayBorderSecondary,backgroundColor:r.key==="apis"?`${e.blue500}22`:B?e.purple:e.grayBackground,alignItems:"center",justifyContent:"center",marginTop:7,shadowColor:B?e.purple:"transparent",shadowOpacity:B?.25:0,shadowRadius:2,elevation:B?2:0}}>
|
|
63
|
+
{r.key==="apis"?<U size={12}color={e.blue500}/>:B?<U size={12}color={e.white}/>:W?<So width={10}height={10}viewBox="0 0 24 24"fill="none">
|
|
64
|
+
<Ze d="M7 10V7a5 5 0 0 1 10 0v3"stroke={e.grayText}strokeWidth="2.2"strokeLinecap="round"/>
|
|
65
|
+
<Ze d="M5 10h14v9a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1z"fill={e.grayText}/>
|
|
66
66
|
</So>:null}
|
|
67
|
-
</
|
|
67
|
+
</V>
|
|
68
68
|
|
|
69
69
|
|
|
70
|
-
<
|
|
70
|
+
<V accessible={!0}accessibilityRole="button"accessibilityLabel={`${r.label} settings`}disabled={F}onPress={()=>{ie(),De(r.key)}}style={{flex:1,flexDirection:"row",alignItems:"flex-start",gap:10}}>
|
|
71
71
|
|
|
72
|
-
<C style={{width:36,height:36,borderRadius:10,backgroundColor:
|
|
73
|
-
{r.icon==="apis"&&<
|
|
74
|
-
{r.icon==="logs"&&<
|
|
75
|
-
{r.icon==="crash"&&<
|
|
76
|
-
{r.icon==="analytics"&&<
|
|
77
|
-
{r.icon==="redux"&&<
|
|
78
|
-
{r.icon==="device"&&<
|
|
79
|
-
{r.icon==="storage"&&<
|
|
80
|
-
{r.icon==="debugging"&&<
|
|
81
|
-
{r.icon==="media"&&<
|
|
72
|
+
<C style={{width:36,height:36,borderRadius:10,backgroundColor:W?`${e.grayBorderSecondary}4D`:B?`${e.purple}14`:e.grayBackground,borderWidth:1,borderColor:W?e.dividerColor:B?`${e.purple}33`:e.grayBorderSecondary,alignItems:"center",justifyContent:"center",marginTop:1}}>
|
|
73
|
+
{r.icon==="apis"&&<Cr color={B?e.purple:e.grayTextWeak}size={16}/>}
|
|
74
|
+
{r.icon==="logs"&&<Sr color={B?e.purple:e.grayTextWeak}size={16}/>}
|
|
75
|
+
{r.icon==="crash"&&<Oo color={B?e.purple:e.grayTextWeak}size={16}/>}
|
|
76
|
+
{r.icon==="analytics"&&<Tr color={B?e.purple:e.grayTextWeak}size={16}/>}
|
|
77
|
+
{r.icon==="redux"&&<Br color={B?e.purple:e.grayTextWeak}size={16}/>}
|
|
78
|
+
{r.icon==="device"&&<No color={B?e.purple:e.grayTextWeak}size={16}/>}
|
|
79
|
+
{r.icon==="storage"&&<Go color={B?e.purple:e.grayTextWeak}size={16}/>}
|
|
80
|
+
{r.icon==="debugging"&&<Uo color={B?e.purple:e.grayTextWeak}size={16}/>}
|
|
81
|
+
{r.icon==="media"&&<Jo color={B?e.purple:e.grayTextWeak}size={16}/>}
|
|
82
|
+
{r.icon==="push"&&<Lr color={B?e.purple:e.grayTextWeak}size={16}/>}
|
|
82
83
|
</C>
|
|
83
84
|
|
|
84
85
|
|
|
85
86
|
<C style={{flex:1,gap:2}}>
|
|
86
87
|
<C style={{flexDirection:"row",alignItems:"center",gap:6,flexWrap:"wrap"}}>
|
|
87
88
|
<C style={{minWidth:22,height:22,paddingHorizontal:5,borderRadius:11,backgroundColor:B?`${e.purple}1C`:`${e.grayBorderSecondary}80`,borderWidth:1,borderColor:B?`${e.purple}44`:e.grayBorderSecondary,alignItems:"center",justifyContent:"center"}}>
|
|
88
|
-
<S style={{fontFamily:
|
|
89
|
+
<S style={{fontFamily:x.interBold,fontSize:10,lineHeight:13,color:B?e.purple:e.grayText}}>
|
|
89
90
|
#{r.id}
|
|
90
91
|
</S>
|
|
91
92
|
</C>
|
|
92
|
-
<S style={{fontFamily:
|
|
93
|
+
<S style={{fontFamily:x.interBold,fontSize:14,lineHeight:18,color:W?e.grayText:e.primaryBlack}}>
|
|
93
94
|
{r.label}
|
|
94
95
|
</S>
|
|
95
96
|
|
|
96
97
|
|
|
97
|
-
{r.key===
|
|
98
|
+
{r.key===J&&!F&&<C style={{flexDirection:"row",alignItems:"center",backgroundColor:`${e.purple}14`,borderRadius:12,paddingHorizontal:5,paddingVertical:1.5,borderWidth:1,borderColor:`${e.purple}2E`,gap:3}}>
|
|
98
99
|
<C style={{width:4,height:4,borderRadius:2,backgroundColor:e.purple}}/>
|
|
99
|
-
<S style={{fontFamily:
|
|
100
|
-
{
|
|
100
|
+
<S style={{fontFamily:x.interBold,fontSize:8,lineHeight:11,color:e.purple,letterSpacing:.4}}>
|
|
101
|
+
{w("settings.defaultBadge")}
|
|
101
102
|
</S>
|
|
102
103
|
</C>}
|
|
103
104
|
|
|
104
105
|
|
|
105
106
|
{r.key==="apis"?<C style={{backgroundColor:`${e.blue500}14`,borderRadius:4,paddingHorizontal:5,paddingVertical:1.5,borderWidth:1,borderColor:`${e.blue500}33`}}>
|
|
106
|
-
<S style={{fontFamily:
|
|
107
|
-
{
|
|
107
|
+
<S style={{fontFamily:x.interBold,fontSize:8,lineHeight:11,color:e.blue500,letterSpacing:.3}}>
|
|
108
|
+
{w("settings.coreBadge")}
|
|
108
109
|
</S>
|
|
109
|
-
</C>:
|
|
110
|
-
<S style={{fontFamily:
|
|
111
|
-
{r.key==="redux"?
|
|
110
|
+
</C>:F?<C style={{backgroundColor:`${e.amber500}18`,borderRadius:4,paddingHorizontal:5,paddingVertical:1.5,borderWidth:1,borderColor:`${e.amber500}35`}}>
|
|
111
|
+
<S style={{fontFamily:x.interBold,fontSize:8,lineHeight:11,color:e.amber700,letterSpacing:.3}}>
|
|
112
|
+
{r.key==="redux"?w("settings.notConnectedBadge"):w("settings.notDetectedBadge")}
|
|
112
113
|
</S>
|
|
113
114
|
</C>:B?<C style={{backgroundColor:`${e.liveGreen}18`,borderRadius:4,paddingHorizontal:5,paddingVertical:1.5,borderWidth:1,borderColor:`${e.liveGreen}38`}}>
|
|
114
|
-
<S style={{fontFamily:
|
|
115
|
-
{
|
|
115
|
+
<S style={{fontFamily:x.interBold,fontSize:8,lineHeight:11,color:e.green700,letterSpacing:.3}}>
|
|
116
|
+
{w("settings.activeBadge")}
|
|
116
117
|
</S>
|
|
117
118
|
</C>:<C style={{backgroundColor:`${e.grayTextWeak}18`,borderRadius:4,paddingHorizontal:5,paddingVertical:1.5,borderWidth:1,borderColor:`${e.grayTextWeak}2E`}}>
|
|
118
|
-
<S style={{fontFamily:
|
|
119
|
-
{
|
|
119
|
+
<S style={{fontFamily:x.interBold,fontSize:8,lineHeight:11,color:e.grayTextWeak,letterSpacing:.3}}>
|
|
120
|
+
{w("settings.dormantBadge")}
|
|
120
121
|
</S>
|
|
121
122
|
</C>}
|
|
122
123
|
</C>
|
|
123
124
|
|
|
124
|
-
<S style={{fontFamily:
|
|
125
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,color:e.grayText,lineHeight:15,marginTop:1}}>
|
|
125
126
|
{r.desc}
|
|
126
127
|
</S>
|
|
127
128
|
</C>
|
|
128
|
-
</
|
|
129
|
+
</V>
|
|
129
130
|
</C>
|
|
130
131
|
|
|
131
132
|
|
|
132
|
-
{!
|
|
133
|
+
{!F&&<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingTop:8,borderTopWidth:1,borderTopColor:e.dividerColor}}>
|
|
133
134
|
|
|
134
135
|
<C style={{flexDirection:"row",alignItems:"center",gap:6,flex:1}}>
|
|
135
136
|
<C style={{width:6,height:6,borderRadius:3,backgroundColor:B?e.liveGreen:e.grayTextWeak}}/>
|
|
136
|
-
<S style={{fontFamily:
|
|
137
|
-
{
|
|
137
|
+
<S style={{fontFamily:x.interMedium,fontSize:11,color:e.grayText,lineHeight:14}}>
|
|
138
|
+
{po}
|
|
138
139
|
</S>
|
|
139
140
|
</C>
|
|
140
141
|
|
|
141
142
|
|
|
142
|
-
<
|
|
143
|
-
<
|
|
144
|
-
<S style={{fontFamily:
|
|
145
|
-
{
|
|
143
|
+
<V accessible={!0}accessibilityRole="button"accessibilityLabel={`Configure ${r.label} settings`}onPress={()=>{ie(),De(r.key)}}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:`${e.purple}12`,paddingHorizontal:10,paddingVertical:5,borderRadius:8,borderWidth:1,borderColor:`${e.purple}26`}}>
|
|
144
|
+
<Po color={e.purple}size={11}/>
|
|
145
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.purple}}>
|
|
146
|
+
{w("settings.configure")}
|
|
146
147
|
</S>
|
|
147
|
-
<
|
|
148
|
-
</
|
|
148
|
+
<Mo color={e.purple}size={9}/>
|
|
149
|
+
</V>
|
|
149
150
|
</C>}
|
|
150
151
|
</C>})}
|
|
151
152
|
</C>
|
|
152
153
|
</C>}
|
|
153
154
|
|
|
154
|
-
{
|
|
155
|
+
{q==="ui"&&<C style={{gap:14}}>
|
|
155
156
|
|
|
156
157
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
|
|
157
|
-
<S style={{fontFamily:
|
|
158
|
-
{
|
|
158
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
|
|
159
|
+
{w("settings.appearanceTheme")}
|
|
159
160
|
</S>
|
|
160
161
|
|
|
161
162
|
<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
|
|
162
163
|
<C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
|
|
163
164
|
<C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
164
|
-
{
|
|
165
|
+
{_?<$o color={e.purple}size={15}/>:<Lo color={e.purple}size={15}/>}
|
|
165
166
|
</C>
|
|
166
167
|
<C style={{flex:1}}>
|
|
167
|
-
<S style={{fontFamily:
|
|
168
|
-
{
|
|
168
|
+
<S style={{fontFamily:x.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
|
|
169
|
+
{w("settings.general.darkMode")}
|
|
169
170
|
</S>
|
|
170
|
-
<S style={{fontFamily:
|
|
171
|
-
{
|
|
171
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
172
|
+
{w("settings.general.darkModeDescription")}
|
|
172
173
|
</S>
|
|
173
174
|
</C>
|
|
174
175
|
</C>
|
|
175
176
|
|
|
176
|
-
<
|
|
177
|
+
<V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle Dark Theme"accessibilityState={{checked:_}}onPress={()=>{const r=!_;Mr(r),Vo(r)}}style={{width:42,height:24,borderRadius:12,backgroundColor:_?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:_?"flex-end":"flex-start"}}>
|
|
177
178
|
<C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
|
|
178
|
-
</
|
|
179
|
+
</V>
|
|
179
180
|
</C>
|
|
180
181
|
</C>
|
|
181
182
|
|
|
182
183
|
|
|
183
184
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:14}}>
|
|
184
|
-
<S style={{fontFamily:
|
|
185
|
-
{
|
|
185
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
|
|
186
|
+
{w("settings.windowLayout")}
|
|
186
187
|
</S>
|
|
187
188
|
|
|
188
189
|
|
|
@@ -190,28 +191,28 @@ import{useMemo as Qe,useState as We,useEffect as Ae,useRef as ro}from"react";imp
|
|
|
190
191
|
<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:10}}>
|
|
191
192
|
<C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
|
|
192
193
|
<C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
193
|
-
<
|
|
194
|
+
<Vr color={e.purple}size={15}/>
|
|
194
195
|
</C>
|
|
195
196
|
<C style={{flex:1}}>
|
|
196
|
-
<S style={{fontFamily:
|
|
197
|
-
{
|
|
197
|
+
<S style={{fontFamily:x.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
|
|
198
|
+
{w("settings.general.modalHeight")}
|
|
198
199
|
</S>
|
|
199
|
-
<S style={{fontFamily:
|
|
200
|
-
{
|
|
200
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
201
|
+
{w("settings.general.modalHeightDescription")}
|
|
201
202
|
</S>
|
|
202
203
|
</C>
|
|
203
204
|
</C>
|
|
204
205
|
|
|
205
|
-
{X
|
|
206
|
-
|
|
207
|
-
<S style={{fontFamily:
|
|
208
|
-
Save ({
|
|
206
|
+
{Z!==X&&<V onPress={()=>{Er(Z)}}style={{flexDirection:"row",alignItems:"center",gap:5,backgroundColor:e.purple,paddingHorizontal:10,paddingVertical:5,borderRadius:7,shadowColor:e.purple,shadowOffset:{width:0,height:1},shadowOpacity:.28,shadowRadius:2,elevation:2}}>
|
|
207
|
+
<U size={11}color={e.white}/>
|
|
208
|
+
<S style={{fontFamily:x.interBold,fontSize:11,color:e.white}}>
|
|
209
|
+
Save ({Z}%)
|
|
209
210
|
</S>
|
|
210
|
-
</
|
|
211
|
+
</V>}
|
|
211
212
|
</C>
|
|
212
213
|
|
|
213
214
|
<C style={{marginTop:6}}>
|
|
214
|
-
<
|
|
215
|
+
<To value={Z}onValueChange={Ne}min={50}max={90}step={5}quickPresets={[50,60,70,80,90]}formatLabel={r=>`${Math.round(r)}%`}/>
|
|
215
216
|
</C>
|
|
216
217
|
</C>
|
|
217
218
|
|
|
@@ -221,116 +222,116 @@ import{useMemo as Qe,useState as We,useEffect as Ae,useRef as ro}from"react";imp
|
|
|
221
222
|
<C style={{gap:8}}>
|
|
222
223
|
<C style={{flexDirection:"row",alignItems:"center",gap:10}}>
|
|
223
224
|
<C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
224
|
-
<
|
|
225
|
+
<Wo color={e.purple}size={15}/>
|
|
225
226
|
</C>
|
|
226
227
|
<C style={{flex:1}}>
|
|
227
|
-
<S style={{fontFamily:
|
|
228
|
-
{
|
|
228
|
+
<S style={{fontFamily:x.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
|
|
229
|
+
{w("settings.general.modalAnimation")}
|
|
229
230
|
</S>
|
|
230
|
-
<S style={{fontFamily:
|
|
231
|
-
{
|
|
231
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
232
|
+
{w("settings.general.modalAnimationDescription")}
|
|
232
233
|
</S>
|
|
233
234
|
</C>
|
|
234
235
|
</C>
|
|
235
236
|
|
|
236
237
|
<C style={{flexDirection:"row",backgroundColor:e.grayBackground,borderRadius:10,padding:3,borderWidth:1,borderColor:e.dividerColor}}>
|
|
237
|
-
{[{key:"slide",label:"Slide Up"},{key:"fade",label:"Fade"},{key:"none",label:"None"}].map(r=>{const
|
|
238
|
-
<S style={{fontFamily:
|
|
238
|
+
{[{key:"slide",label:"Slide Up"},{key:"fade",label:"Fade"},{key:"none",label:"None"}].map(r=>{const k=Nr===r.key;return<V key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Set transition animation to ${r.label}`}accessibilityState={{selected:k}}onPress={()=>Gr(r.key)}style={{flex:1,paddingVertical:7,alignItems:"center",borderRadius:8,backgroundColor:k?e.purple:"transparent"}}>
|
|
239
|
+
<S style={{fontFamily:x.interBold,fontSize:11.5,lineHeight:15,color:k?e.white:e.grayText}}>
|
|
239
240
|
{r.label}
|
|
240
241
|
</S>
|
|
241
|
-
</
|
|
242
|
+
</V>})}
|
|
242
243
|
</C>
|
|
243
244
|
</C>
|
|
244
245
|
</C>
|
|
245
246
|
|
|
246
247
|
|
|
247
248
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
|
|
248
|
-
<S style={{fontFamily:
|
|
249
|
-
{
|
|
249
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
|
|
250
|
+
{w("settings.startupDefault")}
|
|
250
251
|
</S>
|
|
251
252
|
|
|
252
253
|
<C style={{flexDirection:"row",alignItems:"center",gap:10}}>
|
|
253
254
|
<C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
254
|
-
<
|
|
255
|
+
<Q color={e.purple}size={15}/>
|
|
255
256
|
</C>
|
|
256
257
|
<C style={{flex:1}}>
|
|
257
|
-
<S style={{fontFamily:
|
|
258
|
-
{
|
|
258
|
+
<S style={{fontFamily:x.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
|
|
259
|
+
{w("settings.general.defaultOpeningTab")}
|
|
259
260
|
</S>
|
|
260
|
-
<S style={{fontFamily:
|
|
261
|
-
{
|
|
261
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
262
|
+
{w("settings.general.defaultOpeningTabDesc")}
|
|
262
263
|
</S>
|
|
263
264
|
</C>
|
|
264
265
|
</C>
|
|
265
266
|
|
|
266
267
|
|
|
267
268
|
<C style={{marginTop:6,gap:6}}>
|
|
268
|
-
<
|
|
269
|
+
<V accessible={!0}accessibilityRole="button"accessibilityLabel={`Default opening tab: ${$.find(r=>r.key===J)?.label||"APIs"}`}onPress={()=>Ke(r=>!r)}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:e.grayBackground,borderRadius:10,borderWidth:1.5,borderColor:ze?e.purple:e.grayBorderSecondary,paddingHorizontal:14,paddingVertical:11}}>
|
|
269
270
|
<C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
|
|
270
271
|
<C style={{width:8,height:8,borderRadius:4,backgroundColor:e.purple}}/>
|
|
271
|
-
<S style={{fontFamily:
|
|
272
|
-
{
|
|
272
|
+
<S style={{fontFamily:x.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
|
|
273
|
+
{$.find(r=>r.key===J)?`#${$.find(r=>r.key===J)?.id} ${$.find(r=>r.key===J)?.label}`:"#1 APIs (Network)"}
|
|
273
274
|
</S>
|
|
274
275
|
<C style={{backgroundColor:`${e.purple}14`,paddingHorizontal:6,paddingVertical:1.5,borderRadius:6}}>
|
|
275
|
-
<S style={{fontFamily:
|
|
276
|
+
<S style={{fontFamily:x.interBold,fontSize:8.5,color:e.purple}}>
|
|
276
277
|
DEFAULT
|
|
277
278
|
</S>
|
|
278
279
|
</C>
|
|
279
280
|
</C>
|
|
280
281
|
|
|
281
|
-
<C style={{transform:[{rotate:
|
|
282
|
-
<
|
|
282
|
+
<C style={{transform:[{rotate:ze?"180deg":"0deg"}]}}>
|
|
283
|
+
<Eo color={e.grayText}size={15}/>
|
|
283
284
|
</C>
|
|
284
|
-
</
|
|
285
|
+
</V>
|
|
285
286
|
|
|
286
287
|
|
|
287
|
-
{
|
|
288
|
-
{
|
|
288
|
+
{ze&&<C style={{backgroundColor:e.primaryLight,borderRadius:10,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",shadowColor:e.black,shadowOpacity:.08,shadowRadius:6,shadowOffset:{width:0,height:3},elevation:4}}>
|
|
289
|
+
{$.filter(r=>r.key==="apis"||j?.[r.key]||T?.[r.key]).map((r,k,D)=>{const F=J===r.key,W=k===D.length-1;return<V key={r.key}accessible={!0}accessibilityRole="button"accessibilityLabel={`Select ${r.label} as default tab`}onPress={()=>{Or(r.key),Ke(!1)}}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:14,paddingVertical:11,backgroundColor:F?`${e.purple}0F`:"transparent",borderBottomWidth:W?0:1,borderBottomColor:e.dividerColor}}>
|
|
289
290
|
<C style={{flexDirection:"row",alignItems:"center",gap:10}}>
|
|
290
|
-
<C style={{width:6,height:6,borderRadius:3,backgroundColor:
|
|
291
|
-
<S style={{fontFamily:
|
|
291
|
+
<C style={{width:6,height:6,borderRadius:3,backgroundColor:F?e.purple:e.grayTextWeak}}/>
|
|
292
|
+
<S style={{fontFamily:F?x.interBold:x.interMedium,fontSize:13,color:F?e.purple:e.primaryBlack}}>
|
|
292
293
|
#{r.id} {r.label}
|
|
293
294
|
</S>
|
|
294
295
|
</C>
|
|
295
|
-
{
|
|
296
|
-
</
|
|
296
|
+
{F&&<U size={14}color={e.purple}/>}
|
|
297
|
+
</V>})}
|
|
297
298
|
</C>}
|
|
298
299
|
</C>
|
|
299
300
|
</C>
|
|
300
301
|
|
|
301
302
|
|
|
302
303
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
|
|
303
|
-
<S style={{fontFamily:
|
|
304
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
|
|
304
305
|
NOTIFICATIONS & TOASTS
|
|
305
306
|
</S>
|
|
306
307
|
|
|
307
308
|
<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
|
|
308
309
|
<C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1,marginRight:10}}>
|
|
309
310
|
<C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
310
|
-
<
|
|
311
|
+
<Ao color={e.purple}size={15}/>
|
|
311
312
|
</C>
|
|
312
313
|
<C style={{flex:1}}>
|
|
313
|
-
<S style={{fontFamily:
|
|
314
|
+
<S style={{fontFamily:x.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
|
|
314
315
|
NPM Update Toast
|
|
315
316
|
</S>
|
|
316
|
-
<S style={{fontFamily:
|
|
317
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
317
318
|
Show a floating toast banner with countdown progress when
|
|
318
319
|
a newer release is published on npm.
|
|
319
320
|
</S>
|
|
320
321
|
</C>
|
|
321
322
|
</C>
|
|
322
323
|
|
|
323
|
-
<
|
|
324
|
+
<V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle NPM Update Toast"accessibilityState={{checked:xe}}onPress={()=>Ur(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:xe?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:xe?"flex-end":"flex-start"}}>
|
|
324
325
|
<C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
|
|
325
|
-
</
|
|
326
|
+
</V>
|
|
326
327
|
</C>
|
|
327
328
|
</C>
|
|
328
329
|
</C>}
|
|
329
330
|
|
|
330
|
-
{
|
|
331
|
+
{q==="limits"&&<C style={{gap:14}}>
|
|
331
332
|
|
|
332
333
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
|
|
333
|
-
<S style={{fontFamily:
|
|
334
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
|
|
334
335
|
DEVICE MEMORY & AUTO PROFILES
|
|
335
336
|
</S>
|
|
336
337
|
|
|
@@ -338,42 +339,42 @@ import{useMemo as Qe,useState as We,useEffect as Ae,useRef as ro}from"react";imp
|
|
|
338
339
|
<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
|
|
339
340
|
<C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
|
|
340
341
|
<C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
341
|
-
<
|
|
342
|
+
<Fr color={e.purple}size={16}/>
|
|
342
343
|
</C>
|
|
343
344
|
<C style={{flex:1}}>
|
|
344
|
-
<S style={{fontFamily:
|
|
345
|
+
<S style={{fontFamily:x.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
|
|
345
346
|
Auto-Calculate Limits from RAM
|
|
346
347
|
</S>
|
|
347
|
-
<S style={{fontFamily:
|
|
348
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
348
349
|
Dynamically sets log limits according to available device
|
|
349
350
|
memory
|
|
350
351
|
</S>
|
|
351
352
|
</C>
|
|
352
353
|
</C>
|
|
353
354
|
|
|
354
|
-
<
|
|
355
|
+
<V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle auto RAM limit calculation"accessibilityState={{checked:I}}onPress={()=>Xr(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:I?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:I?"flex-end":"flex-start"}}>
|
|
355
356
|
<C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
|
|
356
|
-
</
|
|
357
|
+
</V>
|
|
357
358
|
</C>
|
|
358
359
|
|
|
359
360
|
<C style={{height:1,backgroundColor:e.dividerColor}}/>
|
|
360
361
|
|
|
361
362
|
|
|
362
363
|
<C style={{flexDirection:"row",alignItems:"center",gap:10}}>
|
|
363
|
-
<C style={{width:32,height:32,borderRadius:8,backgroundColor:
|
|
364
|
-
<
|
|
364
|
+
<C style={{width:32,height:32,borderRadius:8,backgroundColor:I?`${e.purple}14`:e.grayBackground,alignItems:"center",justifyContent:"center"}}>
|
|
365
|
+
<Cr color={I?e.purple:e.grayTextWeak}size={15}/>
|
|
365
366
|
</C>
|
|
366
367
|
<C style={{flex:1}}>
|
|
367
|
-
<S style={{fontFamily:
|
|
368
|
+
<S style={{fontFamily:x.interBold,fontSize:13.5,lineHeight:18,color:I?e.primaryBlack:e.grayText}}>
|
|
368
369
|
Detected Available RAM
|
|
369
370
|
</S>
|
|
370
|
-
<S style={{fontFamily:
|
|
371
|
-
{
|
|
371
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
372
|
+
{ke} MB available on device
|
|
372
373
|
</S>
|
|
373
374
|
</C>
|
|
374
|
-
<C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:
|
|
375
|
-
<S style={{fontFamily:
|
|
376
|
-
{
|
|
375
|
+
<C style={{paddingHorizontal:10,paddingVertical:5,borderRadius:8,backgroundColor:I?`${e.purple}12`:e.grayBackground,borderWidth:1,borderColor:I?`${e.purple}26`:e.dividerColor}}>
|
|
376
|
+
<S style={{fontFamily:x.interBold,fontSize:12,lineHeight:15,color:I?e.purple:e.grayText}}>
|
|
377
|
+
{ke} MB
|
|
377
378
|
</S>
|
|
378
379
|
</C>
|
|
379
380
|
</C>
|
|
@@ -381,22 +382,22 @@ import{useMemo as Qe,useState as We,useEffect as Ae,useRef as ro}from"react";imp
|
|
|
381
382
|
|
|
382
383
|
<C style={{marginTop:4,paddingTop:8,borderTopWidth:1,borderTopColor:e.dividerColor,gap:6}}>
|
|
383
384
|
<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
|
|
384
|
-
<S style={{fontFamily:
|
|
385
|
-
Profile: {
|
|
385
|
+
<S style={{fontFamily:x.interBold,fontSize:11.5,lineHeight:15,color:e.purple}}>
|
|
386
|
+
Profile: {oe.profileName}
|
|
386
387
|
</S>
|
|
387
|
-
<C style={{backgroundColor:
|
|
388
|
-
<S style={{fontFamily:
|
|
389
|
-
{
|
|
388
|
+
<C style={{backgroundColor:I?`${e.emerald500}18`:`${e.purple}18`,paddingHorizontal:7,paddingVertical:2.5,borderRadius:4}}>
|
|
389
|
+
<S style={{fontFamily:x.interBold,fontSize:9.5,color:I?e.emerald500:e.purple}}>
|
|
390
|
+
{I?"AUTO-TUNED":"MANUAL"}
|
|
390
391
|
</S>
|
|
391
392
|
</C>
|
|
392
393
|
</C>
|
|
393
394
|
|
|
394
395
|
<C style={{flexDirection:"row",flexWrap:"wrap",gap:8,marginTop:4}}>
|
|
395
|
-
{[{label:"
|
|
396
|
-
<S style={{fontFamily:
|
|
396
|
+
{[{label:"Logs",value:I?oe.maxConsoleLogs:Se,color:e.sky500},{label:"Analytics",value:I?oe.maxAnalyticsEvents:Ae,color:e.purple},{label:"Crash",value:I?oe.maxCrashRecords:Ee,color:e.errorColor}].map(r=><C key={r.label}style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${r.color}14`,borderWidth:1,borderColor:`${r.color}33`}}>
|
|
397
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,lineHeight:14,color:r.color}}>
|
|
397
398
|
{r.label}:
|
|
398
399
|
</S>
|
|
399
|
-
<S style={{fontFamily:
|
|
400
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,lineHeight:14,color:r.color}}>
|
|
400
401
|
{r.value} max
|
|
401
402
|
</S>
|
|
402
403
|
</C>)}
|
|
@@ -406,25 +407,25 @@ import{useMemo as Qe,useState as We,useEffect as Ae,useRef as ro}from"react";imp
|
|
|
406
407
|
|
|
407
408
|
|
|
408
409
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:14,gap:12}}>
|
|
409
|
-
<S style={{fontFamily:
|
|
410
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
|
|
410
411
|
LOW MEMORY PRESSURE PROTECTION
|
|
411
412
|
</S>
|
|
412
413
|
|
|
413
414
|
<C style={{flexDirection:"row",alignItems:"center",gap:10}}>
|
|
414
415
|
<C style={{width:32,height:32,borderRadius:8,backgroundColor:`${e.emerald500}14`,alignItems:"center",justifyContent:"center"}}>
|
|
415
|
-
<
|
|
416
|
+
<Rr color={e.emerald500}size={15}/>
|
|
416
417
|
</C>
|
|
417
418
|
<C style={{flex:1}}>
|
|
418
|
-
<S style={{fontFamily:
|
|
419
|
+
<S style={{fontFamily:x.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
|
|
419
420
|
OS Memory Warning Guard
|
|
420
421
|
</S>
|
|
421
|
-
<S style={{fontFamily:
|
|
422
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
422
423
|
Automatically prunes in-memory buffers by 50% when the OS
|
|
423
424
|
signals low memory
|
|
424
425
|
</S>
|
|
425
426
|
</C>
|
|
426
427
|
<C style={{paddingHorizontal:8,paddingVertical:3,borderRadius:6,backgroundColor:`${e.emerald500}18`}}>
|
|
427
|
-
<S style={{fontFamily:
|
|
428
|
+
<S style={{fontFamily:x.interBold,fontSize:10,color:e.emerald500}}>
|
|
428
429
|
ACTIVE
|
|
429
430
|
</S>
|
|
430
431
|
</C>
|
|
@@ -435,240 +436,387 @@ import{useMemo as Qe,useState as We,useEffect as Ae,useRef as ro}from"react";imp
|
|
|
435
436
|
|
|
436
437
|
<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:10}}>
|
|
437
438
|
<C style={{flex:1}}>
|
|
438
|
-
<S style={{fontFamily:
|
|
439
|
+
<S style={{fontFamily:x.interBold,fontSize:13,color:e.primaryBlack}}>
|
|
439
440
|
Manual Memory Cleanup
|
|
440
441
|
</S>
|
|
441
|
-
<S style={{fontFamily:
|
|
442
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,color:e.grayText,marginTop:1}}>
|
|
442
443
|
Prune older entries across all log stores and free RAM
|
|
443
444
|
</S>
|
|
444
445
|
</C>
|
|
445
|
-
<
|
|
446
|
-
<
|
|
447
|
-
<S style={{fontFamily:
|
|
446
|
+
<V onPress={()=>{const r=_o("manual",.5);R(`Pruned ${r.totalPruned} items from memory`)}}style={{backgroundColor:e.purple,paddingHorizontal:12,paddingVertical:8,borderRadius:8,flexDirection:"row",alignItems:"center",gap:5}}>
|
|
447
|
+
<E size={13}color={e.white}/>
|
|
448
|
+
<S style={{fontFamily:x.interBold,fontSize:11.5,color:e.white}}>
|
|
448
449
|
Prune Now
|
|
449
450
|
</S>
|
|
450
|
-
</
|
|
451
|
+
</V>
|
|
451
452
|
</C>
|
|
452
453
|
</C>
|
|
453
454
|
</C>}
|
|
454
|
-
{
|
|
455
|
+
{q==="capture"&&<C style={{gap:12}}>
|
|
455
456
|
|
|
456
457
|
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
|
|
457
458
|
<C style={{flexDirection:"row",alignItems:"center",gap:10}}>
|
|
458
459
|
<C style={{width:36,height:36,borderRadius:10,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
459
|
-
<
|
|
460
|
+
<Ce color={e.purple}size={16}/>
|
|
460
461
|
</C>
|
|
461
462
|
<C style={{flex:1}}>
|
|
462
|
-
<S style={{fontFamily:
|
|
463
|
-
{
|
|
463
|
+
<S style={{fontFamily:x.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
|
|
464
|
+
{w("settings.media.screenshotCardTitle","Screenshot Capture Settings")}
|
|
464
465
|
</S>
|
|
465
|
-
<S style={{fontFamily:
|
|
466
|
-
{
|
|
466
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
467
|
+
{w("settings.media.screenshotCardDesc","Image encoding format, compression quality and overlay auto-hide")}
|
|
467
468
|
</S>
|
|
468
469
|
</C>
|
|
469
470
|
</C>
|
|
470
471
|
|
|
471
|
-
{
|
|
472
|
-
{["PNG","JPEG","WEBP"].map(r
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
472
|
+
{z({icon:<$r color={e.purple}size={16}/>,label:w("settings.media.imageFormat","Image Format"),description:w("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
|
|
473
|
+
{["PNG","JPEG","WEBP"].map(r=>{const k=Ve===r;return<V key={r}onPress={()=>{H("light"),Ge(r),R(`Screenshot format: ${r}`)}}style={{paddingHorizontal:9,paddingVertical:5,borderRadius:7,backgroundColor:k?e.purple:`${e.purple}14`,borderWidth:1,borderColor:k?e.purple:`${e.purple}2E`}}>
|
|
474
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,color:k?e.white:e.purple}}>
|
|
475
|
+
{r}
|
|
476
|
+
</S>
|
|
477
|
+
</V>})}
|
|
477
478
|
</C>})}
|
|
478
479
|
|
|
479
|
-
{
|
|
480
|
-
<S style={{fontFamily:
|
|
481
|
-
{
|
|
480
|
+
{z({icon:<Ie color={e.purple}size={16}/>,label:w("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:w("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{H("light"),ee(r=>!r),R(`Auto-hide overlay: ${P?"OFF":"ON"}`)},right:<V onPress={()=>{H("light"),ee(r=>!r),R(`Auto-hide overlay: ${P?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:P?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:P?`${e.emerald500}4D`:`${e.grayText}33`}}>
|
|
481
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,color:P?e.emerald500:e.grayText}}>
|
|
482
|
+
{P?w("settings.media.enabled","ON"):"OFF"}
|
|
482
483
|
</S>
|
|
483
|
-
</
|
|
484
|
+
</V>})}
|
|
484
485
|
</C>
|
|
485
486
|
|
|
486
487
|
|
|
487
488
|
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
|
|
488
489
|
<C style={{flexDirection:"row",alignItems:"center",gap:10}}>
|
|
489
490
|
<C style={{width:36,height:36,borderRadius:10,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
490
|
-
<
|
|
491
|
+
<Ir color={e.purple}size={16}/>
|
|
491
492
|
</C>
|
|
492
493
|
<C style={{flex:1}}>
|
|
493
|
-
<S style={{fontFamily:
|
|
494
|
-
{
|
|
494
|
+
<S style={{fontFamily:x.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
|
|
495
|
+
{w("settings.media.videoCardTitle","Video Recording & GIF Conversion")}
|
|
495
496
|
</S>
|
|
496
|
-
<S style={{fontFamily:
|
|
497
|
-
{
|
|
497
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
498
|
+
{w("settings.media.videoCardDesc","ReplayKit hardware encoding, frame capture fallback and GIF generation")}
|
|
498
499
|
</S>
|
|
499
500
|
</C>
|
|
500
501
|
</C>
|
|
501
502
|
|
|
502
|
-
{
|
|
503
|
-
{["Muted","App","Mic"].map(
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
503
|
+
{z({icon:<Dr color={e.purple}size={16}/>,label:w("settings.media.audioMode","Audio Source"),description:w("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
|
|
504
|
+
{["Muted","App","Mic"].map(r=>{const k=je===r;return<V key={r}onPress={()=>{H("light"),Ue(r),R(`Audio source: ${r}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:k?e.purple:`${e.purple}14`,borderWidth:1,borderColor:k?e.purple:`${e.purple}2E`}}>
|
|
505
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,color:k?e.white:e.purple}}>
|
|
506
|
+
{r}
|
|
507
|
+
</S>
|
|
508
|
+
</V>})}
|
|
508
509
|
</C>})}
|
|
509
510
|
|
|
510
|
-
{
|
|
511
|
-
{["15","24","30","60"].map(r
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
511
|
+
{z({icon:<Hr color={e.purple}size={16}/>,label:w("settings.media.frameRate","Recording Frame Rate (FPS)"),description:w("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
|
|
512
|
+
{["15","24","30","60"].map(r=>{const k=qe===r;return<V key={r}onPress={()=>{H("light"),Je(r),R(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:k?e.purple:`${e.purple}14`,borderWidth:1,borderColor:k?e.purple:`${e.purple}2E`}}>
|
|
513
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,color:k?e.white:e.purple}}>
|
|
514
|
+
{r}fps
|
|
515
|
+
</S>
|
|
516
|
+
</V>})}
|
|
516
517
|
</C>})}
|
|
517
518
|
|
|
518
|
-
{
|
|
519
|
-
<S style={{fontFamily:
|
|
520
|
-
ON
|
|
519
|
+
{z({icon:<Pr color={e.purple}size={16}/>,label:w("settings.media.gifAutoOpt","Auto GIF Optimization"),description:w("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{H("light"),re(r=>!r),R(`GIF optimization: ${L?"OFF":"ON"}`)},right:<V onPress={()=>{H("light"),re(r=>!r),R(`GIF optimization: ${L?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:L?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:L?`${e.emerald500}4D`:`${e.grayText}33`}}>
|
|
520
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,color:L?e.emerald500:e.grayText}}>
|
|
521
|
+
{L?"ON":"OFF"}
|
|
521
522
|
</S>
|
|
522
|
-
</
|
|
523
|
+
</V>})}
|
|
523
524
|
</C>
|
|
524
525
|
|
|
525
526
|
|
|
526
527
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
|
|
527
|
-
{
|
|
528
|
-
<S style={{fontFamily:
|
|
529
|
-
{
|
|
528
|
+
{z({icon:<E color={e.errorColor}size={16}/>,label:w("settings.media.purgeAll","Purge Captured Media Cache"),description:w("settings.media.purgeAllDesc","Delete all local screenshots, screen recordings and converted GIFs"),isLast:!0,onPress:()=>{O.alert(w("settings.media.purgeConfirmTitle","Purge Media Storage?"),w("settings.media.purgeConfirmMessage","This will permanently delete all captured screenshots and videos from disk."),[{text:w("common.cancel","Cancel"),style:"cancel"},{text:w("settings.media.purgeCacheBtn","Purge All"),style:"destructive",onPress:async()=>{await ve.clearAllMedia(),R(w("settings.media.purgedSuccess","Media cache cleared successfully"))}}])},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
|
|
529
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
|
|
530
|
+
{w("settings.media.purgeCacheBtn","Purge All")}
|
|
530
531
|
</S>
|
|
531
532
|
</C>})}
|
|
532
533
|
</C>
|
|
533
534
|
</C>}
|
|
534
535
|
<C style={{height:48}}/>
|
|
535
|
-
</
|
|
536
|
+
</M>
|
|
536
537
|
|
|
537
538
|
|
|
538
|
-
{
|
|
539
|
+
{q==="module"&&<C style={{paddingHorizontal:16,paddingTop:12,paddingBottom:Xe.OS==="ios"?36:24,backgroundColor:e.primaryLight,borderTopWidth:1,borderTopColor:e.dividerColor,flexDirection:"row",alignItems:"center",gap:12,shadowColor:e.black,shadowOpacity:.08,shadowRadius:8,shadowOffset:{width:0,height:-3},elevation:8}}>
|
|
539
540
|
<C style={{flex:1}}>
|
|
540
|
-
<S style={{fontFamily:
|
|
541
|
-
{
|
|
541
|
+
<S style={{fontFamily:x.interBold,fontSize:13,lineHeight:17,color:e.primaryBlack}}>
|
|
542
|
+
{so} of {$.length} Modules Active
|
|
542
543
|
</S>
|
|
543
|
-
<S style={{fontFamily:
|
|
544
|
-
{
|
|
544
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:K?e.purple:e.grayText,marginTop:1}}>
|
|
545
|
+
{w(K?"settings.unsavedPending":"settings.allSynchronized")}
|
|
545
546
|
</S>
|
|
546
547
|
</C>
|
|
547
548
|
|
|
548
|
-
<
|
|
549
|
-
|
|
550
|
-
<S style={{fontFamily:
|
|
551
|
-
{
|
|
549
|
+
<V accessible={!0}accessibilityRole="button"accessibilityLabel="Save Changes"onPress={co}style={{flexDirection:"row",alignItems:"center",gap:6,backgroundColor:K?e.purple:`${e.purple}22`,paddingHorizontal:18,paddingVertical:10,borderRadius:10}}>
|
|
550
|
+
<U size={14}color={K?e.white:e.purple}/>
|
|
551
|
+
<S style={{fontFamily:x.interBold,fontSize:13,lineHeight:17,color:K?e.white:e.purple}}>
|
|
552
|
+
{w("settings.saveChanges")}
|
|
552
553
|
</S>
|
|
553
|
-
</
|
|
554
|
+
</V>
|
|
554
555
|
</C>}
|
|
555
|
-
</C>;let N=null
|
|
556
|
-
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary}}>
|
|
557
|
-
{R({icon:<Z color={e.purple}size={16}/>,label:x("settings.apis.maxRequestLogs"),description:x("settings.apis.maxRequestLogsDescription"),numericInput:{value:ze,onChange:Or,min:10,max:100,placeholder:"Enter max requests (10-100)"},isLast:!0})}
|
|
558
|
-
</C>
|
|
556
|
+
</C>;let N=null;A==="apis"?N=<M style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
|
|
559
557
|
|
|
560
558
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
|
|
561
|
-
{
|
|
562
|
-
<S style={{fontFamily:
|
|
563
|
-
{
|
|
559
|
+
{z({icon:<E color={e.errorColor}size={16}/>,label:w("settings.apis.clearNetworkLogs"),description:w("settings.apis.clearNetworkLogsDescription",{count:Pe.length}),isLast:!0,onPress:()=>{zo(),eo(null),O.alert(w("common.success"),w("settings.apis.networkLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
|
|
560
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
|
|
561
|
+
{w("common.clear")}
|
|
564
562
|
</S>
|
|
565
563
|
</C>})}
|
|
566
564
|
</C>
|
|
567
565
|
<C style={{height:48}}/>
|
|
568
|
-
</
|
|
566
|
+
</M>:A==="logs"?N=<M style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
|
|
569
567
|
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
|
|
570
|
-
{
|
|
568
|
+
{z({icon:<Sr color={e.purple}size={16}/>,label:w("settings.logs.maxConsoleLogs"),description:w("settings.logs.maxConsoleLogsDescription"),numericInput:{value:Se,onChange:_r,min:10,max:100,placeholder:"Enter max logs (10-100)"}})}
|
|
571
569
|
<C style={{height:1,backgroundColor:e.dividerColor}}/>
|
|
572
|
-
<S style={{fontFamily:
|
|
573
|
-
{
|
|
570
|
+
<S style={{fontFamily:x.interBold,fontSize:13,lineHeight:17,color:e.primaryBlack,paddingTop:6}}>
|
|
571
|
+
{w("settings.logs.logLevels")}
|
|
574
572
|
</S>
|
|
575
|
-
{["info","warn","error"].map(r=>{const
|
|
576
|
-
{
|
|
573
|
+
{["info","warn","error"].map(r=>{const k=qr?.[r],D=r==="error"?e.errorColor:r==="warn"?e.warningIconGold:e.skyBlue,F=w(r==="info"?"settings.logs.showInfo":r==="warn"?"settings.logs.showWarn":"settings.logs.showError"),W=w(r==="info"?"settings.logs.showInfoDesc":r==="warn"?"settings.logs.showWarnDesc":"settings.logs.showErrorDesc");return z({icon:<C style={{width:12,height:12,borderRadius:6,backgroundColor:D}}/>,label:F,description:W,isLast:r==="error",onPress:()=>Jr(B=>({...B,[r]:!B[r]})),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:k?e.purple:e.grayTextWeak,backgroundColor:k?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
|
|
574
|
+
{k&&<U size={12}color={e.purple}/>}
|
|
577
575
|
</C>})})}
|
|
578
576
|
</C>
|
|
579
577
|
|
|
580
578
|
|
|
581
579
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,overflow:"hidden",padding:16,gap:14}}>
|
|
582
|
-
<S style={{fontFamily:
|
|
583
|
-
{
|
|
580
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.grayTextWeak,letterSpacing:.8}}>
|
|
581
|
+
{w("settings.logFiltersDeduplication")}
|
|
584
582
|
</S>
|
|
585
583
|
|
|
586
584
|
|
|
587
585
|
<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}}>
|
|
588
586
|
<C style={{flexDirection:"row",alignItems:"center",gap:10,flex:1}}>
|
|
589
587
|
<C style={{width:32,height:32,borderRadius:8,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
590
|
-
<
|
|
588
|
+
<Ie color={e.purple}size={15}/>
|
|
591
589
|
</C>
|
|
592
590
|
<C style={{flex:1}}>
|
|
593
|
-
<S style={{fontFamily:
|
|
594
|
-
{
|
|
591
|
+
<S style={{fontFamily:x.interBold,fontSize:13.5,lineHeight:18,color:e.primaryBlack}}>
|
|
592
|
+
{w("settings.general.duplicateLogs")}
|
|
595
593
|
</S>
|
|
596
|
-
<S style={{fontFamily:
|
|
597
|
-
{
|
|
594
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
595
|
+
{w("settings.general.duplicateLogsDescription")}
|
|
598
596
|
</S>
|
|
599
597
|
</C>
|
|
600
598
|
</C>
|
|
601
599
|
|
|
602
|
-
<
|
|
600
|
+
<V accessible={!0}accessibilityRole="switch"accessibilityLabel="Toggle show duplicate logs"accessibilityState={{checked:we}}onPress={()=>jr(r=>!r)}style={{width:42,height:24,borderRadius:12,backgroundColor:we?e.purple:e.grayBorderSecondary,padding:2,justifyContent:"center",alignItems:we?"flex-end":"flex-start"}}>
|
|
603
601
|
<C style={{width:20,height:20,borderRadius:10,backgroundColor:e.white,shadowColor:e.black,shadowOpacity:.18,shadowRadius:2,shadowOffset:{width:0,height:1}}}/>
|
|
604
|
-
</
|
|
602
|
+
</V>
|
|
605
603
|
</C>
|
|
606
604
|
</C>
|
|
607
605
|
|
|
608
606
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
|
|
609
|
-
{
|
|
610
|
-
<S style={{fontFamily:
|
|
611
|
-
{
|
|
607
|
+
{z({icon:<E color={e.errorColor}size={16}/>,label:w("settings.logs.clearConsoleLogs"),description:w("settings.logs.clearConsoleLogsDescription",{count:$e.length}),isLast:!0,onPress:()=>{Ro(),O.alert(w("common.success"),w("settings.logs.consoleLogsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
|
|
608
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
|
|
609
|
+
{w("common.clear")}
|
|
612
610
|
</S>
|
|
613
611
|
</C>})}
|
|
614
612
|
</C>
|
|
615
613
|
<C style={{height:48}}/>
|
|
616
|
-
</
|
|
614
|
+
</M>:A==="analytics"?N=<M style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
|
|
617
615
|
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary}}>
|
|
618
|
-
{
|
|
616
|
+
{z({icon:<Tr color={e.purple}size={16}/>,label:w("settings.analytics.maxAnalyticsEvents"),description:w("settings.analytics.maxAnalyticsEventsDescription",{count:Le.length}),numericInput:{value:Ae,onChange:Qr,min:10,max:75,placeholder:"Enter max events (10-75)"},isLast:!0})}
|
|
619
617
|
</C>
|
|
620
618
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
|
|
621
|
-
{
|
|
622
|
-
<S style={{fontFamily:
|
|
623
|
-
{
|
|
619
|
+
{z({icon:<E color={e.errorColor}size={16}/>,label:w("settings.analytics.clearAnalyticsEvents"),description:w("settings.analytics.clearAnalyticsEventsDescription"),isLast:!0,onPress:()=>{Fo(),ro(null),O.alert(w("common.success"),w("settings.analytics.analyticsEventsCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
|
|
620
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
|
|
621
|
+
{w("common.clear")}
|
|
624
622
|
</S>
|
|
625
623
|
</C>})}
|
|
626
624
|
</C>
|
|
627
625
|
<C style={{height:48}}/>
|
|
628
|
-
</
|
|
626
|
+
</M>:A==="redux"?N=<M style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
|
|
629
627
|
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
|
|
630
|
-
{
|
|
631
|
-
{
|
|
628
|
+
{z({icon:<Br color={e.purple}size={16}/>,label:w("settings.redux.autoRefresh"),description:w("settings.redux.autoRefreshDescription"),onPress:()=>Yr(r=>!r),right:<C style={{width:22,height:22,borderRadius:6,borderWidth:2,borderColor:Te?e.purple:e.grayTextWeak,backgroundColor:Te?`${e.purple}1A`:"transparent",alignItems:"center",justifyContent:"center"}}>
|
|
629
|
+
{Te&&<U size={12}color={e.purple}/>}
|
|
632
630
|
</C>})}
|
|
633
631
|
<C style={{height:1,backgroundColor:e.dividerColor}}/>
|
|
634
|
-
{
|
|
632
|
+
{z({icon:<Q color={e.purple}size={16}/>,label:w("settings.redux.defaultJsonExpandDepth"),description:w("settings.redux.defaultJsonExpandDepthDescription"),picker:{options:[1,2,3,5],selectedValue:Oe,onSelect:Zr},isLast:!0})}
|
|
635
633
|
</C>
|
|
636
634
|
|
|
637
635
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
|
|
638
|
-
{
|
|
639
|
-
<S style={{fontFamily:
|
|
640
|
-
{
|
|
636
|
+
{z({icon:<E color={e.errorColor}size={16}/>,label:w("settings.redux.clearReduxState"),description:w(We?"settings.redux.clearReduxStateDescription":"settings.redux.clearReduxStateEmpty"),isLast:!0,onPress:()=>{oo(null),O.alert(w("common.success"),w("settings.redux.reduxStateCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
|
|
637
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
|
|
638
|
+
{w("common.clear")}
|
|
641
639
|
</S>
|
|
642
640
|
</C>})}
|
|
643
641
|
</C>
|
|
644
642
|
<C style={{height:48}}/>
|
|
645
|
-
</
|
|
643
|
+
</M>:A==="crash"?N=<M style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
|
|
646
644
|
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
|
|
647
|
-
{
|
|
645
|
+
{z({icon:<Q color={e.purple}size={16}/>,label:w("settings.crash.maxCrashLogs"),description:w("settings.crash.maxCrashLogsDesc"),numericInput:{value:Ee,onChange:to,min:5,max:50,placeholder:"Enter max crashes (5-50)"}})}
|
|
648
646
|
<C style={{height:1,backgroundColor:e.dividerColor}}/>
|
|
649
|
-
{
|
|
650
|
-
<S style={{fontFamily:
|
|
651
|
-
{
|
|
647
|
+
{z({icon:<Rr color={e.greenColor}size={16}/>,label:w("settings.crash.globalGuard"),description:w("settings.crash.globalGuardDesc"),isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
|
|
648
|
+
<S style={{fontFamily:x.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
|
|
649
|
+
{w("settings.protectedBadge")}
|
|
650
|
+
</S>
|
|
651
|
+
</C>})}
|
|
652
|
+
</C>
|
|
653
|
+
|
|
654
|
+
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
|
|
655
|
+
{z({icon:<E color={e.errorColor}size={16}/>,label:w("settings.crash.clearHistory"),description:w("settings.crash.clearHistoryDesc",{count:Me?.length||0}),isLast:!0,onPress:()=>{Ho(),O.alert(w("common.success"),w("settings.crash.historyCleared"))},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
|
|
656
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
|
|
657
|
+
{w("common.clear")}
|
|
658
|
+
</S>
|
|
659
|
+
</C>})}
|
|
660
|
+
</C>
|
|
661
|
+
<C style={{height:48}}/>
|
|
662
|
+
</M>:A==="push"?N=<M style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
|
|
663
|
+
|
|
664
|
+
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:4}}>
|
|
665
|
+
{z({icon:<Q color={e.purple}size={16}/>,label:"Max Push Notification Logs",description:"Buffer size limit for recorded push payloads (10-200)",numericInput:{value:lo,onChange:ao,min:10,max:200,placeholder:"Enter max logs (10-200)"}})}
|
|
666
|
+
<C style={{height:1,backgroundColor:e.dividerColor}}/>
|
|
667
|
+
{z({icon:<Lr color={e.greenColor}size={16}/>,label:"Universal Ingestion Engine",description:"Captures any push domain (Salesforce, FCM, APNs, Expo, Braze, Custom)",isLast:!0,right:<C style={{paddingHorizontal:8,paddingVertical:4,borderRadius:6,backgroundColor:`${e.greenColor}1F`}}>
|
|
668
|
+
<S style={{fontFamily:x.interBold,fontSize:10,lineHeight:13,color:e.greenColor}}>
|
|
669
|
+
ACTIVE
|
|
670
|
+
</S>
|
|
671
|
+
</C>})}
|
|
672
|
+
</C>
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:8}}>
|
|
676
|
+
<S style={{fontFamily:x.interBold,fontSize:12,color:e.primaryBlack,marginBottom:4}}>
|
|
677
|
+
⚡ SIMULATE TEST PUSH NOTIFICATIONS
|
|
678
|
+
</S>
|
|
679
|
+
|
|
680
|
+
<C style={{flexDirection:"row",flexWrap:"wrap",gap:6}}>
|
|
681
|
+
<V onPress={()=>{Y("salesforce"),R("Simulated Salesforce Marketing Cloud push")}}style={{backgroundColor:`${e.sky600}14`,borderColor:`${e.sky600}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
|
|
682
|
+
<S style={{fontSize:11,fontFamily:x.interSemiBold,color:e.sky600}}>
|
|
683
|
+
+ Salesforce MC
|
|
684
|
+
</S>
|
|
685
|
+
</V>
|
|
686
|
+
|
|
687
|
+
<V onPress={()=>{Y("fcm"),R("Simulated Firebase FCM push")}}style={{backgroundColor:`${e.darkOrange}14`,borderColor:`${e.darkOrange}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
|
|
688
|
+
<S style={{fontSize:11,fontFamily:x.interSemiBold,color:e.darkOrange}}>
|
|
689
|
+
+ Firebase FCM
|
|
690
|
+
</S>
|
|
691
|
+
</V>
|
|
692
|
+
|
|
693
|
+
<V onPress={()=>{Y("apns"),R("Simulated Apple APNs push")}}style={{backgroundColor:`${e.primaryBlack}10`,borderColor:`${e.primaryBlack}25`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
|
|
694
|
+
<S style={{fontSize:11,fontFamily:x.interSemiBold,color:e.primaryBlack}}>
|
|
695
|
+
+ Apple APNs
|
|
696
|
+
</S>
|
|
697
|
+
</V>
|
|
698
|
+
|
|
699
|
+
<V onPress={()=>{Y("deeplink"),R("Simulated Deep Link push")}}style={{backgroundColor:`${e.brandPurple}14`,borderColor:`${e.brandPurple}33`,borderWidth:1,paddingHorizontal:10,paddingVertical:6,borderRadius:8}}>
|
|
700
|
+
<S style={{fontSize:11,fontFamily:x.interSemiBold,color:e.brandPurple}}>
|
|
701
|
+
+ Deep Link
|
|
702
|
+
</S>
|
|
703
|
+
</V>
|
|
704
|
+
</C>
|
|
705
|
+
</C>
|
|
706
|
+
|
|
707
|
+
|
|
708
|
+
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
|
|
709
|
+
{z({icon:<E color={e.errorColor}size={16}/>,label:"Clear Push History",description:`Permanently remove all ${io?.length||0} recorded notifications`,isLast:!0,onPress:()=>{no(),O.alert("Success","Push notification history cleared")},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
|
|
710
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
|
|
711
|
+
{w("common.clear")}
|
|
652
712
|
</S>
|
|
653
713
|
</C>})}
|
|
654
714
|
</C>
|
|
715
|
+
<C style={{height:48}}/>
|
|
716
|
+
</M>:A==="media"&&(N=<M style={{flex:1}}contentContainerStyle={{padding:16,paddingBottom:100,gap:12}}>
|
|
717
|
+
|
|
718
|
+
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:8}}>
|
|
719
|
+
<S style={{fontFamily:x.interBold,fontSize:12,color:e.primaryBlack,marginBottom:4}}>
|
|
720
|
+
⚡ DIRECT CAPTURE SHORTCUTS
|
|
721
|
+
</S>
|
|
722
|
+
|
|
723
|
+
<C style={{flexDirection:"row",flexWrap:"wrap",gap:8}}>
|
|
724
|
+
<V onPress={async()=>{H("light"),await ve.takeScreenshot({format:Ve.toLowerCase(),quality:.9,hideInspector:P})&&(H("success"),R("Screenshot captured and saved!"))}}style={{backgroundColor:`${e.purple}14`,borderColor:`${e.purple}33`,borderWidth:1,paddingHorizontal:12,paddingVertical:7,borderRadius:8,flexDirection:"row",alignItems:"center",gap:6}}>
|
|
725
|
+
<Ce color={e.purple}size={14}/>
|
|
726
|
+
<S style={{fontSize:11,fontFamily:x.interBold,color:e.purple}}>
|
|
727
|
+
Take Screenshot
|
|
728
|
+
</S>
|
|
729
|
+
</V>
|
|
730
|
+
</C>
|
|
731
|
+
</C>
|
|
732
|
+
|
|
733
|
+
|
|
734
|
+
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
|
|
735
|
+
<C style={{flexDirection:"row",alignItems:"center",gap:10}}>
|
|
736
|
+
<C style={{width:36,height:36,borderRadius:10,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
737
|
+
<Ce color={e.purple}size={16}/>
|
|
738
|
+
</C>
|
|
739
|
+
<C style={{flex:1}}>
|
|
740
|
+
<S style={{fontFamily:x.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
|
|
741
|
+
{w("settings.media.screenshotCardTitle","Screenshot Capture Settings")}
|
|
742
|
+
</S>
|
|
743
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
744
|
+
{w("settings.media.screenshotCardDesc","Image encoding format, compression quality and overlay auto-hide")}
|
|
745
|
+
</S>
|
|
746
|
+
</C>
|
|
747
|
+
</C>
|
|
655
748
|
|
|
749
|
+
{z({icon:<$r color={e.purple}size={16}/>,label:w("settings.media.imageFormat","Image Format"),description:w("settings.media.imageFormatDesc","Export formats (PNG lossless, JPEG lossy, WebP)"),right:<C style={{flexDirection:"row",gap:5}}>
|
|
750
|
+
{["PNG","JPEG","WEBP"].map(r=>{const k=Ve===r;return<V key={r}onPress={()=>{H("light"),Ge(r),R(`Screenshot format: ${r}`)}}style={{paddingHorizontal:9,paddingVertical:5,borderRadius:7,backgroundColor:k?e.purple:`${e.purple}14`,borderWidth:1,borderColor:k?e.purple:`${e.purple}2E`}}>
|
|
751
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,color:k?e.white:e.purple}}>
|
|
752
|
+
{r}
|
|
753
|
+
</S>
|
|
754
|
+
</V>})}
|
|
755
|
+
</C>})}
|
|
756
|
+
|
|
757
|
+
{z({icon:<Ie color={e.purple}size={16}/>,label:w("settings.media.autoHide","Auto-Hide Inspector During Capture"),description:w("settings.media.autoHideDesc","Temporarily hides the inspector overlay during screen capture"),isLast:!0,onPress:()=>{H("light"),ee(r=>!r),R(`Auto-hide overlay: ${P?"OFF":"ON"}`)},right:<V onPress={()=>{H("light"),ee(r=>!r),R(`Auto-hide overlay: ${P?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:P?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:P?`${e.emerald500}4D`:`${e.grayText}33`}}>
|
|
758
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,color:P?e.emerald500:e.grayText}}>
|
|
759
|
+
{P?w("settings.media.enabled","ON"):"OFF"}
|
|
760
|
+
</S>
|
|
761
|
+
</V>})}
|
|
762
|
+
</C>
|
|
763
|
+
|
|
764
|
+
|
|
765
|
+
<C style={{backgroundColor:e.primaryLight,padding:16,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,gap:12}}>
|
|
766
|
+
<C style={{flexDirection:"row",alignItems:"center",gap:10}}>
|
|
767
|
+
<C style={{width:36,height:36,borderRadius:10,backgroundColor:e.purpleShade50,alignItems:"center",justifyContent:"center"}}>
|
|
768
|
+
<Ir color={e.purple}size={16}/>
|
|
769
|
+
</C>
|
|
770
|
+
<C style={{flex:1}}>
|
|
771
|
+
<S style={{fontFamily:x.interBold,fontSize:14,lineHeight:18,color:e.primaryBlack}}>
|
|
772
|
+
{w("settings.media.videoCardTitle","Video Recording & GIF Conversion")}
|
|
773
|
+
</S>
|
|
774
|
+
<S style={{fontFamily:x.interRegular,fontSize:11,lineHeight:15,color:e.grayText,marginTop:1}}>
|
|
775
|
+
{w("settings.media.videoCardDesc","ReplayKit hardware encoding, frame capture fallback and GIF generation")}
|
|
776
|
+
</S>
|
|
777
|
+
</C>
|
|
778
|
+
</C>
|
|
779
|
+
|
|
780
|
+
{z({icon:<Dr color={e.purple}size={16}/>,label:w("settings.media.audioMode","Audio Source"),description:w("settings.media.audioModeDesc","Record video with muted, app audio, or microphone commentary"),right:<C style={{flexDirection:"row",gap:5}}>
|
|
781
|
+
{["Muted","App","Mic"].map(r=>{const k=je===r;return<V key={r}onPress={()=>{H("light"),Ue(r),R(`Audio source: ${r}`)}}style={{paddingHorizontal:8,paddingVertical:5,borderRadius:7,backgroundColor:k?e.purple:`${e.purple}14`,borderWidth:1,borderColor:k?e.purple:`${e.purple}2E`}}>
|
|
782
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,color:k?e.white:e.purple}}>
|
|
783
|
+
{r}
|
|
784
|
+
</S>
|
|
785
|
+
</V>})}
|
|
786
|
+
</C>})}
|
|
787
|
+
|
|
788
|
+
{z({icon:<Hr color={e.purple}size={16}/>,label:w("settings.media.frameRate","Recording Frame Rate (FPS)"),description:w("settings.media.frameRateDesc","Target video smoothness: 15, 24, 30, or 60 FPS"),right:<C style={{flexDirection:"row",gap:5}}>
|
|
789
|
+
{["15","24","30","60"].map(r=>{const k=qe===r;return<V key={r}onPress={()=>{H("light"),Je(r),R(`Recording FPS: ${r}`)}}style={{paddingHorizontal:7,paddingVertical:5,borderRadius:7,backgroundColor:k?e.purple:`${e.purple}14`,borderWidth:1,borderColor:k?e.purple:`${e.purple}2E`}}>
|
|
790
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,color:k?e.white:e.purple}}>
|
|
791
|
+
{r}fps
|
|
792
|
+
</S>
|
|
793
|
+
</V>})}
|
|
794
|
+
</C>})}
|
|
795
|
+
|
|
796
|
+
{z({icon:<Pr color={e.purple}size={16}/>,label:w("settings.media.gifAutoOpt","Auto GIF Optimization"),description:w("settings.media.gifAutoOptDesc","Automatic palette reduction and frame skip for lightweight animated GIFs"),isLast:!0,onPress:()=>{H("light"),re(r=>!r),R(`GIF optimization: ${L?"OFF":"ON"}`)},right:<V onPress={()=>{H("light"),re(r=>!r),R(`GIF optimization: ${L?"OFF":"ON"}`)}}style={{paddingHorizontal:10,paddingVertical:5,borderRadius:7,backgroundColor:L?`${e.emerald500}26`:`${e.grayText}20`,borderWidth:1,borderColor:L?`${e.emerald500}4D`:`${e.grayText}33`}}>
|
|
797
|
+
<S style={{fontFamily:x.interBold,fontSize:10.5,color:L?e.emerald500:e.grayText}}>
|
|
798
|
+
{L?"ON":"OFF"}
|
|
799
|
+
</S>
|
|
800
|
+
</V>})}
|
|
801
|
+
</C>
|
|
802
|
+
|
|
803
|
+
|
|
656
804
|
<C style={{backgroundColor:e.primaryLight,borderRadius:14,borderWidth:1,borderColor:e.grayBorderSecondary,padding:16}}>
|
|
657
|
-
{
|
|
658
|
-
<S style={{fontFamily:
|
|
659
|
-
{
|
|
805
|
+
{z({icon:<E color={e.errorColor}size={16}/>,label:w("settings.media.purgeAll","Purge Captured Media Cache"),description:w("settings.media.purgeAllDesc","Delete all local screenshots, screen recordings and converted GIFs"),isLast:!0,onPress:()=>{O.alert(w("settings.media.purgeConfirmTitle","Purge Media Storage?"),w("settings.media.purgeConfirmMessage","This will permanently delete all captured screenshots and videos from disk."),[{text:w("common.cancel","Cancel"),style:"cancel"},{text:w("settings.media.purgeCacheBtn","Purge All"),style:"destructive",onPress:async()=>{await ve.clearAllMedia(),R(w("settings.media.purgedSuccess","Media cache cleared successfully"))}}])},right:<C style={{paddingHorizontal:12,paddingVertical:6,borderRadius:8,backgroundColor:`${e.errorColor}14`,borderWidth:1,borderColor:`${e.errorColor}33`}}>
|
|
806
|
+
<S style={{fontFamily:x.interBold,fontSize:11,lineHeight:14,color:e.errorColor}}>
|
|
807
|
+
{w("settings.media.purgeCacheBtn","Purge All")}
|
|
660
808
|
</S>
|
|
661
809
|
</C>})}
|
|
662
810
|
</C>
|
|
663
811
|
<C style={{height:48}}/>
|
|
664
|
-
</
|
|
812
|
+
</M>);const te=yo(new Fe.Value(0)).current;return Re(()=>{A!=="main"&&(te.setValue(0),Fe.spring(te,{toValue:1,friction:8,tension:65,useNativeDriver:!0}).start())},[A]),<C style={{flex:1,backgroundColor:e.grayBackground}}>
|
|
665
813
|
|
|
666
|
-
<C style={[
|
|
667
|
-
{
|
|
814
|
+
<C style={[Ye.absoluteFill,A!=="main"&&{pointerEvents:"none"}]}>
|
|
815
|
+
{go()}
|
|
668
816
|
</C>
|
|
669
817
|
|
|
670
818
|
|
|
671
|
-
{
|
|
819
|
+
{A!=="main"&&<Fe.View style={[Ye.absoluteFill,{backgroundColor:e.grayBackground,opacity:te,transform:[{translateX:te.interpolate({inputRange:[0,1],outputRange:[30,0]})}]}]}>
|
|
672
820
|
{N}
|
|
673
|
-
</
|
|
674
|
-
</C>};export default
|
|
821
|
+
</Fe.View>}
|
|
822
|
+
</C>};export default Qo;
|