diff --git a/web/package.json b/web/package.json index 2b2cc95df..57d24ddde 100644 --- a/web/package.json +++ b/web/package.json @@ -43,7 +43,7 @@ "@harness/monaco-yaml": ">=1.0.0", "@harness/ng-tooltip": ">=1.31.25", "@harness/telemetry": ">=1.0.42", - "@harness/uicore": "3.84.0", + "@harness/uicore": "3.95.1", "@harness/use-modal": "1.3.0", "@popperjs/core": "^2.4.2", "@projectstorm/react-diagrams-core": "^6.6.0", diff --git a/web/src/pages/PullRequest/PullRequest.module.scss b/web/src/pages/PullRequest/PullRequest.module.scss index f5b2a989c..bbde1d307 100644 --- a/web/src/pages/PullRequest/PullRequest.module.scss +++ b/web/src/pages/PullRequest/PullRequest.module.scss @@ -7,7 +7,7 @@ } .tabsContainer { - padding-top: var(--spacing-medium); + padding-top: var(--spacing-xsmall); [role='tablist'] { background-color: var(--white) !important; @@ -19,6 +19,29 @@ [role='tabpanel'] { margin-top: 0; } + + [aria-selected='true'] { + .tabTitle { + color: var(--grey-900); + font-weight: 600; + } + } + + .tabTitle { + font-weight: 500; + color: var(--grey-700); + + .count { + margin-left: var(--spacing-small); + display: inline-block; + border-radius: 8px; + font-weight: 500; + font-size: 12px; + color: var(--primary-7) !important; + background-color: var(--primary-1) !important; + padding: 3px 6px !important; + } + } } } diff --git a/web/src/pages/PullRequest/PullRequest.module.scss.d.ts b/web/src/pages/PullRequest/PullRequest.module.scss.d.ts index 6e1ab8d78..3f3c68869 100644 --- a/web/src/pages/PullRequest/PullRequest.module.scss.d.ts +++ b/web/src/pages/PullRequest/PullRequest.module.scss.d.ts @@ -3,6 +3,8 @@ declare const styles: { readonly main: string readonly tabsContainer: string + readonly tabTitle: string + readonly count: string readonly prNumber: string } export default styles diff --git a/web/src/pages/PullRequest/PullRequest.tsx b/web/src/pages/PullRequest/PullRequest.tsx index 429b02a6d..ad9e87166 100644 --- a/web/src/pages/PullRequest/PullRequest.tsx +++ b/web/src/pages/PullRequest/PullRequest.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Container, PageBody, Text, FontVariation, Tabs } from '@harness/uicore' +import { Container, PageBody, Text, FontVariation, Tabs, IconName } from '@harness/uicore' import { useGet } from 'restful-react' import { useAppContext } from 'AppContext' import { useGetRepositoryMetadata } from 'hooks/useGetRepositoryMetadata' @@ -7,7 +7,11 @@ import { useStrings } from 'framework/strings' import { RepositoryPageHeader } from 'components/RepositoryPageHeader/RepositoryPageHeader' import { getErrorMessage } from 'utils/Utils' import type { PullRequestResponse } from 'utils/types' +import { CodeIcon } from 'utils/GitUtils' import { PullRequestMetadataInfo } from './PullRequestMetadataInfo' +import { PullRequestConversation } from './PullRequestConversation/PullRequestConversation' +import { PullRequestDiff } from './PullRequestDiff/PullRequestDiff' +import { PullRequestCommits } from './PullRequestCommits/PullRequestCommits' import css from './PullRequest.module.scss' export default function PullRequest() { @@ -39,35 +43,37 @@ export default function PullRequest() { } /> refetch()}> - {!!repoMetadata && !!prData && } - - {!!prData && ( - - conversation - }, - { - id: 'commits', - title: getString('commits'), - panel:
Commit
- }, - { - id: 'diff', - title: getString('diff'), - panel:
Diff
- } - ]} - /> -
- )} - {/*
{JSON.stringify(prData || {}, null, 2)}
*/} + {repoMetadata ? ( + prData ? ( + <> + + + , + panel: + }, + { + id: 'commits', + title: , + panel: + }, + { + id: 'diff', + title: , + panel: + } + ]} + /> + + + ) : null + ) : null}
) @@ -78,3 +84,14 @@ const PullRequestTitle: React.FC = ({ title, number }) => ( {title} #{number} ) + +const TabTitle: React.FC<{ icon: IconName; title: string; count?: number }> = ({ icon, title, count }) => ( + + {title}{' '} + {!!count && ( + + {count} + + )} + +) diff --git a/web/src/pages/PullRequest/PullRequestCommits/PullRequestCommits.module.scss b/web/src/pages/PullRequest/PullRequestCommits/PullRequestCommits.module.scss new file mode 100644 index 000000000..662ecf803 --- /dev/null +++ b/web/src/pages/PullRequest/PullRequestCommits/PullRequestCommits.module.scss @@ -0,0 +1,2 @@ +.main { +} diff --git a/web/src/pages/PullRequest/PullRequestCommits/PullRequestCommits.tsx b/web/src/pages/PullRequest/PullRequestCommits/PullRequestCommits.tsx new file mode 100644 index 000000000..50b091f1d --- /dev/null +++ b/web/src/pages/PullRequest/PullRequestCommits/PullRequestCommits.tsx @@ -0,0 +1,20 @@ +import React from 'react' +import { Container } from '@harness/uicore' +import { useAppContext } from 'AppContext' +import { useStrings } from 'framework/strings' +import type { GitInfoProps } from 'utils/GitUtils' +import css from './PullRequestCommits.module.scss' + +export const PullRequestCommits: React.FC> = ({ + repoMetadata, + pullRequestMetadata +}) => { + const { getString } = useStrings() + const { routes } = useAppContext() + + return ( + + COMMITS... + + ) +} diff --git a/web/src/pages/PullRequest/PullRequestConversation/PullRequestConversation.module.scss b/web/src/pages/PullRequest/PullRequestConversation/PullRequestConversation.module.scss new file mode 100644 index 000000000..662ecf803 --- /dev/null +++ b/web/src/pages/PullRequest/PullRequestConversation/PullRequestConversation.module.scss @@ -0,0 +1,2 @@ +.main { +} diff --git a/web/src/pages/PullRequest/PullRequestConversation/PullRequestConversation.tsx b/web/src/pages/PullRequest/PullRequestConversation/PullRequestConversation.tsx new file mode 100644 index 000000000..17e41e7c2 --- /dev/null +++ b/web/src/pages/PullRequest/PullRequestConversation/PullRequestConversation.tsx @@ -0,0 +1,20 @@ +import React from 'react' +import { Container } from '@harness/uicore' +import { useAppContext } from 'AppContext' +import { useStrings } from 'framework/strings' +import type { GitInfoProps } from 'utils/GitUtils' +import css from './PullRequestConversation.module.scss' + +export const PullRequestConversation: React.FC> = ({ + repoMetadata, + pullRequestMetadata +}) => { + const { getString } = useStrings() + const { routes } = useAppContext() + + return ( + + CONVERSATION... + + ) +} diff --git a/web/src/pages/PullRequest/PullRequestDiff/PullRequestDiff.module.scss b/web/src/pages/PullRequest/PullRequestDiff/PullRequestDiff.module.scss new file mode 100644 index 000000000..662ecf803 --- /dev/null +++ b/web/src/pages/PullRequest/PullRequestDiff/PullRequestDiff.module.scss @@ -0,0 +1,2 @@ +.main { +} diff --git a/web/src/pages/PullRequest/PullRequestDiff/PullRequestDiff.tsx b/web/src/pages/PullRequest/PullRequestDiff/PullRequestDiff.tsx new file mode 100644 index 000000000..4870b7795 --- /dev/null +++ b/web/src/pages/PullRequest/PullRequestDiff/PullRequestDiff.tsx @@ -0,0 +1,20 @@ +import React from 'react' +import { Container } from '@harness/uicore' +import { useAppContext } from 'AppContext' +import { useStrings } from 'framework/strings' +import type { GitInfoProps } from 'utils/GitUtils' +import css from './PullRequestDiff.module.scss' + +export const PullRequestDiff: React.FC> = ({ + repoMetadata, + pullRequestMetadata +}) => { + const { getString } = useStrings() + const { routes } = useAppContext() + + return ( + + DIFF + + ) +} diff --git a/web/src/utils/GitUtils.ts b/web/src/utils/GitUtils.ts index 0358f8df1..8cd0abd97 100644 --- a/web/src/utils/GitUtils.ts +++ b/web/src/utils/GitUtils.ts @@ -10,6 +10,7 @@ import type { RepoCommit, TypesRepository } from 'services/code' +import type { PullRequestResponse } from './types' export interface GitInfoProps { repoMetadata: TypesRepository @@ -18,6 +19,7 @@ export interface GitInfoProps { resourceContent: OpenapiGetContentOutput commitRef: string commits: RepoCommit[] + pullRequestMetadata: PullRequestResponse } export enum GitContentType { @@ -70,7 +72,8 @@ export const CodeIcon = { Settings: 'code-settings' as IconName, Webhook: 'code-webhook' as IconName, InputSpinner: 'steps-spinner' as IconName, - InputSearch: 'search' as IconName + InputSearch: 'search' as IconName, + Chat: 'chat' as IconName } export const REFS_TAGS_PREFIX = 'refs/tags/' diff --git a/web/yarn.lock b/web/yarn.lock index c63734469..1891da8b9 100644 --- a/web/yarn.lock +++ b/web/yarn.lock @@ -1967,10 +1967,10 @@ resolved "https://npm.pkg.github.com/download/@harness/telemetry/1.0.44/55e75d8caccbcdcb0a11226c813edd631578d9af#55e75d8caccbcdcb0a11226c813edd631578d9af" integrity sha512-t6N3Ie/F9Nw/tANAmptsunebGYBkC3j865bc75MZVL2ZqFM0CBRxFR1MG8zC+hU6uDpr8Drqsn81NmdlVlBSmA== -"@harness/uicore@3.84.0": - version "3.84.0" - resolved "https://npm.pkg.github.com/download/@harness/uicore/3.84.0/9c02acd3106254a08530f68065317d031cd15e67#9c02acd3106254a08530f68065317d031cd15e67" - integrity sha512-3AvETaoDHGGKSbnFN9rZAg0HgWWBKMeqGpbonxWj/6gUEahlMnzd8QGvpjUdbYOVCAtPbUVxrtI0Yf4VQPuf5g== +"@harness/uicore@3.95.1": + version "3.95.1" + resolved "https://npm.pkg.github.com/download/@harness/uicore/3.95.1/4b9551e0299ed56e6f4291e7e75cb48562aa7dd8#4b9551e0299ed56e6f4291e7e75cb48562aa7dd8" + integrity sha512-NSxVyQ5aGLF+3kysijjEeqFPQ4HHlWdYRq9HRKj8lRoT0YLYyvxSxZbGae/Ceq74SutnDk6h36qEK2L6lu8Cfw== "@harness/use-modal@1.3.0": version "1.3.0"