PluginProbe ʕ •ᴥ•ʔ
Starter Sites & Templates by Neve / trunk
Starter Sites & Templates by Neve vtrunk
1.4.1 1.4.0 1.3.0 1.2.29 1.2.28 1.2.6 1.2.7 1.2.8 1.2.9 trunk 1.0.10 1.0.11 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.27 1.1.28 1.1.29 1.1.3 1.1.30 1.1.31 1.1.32 1.1.33 1.1.34 1.1.35 1.1.36 1.1.37 1.1.38 1.1.39 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.3 1.2.4 1.2.5
templates-patterns-collection / onboarding / src / utils / search.js
templates-patterns-collection / onboarding / src / utils Last commit date
common.js 6 days ago rest.js 3 weeks ago search.js 3 weeks ago site-import.js 2 years ago svg.js 3 weeks ago
search.js
41 lines
1 import Fuse from 'fuse.js/dist/fuse.min';
2
3 const SEARCH_KEYS = [
4 { name: 'title', weight: 0.5 },
5 { name: 'category', weight: 0.35 },
6 { name: 'slug', weight: 0.3 },
7 { name: 'site_description', weight: 0.25 },
8 { name: 'description', weight: 0.25 },
9 { name: 'keywords', weight: 0.2 },
10 ];
11
12 const SEARCH_THRESHOLD = 0.3;
13
14 export const searchCatalog = ( items, query ) => {
15 const q = ( query || '' ).trim();
16 if ( ! q || ! Array.isArray( items ) || ! items.length ) {
17 return [];
18 }
19
20 return new Fuse( items, {
21 includeScore: true,
22 threshold: SEARCH_THRESHOLD,
23 keys: SEARCH_KEYS,
24 } )
25 .search( q )
26 .map( ( result ) => result.item )
27 .filter( Boolean );
28 };
29
30 export const matchesCategory = ( site, cat ) => {
31 if ( 'free' === cat ) {
32 return ! site.upsell;
33 }
34
35 if ( cat && 'all' !== cat ) {
36 return Array.isArray( site.keywords ) && site.keywords.includes( cat );
37 }
38
39 return true;
40 };
41