mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Convert frontend code to typescript (#31559)
None of the frontend js/ts files was touched besides these two commands
(edit: no longer true, I touched one file in
61105d0618
because of a deprecation that was not showing before the rename).
`tsc` currently reports 778 errors, so I have disabled it in CI as
planned.
Everything appears to work fine.
			
			
This commit is contained in:
		
							
								
								
									
										51
									
								
								web_src/js/features/comp/SearchUserBox.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								web_src/js/features/comp/SearchUserBox.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| import $ from 'jquery'; | ||||
| import {htmlEscape} from 'escape-goat'; | ||||
|  | ||||
| const {appSubUrl} = window.config; | ||||
| const looksLikeEmailAddressCheck = /^\S+@\S+$/; | ||||
|  | ||||
| export function initCompSearchUserBox() { | ||||
|   const searchUserBox = document.querySelector('#search-user-box'); | ||||
|   if (!searchUserBox) return; | ||||
|  | ||||
|   const $searchUserBox = $(searchUserBox); | ||||
|   const allowEmailInput = searchUserBox.getAttribute('data-allow-email') === 'true'; | ||||
|   const allowEmailDescription = searchUserBox.getAttribute('data-allow-email-description') ?? undefined; | ||||
|   $searchUserBox.search({ | ||||
|     minCharacters: 2, | ||||
|     apiSettings: { | ||||
|       url: `${appSubUrl}/user/search?active=1&q={query}`, | ||||
|       onResponse(response) { | ||||
|         const items = []; | ||||
|         const searchQuery = $searchUserBox.find('input').val(); | ||||
|         const searchQueryUppercase = searchQuery.toUpperCase(); | ||||
|         $.each(response.data, (_i, item) => { | ||||
|           const resultItem = { | ||||
|             title: item.login, | ||||
|             image: item.avatar_url, | ||||
|           }; | ||||
|           if (item.full_name) { | ||||
|             resultItem.description = htmlEscape(item.full_name); | ||||
|           } | ||||
|           if (searchQueryUppercase === item.login.toUpperCase()) { | ||||
|             items.unshift(resultItem); | ||||
|           } else { | ||||
|             items.push(resultItem); | ||||
|           } | ||||
|         }); | ||||
|  | ||||
|         if (allowEmailInput && !items.length && looksLikeEmailAddressCheck.test(searchQuery)) { | ||||
|           const resultItem = { | ||||
|             title: searchQuery, | ||||
|             description: allowEmailDescription, | ||||
|           }; | ||||
|           items.push(resultItem); | ||||
|         } | ||||
|  | ||||
|         return {results: items}; | ||||
|       }, | ||||
|     }, | ||||
|     searchFields: ['login', 'full_name'], | ||||
|     showNoResults: false, | ||||
|   }); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 silverwind
					silverwind