@buoy-gg/highlight-updates 7.0.60 → 7.0.61

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.HighlightToolView=HighlightToolView;exports.HighlightUpdatesModal=HighlightUpdatesModal;exports.default=void 0;var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _license=require("@buoy-gg/license");var _HighlightUpdatesController=_interopRequireDefault(require("../utils/HighlightUpdatesController"));var _RenderTracker=require("../utils/RenderTracker");var _RenderDetailView=require("./RenderDetailView");var _HighlightFilterView=require("./HighlightFilterView");var _IsolatedRenderList=require("./IsolatedRenderList");var _ModalHeaderContent=require("./ModalHeaderContent");var _RenderHistoryViewer=require("./RenderHistoryViewer");var _RendersCopySettingsView=require("./RendersCopySettingsView");var _jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(n){return n&&n.__esModule?n:{default:n}}function _interopRequireWildcard(n,k){if("function"==typeof WeakMap)var R=new WeakMap,F=new WeakMap;return(_interopRequireWildcard=function(a,T){if(!T&&a&&a.__esModule)return a;var l,u,g={__proto__:null,default:a};if(null===a||"object"!=typeof a&&"function"!=typeof a)return g;if(l=T?F:R){if(l.has(a))return l.get(a);l.set(a,g)}for(const o in a)"default"!==o&&{}.hasOwnProperty.call(a,o)&&((u=(l=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,o))&&(u.get||u.set)?l(g,o,u):g[o]=a[o]);return g})(n,k)}const DisabledBanner=_react.default.memo(function n(){return(0,_jsxRuntime.jsxs)(_reactNative.View,{testID:"buoy-highlight-disabled-banner",style:styles.disabledBanner,children:[(0,_jsxRuntime.jsx)(_sharedUi.Power,{size:14,color:_sharedUi.night.color.warning}),(0,_jsxRuntime.jsx)(_reactNative.Text,{testID:"buoy-highlight-disabled-text",style:styles.disabledText,children:"Render tracking is disabled"})]})});function HighlightUpdatesModal({visible:n,onClose:k,onBack:R,onMinimize:F,enableSharedModalDimensions:a=false,initialNativeTag:T,onInitialNativeTagHandled:l,onRenderSelect:u,inline:g=false}){const o=(0,_license.useIsPro)();const[w,de]=(0,_react.useState)(false);const[q,ue]=(0,_react.useState)(()=>_HighlightUpdatesController.default.getFrozen());const[z,N]=(0,_react.useState)(()=>_RenderTracker.RenderTracker.getStats().totalComponents>0);const[s,f]=(0,_react.useState)(null);const[h,x]=(0,_react.useState)(0);const[m,I]=(0,_react.useState)(false);const[P,M]=(0,_react.useState)(false);const[ge,fe]=(0,_react.useState)([]);const[V,he]=(0,_react.useState)("filters");const[y,B]=(0,_react.useState)("details");const[O,_]=(0,_react.useState)(0);const[S,Se]=(0,_react.useState)("");const[b,D]=(0,_react.useState)(false);const L=(0,_react.useRef)(null);const C=(0,_react.useRef)([]);const U=(0,_react.useRef)(_RenderTracker.RenderTracker.getFilters());const[j,K]=(0,_react.useState)(()=>{const e=_RenderTracker.RenderTracker.getFilters();return e.includePatterns.length+e.excludePatterns.length});const[i,W]=(0,_react.useState)(()=>_RenderTracker.RenderTracker.getFilters());const[H,J]=(0,_react.useState)(()=>_RenderTracker.RenderTracker.getSettings());const G=(0,_react.useRef)(false);const A=(0,_react.useRef)(false);const v=(0,_react.useRef)(false);(0,_react.useEffect)(()=>{if(!n||G.current)return;G.current=true},[n]);(0,_react.useEffect)(()=>{if(!n||A.current)return;const e=async()=>{try{const t=await _sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.highlightUpdates.filters());if(t){const r=JSON.parse(t);const c={includeTestID:new Set(r.includeTestID||[]),includeNativeID:new Set(r.includeNativeID||[]),includeViewType:new Set(r.includeViewType||[]),includeComponent:new Set(r.includeComponent||[]),excludeTestID:new Set(r.excludeTestID||[]),excludeNativeID:new Set(r.excludeNativeID||[]),excludeViewType:new Set(r.excludeViewType||[]),excludeComponent:new Set(r.excludeComponent||[]),includePatterns:r.includePatterns||[],excludePatterns:r.excludePatterns||[]};_RenderTracker.RenderTracker.setFilters(c);const d=_RenderTracker.RenderTracker.getFilters();U.current=d;W(d);K(d.includePatterns.length+d.excludePatterns.length)}A.current=true}catch(t){}};e()},[n]);(0,_react.useEffect)(()=>{if(!A.current)return;const e=async()=>{try{const t={includeTestID:Array.from(i.includeTestID),includeNativeID:Array.from(i.includeNativeID),includeViewType:Array.from(i.includeViewType),includeComponent:Array.from(i.includeComponent),excludeTestID:Array.from(i.excludeTestID),excludeNativeID:Array.from(i.excludeNativeID),excludeViewType:Array.from(i.excludeViewType),excludeComponent:Array.from(i.excludeComponent),includePatterns:i.includePatterns,excludePatterns:i.excludePatterns};await _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.highlightUpdates.filters(),JSON.stringify(t))}catch(t){}};e()},[i]);(0,_react.useEffect)(()=>{if(!n||v.current)return;const e=async()=>{try{const t=await _sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.highlightUpdates.settings());if(t){const r=JSON.parse(t);const{performanceLogging:c,excludeDevTools:d,...p}=r;_RenderTracker.RenderTracker.setSettings(p);J(_RenderTracker.RenderTracker.getSettings())}v.current=true}catch(t){v.current=true}};e()},[n]);(0,_react.useEffect)(()=>{if(!v.current)return;const e=async()=>{try{const{performanceLogging:t,excludeDevTools:r,...c}=H;await _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.highlightUpdates.settings(),JSON.stringify(c))}catch(t){}};e()},[H]);(0,_react.useEffect)(()=>{const e=_RenderTracker.RenderTracker.subscribeToState(t=>{de(t.isTracking)});return()=>{e()}},[]);(0,_react.useEffect)(()=>{const e=_HighlightUpdatesController.default.subscribeToFreeze(t=>{ue(t)});return()=>{e()}},[]);(0,_react.useEffect)(()=>{if(b){requestAnimationFrame(()=>{L.current?.focus()})}},[b]);(0,_react.useEffect)(()=>{if(!n){_HighlightUpdatesController.default.setSpotlight(null)}},[n]);(0,_react.useEffect)(()=>{if(n&&T!=null){const e=_RenderTracker.RenderTracker.getRender(String(T));if(e){f(e);x(0);I(false);_HighlightUpdatesController.default.setSpotlight(e.nativeTag)}l?.()}},[n,T,l]);const Q=(0,_react.useCallback)(()=>{if(!_HighlightUpdatesController.default.isInitialized()){_HighlightUpdatesController.default.initialize()}_HighlightUpdatesController.default.toggle()},[]);const X=(0,_react.useCallback)(()=>{_HighlightUpdatesController.default.toggleFreeze()},[]);const Y=(0,_react.useCallback)(()=>{_HighlightUpdatesController.default.clearRenderCounts();N(false)},[]);const Z=(0,_react.useCallback)(()=>{fe(_RenderTracker.RenderTracker.getFilteredRenders(S));M(true)},[S]);const $=(0,_react.useCallback)(()=>{M(false)},[]);const ee=(0,_react.useCallback)(e=>{Se(e)},[]);const pe=(0,_react.useCallback)((e,t,r)=>{f(e);x(t);B("details");_(0);C.current=r;_HighlightUpdatesController.default.setSpotlight(e.nativeTag)},[]);(0,_react.useEffect)(()=>{if(!s)return;const e=String(s.nativeTag);return _RenderTracker.RenderTracker.subscribe(()=>{const t=_RenderTracker.RenderTracker.getRender(e);if(t)f({...t})})},[s?.nativeTag]);const te=(0,_react.useRef)(null);(0,_react.useEffect)(()=>{if(!u||!s)return;if(te.current===s.nativeTag)return;te.current=s.nativeTag;u(s)},[s,u]);const Te=(0,_react.useCallback)(e=>{C.current=e},[]);const re=(0,_react.useCallback)(()=>{f(null);x(0);if(S)D(true);_HighlightUpdatesController.default.setSpotlight(null)},[S]);const xe=(0,_react.useCallback)(()=>{const e=C.current;if(h>0){const t=h-1;const r=e[t];if(r){f(r);x(t);_HighlightUpdatesController.default.setSpotlight(r.nativeTag)}}},[h]);const ye=(0,_react.useCallback)(()=>{const e=C.current;if(h<e.length-1){const t=h+1;const r=e[t];if(r){f(r);x(t);_HighlightUpdatesController.default.setSpotlight(r.nativeTag)}}},[h]);const ne=(0,_react.useCallback)(()=>{I(false)},[]);const se=(0,_react.useCallback)(()=>{I(true)},[]);const ae=(0,_react.useCallback)(()=>{D(true)},[]);const ie=(0,_react.useCallback)(()=>{D(false)},[]);const E=(0,_react.useCallback)(e=>{_RenderTracker.RenderTracker.setFilters(e);const t=_RenderTracker.RenderTracker.getFilters();U.current=t;W(t);K(t.includePatterns.length+t.excludePatterns.length)},[]);const Ce=(0,_react.useCallback)((e,t)=>{const r=_RenderTracker.RenderTracker.getFilters();const c={};if(t==="include"){const d=r.includePatterns.some(p=>p.type===e.type&&p.value===e.value);if(!d){c.includePatterns=[...r.includePatterns,e]}}else{const d=r.excludePatterns.some(p=>p.type===e.type&&p.value===e.value);if(!d){c.excludePatterns=[...r.excludePatterns,e]}}if(Object.keys(c).length>0){E(c);f(null);x(0);_HighlightUpdatesController.default.setSpotlight(null)}},[E]);const Re=(0,_react.useCallback)(e=>{_RenderTracker.RenderTracker.setSettings(e);J(_RenderTracker.RenderTracker.getSettings())},[]);const we=(0,_react.useCallback)(e=>{N(e.totalComponents>0)},[]);const oe=(0,_react.useCallback)(()=>{if(P){return(0,_jsxRuntime.jsx)(_ModalHeaderContent.CopySettingsViewHeader,{onBack:$})}if(m){return(0,_jsxRuntime.jsx)(_ModalHeaderContent.FilterViewHeader,{onBack:ne,activeTab:V,onTabChange:he,activeFilterCount:j})}if(s){return(0,_jsxRuntime.jsx)(_ModalHeaderContent.DetailViewHeader,{onBack:re,activeTab:y,onTabChange:B,hasHistory:(s.renderHistory?.length??0)>0})}return(0,_jsxRuntime.jsx)(_ModalHeaderContent.MainListHeader,{onBack:R,isSearchActive:b,searchText:S,onSearchChange:ee,onSearchToggle:ae,onSearchClose:ie,onFilterToggle:se,onToggleTracking:Q,onToggleFreeze:X,onClear:Y,onOpenCopySettings:Z,isTracking:w,isFrozen:q,activeFilterCount:j,hasRenders:z,searchInputRef:L})},[P,m,s,R,b,S,w,q,j,z,V,y,ne,re,$,ee,ae,ie,se,Q,X,Y,Z]);const be=a?_sharedUi.devToolsStorageKeys.modal.root():_sharedUi.devToolsStorageKeys.highlightUpdates.modal();if(!n)return null;const ve=C.current.length;const le=s?y==="details"?(0,_jsxRuntime.jsx)(_sharedUi.EventStepperFooter,{currentIndex:h,totalItems:ve,onPrevious:xe,onNext:ye,itemLabel:"Component",subtitle:s.componentName||s.displayName||s.viewType}):(0,_jsxRuntime.jsx)(_RenderHistoryViewer.RenderHistoryFooter,{render:s,selectedEventIndex:O,onEventIndexChange:_,isPro:o}):null;const ce=(0,_jsxRuntime.jsx)(_reactNative.View,{nativeID:"__rn_buoy__highlight-modal",testID:"buoy-highlight-body",style:styles.container,children:P?(0,_jsxRuntime.jsx)(_RendersCopySettingsView.RendersCopySettingsView,{renders:ge}):s?y==="details"?(0,_jsxRuntime.jsx)(_RenderDetailView.RenderDetailView,{render:s,disableInternalFooter:true,onAddFilter:Ce,isPro:o}):(0,_jsxRuntime.jsx)(_RenderHistoryViewer.RenderHistoryViewer,{render:s,disableInternalFooter:true,selectedEventIndex:O,onEventIndexChange:_,isPro:o}):m?(0,_jsxRuntime.jsx)(_HighlightFilterView.HighlightFilterView,{filters:i,onFilterChange:E,settings:H,onSettingsChange:Re,availableProps:_RenderTracker.RenderTracker.getAvailableProps(),activeTab:V}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[!w&&(0,_jsxRuntime.jsx)(DisabledBanner,{}),(0,_jsxRuntime.jsx)(_IsolatedRenderList.IsolatedRenderList,{searchText:S,filters:i,onSelectRender:pe,onStatsChange:we,onRendersChange:Te,isTracking:w,isPro:o})]})});if(g){return(0,_jsxRuntime.jsx)(_sharedUi.TickProvider,{children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.inlineRoot,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.inlineHeader,..._sharedUi.windowDragProps,children:oe()}),ce,le]})})}return(0,_jsxRuntime.jsx)(_sharedUi.TickProvider,{children:(0,_jsxRuntime.jsx)(_sharedUi.JsModal,{visible:n,onClose:k,onMinimize:F,persistenceKey:be,header:{showToggleButton:true,customContent:oe()},enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,styles:{},footer:le,footerHeight:s?y==="details"?68:(s.renderHistory?.length??0)>1?68:0:0,children:ce})})}function HighlightToolView(n={}){return(0,_jsxRuntime.jsx)(HighlightUpdatesModal,{...n,inline:true,visible:true,onClose:()=>{}})}const styles=_reactNative.StyleSheet.create({inlineRoot:{flex:1,minHeight:0,backgroundColor:"transparent"},inlineHeader:{paddingHorizontal:12,paddingVertical:8,borderBottomWidth:1,borderBottomColor:_sharedUi.night.color.border,backgroundColor:"transparent"},container:{flex:1,backgroundColor:"transparent"},disabledBanner:{flexDirection:"row",alignItems:"center",gap:8,padding:10,marginHorizontal:12,marginTop:8,backgroundColor:_sharedUi.night.color.warningSoft,borderRadius:8,borderWidth:1,borderColor:_sharedUi.night.color.warning+"20"},disabledText:{color:_sharedUi.night.color.warning,fontSize:11,flex:1}});var _default=exports.default=HighlightUpdatesModal;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.HighlightToolView=HighlightToolView;exports.HighlightUpdatesModal=HighlightUpdatesModal;exports.default=void 0;var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _license=require("@buoy-gg/license");var _HighlightUpdatesController=_interopRequireDefault(require("../utils/HighlightUpdatesController"));var _RenderTracker=require("../utils/RenderTracker");var _RenderDetailView=require("./RenderDetailView");var _HighlightFilterView=require("./HighlightFilterView");var _IsolatedRenderList=require("./IsolatedRenderList");var _ModalHeaderContent=require("./ModalHeaderContent");var _RenderHistoryViewer=require("./RenderHistoryViewer");var _RendersCopySettingsView=require("./RendersCopySettingsView");var _jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(n){return n&&n.__esModule?n:{default:n}}function _interopRequireWildcard(n,k){if("function"==typeof WeakMap)var w=new WeakMap,F=new WeakMap;return(_interopRequireWildcard=function(a,T){if(!T&&a&&a.__esModule)return a;var l,u,g={__proto__:null,default:a};if(null===a||"object"!=typeof a&&"function"!=typeof a)return g;if(l=T?F:w){if(l.has(a))return l.get(a);l.set(a,g)}for(const o in a)"default"!==o&&{}.hasOwnProperty.call(a,o)&&((u=(l=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,o))&&(u.get||u.set)?l(g,o,u):g[o]=a[o]);return g})(n,k)}const DisabledBanner=_react.default.memo(function n(){return(0,_jsxRuntime.jsxs)(_reactNative.View,{testID:"buoy-highlight-disabled-banner",style:styles.disabledBanner,children:[(0,_jsxRuntime.jsx)(_sharedUi.Power,{size:14,color:_sharedUi.night.color.warning}),(0,_jsxRuntime.jsx)(_reactNative.Text,{testID:"buoy-highlight-disabled-text",style:styles.disabledText,children:"Render tracking is disabled"})]})});function HighlightUpdatesModal({visible:n,onClose:k,onBack:w,onMinimize:F,enableSharedModalDimensions:a=false,initialNativeTag:T,onInitialNativeTagHandled:l,onRenderSelect:u,inline:g=false}){const o=(0,_license.useIsPro)();const[R,de]=(0,_react.useState)(false);const[q,ue]=(0,_react.useState)(()=>_HighlightUpdatesController.default.getFrozen());const[z,N]=(0,_react.useState)(()=>_RenderTracker.RenderTracker.getStats().totalComponents>0);const[s,f]=(0,_react.useState)(null);const[h,x]=(0,_react.useState)(0);const[m,I]=(0,_react.useState)(false);const[P,M]=(0,_react.useState)(false);const[ge,fe]=(0,_react.useState)([]);const[V,he]=(0,_react.useState)("filters");const[y,O]=(0,_react.useState)("details");const[B,_]=(0,_react.useState)(0);const[S,Se]=(0,_react.useState)("");const[b,D]=(0,_react.useState)(false);const L=(0,_react.useRef)(null);const C=(0,_react.useRef)([]);const U=(0,_react.useRef)(_RenderTracker.RenderTracker.getFilters());const[j,K]=(0,_react.useState)(()=>{const e=_RenderTracker.RenderTracker.getFilters();return e.includePatterns.length+e.excludePatterns.length});const[i,W]=(0,_react.useState)(()=>_RenderTracker.RenderTracker.getFilters());const[H,J]=(0,_react.useState)(()=>_RenderTracker.RenderTracker.getSettings());const G=(0,_react.useRef)(false);const A=(0,_react.useRef)(false);const v=(0,_react.useRef)(false);(0,_react.useEffect)(()=>{if(!n||G.current)return;G.current=true},[n]);(0,_react.useEffect)(()=>{if(!n||A.current)return;const e=async()=>{try{const t=await _sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.highlightUpdates.filters());if(t){const r=JSON.parse(t);const c={includeTestID:new Set(r.includeTestID||[]),includeNativeID:new Set(r.includeNativeID||[]),includeViewType:new Set(r.includeViewType||[]),includeComponent:new Set(r.includeComponent||[]),excludeTestID:new Set(r.excludeTestID||[]),excludeNativeID:new Set(r.excludeNativeID||[]),excludeViewType:new Set(r.excludeViewType||[]),excludeComponent:new Set(r.excludeComponent||[]),includePatterns:r.includePatterns||[],excludePatterns:r.excludePatterns||[]};_RenderTracker.RenderTracker.setFilters(c);const d=_RenderTracker.RenderTracker.getFilters();U.current=d;W(d);K(d.includePatterns.length+d.excludePatterns.length)}A.current=true}catch(t){}};e()},[n]);(0,_react.useEffect)(()=>{if(!A.current)return;const e=async()=>{try{const t={includeTestID:Array.from(i.includeTestID),includeNativeID:Array.from(i.includeNativeID),includeViewType:Array.from(i.includeViewType),includeComponent:Array.from(i.includeComponent),excludeTestID:Array.from(i.excludeTestID),excludeNativeID:Array.from(i.excludeNativeID),excludeViewType:Array.from(i.excludeViewType),excludeComponent:Array.from(i.excludeComponent),includePatterns:i.includePatterns,excludePatterns:i.excludePatterns};await _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.highlightUpdates.filters(),JSON.stringify(t))}catch(t){}};e()},[i]);(0,_react.useEffect)(()=>{if(!n||v.current)return;const e=async()=>{try{const t=await _sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.highlightUpdates.settings());if(t){const r=JSON.parse(t);const{performanceLogging:c,excludeDevTools:d,...p}=r;_RenderTracker.RenderTracker.setSettings(p);J(_RenderTracker.RenderTracker.getSettings())}v.current=true}catch(t){v.current=true}};e()},[n]);(0,_react.useEffect)(()=>{if(!v.current)return;const e=async()=>{try{const{performanceLogging:t,excludeDevTools:r,...c}=H;await _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.highlightUpdates.settings(),JSON.stringify(c))}catch(t){}};e()},[H]);(0,_react.useEffect)(()=>{const e=_RenderTracker.RenderTracker.subscribeToState(t=>{de(t.isTracking)});return()=>{e()}},[]);(0,_react.useEffect)(()=>{const e=_HighlightUpdatesController.default.subscribeToFreeze(t=>{ue(t)});return()=>{e()}},[]);(0,_react.useEffect)(()=>{if(b){requestAnimationFrame(()=>{L.current?.focus()})}},[b]);(0,_react.useEffect)(()=>{if(!n){_HighlightUpdatesController.default.setSpotlight(null)}},[n]);(0,_react.useEffect)(()=>{if(n&&T!=null){const e=_RenderTracker.RenderTracker.getRender(String(T));if(e){f(e);x(0);I(false);_HighlightUpdatesController.default.setSpotlight(e.nativeTag)}l?.()}},[n,T,l]);const Q=(0,_react.useCallback)(()=>{if(!_HighlightUpdatesController.default.isInitialized()){_HighlightUpdatesController.default.initialize()}_HighlightUpdatesController.default.toggle()},[]);const X=(0,_react.useCallback)(()=>{_HighlightUpdatesController.default.toggleFreeze()},[]);const Y=(0,_react.useCallback)(()=>{_HighlightUpdatesController.default.clearRenderCounts();N(false)},[]);const Z=(0,_react.useCallback)(()=>{fe(_RenderTracker.RenderTracker.getFilteredRenders(S));M(true)},[S]);const $=(0,_react.useCallback)(()=>{M(false)},[]);const ee=(0,_react.useCallback)(e=>{Se(e)},[]);const pe=(0,_react.useCallback)((e,t,r)=>{f(e);x(t);O("details");_(0);C.current=r;_HighlightUpdatesController.default.setSpotlight(e.nativeTag)},[]);(0,_react.useEffect)(()=>{if(!s)return;const e=String(s.nativeTag);return _RenderTracker.RenderTracker.subscribe(()=>{const t=_RenderTracker.RenderTracker.getRender(e);if(t)f({...t})})},[s?.nativeTag]);const te=(0,_react.useRef)(null);(0,_react.useEffect)(()=>{if(!u||!s)return;if(te.current===s.nativeTag)return;te.current=s.nativeTag;u(s)},[s,u]);const Te=(0,_react.useCallback)(e=>{C.current=e},[]);const re=(0,_react.useCallback)(()=>{f(null);x(0);if(S)D(true);_HighlightUpdatesController.default.setSpotlight(null)},[S]);const xe=(0,_react.useCallback)(()=>{const e=C.current;if(h>0){const t=h-1;const r=e[t];if(r){f(r);x(t);_HighlightUpdatesController.default.setSpotlight(r.nativeTag)}}},[h]);const ye=(0,_react.useCallback)(()=>{const e=C.current;if(h<e.length-1){const t=h+1;const r=e[t];if(r){f(r);x(t);_HighlightUpdatesController.default.setSpotlight(r.nativeTag)}}},[h]);const ne=(0,_react.useCallback)(()=>{I(false)},[]);const se=(0,_react.useCallback)(()=>{I(true)},[]);const ae=(0,_react.useCallback)(()=>{D(true)},[]);const ie=(0,_react.useCallback)(()=>{D(false)},[]);const E=(0,_react.useCallback)(e=>{_RenderTracker.RenderTracker.setFilters(e);const t=_RenderTracker.RenderTracker.getFilters();U.current=t;W(t);K(t.includePatterns.length+t.excludePatterns.length)},[]);const Ce=(0,_react.useCallback)((e,t)=>{const r=_RenderTracker.RenderTracker.getFilters();const c={};if(t==="include"){const d=r.includePatterns.some(p=>p.type===e.type&&p.value===e.value);if(!d){c.includePatterns=[...r.includePatterns,e]}}else{const d=r.excludePatterns.some(p=>p.type===e.type&&p.value===e.value);if(!d){c.excludePatterns=[...r.excludePatterns,e]}}if(Object.keys(c).length>0){E(c);f(null);x(0);_HighlightUpdatesController.default.setSpotlight(null)}},[E]);const we=(0,_react.useCallback)(e=>{_RenderTracker.RenderTracker.setSettings(e);J(_RenderTracker.RenderTracker.getSettings())},[]);const Re=(0,_react.useCallback)(e=>{N(e.totalComponents>0)},[]);const oe=(0,_react.useCallback)(()=>{if(P){return(0,_jsxRuntime.jsx)(_ModalHeaderContent.CopySettingsViewHeader,{onBack:$})}if(m){return(0,_jsxRuntime.jsx)(_ModalHeaderContent.FilterViewHeader,{onBack:ne,activeTab:V,onTabChange:he,activeFilterCount:j})}if(s){return(0,_jsxRuntime.jsx)(_ModalHeaderContent.DetailViewHeader,{onBack:re,activeTab:y,onTabChange:O,hasHistory:(s.renderHistory?.length??0)>0})}return(0,_jsxRuntime.jsx)(_ModalHeaderContent.MainListHeader,{onBack:w,isSearchActive:b,searchText:S,onSearchChange:ee,onSearchToggle:ae,onSearchClose:ie,onFilterToggle:se,onToggleTracking:Q,onToggleFreeze:X,onClear:Y,onOpenCopySettings:Z,isTracking:R,isFrozen:q,activeFilterCount:j,hasRenders:z,searchInputRef:L})},[P,m,s,w,b,S,R,q,j,z,V,y,ne,re,$,ee,ae,ie,se,Q,X,Y,Z]);const be=a?_sharedUi.devToolsStorageKeys.modal.root():_sharedUi.devToolsStorageKeys.highlightUpdates.modal();if(!n)return null;const ve=C.current.length;const le=s?y==="details"?(0,_jsxRuntime.jsx)(_sharedUi.EventStepperFooter,{currentIndex:h,totalItems:ve,onPrevious:xe,onNext:ye,itemLabel:"Component",subtitle:s.componentName||s.displayName||s.viewType}):(0,_jsxRuntime.jsx)(_RenderHistoryViewer.RenderHistoryFooter,{render:s,selectedEventIndex:B,onEventIndexChange:_,isPro:o}):null;const ce=(0,_jsxRuntime.jsx)(_reactNative.View,{nativeID:"__rn_buoy__highlight-modal",testID:"buoy-highlight-body",style:styles.container,children:P?(0,_jsxRuntime.jsx)(_RendersCopySettingsView.RendersCopySettingsView,{renders:ge}):s?y==="details"?(0,_jsxRuntime.jsx)(_RenderDetailView.RenderDetailView,{render:s,disableInternalFooter:true,onAddFilter:Ce,isPro:o}):(0,_jsxRuntime.jsx)(_RenderHistoryViewer.RenderHistoryViewer,{render:s,disableInternalFooter:true,selectedEventIndex:B,onEventIndexChange:_,isPro:o}):m?(0,_jsxRuntime.jsx)(_HighlightFilterView.HighlightFilterView,{filters:i,onFilterChange:E,settings:H,onSettingsChange:we,availableProps:_RenderTracker.RenderTracker.getAvailableProps(),activeTab:V}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[!R&&(0,_jsxRuntime.jsx)(DisabledBanner,{}),(0,_jsxRuntime.jsx)(_IsolatedRenderList.IsolatedRenderList,{searchText:S,filters:i,onSelectRender:pe,onStatsChange:Re,onRendersChange:Te,isTracking:R,isPro:o})]})});if(g){return(0,_jsxRuntime.jsx)(_sharedUi.TickProvider,{children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.inlineRoot,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.inlineHeader,..._sharedUi.windowDragProps,children:oe()}),ce,le]})})}return(0,_jsxRuntime.jsx)(_sharedUi.TickProvider,{children:(0,_jsxRuntime.jsx)(_sharedUi.JsModal,{visible:n,onClose:k,onMinimize:F,persistenceKey:be,header:{showToggleButton:true,customContent:oe()},enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,disableScrollWrapper:_reactNative.Platform.OS==="web",styles:{},footer:le,footerHeight:s?y==="details"?68:(s.renderHistory?.length??0)>1?68:0:0,children:ce})})}function HighlightToolView(n={}){return(0,_jsxRuntime.jsx)(HighlightUpdatesModal,{...n,inline:true,visible:true,onClose:()=>{}})}const styles=_reactNative.StyleSheet.create({inlineRoot:{flex:1,minHeight:0,backgroundColor:"transparent"},inlineHeader:{paddingHorizontal:12,paddingVertical:8,borderBottomWidth:1,borderBottomColor:_sharedUi.night.color.border,backgroundColor:"transparent"},container:{flex:1,backgroundColor:"transparent"},disabledBanner:{flexDirection:"row",alignItems:"center",gap:8,padding:10,marginHorizontal:12,marginTop:8,backgroundColor:_sharedUi.night.color.warningSoft,borderRadius:8,borderWidth:1,borderColor:_sharedUi.night.color.warning+"20"},disabledText:{color:_sharedUi.night.color.warning,fontSize:11,flex:1}});var _default=exports.default=HighlightUpdatesModal;
@@ -1 +1 @@
1
- "use strict";import Le,{useState as l,useEffect as g,useRef as T,useCallback as s}from"react";import{View as D,Text as Oe,StyleSheet as Ue}from"react-native";import{Power as je,JsModal as Je,devToolsStorageKeys as x,persistentStorage as V,night as F,TickProvider as ye,windowDragProps as Me}from"@buoy-gg/shared-ui";import{useIsPro as Ke}from"@buoy-gg/license";import c from"../utils/HighlightUpdatesController";import{RenderTracker as o}from"../utils/RenderTracker";import{RenderDetailView as We}from"./RenderDetailView";import{EventStepperFooter as qe}from"@buoy-gg/shared-ui";import{HighlightFilterView as Ge}from"./HighlightFilterView";import{IsolatedRenderList as Qe}from"./IsolatedRenderList";import{MainListHeader as Xe,FilterViewHeader as Ye,DetailViewHeader as Ze,CopySettingsViewHeader as $e}from"./ModalHeaderContent";import{RenderHistoryViewer as et,RenderHistoryFooter as tt}from"./RenderHistoryViewer";import{RendersCopySettingsView as nt}from"./RendersCopySettingsView";import{jsx as i,jsxs as J,Fragment as rt}from"react/jsx-runtime";const st=Le.memo(function a(){return J(D,{testID:"buoy-highlight-disabled-banner",style:b.disabledBanner,children:[i(je,{size:14,color:F.color.warning}),i(Oe,{testID:"buoy-highlight-disabled-text",style:b.disabledText,children:"Render tracking is disabled"})]})});export function HighlightUpdatesModal({visible:a,onClose:xe,onBack:M,onMinimize:we,enableSharedModalDimensions:Ce=false,initialNativeTag:k,onInitialNativeTagHandled:K,onRenderSelect:H,inline:Fe=false}){const I=Ke();const[v,be]=l(false);const[W,Ie]=l(()=>c.getFrozen());const[q,G]=l(()=>o.getStats().totalComponents>0);const[r,f]=l(null);const[p,y]=l(0);const[A,z]=l(false);const[N,Q]=l(false);const[ve,Re]=l([]);const[B,Pe]=l("filters");const[w,X]=l("details");const[Y,_]=l(0);const[m,De]=l("");const[R,E]=l(false);const Z=T(null);const C=T([]);const $=T(o.getFilters());const[L,ee]=l(()=>{const e=o.getFilters();return e.includePatterns.length+e.excludePatterns.length});const[d,te]=l(()=>o.getFilters());const[O,ne]=l(()=>o.getSettings());const re=T(false);const U=T(false);const P=T(false);g(()=>{if(!a||re.current)return;re.current=true},[a]);g(()=>{if(!a||U.current)return;const e=async()=>{try{const t=await V.getItem(x.highlightUpdates.filters());if(t){const n=JSON.parse(t);const u={includeTestID:new Set(n.includeTestID||[]),includeNativeID:new Set(n.includeNativeID||[]),includeViewType:new Set(n.includeViewType||[]),includeComponent:new Set(n.includeComponent||[]),excludeTestID:new Set(n.excludeTestID||[]),excludeNativeID:new Set(n.excludeNativeID||[]),excludeViewType:new Set(n.excludeViewType||[]),excludeComponent:new Set(n.excludeComponent||[]),includePatterns:n.includePatterns||[],excludePatterns:n.excludePatterns||[]};o.setFilters(u);const h=o.getFilters();$.current=h;te(h);ee(h.includePatterns.length+h.excludePatterns.length)}U.current=true}catch(t){}};e()},[a]);g(()=>{if(!U.current)return;const e=async()=>{try{const t={includeTestID:Array.from(d.includeTestID),includeNativeID:Array.from(d.includeNativeID),includeViewType:Array.from(d.includeViewType),includeComponent:Array.from(d.includeComponent),excludeTestID:Array.from(d.excludeTestID),excludeNativeID:Array.from(d.excludeNativeID),excludeViewType:Array.from(d.excludeViewType),excludeComponent:Array.from(d.excludeComponent),includePatterns:d.includePatterns,excludePatterns:d.excludePatterns};await V.setItem(x.highlightUpdates.filters(),JSON.stringify(t))}catch(t){}};e()},[d]);g(()=>{if(!a||P.current)return;const e=async()=>{try{const t=await V.getItem(x.highlightUpdates.settings());if(t){const n=JSON.parse(t);const{performanceLogging:u,excludeDevTools:h,...S}=n;o.setSettings(S);ne(o.getSettings())}P.current=true}catch(t){P.current=true}};e()},[a]);g(()=>{if(!P.current)return;const e=async()=>{try{const{performanceLogging:t,excludeDevTools:n,...u}=O;await V.setItem(x.highlightUpdates.settings(),JSON.stringify(u))}catch(t){}};e()},[O]);g(()=>{const e=o.subscribeToState(t=>{be(t.isTracking)});return()=>{e()}},[]);g(()=>{const e=c.subscribeToFreeze(t=>{Ie(t)});return()=>{e()}},[]);g(()=>{if(R){requestAnimationFrame(()=>{Z.current?.focus()})}},[R]);g(()=>{if(!a){c.setSpotlight(null)}},[a]);g(()=>{if(a&&k!=null){const e=o.getRender(String(k));if(e){f(e);y(0);z(false);c.setSpotlight(e.nativeTag)}K?.()}},[a,k,K]);const se=s(()=>{if(!c.isInitialized()){c.initialize()}c.toggle()},[]);const oe=s(()=>{c.toggleFreeze()},[]);const ie=s(()=>{c.clearRenderCounts();G(false)},[]);const le=s(()=>{Re(o.getFilteredRenders(m));Q(true)},[m]);const ae=s(()=>{Q(false)},[]);const ce=s(e=>{De(e)},[]);const Ve=s((e,t,n)=>{f(e);y(t);X("details");_(0);C.current=n;c.setSpotlight(e.nativeTag)},[]);g(()=>{if(!r)return;const e=String(r.nativeTag);return o.subscribe(()=>{const t=o.getRender(e);if(t)f({...t})})},[r?.nativeTag]);const de=T(null);g(()=>{if(!H||!r)return;if(de.current===r.nativeTag)return;de.current=r.nativeTag;H(r)},[r,H]);const ke=s(e=>{C.current=e},[]);const ge=s(()=>{f(null);y(0);if(m)E(true);c.setSpotlight(null)},[m]);const He=s(()=>{const e=C.current;if(p>0){const t=p-1;const n=e[t];if(n){f(n);y(t);c.setSpotlight(n.nativeTag)}}},[p]);const Ae=s(()=>{const e=C.current;if(p<e.length-1){const t=p+1;const n=e[t];if(n){f(n);y(t);c.setSpotlight(n.nativeTag)}}},[p]);const ue=s(()=>{z(false)},[]);const he=s(()=>{z(true)},[]);const fe=s(()=>{E(true)},[]);const pe=s(()=>{E(false)},[]);const j=s(e=>{o.setFilters(e);const t=o.getFilters();$.current=t;te(t);ee(t.includePatterns.length+t.excludePatterns.length)},[]);const ze=s((e,t)=>{const n=o.getFilters();const u={};if(t==="include"){const h=n.includePatterns.some(S=>S.type===e.type&&S.value===e.value);if(!h){u.includePatterns=[...n.includePatterns,e]}}else{const h=n.excludePatterns.some(S=>S.type===e.type&&S.value===e.value);if(!h){u.excludePatterns=[...n.excludePatterns,e]}}if(Object.keys(u).length>0){j(u);f(null);y(0);c.setSpotlight(null)}},[j]);const Ne=s(e=>{o.setSettings(e);ne(o.getSettings())},[]);const Be=s(e=>{G(e.totalComponents>0)},[]);const me=s(()=>{if(N){return i($e,{onBack:ae})}if(A){return i(Ye,{onBack:ue,activeTab:B,onTabChange:Pe,activeFilterCount:L})}if(r){return i(Ze,{onBack:ge,activeTab:w,onTabChange:X,hasHistory:(r.renderHistory?.length??0)>0})}return i(Xe,{onBack:M,isSearchActive:R,searchText:m,onSearchChange:ce,onSearchToggle:fe,onSearchClose:pe,onFilterToggle:he,onToggleTracking:se,onToggleFreeze:oe,onClear:ie,onOpenCopySettings:le,isTracking:v,isFrozen:W,activeFilterCount:L,hasRenders:q,searchInputRef:Z})},[N,A,r,M,R,m,v,W,L,q,B,w,ue,ge,ae,ce,fe,pe,he,se,oe,ie,le]);const _e=Ce?x.modal.root():x.highlightUpdates.modal();if(!a)return null;const Ee=C.current.length;const Se=r?w==="details"?i(qe,{currentIndex:p,totalItems:Ee,onPrevious:He,onNext:Ae,itemLabel:"Component",subtitle:r.componentName||r.displayName||r.viewType}):i(tt,{render:r,selectedEventIndex:Y,onEventIndexChange:_,isPro:I}):null;const Te=i(D,{nativeID:"__rn_buoy__highlight-modal",testID:"buoy-highlight-body",style:b.container,children:N?i(nt,{renders:ve}):r?w==="details"?i(We,{render:r,disableInternalFooter:true,onAddFilter:ze,isPro:I}):i(et,{render:r,disableInternalFooter:true,selectedEventIndex:Y,onEventIndexChange:_,isPro:I}):A?i(Ge,{filters:d,onFilterChange:j,settings:O,onSettingsChange:Ne,availableProps:o.getAvailableProps(),activeTab:B}):J(rt,{children:[!v&&i(st,{}),i(Qe,{searchText:m,filters:d,onSelectRender:Ve,onStatsChange:Be,onRendersChange:ke,isTracking:v,isPro:I})]})});if(Fe){return i(ye,{children:J(D,{style:b.inlineRoot,children:[i(D,{style:b.inlineHeader,...Me,children:me()}),Te,Se]})})}return i(ye,{children:i(Je,{visible:a,onClose:xe,onMinimize:we,persistenceKey:_e,header:{showToggleButton:true,customContent:me()},enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,styles:{},footer:Se,footerHeight:r?w==="details"?68:(r.renderHistory?.length??0)>1?68:0:0,children:Te})})}export function HighlightToolView(a={}){return i(HighlightUpdatesModal,{...a,inline:true,visible:true,onClose:()=>{}})}const b=Ue.create({inlineRoot:{flex:1,minHeight:0,backgroundColor:"transparent"},inlineHeader:{paddingHorizontal:12,paddingVertical:8,borderBottomWidth:1,borderBottomColor:F.color.border,backgroundColor:"transparent"},container:{flex:1,backgroundColor:"transparent"},disabledBanner:{flexDirection:"row",alignItems:"center",gap:8,padding:10,marginHorizontal:12,marginTop:8,backgroundColor:F.color.warningSoft,borderRadius:8,borderWidth:1,borderColor:F.color.warning+"20"},disabledText:{color:F.color.warning,fontSize:11,flex:1}});export default HighlightUpdatesModal;
1
+ "use strict";import Le,{useState as l,useEffect as g,useRef as T,useCallback as s}from"react";import{View as D,Text as Oe,StyleSheet as Ue,Platform as je}from"react-native";import{Power as Je,JsModal as Me,devToolsStorageKeys as x,persistentStorage as V,night as F,TickProvider as ye,windowDragProps as Ke}from"@buoy-gg/shared-ui";import{useIsPro as We}from"@buoy-gg/license";import c from"../utils/HighlightUpdatesController";import{RenderTracker as o}from"../utils/RenderTracker";import{RenderDetailView as qe}from"./RenderDetailView";import{EventStepperFooter as Ge}from"@buoy-gg/shared-ui";import{HighlightFilterView as Qe}from"./HighlightFilterView";import{IsolatedRenderList as Xe}from"./IsolatedRenderList";import{MainListHeader as Ye,FilterViewHeader as Ze,DetailViewHeader as $e,CopySettingsViewHeader as et}from"./ModalHeaderContent";import{RenderHistoryViewer as tt,RenderHistoryFooter as nt}from"./RenderHistoryViewer";import{RendersCopySettingsView as rt}from"./RendersCopySettingsView";import{jsx as i,jsxs as J,Fragment as st}from"react/jsx-runtime";const ot=Le.memo(function a(){return J(D,{testID:"buoy-highlight-disabled-banner",style:b.disabledBanner,children:[i(Je,{size:14,color:F.color.warning}),i(Oe,{testID:"buoy-highlight-disabled-text",style:b.disabledText,children:"Render tracking is disabled"})]})});export function HighlightUpdatesModal({visible:a,onClose:xe,onBack:M,onMinimize:we,enableSharedModalDimensions:Ce=false,initialNativeTag:k,onInitialNativeTagHandled:K,onRenderSelect:H,inline:Fe=false}){const I=We();const[v,be]=l(false);const[W,Ie]=l(()=>c.getFrozen());const[q,G]=l(()=>o.getStats().totalComponents>0);const[r,f]=l(null);const[p,y]=l(0);const[A,z]=l(false);const[N,Q]=l(false);const[ve,Re]=l([]);const[B,Pe]=l("filters");const[w,X]=l("details");const[Y,_]=l(0);const[m,De]=l("");const[R,E]=l(false);const Z=T(null);const C=T([]);const $=T(o.getFilters());const[L,ee]=l(()=>{const e=o.getFilters();return e.includePatterns.length+e.excludePatterns.length});const[d,te]=l(()=>o.getFilters());const[O,ne]=l(()=>o.getSettings());const re=T(false);const U=T(false);const P=T(false);g(()=>{if(!a||re.current)return;re.current=true},[a]);g(()=>{if(!a||U.current)return;const e=async()=>{try{const t=await V.getItem(x.highlightUpdates.filters());if(t){const n=JSON.parse(t);const u={includeTestID:new Set(n.includeTestID||[]),includeNativeID:new Set(n.includeNativeID||[]),includeViewType:new Set(n.includeViewType||[]),includeComponent:new Set(n.includeComponent||[]),excludeTestID:new Set(n.excludeTestID||[]),excludeNativeID:new Set(n.excludeNativeID||[]),excludeViewType:new Set(n.excludeViewType||[]),excludeComponent:new Set(n.excludeComponent||[]),includePatterns:n.includePatterns||[],excludePatterns:n.excludePatterns||[]};o.setFilters(u);const h=o.getFilters();$.current=h;te(h);ee(h.includePatterns.length+h.excludePatterns.length)}U.current=true}catch(t){}};e()},[a]);g(()=>{if(!U.current)return;const e=async()=>{try{const t={includeTestID:Array.from(d.includeTestID),includeNativeID:Array.from(d.includeNativeID),includeViewType:Array.from(d.includeViewType),includeComponent:Array.from(d.includeComponent),excludeTestID:Array.from(d.excludeTestID),excludeNativeID:Array.from(d.excludeNativeID),excludeViewType:Array.from(d.excludeViewType),excludeComponent:Array.from(d.excludeComponent),includePatterns:d.includePatterns,excludePatterns:d.excludePatterns};await V.setItem(x.highlightUpdates.filters(),JSON.stringify(t))}catch(t){}};e()},[d]);g(()=>{if(!a||P.current)return;const e=async()=>{try{const t=await V.getItem(x.highlightUpdates.settings());if(t){const n=JSON.parse(t);const{performanceLogging:u,excludeDevTools:h,...S}=n;o.setSettings(S);ne(o.getSettings())}P.current=true}catch(t){P.current=true}};e()},[a]);g(()=>{if(!P.current)return;const e=async()=>{try{const{performanceLogging:t,excludeDevTools:n,...u}=O;await V.setItem(x.highlightUpdates.settings(),JSON.stringify(u))}catch(t){}};e()},[O]);g(()=>{const e=o.subscribeToState(t=>{be(t.isTracking)});return()=>{e()}},[]);g(()=>{const e=c.subscribeToFreeze(t=>{Ie(t)});return()=>{e()}},[]);g(()=>{if(R){requestAnimationFrame(()=>{Z.current?.focus()})}},[R]);g(()=>{if(!a){c.setSpotlight(null)}},[a]);g(()=>{if(a&&k!=null){const e=o.getRender(String(k));if(e){f(e);y(0);z(false);c.setSpotlight(e.nativeTag)}K?.()}},[a,k,K]);const se=s(()=>{if(!c.isInitialized()){c.initialize()}c.toggle()},[]);const oe=s(()=>{c.toggleFreeze()},[]);const ie=s(()=>{c.clearRenderCounts();G(false)},[]);const le=s(()=>{Re(o.getFilteredRenders(m));Q(true)},[m]);const ae=s(()=>{Q(false)},[]);const ce=s(e=>{De(e)},[]);const Ve=s((e,t,n)=>{f(e);y(t);X("details");_(0);C.current=n;c.setSpotlight(e.nativeTag)},[]);g(()=>{if(!r)return;const e=String(r.nativeTag);return o.subscribe(()=>{const t=o.getRender(e);if(t)f({...t})})},[r?.nativeTag]);const de=T(null);g(()=>{if(!H||!r)return;if(de.current===r.nativeTag)return;de.current=r.nativeTag;H(r)},[r,H]);const ke=s(e=>{C.current=e},[]);const ge=s(()=>{f(null);y(0);if(m)E(true);c.setSpotlight(null)},[m]);const He=s(()=>{const e=C.current;if(p>0){const t=p-1;const n=e[t];if(n){f(n);y(t);c.setSpotlight(n.nativeTag)}}},[p]);const Ae=s(()=>{const e=C.current;if(p<e.length-1){const t=p+1;const n=e[t];if(n){f(n);y(t);c.setSpotlight(n.nativeTag)}}},[p]);const ue=s(()=>{z(false)},[]);const he=s(()=>{z(true)},[]);const fe=s(()=>{E(true)},[]);const pe=s(()=>{E(false)},[]);const j=s(e=>{o.setFilters(e);const t=o.getFilters();$.current=t;te(t);ee(t.includePatterns.length+t.excludePatterns.length)},[]);const ze=s((e,t)=>{const n=o.getFilters();const u={};if(t==="include"){const h=n.includePatterns.some(S=>S.type===e.type&&S.value===e.value);if(!h){u.includePatterns=[...n.includePatterns,e]}}else{const h=n.excludePatterns.some(S=>S.type===e.type&&S.value===e.value);if(!h){u.excludePatterns=[...n.excludePatterns,e]}}if(Object.keys(u).length>0){j(u);f(null);y(0);c.setSpotlight(null)}},[j]);const Ne=s(e=>{o.setSettings(e);ne(o.getSettings())},[]);const Be=s(e=>{G(e.totalComponents>0)},[]);const me=s(()=>{if(N){return i(et,{onBack:ae})}if(A){return i(Ze,{onBack:ue,activeTab:B,onTabChange:Pe,activeFilterCount:L})}if(r){return i($e,{onBack:ge,activeTab:w,onTabChange:X,hasHistory:(r.renderHistory?.length??0)>0})}return i(Ye,{onBack:M,isSearchActive:R,searchText:m,onSearchChange:ce,onSearchToggle:fe,onSearchClose:pe,onFilterToggle:he,onToggleTracking:se,onToggleFreeze:oe,onClear:ie,onOpenCopySettings:le,isTracking:v,isFrozen:W,activeFilterCount:L,hasRenders:q,searchInputRef:Z})},[N,A,r,M,R,m,v,W,L,q,B,w,ue,ge,ae,ce,fe,pe,he,se,oe,ie,le]);const _e=Ce?x.modal.root():x.highlightUpdates.modal();if(!a)return null;const Ee=C.current.length;const Se=r?w==="details"?i(Ge,{currentIndex:p,totalItems:Ee,onPrevious:He,onNext:Ae,itemLabel:"Component",subtitle:r.componentName||r.displayName||r.viewType}):i(nt,{render:r,selectedEventIndex:Y,onEventIndexChange:_,isPro:I}):null;const Te=i(D,{nativeID:"__rn_buoy__highlight-modal",testID:"buoy-highlight-body",style:b.container,children:N?i(rt,{renders:ve}):r?w==="details"?i(qe,{render:r,disableInternalFooter:true,onAddFilter:ze,isPro:I}):i(tt,{render:r,disableInternalFooter:true,selectedEventIndex:Y,onEventIndexChange:_,isPro:I}):A?i(Qe,{filters:d,onFilterChange:j,settings:O,onSettingsChange:Ne,availableProps:o.getAvailableProps(),activeTab:B}):J(st,{children:[!v&&i(ot,{}),i(Xe,{searchText:m,filters:d,onSelectRender:Ve,onStatsChange:Be,onRendersChange:ke,isTracking:v,isPro:I})]})});if(Fe){return i(ye,{children:J(D,{style:b.inlineRoot,children:[i(D,{style:b.inlineHeader,...Ke,children:me()}),Te,Se]})})}return i(ye,{children:i(Me,{visible:a,onClose:xe,onMinimize:we,persistenceKey:_e,header:{showToggleButton:true,customContent:me()},enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,disableScrollWrapper:je.OS==="web",styles:{},footer:Se,footerHeight:r?w==="details"?68:(r.renderHistory?.length??0)>1?68:0:0,children:Te})})}export function HighlightToolView(a={}){return i(HighlightUpdatesModal,{...a,inline:true,visible:true,onClose:()=>{}})}const b=Ue.create({inlineRoot:{flex:1,minHeight:0,backgroundColor:"transparent"},inlineHeader:{paddingHorizontal:12,paddingVertical:8,borderBottomWidth:1,borderBottomColor:F.color.border,backgroundColor:"transparent"},container:{flex:1,backgroundColor:"transparent"},disabledBanner:{flexDirection:"row",alignItems:"center",gap:8,padding:10,marginHorizontal:12,marginTop:8,backgroundColor:F.color.warningSoft,borderRadius:8,borderWidth:1,borderColor:F.color.warning+"20"},disabledText:{color:F.color.warning,fontSize:11,flex:1}});export default HighlightUpdatesModal;