Skip to content

Commit 4c5f58d

Browse files
committed
feat: add new filename title(file-header)
1 parent 6bf6391 commit 4c5f58d

File tree

3 files changed

+37
-7
lines changed

3 files changed

+37
-7
lines changed

src/CodeDiff.vue

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ interface Props {
1818
noDiffLineFeed?: boolean
1919
maxHeight?: string
2020
filename?: string
21+
newFilename?: string
2122
hideHeader?: boolean
2223
hideStat?: boolean
2324
}
@@ -39,6 +40,7 @@ const props = withDefaults(defineProps<Props>(), {
3940
noDiffLineFeed: false,
4041
maxHeight: undefined,
4142
filename: undefined,
43+
newFilename: undefined,
4244
hideHeader: false,
4345
hideStat: false,
4446
})
@@ -85,15 +87,34 @@ watch(() => props, () => {
8587
<template>
8688
<div class="code-diff-view" :style="{ maxHeight }">
8789
<div v-if="!hideHeader" class="file-header">
88-
<div class="file-info">
89-
<span class="filename">{{ filename }}</span>
90+
<!-- line by line -->
91+
<div v-if="isUnifiedViewer" class="file-info">
92+
<span>
93+
<div class="info-left">{{ filename }}</div>
94+
<div class="info-left">{{ newFilename }}</div>
95+
</span>
9096
<span v-if="!hideStat" class="diff-stat">
9197
<slot name="stat">
9298
<span class="diff-stat-added">+{{ diffChange.stat.additionsNum }} additions</span>
93-
<span class="diff-stat-deleted" style="margin-left: 8px;">-{{ diffChange.stat.deletionsNum }} deletions</span>
99+
<span class="diff-stat-deleted" style="margin-left: 8px;">-{{ diffChange.stat.deletionsNum }}
100+
deletions</span>
94101
</slot>
95102
</span>
96103
</div>
104+
<!-- side by side -->
105+
<div v-else class="file-info">
106+
<span class="info-left">{{ filename }}</span>
107+
<span class="info-right">
108+
<span style="margin-left: 20px;">{{ newFilename }}</span>
109+
<span v-if="!hideStat" class="diff-stat">
110+
<slot name="stat">
111+
<span class="diff-stat-added">+{{ diffChange.stat.additionsNum }} additions</span>
112+
<span class="diff-stat-deleted" style="margin-left: 8px;">-{{ diffChange.stat.deletionsNum }}
113+
deletions</span>
114+
</slot>
115+
</span>
116+
</span>
117+
</div>
97118
</div>
98119
<UnifiedViewer v-if="isUnifiedViewer" :diff-change="diffChange" />
99120
<SplitViewer v-else :diff-change="diffChange" />

src/style.scss

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,21 @@
2828
margin-left: 8px;
2929
height: 24px;
3030

31-
.filename {
31+
.info-left {
3232
font-size: 13px;
3333
color: var(--color-fg-default);
3434
}
35+
.info-right {
36+
display: flex;
37+
justify-content: space-between;
38+
width: 50%;
39+
}
3540
.diff-stat {
3641
.diff-stat-added {
37-
color: var(--color-diffstat-addition-bg)
42+
color: var(--color-diffstat-addition-bg);
3843
}
3944
.diff-stat-deleted {
40-
color: var(--color-danger-emphasis)
45+
color: var(--color-danger-emphasis);
4146
}
4247
}
4348
}

vue3-playground/App.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ const form = reactive({
1010
// newString: newLongText,
1111
oldString: '123\n123\n123\n456\n123\n123\n123\n123\n123\n123\n123\n',
1212
newString: '123\n123\n123\n123\n123\n123\n123\n123\n123\n123\n123\n',
13+
filename: 'oldFile',
14+
newFilename: 'newFile',
1315
language: 'plaintext',
1416
diffStyle: 'word',
1517
outputFormat: 'line-by-line',
@@ -28,8 +30,10 @@ const form = reactive({
2830
<CodeDiff
2931
:old-string="form.oldString"
3032
:new-string="form.newString"
33+
:filename="form.filename"
34+
:newFilename="form.newFilename"
3135
:language="form.language"
32-
output-format="side-by-side"
36+
:output-format="form.outputFormat"
3337
:diff-style="form.diffStyle"
3438
:context="form.context"
3539
/>

0 commit comments

Comments
 (0)