diff --git a/web/src/components/Changes/ReviewDecisionButton/ReviewDecisionButton.tsx b/web/src/components/Changes/ReviewDecisionButton/ReviewDecisionButton.tsx index 11cf0e1df..cd1f495da 100644 --- a/web/src/components/Changes/ReviewDecisionButton/ReviewDecisionButton.tsx +++ b/web/src/components/Changes/ReviewDecisionButton/ReviewDecisionButton.tsx @@ -99,7 +99,7 @@ export const ReviewDecisionButton: React.FC = ({ text={getString('submitReview')} size={ButtonSize.SMALL} onClick={submitReview} - disabled={!(comment || '').trim().length} + disabled={!(comment || '').trim().length && decision === PullReqReviewDecision.PENDING} loading={loading} /> diff --git a/web/src/pages/Compare/Compare.tsx b/web/src/pages/Compare/Compare.tsx index 633869246..5a2bd9614 100644 --- a/web/src/pages/Compare/Compare.tsx +++ b/web/src/pages/Compare/Compare.tsx @@ -6,7 +6,7 @@ import { useAppContext } from 'AppContext' import { useGetRepositoryMetadata } from 'hooks/useGetRepositoryMetadata' import { useStrings } from 'framework/strings' import { RepositoryPageHeader } from 'components/RepositoryPageHeader/RepositoryPageHeader' -import { getErrorMessage } from 'utils/Utils' +import { getErrorMessage, LIST_FETCHING_LIMIT } from 'utils/Utils' import emptyStateImage from 'images/empty-state.svg' import { makeDiffRefs } from 'utils/GitUtils' import { CommitsView } from 'components/CommitsView/CommitsView' @@ -22,6 +22,7 @@ export default function Compare() { const { repoMetadata, error, loading, diffRefs } = useGetRepositoryMetadata() const [sourceGitRef, setSourceGitRef] = useState(diffRefs.sourceGitRef) const [targetGitRef, setTargetGitRef] = useState(diffRefs.targetGitRef) + const [after] = useState('') const { data: commits, error: commitsError, @@ -30,7 +31,10 @@ export default function Compare() { } = useGet({ path: `/api/v1/repos/${repoMetadata?.path}/+/commits`, queryParams: { - git_ref: sourceGitRef + limit: LIST_FETCHING_LIMIT, + page: 1, + git_ref: sourceGitRef, + after }, lazy: !repoMetadata }) diff --git a/web/src/pages/Compare/CompareContentHeader/CompareContentHeader.tsx b/web/src/pages/Compare/CompareContentHeader/CompareContentHeader.tsx index 74d6a5189..c45a9743d 100644 --- a/web/src/pages/Compare/CompareContentHeader/CompareContentHeader.tsx +++ b/web/src/pages/Compare/CompareContentHeader/CompareContentHeader.tsx @@ -39,6 +39,7 @@ export function CompareContentHeader({ onSelect={onTargetGitRefChanged} labelPrefix={getString('prefixBase')} placeHolder={getString('selectBranchPlaceHolder')} + style={{ '--background-color': 'var(--white)' } as React.CSSProperties} /> diff --git a/web/src/pages/PullRequests/PullRequests.module.scss b/web/src/pages/PullRequests/PullRequests.module.scss index 3277924b0..a554b57d0 100644 --- a/web/src/pages/PullRequests/PullRequests.module.scss +++ b/web/src/pages/PullRequests/PullRequests.module.scss @@ -12,9 +12,41 @@ font-weight: 600; } } + + .titleRow { + padding-left: var(--spacing-medium); + align-items: center; + } } .noData > div { height: calc(100vh - var(--page-header-height, 64px) - 120px) !important; } } + +.rowImg { + padding: 4px; + width: 28px; + height: 28px; + border-radius: 4px; + + &.open { + background-color: var(--green-50); + } + + &.merged { + background-color: var(--blue-50); + } + + &.closed { + background-color: var(--grey-50); + } + + &.rejected { + background-color: var(--red-50); + } + + &.draft { + background-color: var(--orange-100); + } +} diff --git a/web/src/pages/PullRequests/PullRequests.module.scss.d.ts b/web/src/pages/PullRequests/PullRequests.module.scss.d.ts index 02927d726..f84d22384 100644 --- a/web/src/pages/PullRequests/PullRequests.module.scss.d.ts +++ b/web/src/pages/PullRequests/PullRequests.module.scss.d.ts @@ -5,6 +5,13 @@ declare const styles: { readonly table: string readonly row: string readonly title: string + readonly titleRow: string readonly noData: string + readonly rowImg: string + readonly open: string + readonly merged: string + readonly closed: string + readonly rejected: string + readonly draft: string } export default styles diff --git a/web/src/pages/PullRequests/PullRequests.tsx b/web/src/pages/PullRequests/PullRequests.tsx index 7e75f113a..c2ca2d66d 100644 --- a/web/src/pages/PullRequests/PullRequests.tsx +++ b/web/src/pages/PullRequests/PullRequests.tsx @@ -11,6 +11,7 @@ import { StringSubstitute, NoDataCard } from '@harness/uicore' +import cx from 'classnames' import { useHistory } from 'react-router-dom' import { useGet } from 'restful-react' import type { CellProps, Column } from 'react-table' @@ -29,6 +30,7 @@ import prImgOpen from './pull-request-open.svg' import prImgMerged from './pull-request-merged.svg' import prImgClosed from './pull-request-closed.svg' import prImgRejected from './pull-request-rejected.svg' +import prImgDraft from './pull-request-draft.svg' import css from './PullRequests.module.scss' export default function PullRequests() { @@ -80,8 +82,8 @@ export default function PullRequests() { width: '100%', Cell: ({ row }: CellProps) => { return ( - - + + @@ -179,17 +181,32 @@ export default function PullRequests() { ) } -const stateToImage = (pr: TypesPullReq) => { +const stateToImageProps = (pr: TypesPullReq) => { + let src = prImgClosed + let clazz = css.open + switch (pr.state) { case PullRequestFilterOption.OPEN: - return prImgOpen + src = prImgOpen + clazz = css.open + break case PullRequestFilterOption.MERGED: - return prImgMerged + src = prImgMerged + clazz = css.merged + break case PullRequestFilterOption.CLOSED: - return prImgClosed + src = prImgClosed + clazz = css.closed + break case PullRequestFilterOption.REJECTED: - return prImgRejected + src = prImgRejected + clazz = css.rejected + break + case PullRequestFilterOption.DRAFT: + src = prImgDraft + clazz = css.draft + break } - return prImgClosed + return { src, title: pr.state, className: cx(css.rowImg, clazz) } } diff --git a/web/src/pages/PullRequests/pull-request-closed.svg b/web/src/pages/PullRequests/pull-request-closed.svg index 6ef7a25d0..e47611ab5 100644 --- a/web/src/pages/PullRequests/pull-request-closed.svg +++ b/web/src/pages/PullRequests/pull-request-closed.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/web/src/pages/PullRequests/pull-request-draft.svg b/web/src/pages/PullRequests/pull-request-draft.svg new file mode 100644 index 000000000..003b9e9b5 --- /dev/null +++ b/web/src/pages/PullRequests/pull-request-draft.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/web/src/pages/PullRequests/pull-request-merged.svg b/web/src/pages/PullRequests/pull-request-merged.svg index 8bca53cd1..21a5efbd8 100644 --- a/web/src/pages/PullRequests/pull-request-merged.svg +++ b/web/src/pages/PullRequests/pull-request-merged.svg @@ -1,8 +1,7 @@ - - - - - - - - \ No newline at end of file + + + + + + + diff --git a/web/src/pages/PullRequests/pull-request-open.svg b/web/src/pages/PullRequests/pull-request-open.svg index b6ac31879..f332b00b4 100644 --- a/web/src/pages/PullRequests/pull-request-open.svg +++ b/web/src/pages/PullRequests/pull-request-open.svg @@ -1,8 +1,3 @@ - - - - - - - + + diff --git a/web/src/pages/PullRequests/pull-request-rejected.svg b/web/src/pages/PullRequests/pull-request-rejected.svg index 0bc028a55..8899fe9fd 100644 --- a/web/src/pages/PullRequests/pull-request-rejected.svg +++ b/web/src/pages/PullRequests/pull-request-rejected.svg @@ -1,8 +1,9 @@ - - - - - - - - \ No newline at end of file + + + + + + + + + diff --git a/web/src/utils/GitUtils.ts b/web/src/utils/GitUtils.ts index 44937d639..8dd4e84ed 100644 --- a/web/src/utils/GitUtils.ts +++ b/web/src/utils/GitUtils.ts @@ -52,7 +52,8 @@ export enum PullRequestState { OPEN = 'open', MERGED = 'merged', CLOSED = 'closed', - REJECTED = 'rejected' + REJECTED = 'rejected', + DRAFT = 'draft' } export const PullRequestFilterOption = {