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 // @ts-ignore
import parser from "gitdiff-parser"; import parser from "gitdiff-parser";
import simpleDiff from "../__resources__/Diff.simple"; import simpleDiff from "../__resources__/Diff.simple";
import hunksDiff from "../__resources__/Diff.hunks";
import Button from "../buttons/Button"; import Button from "../buttons/Button";
import { DiffEventContext } from "./DiffTypes"; import { DiffEventContext } from "./DiffTypes";
import Toast from "../toast/Toast"; import Toast from "../toast/Toast";
@@ -47,4 +48,8 @@ storiesOf("Diff", module)
); );
}; };
return <OnClickDemo />; 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 classNames from "classnames";
import styled from "styled-components"; import styled from "styled-components";
// @ts-ignore // @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 { Button, ButtonGroup } from "../buttons";
import Tag from "../Tag"; import Tag from "../Tag";
import Icon from "../Icon"; import Icon from "../Icon";
@@ -132,7 +132,8 @@ class DiffFile extends React.Component<Props, State> {
if (i > 0) { if (i > 0) {
return <HunkDivider />; return <HunkDivider />;
} }
return null; // hunk header must be defined
return <span />;
}; };
collectHunkAnnotations = (hunk: HunkType) => { collectHunkAnnotations = (hunk: HunkType) => {
@@ -172,15 +173,15 @@ class DiffFile extends React.Component<Props, State> {
}; };
renderHunk = (hunk: HunkType, i: number) => { renderHunk = (hunk: HunkType, i: number) => {
return ( return [
<Decoration key={"decoration-" + hunk.content}>{this.createHunkHeader(hunk, i)}</Decoration>,
<Hunk <Hunk
key={hunk.content} key={"hunk-" + hunk.content}
hunk={hunk} hunk={hunk}
header={this.createHunkHeader(hunk, i)}
widgets={this.collectHunkAnnotations(hunk)} widgets={this.collectHunkAnnotations(hunk)}
gutterEvents={this.createGutterEvents(hunk)} gutterEvents={this.createGutterEvents(hunk)}
/> />
); ];
}; };
renderFileTitle = (file: File) => { renderFileTitle = (file: File) => {
@@ -235,7 +236,7 @@ class DiffFile extends React.Component<Props, State> {
<div className="panel-block is-paddingless"> <div className="panel-block is-paddingless">
{fileAnnotations} {fileAnnotations}
<ModifiedDiffComponent className={viewType} viewType={viewType} hunks={file.hunks} diffType={file.type}> <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> </ModifiedDiffComponent>
</div> </div>
); );