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:
		
							
								
								
									
										42
									
								
								web_src/js/features/heatmap.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								web_src/js/features/heatmap.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| import {createApp} from 'vue'; | ||||
| import ActivityHeatmap from '../components/ActivityHeatmap.vue'; | ||||
| import {translateMonth, translateDay} from '../utils.ts'; | ||||
|  | ||||
| export function initHeatmap() { | ||||
|   const el = document.querySelector('#user-heatmap'); | ||||
|   if (!el) return; | ||||
|  | ||||
|   try { | ||||
|     const heatmap = {}; | ||||
|     for (const {contributions, timestamp} of JSON.parse(el.getAttribute('data-heatmap-data'))) { | ||||
|       // Convert to user timezone and sum contributions by date | ||||
|       const dateStr = new Date(timestamp * 1000).toDateString(); | ||||
|       heatmap[dateStr] = (heatmap[dateStr] || 0) + contributions; | ||||
|     } | ||||
|  | ||||
|     const values = Object.keys(heatmap).map((v) => { | ||||
|       return {date: new Date(v), count: heatmap[v]}; | ||||
|     }); | ||||
|  | ||||
|     // last heatmap tooltip localization attempt https://github.com/go-gitea/gitea/pull/24131/commits/a83761cbbae3c2e3b4bced71e680f44432073ac8 | ||||
|     const locale = { | ||||
|       heatMapLocale: { | ||||
|         months: new Array(12).fill().map((_, idx) => translateMonth(idx)), | ||||
|         days: new Array(7).fill().map((_, idx) => translateDay(idx)), | ||||
|         on: ' - ', // no correct locale support for it, because in many languages the sentence is not "something on someday" | ||||
|         more: el.getAttribute('data-locale-more'), | ||||
|         less: el.getAttribute('data-locale-less'), | ||||
|       }, | ||||
|       tooltipUnit: 'contributions', | ||||
|       textTotalContributions: el.getAttribute('data-locale-total-contributions'), | ||||
|       noDataText: el.getAttribute('data-locale-no-contributions'), | ||||
|     }; | ||||
|  | ||||
|     const View = createApp(ActivityHeatmap, {values, locale}); | ||||
|     View.mount(el); | ||||
|     el.classList.remove('is-loading'); | ||||
|   } catch (err) { | ||||
|     console.error('Heatmap failed to load', err); | ||||
|     el.textContent = 'Heatmap failed to load'; | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 silverwind
					silverwind