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:
		
							
								
								
									
										45
									
								
								web_src/js/features/contextpopup.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								web_src/js/features/contextpopup.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| import {createApp} from 'vue'; | ||||
| import ContextPopup from '../components/ContextPopup.vue'; | ||||
| import {parseIssueHref} from '../utils.ts'; | ||||
| import {createTippy} from '../modules/tippy.ts'; | ||||
|  | ||||
| export function initContextPopups() { | ||||
|   const refIssues = document.querySelectorAll('.ref-issue'); | ||||
|   attachRefIssueContextPopup(refIssues); | ||||
| } | ||||
|  | ||||
| export function attachRefIssueContextPopup(refIssues) { | ||||
|   for (const refIssue of refIssues) { | ||||
|     if (refIssue.classList.contains('ref-external-issue')) { | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     const {owner, repo, index} = parseIssueHref(refIssue.getAttribute('href')); | ||||
|     if (!owner) return; | ||||
|  | ||||
|     const el = document.createElement('div'); | ||||
|     el.classList.add('tw-p-3'); | ||||
|     refIssue.parentNode.insertBefore(el, refIssue.nextSibling); | ||||
|  | ||||
|     const view = createApp(ContextPopup); | ||||
|  | ||||
|     try { | ||||
|       view.mount(el); | ||||
|     } catch (err) { | ||||
|       console.error(err); | ||||
|       el.textContent = 'ContextPopup failed to load'; | ||||
|     } | ||||
|  | ||||
|     createTippy(refIssue, { | ||||
|       theme: 'default', | ||||
|       content: el, | ||||
|       placement: 'top-start', | ||||
|       interactive: true, | ||||
|       role: 'dialog', | ||||
|       interactiveBorder: 5, | ||||
|       onShow: () => { | ||||
|         el.firstChild.dispatchEvent(new CustomEvent('ce-load-context-popup', {detail: {owner, repo, index}})); | ||||
|       }, | ||||
|     }); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 silverwind
					silverwind