- {{if .IsPrivate}}
- {{svg "octicon-lock"}}
- {{else if .IsFork}}
- {{svg "octicon-repo-forked"}}
- {{else if .IsMirror}}
- {{svg "octicon-mirror"}}
- {{else if .IsTemplate}}
- {{svg "octicon-repo-template"}}
- {{else}}
- {{svg "octicon-repo"}}
- {{end}}
+ {{template "repo/icon" (dict "Repo" . "Size" 16)}}
{{.OwnerName}}/{{.Name}}
{{FileSize .Size}}
{{if .IsFork}}
diff --git a/web_src/js/components/DashboardRepoList.vue b/web_src/js/components/DashboardRepoList.vue
index 5d0d66e4b3..e4aa11dea9 100644
--- a/web_src/js/components/DashboardRepoList.vue
+++ b/web_src/js/components/DashboardRepoList.vue
@@ -3,6 +3,7 @@ import {nextTick, defineComponent} from 'vue';
import {SvgIcon} from '../svg.ts';
import {GET} from '../modules/fetch.ts';
import {fomanticQuery} from '../modules/fomantic/base.ts';
+import {getRepoIcon} from '../utils/mappings.ts';
const {appSubUrl, assetUrlPrefix, pageData} = window.config;
@@ -283,19 +284,8 @@ export default defineComponent({
}
},
- repoIcon(repo: any) {
- if (repo.fork) {
- return 'octicon-repo-forked';
- } else if (repo.mirror) {
- return 'octicon-mirror';
- } else if (repo.template) {
- return `octicon-repo-template`;
- } else if (repo.private) {
- return 'octicon-repo-locked';
- } else if (repo.internal) {
- return 'octicon-repo';
- }
- return 'octicon-repo';
+ repoIcon(repo: Record) {
+ return getRepoIcon(repo);
},
statusIcon(status: CommitStatus) {
diff --git a/web_src/js/utils/mappings.ts b/web_src/js/utils/mappings.ts
new file mode 100644
index 0000000000..d99fe9aa29
--- /dev/null
+++ b/web_src/js/utils/mappings.ts
@@ -0,0 +1,12 @@
+export function getRepoIcon(repo: Record) {
+ if (repo.mirror) {
+ return 'octicon-mirror';
+ } else if (repo.fork) {
+ return 'octicon-repo-forked';
+ } else if (repo.private) {
+ return 'octicon-repo-locked';
+ } else if (repo.template) {
+ return `octicon-repo-template`;
+ }
+ return 'octicon-repo';
+}