diff --git a/web/src/views/Login.vue b/web/src/views/Login.vue
index 3572129d8..a6256473d 100644
--- a/web/src/views/Login.vue
+++ b/web/src/views/Login.vue
@@ -23,7 +23,7 @@
{{ $t('login_to_woodpecker_with') }}
@@ -103,18 +103,24 @@ onMounted(async () => {
useWPTitle(computed(() => [i18n.t('login')]));
-function getHostFromUrl(forge: Forge) {
- if (!forge.url && !forge.oauth_host) {
- return forge.type.charAt(0).toUpperCase() + forge.type.slice(1);
- }
-
- const url = new URL(forge.oauth_host ?? forge.url);
- return url.hostname;
-}
-
const failedForgeFavicons = ref(new Set()); // Track which favicons failed to load
-function getFaviconUrl(forge: Forge) {
- const url = new URL(forge.oauth_host ?? forge.url);
- return `${url.origin}/favicon.ico`;
-}
+
+const forgesWithNameAndFavicon = computed(() =>
+ forges.value.map((forge) => {
+ let name = forge.type.charAt(0).toUpperCase() + forge.type.slice(1);
+ let favicon: null | string = null;
+
+ if (forge.url || forge.oauth_host) {
+ const url = new URL(forge.oauth_host || forge.url);
+ name = url.hostname;
+ favicon = `${url.origin}/favicon.ico`;
+ }
+
+ return {
+ ...forge,
+ name,
+ favicon,
+ };
+ }),
+);