Skip to content
This repository was archived by the owner on Sep 7, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/components/CommitComparisonBox.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ interface ICommitComparisonBoxHeaderProps {
collapsible: boolean;
collapsed?: boolean;
label?: string;
trans: TranslationBundle;
onCollapseExpand?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
onClickCancel?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
}
Expand All @@ -61,7 +62,7 @@ const CommitComparisonBoxHeader: React.VFC<ICommitComparisonBoxHeaderProps> = (
<span className={sectionHeaderLabelStyle}>{props.label}</span>
{props.onClickCancel && (
<span className={clickableSpanStyle} onClick={props.onClickCancel}>
Cancel
{props.trans.__('Cancel')}
</span>
)}
</div>
Expand Down Expand Up @@ -213,6 +214,9 @@ const CommitComparisonBoxBody: React.VFC<ICommitComparisonBoxBodyProps> = (
);
};

/**
* Interface describing ComparisonBox component properties.
*/
export interface ICommitComparisonBoxProps {
collapsible: boolean;
commands: CommandRegistry;
Expand Down
96 changes: 48 additions & 48 deletions src/components/GitPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -136,12 +136,12 @@ export interface IGitPanelState {
/**
* The commit to compare against
*/
commitCompareLhs: Git.ISingleCommitInfo | null;
referenceCommit: Git.ISingleCommitInfo | null;

/**
* The commit to compare
*/
commitCompareRhs: Git.ISingleCommitInfo | null;
challengerCommit: Git.ISingleCommitInfo | null;

/**
* The commit comparison result
Expand Down Expand Up @@ -178,8 +178,8 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> {
commitDescription: '',
commitAmend: false,
hasDirtyStagedFiles: hasDirtyStagedFiles,
commitCompareLhs: null,
commitCompareRhs: null,
referenceCommit: null,
challengerCommit: null,
commitComparison: null
};
}
Expand Down Expand Up @@ -236,20 +236,20 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> {
async componentDidUpdate(
_: Readonly<IGitPanelProps>,
{
commitCompareLhs: prevCommitCompareLhs,
commitCompareRhs: prevCommitCompareRhs,
referenceCommit: prevReferenceCommit,
challengerCommit: prevChallengerCommit,
commitComparison: prevCommitComparison
}: Readonly<IGitPanelState>
): Promise<void> {
const {
commitCompareLhs: currCommitCompareLhs,
commitCompareRhs: currCommitCompareRhs
referenceCommit: currReferenceCommit,
challengerCommit: currChallengerCommit
} = this.state;

const commitsReady = currCommitCompareLhs && currCommitCompareRhs;
const commitsReady = currReferenceCommit && currChallengerCommit;
const commitChanged =
prevCommitCompareLhs !== currCommitCompareLhs ||
prevCommitCompareRhs !== currCommitCompareRhs;
prevReferenceCommit !== currReferenceCommit ||
prevChallengerCommit !== currChallengerCommit;

if (commitsReady && (!!prevCommitComparison || commitChanged)) {
await this._doCommitComparsion();
Expand All @@ -272,8 +272,8 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> {

this.setState({
currentBranch: currentBranch ? currentBranch.name : 'master',
commitCompareLhs: null,
commitCompareRhs: null,
referenceCommit: null,
challengerCommit: null,
commitComparison: null
});
};
Expand Down Expand Up @@ -501,18 +501,18 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> {
model={this.props.model}
commands={this.props.commands}
trans={this.props.trans}
commitCompareLhs={this.state.commitCompareLhs}
commitCompareRhs={this.state.commitCompareRhs}
referenceCommit={this.state.referenceCommit}
challengerCommit={this.state.challengerCommit}
onSelectForCompare={commit => async event => {
event.stopPropagation();
this._setCommitComparisonState({ lhs: commit });
this._setCommitComparisonState({ reference: commit });
}}
onCompareWithSelected={commit => async event => {
event.stopPropagation();
this._setCommitComparisonState({ rhs: commit });
this._setCommitComparisonState({ challenger: commit });
}}
/>
{(this.state.commitCompareLhs || this.state.commitCompareRhs) && (
{(this.state.referenceCommit || this.state.challengerCommit) && (
<CommitComparisonBox
model={this.props.model}
collapsible={true}
Expand All @@ -521,31 +521,31 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> {
header={`
Compare
${
this.state.commitCompareLhs
? this.state.commitCompareLhs.commit.substring(0, 7)
this.state.referenceCommit
? this.state.referenceCommit.commit.substring(0, 7)
: '...'
}
and
${
this.state.commitCompareRhs
? this.state.commitCompareRhs.commit.substring(0, 7)
this.state.challengerCommit
? this.state.challengerCommit.commit.substring(0, 7)
: '...'
}
`}
trans={this.props.trans}
onCancel={event => {
event.stopPropagation();
this._setCommitComparisonState({
lhs: null,
rhs: null,
res: null
reference: null,
challenger: null,
comparison: null
});
}}
onOpenDiff={
this.state.commitComparison
? openFileDiff(this.props.commands)(
this.state.commitComparison.rhs,
this.state.commitComparison.lhs
this.state.commitComparison.challenger,
this.state.commitComparison.reference
)
: undefined
}
Expand Down Expand Up @@ -859,22 +859,22 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> {
}

private _setCommitComparisonState(state: {
lhs?: Git.ISingleCommitInfo;
rhs?: Git.ISingleCommitInfo;
res?: Git.ICommitComparison;
reference?: Git.ISingleCommitInfo;
challenger?: Git.ISingleCommitInfo;
comparison?: Git.ICommitComparison;
}): void {
this.setState(currentState => ({
commitCompareLhs:
typeof state.lhs !== 'undefined'
? state.lhs
: currentState.commitCompareLhs,
commitCompareRhs:
typeof state.rhs !== 'undefined'
? state.rhs
: currentState.commitCompareRhs,
referenceCommit:
typeof state.reference !== 'undefined'
? state.reference
: currentState.referenceCommit,
challengerCommit:
typeof state.challenger !== 'undefined'
? state.challenger
: currentState.challengerCommit,
commitComparison:
typeof state.res !== 'undefined'
? state.res
typeof state.comparison !== 'undefined'
? state.comparison
: currentState.commitComparison
}));
}
Expand All @@ -883,20 +883,20 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> {
let diffResult: Git.IDiffResult = null;
try {
diffResult = await this.props.model.diff(
this.state.commitCompareLhs.commit,
this.state.commitCompareRhs.commit
this.state.referenceCommit.commit,
this.state.challengerCommit.commit
);
if (diffResult.code !== 0) {
throw new Error(diffResult.message);
}
} catch (err) {
console.error(
`Error while getting the diff for commit ${this.state.commitCompareLhs} and commit ${this.state.commitCompareRhs}!`,
`Error while getting the diff for commit ${this.state.referenceCommit} and commit ${this.state.challengerCommit}!`,
err
);
this.props.logger.log({
level: Level.ERROR,
message: `Error while getting the diff for commit ${this.state.commitCompareLhs} and commit ${this.state.commitCompareRhs}!`,
message: `Error while getting the diff for commit ${this.state.referenceCommit} and commit ${this.state.challengerCommit}!`,
error: err
});
return;
Expand All @@ -905,8 +905,8 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> {
this.setState(state => {
return {
commitComparison: {
lhs: state.commitCompareLhs,
rhs: state.commitCompareRhs,
reference: state.referenceCommit,
challenger: state.challengerCommit,
changedFiles: diffResult.result.map(changedFile => {
const pathParts = changedFile.filename.split('/');
const fileName = pathParts[pathParts.length - 1];
Expand All @@ -927,8 +927,8 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> {
});
} else {
this.setState({
commitCompareLhs: null,
commitCompareRhs: null,
referenceCommit: null,
challengerCommit: null,
commitComparison: null
});
}
Expand Down
12 changes: 6 additions & 6 deletions src/components/HistorySideBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ export interface IHistorySideBarProps {
/**
* The commit to compare against.
*/
commitCompareLhs?: Git.ISingleCommitInfo;
referenceCommit?: Git.ISingleCommitInfo;

/**
* The commit to compare.
*/
commitCompareRhs?: Git.ISingleCommitInfo;
challengerCommit?: Git.ISingleCommitInfo;

/**
* Callback invoked upon clicking to select a commit for comparison.
Expand Down Expand Up @@ -156,11 +156,11 @@ export const HistorySideBar: React.FunctionComponent<IHistorySideBarProps> = (
<PastCommitNode
key={commit.commit}
{...commonProps}
isCommitCompareLhs={
commit.commit === props.commitCompareLhs?.commit
isReferenceCommit={
commit.commit === props.referenceCommit?.commit
}
isCommitCompareRhs={
commit.commit === props.commitCompareRhs?.commit
isChallengerCommit={
commit.commit === props.challengerCommit?.commit
}
onOpenDiff={onOpenDiff}
onSelectForCompare={props.onSelectForCompare(commit)}
Expand Down
12 changes: 6 additions & 6 deletions src/components/PastCommitNode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import {
branchClass,
branchWrapperClass,
commitBodyClass,
commitCompareLhsNodeClass,
commitCompareRhsNodeClass,
referenceCommitNodeClass,
challengerCommitNodeClass,
commitExpandedClass,
commitHeaderClass,
commitHeaderItemClass,
Expand Down Expand Up @@ -60,12 +60,12 @@ export interface IPastCommitNodeProps {
/**
* The commit to compare against.
*/
isCommitCompareLhs?: boolean;
isReferenceCommit?: boolean;

/**
* The commit to compare.
*/
isCommitCompareRhs?: boolean;
isChallengerCommit?: boolean;

/**
* Callback invoked upon clicking to display a file diff.
Expand Down Expand Up @@ -138,8 +138,8 @@ export class PastCommitNode extends React.Component<
: this.state.expanded
? commitExpandedClass
: null,
this.props.isCommitCompareLhs && commitCompareLhsNodeClass,
this.props.isCommitCompareRhs && commitCompareRhsNodeClass
this.props.isReferenceCommit && referenceCommitNodeClass,
this.props.isChallengerCommit && challengerCommitNodeClass
)}
title={
this.props.children
Expand Down
8 changes: 4 additions & 4 deletions src/style/PastCommitNode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,10 @@ export const singleFileCommitClass = style({
}
});

export const commitCompareLhsNodeClass = style({
borderLeft: '3px solid darkred'
export const referenceCommitNodeClass = style({
borderLeft: '3px solid var(--jp-git-diff-deleted-color)'
});

export const commitCompareRhsNodeClass = style({
borderLeft: '3px solid darkgreen'
export const challengerCommitNodeClass = style({
borderLeft: '3px solid var(--jp-git-diff-added-color)'
});
4 changes: 2 additions & 2 deletions src/tokens.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1038,11 +1038,11 @@ export namespace Git {
/**
* The commit to compare against
*/
lhs: ISingleCommitInfo;
reference: ISingleCommitInfo;
/**
* The commit to compare
*/
rhs: ISingleCommitInfo;
challenger: ISingleCommitInfo;
/**
* The list of files that have been modified
* in the compared commits
Expand Down
4 changes: 2 additions & 2 deletions tests/test-components/HistorySideBar.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ describe('HistorySideBar', () => {
} as GitExtension,
commands: null,
trans,
commitCompareLhs: null,
commitCompareRhs: null,
referenceCommit: null,
challengerCommit: null,
onSelectForCompare: _ => async _ => null,
onCompareWithSelected: _ => async _ => null
};
Expand Down