1{{ define "repo/fragments/interdiff" }}
2{{ $repo := index . 0 }}
3{{ $x := index . 1 }}
4{{ $opts := index . 2 }}
5{{ $fileTree := fileTree $x.AffectedFiles }}
6{{ $diff := $x.Files }}
7{{ $last := sub (len $diff) 1 }}
8{{ $isSplit := $opts.Split }}
9
10<div class="flex flex-col gap-4">
11 {{ range $idx, $hunk := $diff }}
12 {{ with $hunk }}
13 <details {{ if not (.Status.IsOnlyInOne) }}open{{end}} id="file-{{ .Name }}" class="border border-gray-200 dark:border-gray-700 w-full mx-auto rounded bg-white dark:bg-gray-800 drop-shadow-sm">
14 <summary class="list-none cursor-pointer sticky top-0">
15 <div id="diff-file-header" class="rounded cursor-pointer bg-white dark:bg-gray-800 flex justify-between">
16 <div id="left-side-items" class="p-2 flex gap-2 items-center overflow-x-auto">
17 <div class="flex gap-1 items-center" style="direction: ltr;">
18 {{ $markerstyle := "diff-type p-1 mr-1 font-mono text-sm rounded select-none" }}
19 {{ if .Status.IsOk }}
20 <span class="bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300 {{ $markerstyle }}">CHANGED</span>
21 {{ else if .Status.IsUnchanged }}
22 <span class="bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300 {{ $markerstyle }}">UNCHANGED</span>
23 {{ else if .Status.IsOnlyInOne }}
24 <span class="bg-red-100 text-red-700 dark:bg-red-800/50 dark:text-red-400 {{ $markerstyle }}">REVERTED</span>
25 {{ else if .Status.IsOnlyInTwo }}
26 <span class="bg-green-100 text-green-700 dark:bg-green-800/50 dark:text-green-400 {{ $markerstyle }}">NEW</span>
27 {{ else if .Status.IsRebased }}
28 <span class="bg-amber-100 text-amber-700 dark:bg-amber-800/50 dark:text-amber-400 {{ $markerstyle }}">REBASED</span>
29 {{ else }}
30 <span class="bg-red-100 text-red-700 dark:bg-red-800/50 dark:text-red-400 {{ $markerstyle }}">ERROR</span>
31 {{ end }}
32 </div>
33
34 <div class="flex gap-2 items-center overflow-x-auto" style="direction: rtl;">{{ .Name }}</div>
35 </div>
36
37 </div>
38 </summary>
39
40 <div class="transition-all duration-700 ease-in-out">
41 {{ if .Status.IsUnchanged }}
42 <p class="text-center text-gray-400 dark:text-gray-500 p-4">
43 This file has not been changed.
44 </p>
45 {{ else if .Status.IsRebased }}
46 <p class="text-center text-gray-400 dark:text-gray-500 p-4">
47 This patch was likely rebased, as context lines do not match.
48 </p>
49 {{ else if .Status.IsError }}
50 <p class="text-center text-gray-400 dark:text-gray-500 p-4">
51 Failed to calculate interdiff for this file.
52 </p>
53 {{ else }}
54 {{ if $isSplit }}
55 {{- template "repo/fragments/splitDiff" .Split -}}
56 {{ else }}
57 {{- template "repo/fragments/unifiedDiff" . -}}
58 {{ end }}
59 {{- end -}}
60 </div>
61
62 </details>
63 {{ end }}
64 {{ end }}
65</div>
66{{ end }}
67