()
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">
-
+
}