Skip to content

Commit 7193062

Browse files
authored
feat(desktop): Session Review Images (anomalyco#12360)
1 parent 288a491 commit 7193062

18 files changed

Lines changed: 74 additions & 24 deletions

File tree

packages/ui/src/components/session-review.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@
166166
color: var(--icon-diff-delete-base);
167167
}
168168

169+
[data-slot="session-review-change"][data-type="modified"] {
170+
color: var(--icon-diff-modified-base);
171+
}
172+
169173
[data-slot="session-review-file-container"] {
170174
padding: 0;
171175
}

packages/ui/src/components/session-review.tsx

Lines changed: 54 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,9 @@ export const SessionReview = (props: SessionReviewProps) => {
332332
const beforeText = () => (typeof diff.before === "string" ? diff.before : "")
333333
const afterText = () => (typeof diff.after === "string" ? diff.after : "")
334334

335-
const isAdded = () => beforeText().length === 0 && afterText().length > 0
336-
const isDeleted = () => afterText().length === 0 && beforeText().length > 0
335+
const isAdded = () => diff.status === "added" || (beforeText().length === 0 && afterText().length > 0)
336+
const isDeleted = () =>
337+
diff.status === "deleted" || (afterText().length === 0 && beforeText().length > 0)
337338
const isImage = () => isImageFile(diff.file)
338339
const isAudio = () => isAudioFile(diff.file)
339340

@@ -422,6 +423,7 @@ export const SessionReview = (props: SessionReviewProps) => {
422423
if (!isImage()) return
423424
if (imageSrc()) return
424425
if (imageStatus() !== "idle") return
426+
if (isDeleted()) return
425427

426428
const reader = props.readFile
427429
if (!reader) return
@@ -546,6 +548,11 @@ export const SessionReview = (props: SessionReviewProps) => {
546548
{i18n.t("ui.sessionReview.change.removed")}
547549
</span>
548550
</Match>
551+
<Match when={isImage()}>
552+
<span data-slot="session-review-change" data-type="modified">
553+
{i18n.t("ui.sessionReview.change.modified")}
554+
</span>
555+
</Match>
549556
<Match when={true}>
550557
<DiffChanges changes={diff} />
551558
</Match>
@@ -564,28 +571,51 @@ export const SessionReview = (props: SessionReviewProps) => {
564571
scheduleAnchors()
565572
}}
566573
>
567-
<Dynamic
568-
component={diffComponent}
569-
preloadedDiff={diff.preloaded}
570-
diffStyle={diffStyle()}
571-
onRendered={() => {
572-
props.onDiffRendered?.()
573-
scheduleAnchors()
574-
}}
575-
enableLineSelection={props.onLineComment != null}
576-
onLineSelected={handleLineSelected}
577-
onLineSelectionEnd={handleLineSelectionEnd}
578-
selectedLines={selectedLines()}
579-
commentedLines={commentedLines()}
580-
before={{
581-
name: diff.file!,
582-
contents: typeof diff.before === "string" ? diff.before : "",
583-
}}
584-
after={{
585-
name: diff.file!,
586-
contents: typeof diff.after === "string" ? diff.after : "",
587-
}}
588-
/>
574+
<Switch>
575+
<Match when={isImage() && imageSrc()}>
576+
<div data-slot="session-review-image-container">
577+
<img data-slot="session-review-image" src={imageSrc()} alt={diff.file} />
578+
</div>
579+
</Match>
580+
<Match when={isImage() && isDeleted()}>
581+
<div data-slot="session-review-image-container" data-removed>
582+
<span data-slot="session-review-image-placeholder">
583+
{i18n.t("ui.sessionReview.change.removed")}
584+
</span>
585+
</div>
586+
</Match>
587+
<Match when={isImage() && !imageSrc()}>
588+
<div data-slot="session-review-image-container">
589+
<span data-slot="session-review-image-placeholder">
590+
{imageStatus() === "loading" ? "Loading..." : "Image"}
591+
</span>
592+
</div>
593+
</Match>
594+
<Match when={!isImage()}>
595+
<Dynamic
596+
component={diffComponent}
597+
preloadedDiff={diff.preloaded}
598+
diffStyle={diffStyle()}
599+
onRendered={() => {
600+
props.onDiffRendered?.()
601+
scheduleAnchors()
602+
}}
603+
enableLineSelection={props.onLineComment != null}
604+
onLineSelected={handleLineSelected}
605+
onLineSelectionEnd={handleLineSelectionEnd}
606+
selectedLines={selectedLines()}
607+
commentedLines={commentedLines()}
608+
before={{
609+
name: diff.file!,
610+
contents: typeof diff.before === "string" ? diff.before : "",
611+
}}
612+
after={{
613+
name: diff.file!,
614+
contents: typeof diff.after === "string" ? diff.after : "",
615+
}}
616+
/>
617+
</Match>
618+
</Switch>
589619

590620
<For each={comments()}>
591621
{(comment) => (

packages/ui/src/i18n/ar.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export const dict = {
88

99
"ui.sessionReview.change.added": "مضاف",
1010
"ui.sessionReview.change.removed": "محذوف",
11+
"ui.sessionReview.change.modified": "معدل",
1112
"ui.lineComment.label.prefix": "تعليق على ",
1213
"ui.lineComment.label.suffix": "",
1314
"ui.lineComment.editorLabel.prefix": "جارٍ التعليق على ",

packages/ui/src/i18n/br.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export const dict = {
88

99
"ui.sessionReview.change.added": "Adicionado",
1010
"ui.sessionReview.change.removed": "Removido",
11+
"ui.sessionReview.change.modified": "Modificado",
1112
"ui.lineComment.label.prefix": "Comentar em ",
1213
"ui.lineComment.label.suffix": "",
1314
"ui.lineComment.editorLabel.prefix": "Comentando em ",

packages/ui/src/i18n/bs.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export const dict = {
1111
"ui.sessionReview.collapseAll": "Sažmi sve",
1212
"ui.sessionReview.change.added": "Dodano",
1313
"ui.sessionReview.change.removed": "Uklonjeno",
14+
"ui.sessionReview.change.modified": "Izmijenjeno",
1415

1516
"ui.lineComment.label.prefix": "Komentar na ",
1617
"ui.lineComment.label.suffix": "",

packages/ui/src/i18n/da.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export const dict = {
88

99
"ui.sessionReview.change.added": "Tilføjet",
1010
"ui.sessionReview.change.removed": "Fjernet",
11+
"ui.sessionReview.change.modified": "Ændret",
1112
"ui.lineComment.label.prefix": "Kommenter på ",
1213
"ui.lineComment.label.suffix": "",
1314
"ui.lineComment.editorLabel.prefix": "Kommenterer på ",

packages/ui/src/i18n/de.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export const dict = {
1212

1313
"ui.sessionReview.change.added": "Hinzugefügt",
1414
"ui.sessionReview.change.removed": "Entfernt",
15+
"ui.sessionReview.change.modified": "Geändert",
1516
"ui.lineComment.label.prefix": "Kommentar zu ",
1617
"ui.lineComment.label.suffix": "",
1718
"ui.lineComment.editorLabel.prefix": "Kommentiere ",

packages/ui/src/i18n/en.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export const dict = {
77
"ui.sessionReview.collapseAll": "Collapse all",
88
"ui.sessionReview.change.added": "Added",
99
"ui.sessionReview.change.removed": "Removed",
10+
"ui.sessionReview.change.modified": "Modified",
1011

1112
"ui.lineComment.label.prefix": "Comment on ",
1213
"ui.lineComment.label.suffix": "",

packages/ui/src/i18n/es.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export const dict = {
88

99
"ui.sessionReview.change.added": "Añadido",
1010
"ui.sessionReview.change.removed": "Eliminado",
11+
"ui.sessionReview.change.modified": "Modificado",
1112
"ui.lineComment.label.prefix": "Comentar en ",
1213
"ui.lineComment.label.suffix": "",
1314
"ui.lineComment.editorLabel.prefix": "Comentando en ",

packages/ui/src/i18n/fr.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export const dict = {
88

99
"ui.sessionReview.change.added": "Ajouté",
1010
"ui.sessionReview.change.removed": "Supprimé",
11+
"ui.sessionReview.change.modified": "Modifié",
1112
"ui.lineComment.label.prefix": "Commenter sur ",
1213
"ui.lineComment.label.suffix": "",
1314
"ui.lineComment.editorLabel.prefix": "Commentaire sur ",

0 commit comments

Comments
 (0)