mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 19:06:18 +01: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:
		
							
								
								
									
										30
									
								
								web_src/js/features/common-form.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								web_src/js/features/common-form.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| import $ from 'jquery'; | ||||
| import {initAreYouSure} from '../vendor/jquery.are-you-sure.ts'; | ||||
| import {handleGlobalEnterQuickSubmit} from './comp/QuickSubmit.ts'; | ||||
|  | ||||
| export function initGlobalFormDirtyLeaveConfirm() { | ||||
|   initAreYouSure(window.jQuery); | ||||
|   // Warn users that try to leave a page after entering data into a form. | ||||
|   // Except on sign-in pages, and for forms marked as 'ignore-dirty'. | ||||
|   if (!$('.user.signin').length) { | ||||
|     $('form:not(.ignore-dirty)').areYouSure(); | ||||
|   } | ||||
| } | ||||
|  | ||||
| export function initGlobalEnterQuickSubmit() { | ||||
|   document.addEventListener('keydown', (e) => { | ||||
|     if (e.key !== 'Enter') return; | ||||
|     const hasCtrlOrMeta = ((e.ctrlKey || e.metaKey) && !e.altKey); | ||||
|     if (hasCtrlOrMeta && e.target.matches('textarea')) { | ||||
|       if (handleGlobalEnterQuickSubmit(e.target)) { | ||||
|         e.preventDefault(); | ||||
|       } | ||||
|     } else if (e.target.matches('input') && !e.target.closest('form')) { | ||||
|       // input in a normal form could handle Enter key by default, so we only handle the input outside a form | ||||
|       // eslint-disable-next-line unicorn/no-lonely-if | ||||
|       if (handleGlobalEnterQuickSubmit(e.target)) { | ||||
|         e.preventDefault(); | ||||
|       } | ||||
|     } | ||||
|   }); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user