Merge branch 'forge' of http://bdgit.educoder.net/Hjqreturn/educoder into forge
commit
1ea0412c61
File diff suppressed because one or more lines are too long
@ -0,0 +1,152 @@
|
||||
import React , { Component } from 'react';
|
||||
import { Dropdown , Icon , Menu , Table } from 'antd';
|
||||
import {Link} from 'react-router-dom';
|
||||
import axios from 'axios';
|
||||
|
||||
// 点击按钮复制功能
|
||||
function jsCopy(){
|
||||
var e = document.getElementById("copy_rep_content");
|
||||
e.select();
|
||||
document.execCommand("Copy");
|
||||
}
|
||||
class CoderRootDirectory extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.state={
|
||||
address:"http",
|
||||
ref:"master"
|
||||
}
|
||||
}
|
||||
|
||||
changeAddress=(address)=>{
|
||||
this.setState({
|
||||
address
|
||||
})
|
||||
}
|
||||
|
||||
componentDidMount=()=>{
|
||||
this.getProjectRoot();
|
||||
}
|
||||
|
||||
getProjectRoot=(ref)=>{
|
||||
const { login } = this.props.current_user;
|
||||
const { projectsId } = this.props.match.params;
|
||||
|
||||
const url = `/${login}/${projectsId}/entries.json`;
|
||||
axios.get((url),{
|
||||
params:{
|
||||
ref
|
||||
}
|
||||
}).then((result)=>{
|
||||
if(result){
|
||||
|
||||
}
|
||||
}).catch((error)=>{})
|
||||
}
|
||||
|
||||
render(){
|
||||
const menu = (
|
||||
<Menu>
|
||||
<Menu.Item key="0">
|
||||
<a href="http://www.alipay.com/">1st menu item</a>
|
||||
</Menu.Item>
|
||||
<Menu.Item key="1">
|
||||
<a href="http://www.taobao.com/">2nd menu item</a>
|
||||
</Menu.Item>
|
||||
</Menu>
|
||||
);
|
||||
|
||||
const columns = [
|
||||
{
|
||||
dataIndex: 'name',
|
||||
width:"33%",
|
||||
render: text => <a>{text}</a>,
|
||||
},
|
||||
{
|
||||
className: 'column-money',
|
||||
width:"34%",
|
||||
dataIndex: 'money',
|
||||
},
|
||||
{
|
||||
dataIndex: 'address',
|
||||
width:"33%",
|
||||
className:"edu-txt-right color-grey-9"
|
||||
},
|
||||
];
|
||||
const data = [
|
||||
{
|
||||
key: '1',
|
||||
name: 'John Brown',
|
||||
money: '¥300,000.00',
|
||||
address: 'New York No. 1 Lake Park',
|
||||
},
|
||||
{
|
||||
key: '2',
|
||||
name: 'Jim Green',
|
||||
money: '¥1,256,000.00',
|
||||
address: 'London No. 1 Lake Park',
|
||||
},
|
||||
{
|
||||
key: '3',
|
||||
name: 'Joe Black',
|
||||
money: '¥120,000.00',
|
||||
address: 'Sidney No. 1 Lake Park',
|
||||
},
|
||||
];
|
||||
|
||||
const title = () =>{
|
||||
return(
|
||||
<div className="f-wrap-alignCenter">
|
||||
<img src={``} alt=""/>
|
||||
<span>蔡蔡</span>
|
||||
<Link to={``} className="commitKey">asljfowfjoer</Link>
|
||||
<span className="color-blue flex-1 hide-1">first commit</span>
|
||||
<span>3小时前</span>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
const { address , ref } = this.state;
|
||||
return(
|
||||
<div className="main">
|
||||
<p className="branch-wrapper">
|
||||
<span><i className="iconfont icon-tijiaojilu font-18 mr3"></i>提交</span>
|
||||
<span><i className="iconfont icon-fenzhi font-18 mr3"></i>分支</span>
|
||||
</p>
|
||||
|
||||
<div className="f-wrap-between mt20">
|
||||
<div className="branchDropdown">
|
||||
<span className="color-grey-9 mr3"><i className="iconfont icon-fenzhi font-20 color-grey-6 mr3"></i>分支:</span>
|
||||
<Dropdown overlay={menu} trigger={['click']} placement="bottomRight">
|
||||
<a className="ant-dropdown-link">
|
||||
{ref} <Icon type="down" />
|
||||
</a>
|
||||
</Dropdown>
|
||||
</div>
|
||||
<div className="gitAddressClone">
|
||||
<span className={address ==="http" ? "addressType active":"addressType"} onClick={()=>this.changeAddress("http")}>HTTP</span>
|
||||
<span className={address ==="ssh" ? "addressType active":"addressType"} onClick={()=>this.changeAddress("ssh")}>SSH</span>
|
||||
<input type="text" id="copy_rep_content" value={"git@testgitea.trustie.net:sylor/test11.git"}/>
|
||||
<span><i className="iconfont icon-fuzhi"></i></span>
|
||||
<span>
|
||||
<Dropdown overlay={menu} trigger={['click']} placement="bottomRight">
|
||||
<a className="ant-dropdown-link">
|
||||
<Icon type="cloud-download" className="font-18 fl"/>
|
||||
</a>
|
||||
</Dropdown></span>
|
||||
</div>
|
||||
</div>
|
||||
<Table
|
||||
className="mt20 wrap-commit-table"
|
||||
columns={columns}
|
||||
dataSource={data}
|
||||
showHeader={false}
|
||||
size="small"
|
||||
pagination={false}
|
||||
title={() => title()}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
export default CoderRootDirectory;
|
@ -0,0 +1,67 @@
|
||||
import React , { Component } from 'react';
|
||||
import { Link , Route , Switch } from 'react-router-dom';
|
||||
|
||||
import '../css/index.css'
|
||||
import './list.css';
|
||||
|
||||
import Loadable from 'react-loadable';
|
||||
import Loading from '../../Loading';
|
||||
const CoderRootDirectory = Loadable({
|
||||
loader: () => import('./CoderRootDirectory'),
|
||||
loading: Loading,
|
||||
})
|
||||
class Detail extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.state={
|
||||
currentKey:"coder"
|
||||
}
|
||||
}
|
||||
|
||||
// 切换菜单
|
||||
ChangeMenu=(value)=>{
|
||||
console.log(value);
|
||||
}
|
||||
render(){
|
||||
const { currentKey } = this.state;
|
||||
return(
|
||||
<div>
|
||||
<div className="detailHeader-wrapper">
|
||||
<div className="normal f-wrap-between mb20">
|
||||
<p className="font-18 color-blue df flex-1" style={{alignItems:"center"}}>kosasa胡 / <span className="hide-1 flex-1">test11111111111</span></p>
|
||||
|
||||
<span className="p-r-tags large">
|
||||
<span><label>关注</label><span>11</span></span>
|
||||
<span><label>点赞</label><span>12</span></span>
|
||||
<span><label>Fork</label><span>11</span></span>
|
||||
</span>
|
||||
</div>
|
||||
<div className="normal f-wrap-between">
|
||||
<ul className="headerMenu-wrapper">
|
||||
<li className={currentKey === "coder" ? "active" : ""}><Link to={''}>代码</Link></li>
|
||||
<li className={currentKey === "orders" ? "active" : ""}><Link to={''}>工单</Link></li>
|
||||
<li className={currentKey === "merge" ? "active" : ""}><Link to={''}>合并请求</Link></li>
|
||||
<li className={currentKey === "edition" ? "active" : ""}><Link to={''}>版本发布</Link></li>
|
||||
<li className={currentKey === "trends" ? "active" : ""}><Link to={''}>动态</Link></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Switch {...this.props}>
|
||||
<Route exact path="/projects/:projectsId/coder"
|
||||
render={
|
||||
(props) => (<CoderRootDirectory {...this.props} {...props} {...this.state}/>)
|
||||
}
|
||||
></Route>
|
||||
<Route exact path="/projects/:projectsId"
|
||||
render={
|
||||
(props) => (<CoderRootDirectory {...this.props} {...props} {...this.state}/>)
|
||||
}
|
||||
></Route>
|
||||
</Switch>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default Detail;
|
@ -0,0 +1,221 @@
|
||||
import React , { Component } from 'react';
|
||||
|
||||
import { Menu , Input , Dropdown , Icon, Spin , Pagination } from 'antd';
|
||||
import '../css/index.css'
|
||||
import './list.css';
|
||||
|
||||
import ListItem from './IndexItem'
|
||||
import axios from 'axios';
|
||||
|
||||
const Search = Input.Search;
|
||||
const { SubMenu } = Menu;
|
||||
class Index extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.state={
|
||||
projectsList:undefined,
|
||||
page:1,
|
||||
limit:15,
|
||||
search:undefined,
|
||||
sort:undefined,
|
||||
total:0,
|
||||
isSpin:true,
|
||||
project_type:undefined,
|
||||
category_id:undefined,
|
||||
|
||||
typeList:undefined,
|
||||
categoryList:undefined
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount=()=>{
|
||||
const { page,limit, search , sort ,project_type,category_id} = this.state;
|
||||
this.getListData(page,limit, search , sort,project_type,category_id);
|
||||
|
||||
this.getType();
|
||||
|
||||
this.getCategory();
|
||||
}
|
||||
|
||||
// 获取列表
|
||||
getListData=(page,limit, search , sort,project_type,category_id)=>{
|
||||
const { current_user } = this.props;
|
||||
const url = `/projects.json`;
|
||||
axios.get(url,{params:{
|
||||
user_id:current_user && current_user.user_id,
|
||||
page,
|
||||
limit,
|
||||
search,
|
||||
sort_by:sort,
|
||||
project_type,
|
||||
category_id
|
||||
}}).then((result)=>{
|
||||
if(result){
|
||||
this.setState({
|
||||
projectsList:result.data.projects,
|
||||
total:result.data.total_count,
|
||||
isSpin:false
|
||||
})
|
||||
}
|
||||
}).catch((error)=>{})
|
||||
}
|
||||
|
||||
// 获取类型
|
||||
getType=()=>{
|
||||
const url = `/projects/group_type_list.json`;
|
||||
|
||||
axios.get(url).then((result)=>{
|
||||
if(result){
|
||||
this.setState({
|
||||
typeList:result.data && result.data.map((item,key)=>{
|
||||
return(
|
||||
<li onClick={()=>this.changeType(`${item.project_type}`)}>
|
||||
<span>{item.name}</span>
|
||||
<span>{item.projects_count}</span>
|
||||
</li>
|
||||
)
|
||||
})
|
||||
})
|
||||
}
|
||||
}).catch((error)=>{})
|
||||
}
|
||||
|
||||
// 获取类型
|
||||
getCategory=()=>{
|
||||
const url = `/project_categories/group_list.json`;
|
||||
|
||||
axios.get(url).then((result)=>{
|
||||
if(result && result.data){
|
||||
this.setCategoryList(result.data);
|
||||
}
|
||||
}).catch((error)=>{})
|
||||
}
|
||||
|
||||
setCategoryList=(list)=>{
|
||||
this.setState({
|
||||
categoryList:list.map((item,key)=>{
|
||||
return(
|
||||
<li onClick={()=>this.changeCategory(`${item.id}`)}>
|
||||
<span>{item.name}</span>
|
||||
<span>{item.projects_count}</span>
|
||||
</li>
|
||||
)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
changeCategory=(id)=>{
|
||||
this.setState({
|
||||
category_id:id,
|
||||
page:1
|
||||
})
|
||||
const { limit , sort, project_type } = this.state;
|
||||
this.getListData(1,limit, undefined , sort, project_type ,id);
|
||||
}
|
||||
|
||||
// 切换类型
|
||||
changeType=(type)=>{
|
||||
this.setState({
|
||||
isSpin:true,
|
||||
project_type:type,
|
||||
search:undefined
|
||||
})
|
||||
const { page,limit, sort,category_id } = this.state;
|
||||
this.getListData(page,limit, undefined , sort, type ,category_id);
|
||||
}
|
||||
|
||||
// 排序
|
||||
ChangeSoryBy=(e)=>{
|
||||
this.setState({
|
||||
sort_by:e.key,
|
||||
page:1,
|
||||
search:undefined,
|
||||
isSpin:true
|
||||
})
|
||||
const { limit,project_type,category_id } = this.state;
|
||||
this.getListData(1 ,limit , undefined , e.key,project_type,category_id);
|
||||
}
|
||||
|
||||
// 搜索
|
||||
searchFun=(value)=>{
|
||||
// console.log(value)
|
||||
this.setState({
|
||||
page:1,
|
||||
search:value,
|
||||
isSpin:true,
|
||||
project_type:undefined
|
||||
})
|
||||
const { limit , sort , category_id } = this.state;
|
||||
this.getListData(1 ,limit, value , sort , undefined,category_id);
|
||||
}
|
||||
changeSearchValue=(e)=>{
|
||||
this.setState({
|
||||
search:e.target.value
|
||||
})
|
||||
}
|
||||
// 翻页
|
||||
ChangePage=(page)=>{
|
||||
this.setState({
|
||||
page
|
||||
})
|
||||
const { limit, search , sort,project_type,category_id } = this.state;
|
||||
this.getListData(page,limit, search , sort,project_type,category_id);
|
||||
}
|
||||
|
||||
render(){
|
||||
const menu=(
|
||||
<Menu onClick={this.ChangeSoryBy}>
|
||||
<Menu.Item key="updated_on">更新时间排序</Menu.Item>
|
||||
<Menu.Item key="created_on">创建时间排序</Menu.Item>
|
||||
<Menu.Item key="forked_count">fork数据排序</Menu.Item>
|
||||
<Menu.Item key="praises_count">点赞数量排序</Menu.Item>
|
||||
</Menu>
|
||||
)
|
||||
|
||||
const { projectsList , isSpin , total , search , limit , page , typeList , categoryList } = this.state;
|
||||
|
||||
const pagination = (
|
||||
total && total > 0 ?
|
||||
<div className="edu-txt-center pt30 mb30">
|
||||
<Pagination simple defaultCurrent={page} total={total} pageSize={limit} onChange={this.ChangePage}></Pagination>
|
||||
</div>:""
|
||||
)
|
||||
return(
|
||||
<div className="main ProjectListIndex">
|
||||
<div className="list-left">
|
||||
<ul className="list-l-Menu">
|
||||
<li className="MenuTitle">项目类型</li>
|
||||
{ typeList }
|
||||
</ul>
|
||||
<ul className="list-l-Menu">
|
||||
<li className="MenuTitle">项目类别</li>
|
||||
{ categoryList }
|
||||
</ul>
|
||||
</div>
|
||||
<div className="list-right">
|
||||
<Spin spinning={isSpin}>
|
||||
<div className="list-r-operation">
|
||||
<Search
|
||||
placeholder="输入项目名称关键字进行搜索"
|
||||
enterButton="搜索"
|
||||
size="large"
|
||||
onSearch={this.searchFun}
|
||||
className="list-r-Search"
|
||||
value={search}
|
||||
onChange={this.changeSearchValue}
|
||||
/>
|
||||
<Dropdown overlay={menu} trigger={['click']} placement='bottomRight'>
|
||||
<a className="ant-dropdown-link">
|
||||
排序 <Icon type="down" />
|
||||
</a>
|
||||
</Dropdown>
|
||||
</div>
|
||||
<ListItem {...this.props} {...this.state} projects={projectsList}></ListItem>
|
||||
{ pagination }
|
||||
</Spin>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
export default Index;
|
@ -0,0 +1,294 @@
|
||||
body,#root{
|
||||
background: #fff!important;
|
||||
}
|
||||
.ProjectListIndex{
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
flex-wrap:wrap;
|
||||
}
|
||||
.list-left{
|
||||
width: 26%;
|
||||
padding-right: 20px;
|
||||
box-sizing: border-box;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.list-right{
|
||||
width:74%;
|
||||
background: #fff;
|
||||
padding:10px;
|
||||
}
|
||||
.list-l-Menu{
|
||||
border:1px solid #f4f4f4;
|
||||
background: #fff;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.list-l-Menu>li{
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
font-size: 1rem;
|
||||
padding:0px 20px;
|
||||
box-sizing: border-box;
|
||||
color: #333;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
cursor: pointer;
|
||||
}
|
||||
.list-l-Menu li span:last-child{
|
||||
color: #999;
|
||||
}
|
||||
.list-l-Menu .MenuTitle{
|
||||
background-color: #efefef;
|
||||
border-radius: 4px 4px 0px 0px;
|
||||
font-size: 16px;
|
||||
}
|
||||
.list-l-Menu > li:not(.MenuTitle):hover{
|
||||
background-color: #1890ff;
|
||||
}
|
||||
.list-l-Menu > li:not(.MenuTitle):hover span{
|
||||
color: #fff;
|
||||
}
|
||||
/* 左侧menu */
|
||||
.list-l-Menu .ant-menu-inline{
|
||||
border:none;
|
||||
}
|
||||
.list-l-Menu .ant-menu-inline .ant-menu-item{
|
||||
width:100%!important;
|
||||
}
|
||||
.list-l-Menu .ant-menu-item-group-title{
|
||||
padding:0px;
|
||||
}
|
||||
|
||||
.list-r-operation{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding:15px 0px 25px;
|
||||
}
|
||||
.list-r-Search{
|
||||
flex: 1;
|
||||
width: 0;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.list-r-Search .ant-btn-lg{
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
/* 列表 */
|
||||
.p-r-Item{
|
||||
display: flex;
|
||||
padding:15px 0px;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
.p-r-photo{
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
border-radius: 50%;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.p-r-Infos{
|
||||
flex: 1;
|
||||
width: 0;
|
||||
}
|
||||
.p-r-name{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.p-r-name > p{
|
||||
flex: 1;
|
||||
width: 0;
|
||||
}
|
||||
.p-r-tags{
|
||||
display: flex;
|
||||
opacity: 1;
|
||||
}
|
||||
.p-r-tags.large > span{
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.p-r-tags > span{
|
||||
margin-left: 15px;
|
||||
border-radius: 4px;
|
||||
border:1px solid #efefef;
|
||||
background: #e2f0fd;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
}
|
||||
.p-r-tags.large > span >label{
|
||||
padding:0px 12px;
|
||||
}
|
||||
.p-r-tags > span >label{
|
||||
padding:0px 8px;
|
||||
}
|
||||
.p-r-tags.large > span >span{
|
||||
padding:0px 6px;
|
||||
}
|
||||
.p-r-tags > span >span{
|
||||
display: block;
|
||||
background: #fff;
|
||||
border-left: #efefef;
|
||||
padding:0px 4px;
|
||||
border-radius: 0px 4px 4px 0px;
|
||||
color: #999;
|
||||
}
|
||||
.p-r-content{
|
||||
margin-top:10px;
|
||||
color: #666;
|
||||
}
|
||||
.p-r-detail > span{
|
||||
margin-right: 15px;
|
||||
color: #666;
|
||||
}
|
||||
.p-r-detail > span > label{
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.p-r-about{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: nowrap;
|
||||
margin-top: 8px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
/* -----------详情------------ */
|
||||
.detailHeader-wrapper{
|
||||
background: #f7f7f7;
|
||||
padding-top:20px;
|
||||
border-bottom: 1px solid rgba(34,36,38,.15);
|
||||
}
|
||||
.headerMenu-wrapper{
|
||||
background: #f7f7f7;
|
||||
font-size: 16px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
color: #999;
|
||||
}
|
||||
.headerMenu-wrapper li{
|
||||
padding:6px 14px;
|
||||
position: relative;
|
||||
text-align: center
|
||||
}
|
||||
.headerMenu-wrapper li.active{
|
||||
background: #fff;
|
||||
margin-bottom: -1px;
|
||||
border:1px solid rgba(34,36,38,.15);
|
||||
border-bottom: none;
|
||||
border-radius: 4px 4px 0px 0px;
|
||||
}
|
||||
/* 详情-代码 */
|
||||
.branch-wrapper{
|
||||
border:1px solid #eee;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
padding:5px;
|
||||
}
|
||||
.branch-wrapper span{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
}
|
||||
.branch-wrapper span.active{
|
||||
background: #eee;
|
||||
}
|
||||
.branch-wrapper span:hover{
|
||||
color: #4CACFF;
|
||||
}
|
||||
.branchDropdown{
|
||||
border:1px solid #eee;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding:0px 10px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.gitAddressClone{
|
||||
display: flex;
|
||||
height: 32px;
|
||||
align-items: center;
|
||||
border-radius: 4px;
|
||||
border:1px solid #eee;
|
||||
background: #fff;
|
||||
}
|
||||
.gitAddressClone > span{
|
||||
display: flex;
|
||||
line-height: 30px;
|
||||
height: 30px;
|
||||
padding:0px 12px;
|
||||
border-right: 1px solid #eee;
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
}
|
||||
.gitAddressClone > span.addressType.active{
|
||||
color: #4CACFF;
|
||||
}
|
||||
.gitAddressClone > span:last-child{
|
||||
border-right: none;
|
||||
}
|
||||
.gitAddressClone > input{
|
||||
border:none;
|
||||
outline: none;
|
||||
padding:0px 8px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
border-radius: 0px;
|
||||
border-right: 1px solid #eee;
|
||||
flex:1;
|
||||
}
|
||||
.wrap-commit-table .ant-table-small > .ant-table-content > .ant-table-body{
|
||||
margin:0px;
|
||||
}
|
||||
.commitKey{
|
||||
border:1px solid #dcdcdc;
|
||||
background-color:#f4f4f4;
|
||||
color: #666!important;
|
||||
padding:0px 5px;
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
margin:0px 15px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 750px){
|
||||
.list-left,.list-right{
|
||||
width: 100%;
|
||||
padding: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 400px){
|
||||
.headerMenu-wrapper{
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
}
|
||||
.headerMenu-wrapper li{
|
||||
width: 100%;
|
||||
}
|
||||
.gitAddressClone{
|
||||
width:100%;
|
||||
}
|
||||
.gitAddressClone > span{
|
||||
padding:0px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 370px){
|
||||
.p-r-tags{
|
||||
opacity: 0;
|
||||
display: none;
|
||||
}
|
||||
.p-r-about{
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
Loading…
Reference in new issue