diff --git a/web/src/pages/Repository/RepositoryContent/FileContent/FileContent.tsx b/web/src/pages/Repository/RepositoryContent/FileContent/FileContent.tsx index 225b4d93b..339c74fb1 100644 --- a/web/src/pages/Repository/RepositoryContent/FileContent/FileContent.tsx +++ b/web/src/pages/Repository/RepositoryContent/FileContent/FileContent.tsx @@ -110,7 +110,7 @@ export function FileContent({ const [page, setPage] = usePageIndex() const { data: commits, response } = useGet<{ commits: TypesCommit[]; rename_details: RenameDetails[] }>({ - path: `/api/v1/repos/${repoMetadata?.path}/+/commits`, + path: `/api/v1/repos/${repoMetadata?.path}/+/commitsV2`, queryParams: { limit: LIST_FETCHING_LIMIT, page, diff --git a/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.module.scss b/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.module.scss index a6a33bc0c..90c80ad31 100644 --- a/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.module.scss +++ b/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.module.scss @@ -5,4 +5,33 @@ .hideText { text-align: center !important; width: 100% !important; -} \ No newline at end of file +} + +.lineDiv { + position: relative; + } + + .lineDiv::before, + .lineDiv::after { + content: ""; + position: absolute; + top: 50%; + // width: 50%; + height: 1px; + background-color: var(--grey-200); + // margin-top: var(--spacing-3); + } + + .lineDiv::before { + left: 10%; + transform: translateY(-50%); + width: 20%; + // padding-top: var(--spacing-xsmall); + } + + .lineDiv::after { + right: 10%; + transform: translateY(-50%); + width: 20%; + // padding-top: var(--spacing-xsmall); + } \ No newline at end of file diff --git a/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.module.scss.d.ts b/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.module.scss.d.ts index 7eda56dbd..902301075 100644 --- a/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.module.scss.d.ts +++ b/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.module.scss.d.ts @@ -3,5 +3,6 @@ declare const styles: { readonly contentSection: string readonly hideText: string + readonly lineDiv: string } export default styles diff --git a/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.tsx b/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.tsx index 166b88aed..a10c4b531 100644 --- a/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.tsx +++ b/web/src/pages/Repository/RepositoryContent/FileContent/RenameContentHistory.tsx @@ -1,6 +1,7 @@ import React, { useState } from 'react' -import { Text } from '@harness/uicore' +import { Container, Icon, Text } from '@harness/uicore' import { useGet } from 'restful-react' +import cx from 'classnames' import { ThreadSection } from 'components/ThreadSection/ThreadSection' import { LIST_FETCHING_LIMIT, RenameDetails } from 'utils/Utils' import { usePageIndex } from 'hooks/usePageIndex' @@ -11,21 +12,30 @@ import { ResourceListingPagination } from 'components/ResourceListingPagination/ import css from './RenameContentHistory.module.scss' -const RenameContentHistory = (props: { rename_details: RenameDetails[], repoMetadata: TypesRepository, fileVisibility?: { [key: string]: boolean } }) => { - const { rename_details, repoMetadata, fileVisibility: initialFileVisibility } = props; - const { getString } = useStrings(); - const [fileVisibility, setFileVisibility] = useState(initialFileVisibility || {}); - const [page, setPage] = usePageIndex(); - const { data: commits, response, refetch: getCommitHistory } = useGet<{ commits: TypesCommit[]; rename_details: RenameDetails[] }>({ - path: `/api/v1/repos/${repoMetadata?.path}/+/commits`, +const SingleFileRenameHistory = (props: { + details: RenameDetails + fileVisibility: { [key: string]: boolean } + setFileVisibility: React.Dispatch> + repoMetadata: TypesRepository + page: number + response: any + setPage: React.Dispatch> +}) => { + const { details, fileVisibility, setFileVisibility, repoMetadata, page, response, setPage } = props + const { getString } = useStrings() + const { data: commits, refetch: getCommitHistory } = useGet<{ + commits: TypesCommit[] + rename_details: RenameDetails[] + }>({ + path: `/api/v1/repos/${repoMetadata?.path}/+/commitsV2`, lazy: true - }); + }) - const toggleCommitHistory = async (details: RenameDetails) => { + const toggleCommitHistory = async () => { setFileVisibility(prevVisibility => ({ ...prevVisibility, [details.old_path]: !prevVisibility[details.old_path] - })); + })) if (!fileVisibility[details.old_path]) { await getCommitHistory({ @@ -35,65 +45,102 @@ const RenameContentHistory = (props: { rename_details: RenameDetails[], repoMeta git_ref: details.commit_sha_before, path: details.old_path } - }); + }) } - }; + } + + const isFileShown = fileVisibility[details.old_path] + const commitsData = commits?.commits + const showCommitHistory = isFileShown && commitsData && commitsData.length > 0 + + return ( + + ) +} + +const AllFilesRenameHistory = (props: { + rename_details: RenameDetails[] + repoMetadata: TypesRepository + fileVisibility: { [key: string]: boolean } + setFileVisibility: React.Dispatch> +}) => { + const { rename_details, repoMetadata, fileVisibility, setFileVisibility } = props + const [page, setPage] = usePageIndex() + const { data: commits, response } = useGet<{ commits: TypesCommit[]; rename_details: RenameDetails[] }>({ + path: `/api/v1/repos/${repoMetadata?.path}/+/commitsV2`, + lazy: true + }) return ( <> - {rename_details.map((details, index) => { - const isFileShown = fileVisibility[details.old_path]; - const commitsData = commits?.commits; - const showCommitHistory = isFileShown && commitsData && commitsData.length > 0; - - return ( - - ); - })} + {rename_details.map((details, index) => ( + + ))} - ); -}; + ) +} -export default RenameContentHistory; +const RenameContentHistory = (props: { rename_details: RenameDetails[]; repoMetadata: TypesRepository }) => { + const { rename_details, repoMetadata } = props + const [fileVisibility, setFileVisibility] = useState({}) + + return ( + + ) +} + +export default RenameContentHistory