mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-08 22:45:45 +01:00
restore missing hunk headers
This commit is contained in:
36
scm-ui/ui-components/src/__resources__/Diff.hunks.ts
Normal file
36
scm-ui/ui-components/src/__resources__/Diff.hunks.ts
Normal 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
@@ -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} />;
|
||||
});
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user