From 7c93ead6284e543fbdb998d478090c1742e5e6b1 Mon Sep 17 00:00:00 2001 From: silverwind Date: Mon, 31 Aug 2026 13:12:25 +0200 Subject: [PATCH] refactor: improve types in the frontend, misc fixes (#39142) --- tools/generate-svg.ts | 4 +- web_src/js/components/ActionRunJobView.vue | 13 ++- .../js/components/ActionRunSummaryView.vue | 14 ++- web_src/js/components/ContextPopup.vue | 4 +- web_src/js/components/DashboardRepoList.vue | 13 ++- .../js/components/PullRequestMergeForm.vue | 58 +++++++++---- web_src/js/components/RepoActionView.vue | 31 ++++++- .../js/components/RepoActivityTopAuthors.vue | 10 +-- web_src/js/components/RepoContributors.vue | 85 ++++++++++++------- web_src/js/components/WorkflowGraph.vue | 14 ++- web_src/js/external-render-helper.ts | 2 +- web_src/js/features/admin/config.ts | 4 +- web_src/js/features/admin/selfcheck.ts | 2 +- web_src/js/features/common-button.ts | 13 +-- .../js/features/comp/ComboMarkdownEditor.ts | 66 +++++++------- .../js/features/comp/EasyMDEToolbarActions.ts | 11 ++- web_src/js/features/comp/EditorUpload.ts | 12 +-- web_src/js/features/comp/TextExpander.ts | 17 ++-- web_src/js/features/dropzone.ts | 18 ++-- web_src/js/features/pull-view-file.ts | 2 +- web_src/js/features/ref-issue.ts | 2 +- web_src/js/features/repo-diff-commit.ts | 9 +- web_src/js/features/repo-findfile.ts | 2 +- web_src/js/features/repo-home.ts | 12 ++- web_src/js/features/repo-issue-content.ts | 5 +- web_src/js/features/repo-issue-list.ts | 11 ++- web_src/js/features/repo-issue-pull.ts | 5 +- web_src/js/features/repo-issue-sidebar.ts | 5 +- web_src/js/features/repo-issue.ts | 5 +- web_src/js/features/repo-new.ts | 2 +- web_src/js/features/repo-wiki.ts | 2 +- web_src/js/globals.d.ts | 19 +++-- web_src/js/modules/fetch-action.ts | 2 +- web_src/js/modules/fomantic.ts | 2 +- web_src/js/modules/fomantic/dropdown.ts | 61 ++++++++----- web_src/js/modules/fomantic/modal.ts | 8 +- web_src/js/modules/fomantic/transition.ts | 2 +- web_src/js/render/plugin.ts | 2 +- web_src/js/types.ts | 22 ++++- web_src/js/utils.test.ts | 4 +- web_src/js/utils.ts | 14 +-- web_src/js/utils/dom.ts | 4 +- web_src/js/utils/func.ts | 2 +- web_src/js/utils/match.ts | 4 +- web_src/js/utils/time.ts | 2 +- web_src/js/webcomponents/relative-time.ts | 8 +- 46 files changed, 392 insertions(+), 217 deletions(-) diff --git a/tools/generate-svg.ts b/tools/generate-svg.ts index 004ed520425..2b3d3ae745a 100755 --- a/tools/generate-svg.ts +++ b/tools/generate-svg.ts @@ -47,8 +47,8 @@ function processAssetsSvgFiles(pattern: string, opts: Opts = {}) { return glob(pattern).map((path) => processAssetsSvgFile(path, opts)); } -function lowercaseKeys(obj: Record) { - return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key.toLowerCase(), value])); +function lowercaseKeys>(obj: T): T { + return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key.toLowerCase(), value])) as T; } async function processMaterialFileIcons() { diff --git a/web_src/js/components/ActionRunJobView.vue b/web_src/js/components/ActionRunJobView.vue index ac06e6ab88a..6217db219e5 100644 --- a/web_src/js/components/ActionRunJobView.vue +++ b/web_src/js/components/ActionRunJobView.vue @@ -25,6 +25,17 @@ function isLogElementInViewport(el: Element, {extraViewPortHeight}={extraViewPor return 0 <= rect.bottom && rect.bottom <= window.innerHeight + extraViewPortHeight; } +export type ActionRunJobViewLocale = { + status: Record, + showTimeStamps: string, + showLogSeconds: string, + showFullScreen: string, + logsAlwaysAutoScroll: string, + logsAlwaysExpandRunning: string, + downloadLogs: string, + copyOutput: string, +}; + type Step = { summary: string, duration: string, @@ -84,7 +95,7 @@ const props = defineProps<{ store: ActionRunViewStore, jobId: number; actionsViewUrl: string; - locale: Record; + locale: ActionRunJobViewLocale; }>(); const store = props.store; const {currentRun: run} = toRefs(store.viewData); diff --git a/web_src/js/components/ActionRunSummaryView.vue b/web_src/js/components/ActionRunSummaryView.vue index efd2c79e9be..eb488502494 100644 --- a/web_src/js/components/ActionRunSummaryView.vue +++ b/web_src/js/components/ActionRunSummaryView.vue @@ -1,16 +1,26 @@