@@ -80,6 +80,16 @@ const ComponentsPopover: React.FC<Props> = ({
8080 } ) ;
8181 } ;
8282
83+ const getFilteredUpsells = ( ) => {
84+ if ( ! searchQuery ) {
85+ return upsells ;
86+ }
87+
88+ return upsells . filter ( ( { name } ) => {
89+ return name . toLowerCase ( ) . includes ( searchQuery ) ;
90+ } ) ;
91+ } ;
92+
8393 const renderItem = ( item : ItemInterface , idx : number ) => {
8494 if ( ! item . id ) {
8595 return null ;
@@ -113,10 +123,15 @@ const ComponentsPopover: React.FC<Props> = ({
113123 const renderItems = ( ) => {
114124 const themeItems = getSidebarItems ( ) ;
115125 const boosterItems = getSidebarItems ( true ) ;
126+ const filteredUpsells = getFilteredUpsells ( ) ;
116127
117128 let noComponents = null ;
118129
119- if ( themeItems . length === 0 && boosterItems . length === 0 ) {
130+ if (
131+ themeItems . length === 0 &&
132+ boosterItems . length === 0 &&
133+ filteredUpsells . length === 0
134+ ) {
120135 noComponents = (
121136 < div className = "no-components" >
122137 < span >
@@ -156,13 +171,13 @@ const ComponentsPopover: React.FC<Props> = ({
156171 ) }
157172 </ >
158173 ) }
159- { boosterItems . length < 1 && upsells . length > 0 && (
174+ { boosterItems . length < 1 && filteredUpsells . length > 0 && (
160175 < >
161176 < h4 >
162177 { __ ( 'PRO' , 'neve' ) } { __ ( 'Components' , 'neve' ) }
163178 </ h4 >
164179 < div className = "items-popover-list upsell-list" >
165- { upsells . map ( ( { name, icon } , idx ) => {
180+ { filteredUpsells . map ( ( { name, icon } , idx ) => {
166181 return renderUpsell ( idx , icon , name ) ;
167182 } ) }
168183 </ div >
0 commit comments