+ {#if loading && diffs.length === 0}
+
+
+ Loading comparison...
+
+ {:else if error}
+ {error}
+ {:else if notice}
+ {notice}
+ {:else if diffs.length === 0}
+ {emptyMessage}
+ {:else if filteredDiffs.length === 0}
+ No files match "{searchQuery}".
+ {:else}
+
+ {#each filteredDiffs as d (itemKey(d))}
+ {@const key = itemKey(d)}
+ {@const status = d.status}
+ {@const StatusIcon = statusIcons[status]}
+ {@const loaded = loadedDiffs[key]}
+ {@const editUrl = editUrlFor?.(d)}
+
+ {/if}
+ onDetailsToggle(d, e)}
+ >
+
+
+
+ {/each}
+
+
+
+
+ {#if editUrl}
+
+ {d.path}
+
+ {:else}
+
+ {d.path}
+
+ {/if}
+
+
+ {#if d.ahead && d.ahead > 0}
+ {d.ahead} ahead
+ {/if}
+ {#if d.behind && d.behind > 0}
+ {d.behind} behind
+ {/if}
+
+
+ {status}
+
+
+
+
+ {d.path}
+
+ {/if}
+
+ {#if !loaded || loaded.state === 'loading'}
+
+ {/if}
+
+
+
+ Loading diff…
+
+ {:else if loaded.state === 'error'}
+ {loaded.error}
+ {:else if loaded.state === 'ready'}
+