diff --git a/web_src/js/components/DashboardRepoGroup.vue b/web_src/js/components/DashboardRepoGroup.vue index 4a630a13e5..18f2315703 100644 --- a/web_src/js/components/DashboardRepoGroup.vue +++ b/web_src/js/components/DashboardRepoGroup.vue @@ -12,7 +12,7 @@ const emitter = defineEmits<{ itemAdded: [ item: any, index: number ], itemRemoved: [ item: any, index: number ] }>(); -const groupData = inject>>('groups'); +const groupData = inject>>('groups')!; const searchUrl = inject('searchURL'); const orgName = inject('orgName'); @@ -69,7 +69,7 @@ async function searchGroup(gid: number) { const tmp = groupData.value; groupData.value = tmp; } -const orepos = inject>('repos'); +const orepos = inject>('repos')!; const dynKey = computed(() => hash(combined.value)); function getId(it: any) { @@ -84,9 +84,9 @@ const options: SortableOptions = { name: 'repo-group', put(to, _from, _drag, _ev) { const closestLi = to.el?.closest('li'); - const base = to.el.getAttribute('data-is-group').toLowerCase() === 'true'; + const base = to.el.getAttribute('data-is-group')?.toLowerCase() === 'true'; if (closestLi) { - const input = Array.from(closestLi?.querySelector('label')?.children).find((a) => a instanceof HTMLInputElement && a.checked); + const input = Array.from(closestLi?.querySelector('label')?.children ?? []).find((a) => a instanceof HTMLInputElement && a.checked); return base && Boolean(input); } return base; @@ -113,16 +113,16 @@ const options: SortableOptions = { .filter((a, pos, arr) => arr.findIndex((b) => b.id === a.id) === pos); for (let i = 0; i < groups.length; i++) { - const cur = groupData.value.get(groups[i]); + const cur = groupData.value.get(groups[i])!; groupData.value.set(groups[i], { ...cur, sort_order: i + 1, }); } - const cur = groupData.value.get(curGroup); + const cur = groupData.value.get(curGroup)!; const ndata: GroupMapType = { ...cur, - subgroups: groups.toSorted((a, b) => groupData.value.get(a).sort_order - groupData.value.get(b).sort_order), + subgroups: groups.toSorted((a, b) => groupData.value.get(a)?.sort_order - groupData.value.get(b)?.sort_order), repos: repos.toSorted((a, b) => a.group_sort_order - b.group_sort_order), }; groupData.value.set(curGroup, ndata); diff --git a/web_src/js/globals.d.ts b/web_src/js/globals.d.ts index 9fa2c11e7f..f8ebd312a1 100644 --- a/web_src/js/globals.d.ts +++ b/web_src/js/globals.d.ts @@ -42,7 +42,9 @@ interface Window { repoLink?: string, repoActivityTopAuthors?: any[], pullRequestMergeForm?: Record, - dashboardRepoList?: Record, + dashboardRepoList?: Record & { + organizationName: string, + }, }, notificationSettings: { MinTimeout: number,