mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00:00 
			
		
		
		
	Very simple change, just rename this variable so it does not feature the name of the module.
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import emojis from '../../../assets/emoji.json';
 | 
						|
 | 
						|
const maxMatches = 6;
 | 
						|
 | 
						|
function sortAndReduce(map) {
 | 
						|
  const sortedMap = new Map(Array.from(map.entries()).sort((a, b) => a[1] - b[1]));
 | 
						|
  return Array.from(sortedMap.keys()).slice(0, maxMatches);
 | 
						|
}
 | 
						|
 | 
						|
export function matchEmoji(queryText) {
 | 
						|
  const query = queryText.toLowerCase().replaceAll('_', ' ');
 | 
						|
  if (!query) return emojis.slice(0, maxMatches).map((e) => e.aliases[0]);
 | 
						|
 | 
						|
  // results is a map of weights, lower is better
 | 
						|
  const results = new Map();
 | 
						|
  for (const {aliases} of emojis) {
 | 
						|
    const mainAlias = aliases[0];
 | 
						|
    for (const [aliasIndex, alias] of aliases.entries()) {
 | 
						|
      const index = alias.replaceAll('_', ' ').indexOf(query);
 | 
						|
      if (index === -1) continue;
 | 
						|
      const existing = results.get(mainAlias);
 | 
						|
      const rankedIndex = index + aliasIndex;
 | 
						|
      results.set(mainAlias, existing ? existing - rankedIndex : rankedIndex);
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return sortAndReduce(results);
 | 
						|
}
 | 
						|
 | 
						|
export function matchMention(queryText) {
 | 
						|
  const query = queryText.toLowerCase();
 | 
						|
 | 
						|
  // results is a map of weights, lower is better
 | 
						|
  const results = new Map();
 | 
						|
  for (const obj of window.config.mentionValues) {
 | 
						|
    const index = obj.key.toLowerCase().indexOf(query);
 | 
						|
    if (index === -1) continue;
 | 
						|
    const existing = results.get(obj);
 | 
						|
    results.set(obj, existing ? existing - index : index);
 | 
						|
  }
 | 
						|
 | 
						|
  return sortAndReduce(results);
 | 
						|
}
 |