22import {SvgIcon , type SvgName } from ' ../svg.ts' ;
33import {diffTreeStore } from ' ../modules/stores.ts' ;
44import {ref } from ' vue' ;
5+ import { type Item , type File , type FileStatus } from ' ./file_tree.ts' ;
56
6- type File = {
7- Name: string ;
8- NameHash: string ;
9- Type: number ;
10- IsViewed: boolean ;
11- IsSubmodule: boolean ;
12- }
13-
14- export type Item = {
15- name: string ;
16- isFile: boolean ;
17- file? : File ;
18- children? : Item [];
19- };
207
218defineProps <{
229 item: Item ,
@@ -25,15 +12,15 @@ defineProps<{
2512const store = diffTreeStore ();
2613const collapsed = ref (false );
2714
28- function getIconForDiffType(pType : number ) {
29- const diffTypes: Record <string , {name: SvgName , classes: Array <string >}> = {
30- ' 1 ' : {name: ' octicon-diff-added' , classes: [' text' , ' green' ]},
31- ' 2 ' : {name: ' octicon-diff-modified' , classes: [' text' , ' yellow' ]},
32- ' 3 ' : {name: ' octicon-diff-removed' , classes: [' text' , ' red' ]},
33- ' 4 ' : {name: ' octicon-diff-renamed' , classes: [' text' , ' teal' ]},
34- ' 5 ' : {name: ' octicon-diff-renamed ' , classes: [' text' , ' green' ]}, // there is no octicon for copied, so renamed should be ok
15+ function getIconForDiffType(pType : FileStatus ) {
16+ const diffTypes: Record <FileStatus , {name: SvgName , classes: Array <string >}> = {
17+ ' added ' : {name: ' octicon-diff-added' , classes: [' text' , ' green' ]},
18+ ' modified ' : {name: ' octicon-diff-modified' , classes: [' text' , ' yellow' ]},
19+ ' deleted ' : {name: ' octicon-diff-removed' , classes: [' text' , ' red' ]},
20+ ' renamed ' : {name: ' octicon-diff-renamed' , classes: [' text' , ' teal' ]},
21+ ' typechange ' : {name: ' octicon-diff-modified ' , classes: [' text' , ' green' ]}, // there is no octicon for copied, so renamed should be ok
3522 };
36- return diffTypes [String ( pType ) ];
23+ return diffTypes [pType ];
3724}
3825
3926function fileIcon(file : File ) {
@@ -54,7 +41,7 @@ function fileIcon(file: File) {
5441 <!-- file -->
5542 <SvgIcon :name =" fileIcon(item.file)" />
5643 <span class =" gt-ellipsis tw-flex-1" >{{ item.name }}</span >
57- <SvgIcon :name =" getIconForDiffType(item.file.Type ).name" :class =" getIconForDiffType(item.file.Type ).classes" />
44+ <SvgIcon :name =" getIconForDiffType(item.file.Status ).name" :class =" getIconForDiffType(item.file.Status ).classes" />
5845 </a >
5946 <div v-else class =" item-directory" :title =" item.name" @click.stop =" collapsed = !collapsed" >
6047 <!-- directory -->
0 commit comments