diff --git a/src/forge/Component/Keys.jsx b/src/forge/Component/Keys.jsx index 9d05905b..80753447 100644 --- a/src/forge/Component/Keys.jsx +++ b/src/forge/Component/Keys.jsx @@ -6,7 +6,7 @@ import styled from 'styled-components'; export default ({title , value , className})=>{ const Keys = styled.span` display:flex; - align-item:center; + align-items:center; & span{ display:block; height:20px; diff --git a/src/forge/Main/CoderRootIndex.js b/src/forge/Main/CoderRootIndex.js index 51762c99..2aa8218f 100644 --- a/src/forge/Main/CoderRootIndex.js +++ b/src/forge/Main/CoderRootIndex.js @@ -97,17 +97,18 @@ class CoderRootIndex extends Component{ (props) => () } > + + {/* diff */} + () + } + > () } > - {/* diff */} - () - } - > () } > + () diff --git a/src/forge/Main/Diff.jsx b/src/forge/Main/Diff.jsx index 28abe420..18eda5f2 100644 --- a/src/forge/Main/Diff.jsx +++ b/src/forge/Main/Diff.jsx @@ -2,7 +2,8 @@ import React, { useEffect, useState } from "react"; import styled from "styled-components"; import { Button ,Spin } from "antd"; import { truncateCommitId } from '../common/util'; -import Nodata from '../Nodata'; +import { getImageUrl } from 'educoder'; +import Files from '../Merge/Files'; import User from "../Component/User"; import Keys from "../Component/Keys"; @@ -11,65 +12,34 @@ import axios from "axios"; const Infos = styled.div` border: 1px solid #dddddd; + margin-bottom:15px; & .commitinfos { background-color: #f1f8ff; border-bottom: 1px solid #ddd; padding: 20px; } & > .f-wrap-between { - padding: 10px 24px; + padding: 10px 20px; } `; -const Operation = styled.p` - border-bottom: 1px solid #eee; - padding: 12px 0px; - margin-top: 10px; - display: flex; - justify-content: space-between; - align-items: center; -`; -const FileUl = styled.ul` - padding-top: 10px; - & li { - display: flex; - justify-content: space-between; - align-items: center; - height: 20px; - line-height: 20px; - margin-bottom: 10px; - } -`; -const DetailP = styled.p` - display: flex; - justify-content: space-between; - align-items: center; - padding: 12px 20px 12px 12px; - background-color: #fafafa; - border: 1px solid #dddddd; -`; - -export default ({ projectDetail, match }) => { +export default ({ match , history }) => { const [data, setData] = useState({undefined}); const [commit, setCommit] = useState(undefined); - const [files, setFiles] = useState(undefined); const [parents, setParents] = useState(undefined); const [committer, setCommitter] = useState(undefined); - const [fileflag , setFileflag] = useState(false); const [isSpin, setIsSpin] = useState(true); - const repo_id = projectDetail && projectDetail.repo_id; - const { sha } = match.params; + const { sha , projectsId, owner } = match.params; useEffect(() => { - if (repo_id && sha) { - const url = `/repositories/${repo_id}/commits/${sha}.json`; + if (projectsId && owner && sha) { + const url = `/${owner}/${projectsId}/commits/${sha}.json`; axios .get(url) .then(result => { if (result) { setData(result.data); setCommit(result.data.commit); - setFiles(result.data.files); setParents(result.data.parents); setCommitter(result.data.committer || (result.data.commit && result.data.commit.committer)); setIsSpin(false); @@ -79,72 +49,27 @@ export default ({ projectDetail, match }) => { console.log(error); }); } - }, [repo_id, sha]); - const renderFiles = () => { - return ( - - { - files && files.length > 0 && files.map((item,key)=>{ - return( -
  • - - - {item.Name} - - - - - -
  • - ) - }) - } -
    - ); - }; - - function changeFlag(){ - let flag = !fileflag; - setFileflag(flag); - } - - const filesDetail = () => { - return ( -
    - - - - README.md - - - -
    - ); - }; + }, [projectsId , owner, sha]); return (
    -

    - - { commit && commit.title } - - -

    - {commit && commit.message ? ( -
    {commit.message}
    - ) : ( - "" - )} +
    + {commit && commit.message && +
    {commit.message}
    + } + +
      + {committer && committer.time_from_now &&
    • {committer.time_from_now}
    • }
  • { @@ -158,35 +83,12 @@ export default ({ projectDetail, match }) => {
  • - { - files && files.length > 0 ? - - - - - - 共有{files && files.length}个文件被更改,包括 - {data && data.additions ? ( - {data.additions}次插入 - ) : ( - "" - )} - {data && data.additions && data.deletions ? "和" : ""} - {data && data.deletions ? ( - {data.deletions}次删除 - ) : ( - "" - )} - - - - - {fileflag && renderFiles()} - {filesDetail()} - - : - - } +
    ); diff --git a/src/forge/Merge/Commits.jsx b/src/forge/Merge/Commits.jsx index 2cceb256..7e326bdf 100644 --- a/src/forge/Merge/Commits.jsx +++ b/src/forge/Merge/Commits.jsx @@ -4,8 +4,9 @@ import User from '../Component/User'; import { truncateCommitId } from '../common/util'; import { getImageUrl } from 'educoder'; import Nodata from '../Nodata'; +import { Link } from 'react-router-dom'; -function Commits({commits}){ +function Commits({ commits , projectsId , owner }){ return( commits && commits.length>0 ?
    @@ -20,11 +21,11 @@ function Commits({commits}){ {truncateCommitId(`${item.sha}`)}

    {item.message}

    - {/* 浏览代码 */} - - :提交于{item.time_from_now} - + 浏览代码 + + :提交于{item.time_from_now} +
    ) diff --git a/src/forge/Merge/Files.jsx b/src/forge/Merge/Files.jsx index 226ca5e2..7422a177 100644 --- a/src/forge/Merge/Files.jsx +++ b/src/forge/Merge/Files.jsx @@ -1,16 +1,28 @@ -import React ,{useEffect,useState} from 'react'; +import React ,{useEffect,useState } from 'react'; +import { truncateCommitId } from '../common/util'; import { AlignCenter , FlexAJ } from '../Component/layout'; import { Button } from 'antd'; import Nodata from '../Nodata'; +import './merge.css'; + +function Files({data,history,owner,projectsId}){ + const [ files , setFiles ] = useState(data && data.files); -function Files({data,history,owner,projectsId,showDown}){ - const [ files , setFiles ] = useState(undefined); useEffect(()=>{ if(data){ setFiles(data.files); } },[data]) + function showDown(flag,index,isBin){ + if(!isBin){ + var lists = files.concat(); + lists[index].flag = !flag ? true : false; + lists.splice(); + setFiles(lists); + } + } + return( files ?
    @@ -36,7 +48,7 @@ function Files({data,history,owner,projectsId,showDown}){ {item.name} - + +{item.addition} -{item.deletion} diff --git a/src/forge/Merge/merge_footer.js b/src/forge/Merge/merge_footer.js index 81ecae82..72608b71 100644 --- a/src/forge/Merge/merge_footer.js +++ b/src/forge/Merge/merge_footer.js @@ -121,23 +121,6 @@ class MergeFooter extends Component { }).catch(error=>{}) } - showDown=(flag,index,isBin)=>{ - if(!isBin){ - const { filesData } = this.state; - const { files } = filesData; - - let arr = files[index]; - let f = files; - let d = filesData; - arr.flag = !flag ? true : false; - - f[index] = arr; - d.files = f; - this.setState({ - filesData:d - }); - } - } render() { const { projectsId , owner } = this.props.match.params; @@ -175,7 +158,7 @@ class MergeFooter extends Component { 提交 {commitCount > 0 && {commitCount}} } key="2"> - + } { @@ -185,7 +168,7 @@ class MergeFooter extends Component { {filesCount > 0 && {filesCount}} } key="3"> - + }