restore missing hunk headers

This commit is contained in:
Sebastian Sdorra
2020-01-08 09:57:57 +01:00
parent cc26ffcaa8
commit 71accfce1f
4 changed files with 1497 additions and 7 deletions

View File

@@ -0,0 +1,36 @@
export default `diff --git a/src/main/java/com/cloudogu/scm/review/pullrequest/service/DefaultPullRequestService.java b/src/main/java/com/cloudogu/scm/review/pullrequest/service/DefaultPullRequestService.java
index 17c35f6..cdf70f1 100644
--- a/src/main/java/com/cloudogu/scm/review/pullrequest/service/DefaultPullRequestService.java
+++ b/src/main/java/com/cloudogu/scm/review/pullrequest/service/DefaultPullRequestService.java
@@ -25,6 +25,8 @@ import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
+import static com.cloudogu.scm.review.pullrequest.service.PullRequestApprovalEvent.ApprovalCause.APPROVAL_REMOVED;
+import static com.cloudogu.scm.review.pullrequest.service.PullRequestApprovalEvent.ApprovalCause.APPROVED;
import static com.cloudogu.scm.review.pullrequest.service.PullRequestStatus.MERGED;
import static com.cloudogu.scm.review.pullrequest.service.PullRequestStatus.OPEN;
import static com.cloudogu.scm.review.pullrequest.service.PullRequestStatus.REJECTED;
@@ -200,6 +202,7 @@ public class DefaultPullRequestService implements PullRequestService {
PullRequest pullRequest = getPullRequestFromStore(repository, pullRequestId);
pullRequest.addApprover(user.getId());
getStore(repository).update(pullRequest);
+ eventBus.post(new PullRequestApprovalEvent(repository, pullRequest, APPROVED));
}
@Override
@@ -211,8 +214,12 @@ public class DefaultPullRequestService implements PullRequestService {
approver.stream()
.filter(recipient -> user.getId().equals(recipient))
.findFirst()
- .ifPresent(pullRequest::removeApprover);
- getStore(repository).update(pullRequest);
+ .ifPresent(
+ approval -> {
+ pullRequest.removeApprover(approval);
+ getStore(repository).update(pullRequest);
+ eventBus.post(new PullRequestApprovalEvent(repository, pullRequest, APPROVAL_REMOVED));
+ });
}
@Override`;

File diff suppressed because it is too large Load Diff

View File

@@ -4,6 +4,7 @@ import Diff from "./Diff";
// @ts-ignore
import parser from "gitdiff-parser";
import simpleDiff from "../__resources__/Diff.simple";
import hunksDiff from "../__resources__/Diff.hunks";
import Button from "../buttons/Button";
import { DiffEventContext } from "./DiffTypes";
import Toast from "../toast/Toast";
@@ -47,4 +48,8 @@ storiesOf("Diff", module)
);
};
return <OnClickDemo />;
})
.add("Hunks", () => {
const hunkDiffFiles = parser.parse(hunksDiff);
return <Diff diff={hunkDiffFiles} />;
});

View File

@@ -3,7 +3,7 @@ import { withTranslation, WithTranslation } from "react-i18next";
import classNames from "classnames";
import styled from "styled-components";
// @ts-ignore
import { Diff as DiffComponent, getChangeKey, Hunk } from "react-diff-view";
import { Diff as DiffComponent, getChangeKey, Hunk, Decoration } from "react-diff-view";
import { Button, ButtonGroup } from "../buttons";
import Tag from "../Tag";
import Icon from "../Icon";
@@ -132,7 +132,8 @@ class DiffFile extends React.Component<Props, State> {
if (i > 0) {
return <HunkDivider />;
}
return null;
// hunk header must be defined
return <span />;
};
collectHunkAnnotations = (hunk: HunkType) => {
@@ -172,15 +173,15 @@ class DiffFile extends React.Component<Props, State> {
};
renderHunk = (hunk: HunkType, i: number) => {
return (
return [
<Decoration key={"decoration-" + hunk.content}>{this.createHunkHeader(hunk, i)}</Decoration>,
<Hunk
key={hunk.content}
key={"hunk-" + hunk.content}
hunk={hunk}
header={this.createHunkHeader(hunk, i)}
widgets={this.collectHunkAnnotations(hunk)}
gutterEvents={this.createGutterEvents(hunk)}
/>
);
];
};
renderFileTitle = (file: File) => {
@@ -235,7 +236,7 @@ class DiffFile extends React.Component<Props, State> {
<div className="panel-block is-paddingless">
{fileAnnotations}
<ModifiedDiffComponent className={viewType} viewType={viewType} hunks={file.hunks} diffType={file.type}>
{(hunks: HunkType[]) => hunks.map(this.renderHunk)}
{(hunks: HunkType[]) => hunks.map(this.renderHunk).reduce((a, b) => a.concat(b))}
</ModifiedDiffComponent>
</div>
);