燕鹏
4 years ago
6 changed files with 165 additions and 32 deletions
@ -0,0 +1,7 @@ |
|||
const {override, fixBabelImports} = require('customize-cra'); |
|||
module.exports = override( |
|||
fixBabelImports('import', { |
|||
libraryName: 'antd-mobile', |
|||
style: 'css', |
|||
}), |
|||
); |
@ -1,9 +0,0 @@ |
|||
import React from 'react'; |
|||
import { render } from '@testing-library/react'; |
|||
import App from './App'; |
|||
|
|||
test('renders learn react link', () => { |
|||
const { getByText } = render(<App />); |
|||
const linkElement = getByText(/learn react/i); |
|||
expect(linkElement).toBeInTheDocument(); |
|||
}); |
@ -0,0 +1,147 @@ |
|||
import React, {Component, Fragment} from 'react'; |
|||
import {TabBar} from 'antd-mobile'; |
|||
|
|||
class Tab extends Component { |
|||
constructor(props) { |
|||
super(props); |
|||
this.state = { |
|||
selectedTab: 'redTab', |
|||
hidden: false, |
|||
fullScreen: true, |
|||
}; |
|||
} |
|||
|
|||
renderContent(pageText) { |
|||
return ( |
|||
<div style={{backgroundColor: 'white', height: '100%', textAlign: 'center'}}> |
|||
<div style={{paddingTop: 60}}>Clicked “{pageText}” tab, show “{pageText}” information</div> |
|||
<a style={{display: 'block', marginTop: 40, marginBottom: 20, color: '#108ee9'}} |
|||
onClick={(e) => { |
|||
e.preventDefault(); |
|||
this.setState({ |
|||
hidden: !this.state.hidden, |
|||
}); |
|||
}} |
|||
> |
|||
</a> |
|||
</div> |
|||
); |
|||
} |
|||
|
|||
render() { |
|||
return ( |
|||
<div style={this.state.fullScreen ? { |
|||
position: 'fixed', |
|||
height: '100%', |
|||
width: '100%', |
|||
top: 0 |
|||
} : {height: 400}}> |
|||
<TabBar |
|||
unselectedTintColor="#949494" |
|||
tintColor="#33A3F4" |
|||
barTintColor="white" |
|||
hidden={this.state.hidden} |
|||
> |
|||
<TabBar.Item |
|||
title="Life" |
|||
key="Life" |
|||
icon={<div style={{ |
|||
width: '22px', |
|||
height: '22px', |
|||
background: 'url(https://zos.alipayobjects.com/rmsportal/sifuoDUQdAFKAVcFGROC.svg) center center / 21px 21px no-repeat' |
|||
}}/>} |
|||
selectedIcon={<div style={{ |
|||
width: '22px', |
|||
height: '22px', |
|||
background: 'url(https://zos.alipayobjects.com/rmsportal/iSrlOTqrKddqbOmlvUfq.svg) center center / 21px 21px no-repeat' |
|||
}}/>} |
|||
selected={this.state.selectedTab === 'blueTab'} |
|||
badge={1} |
|||
onPress={() => { |
|||
this.setState({ |
|||
selectedTab: 'blueTab', |
|||
}); |
|||
}} |
|||
data-seed="logId"> |
|||
{/*{this.renderContent('Life')}*/} |
|||
</TabBar.Item> |
|||
<TabBar.Item |
|||
icon={ |
|||
<div style={{ |
|||
width: '22px', |
|||
height: '22px', |
|||
background: 'url(https://gw.alipayobjects.com/zos/rmsportal/BTSsmHkPsQSPTktcXyTV.svg) center center / 21px 21px no-repeat' |
|||
}} |
|||
/> |
|||
} |
|||
selectedIcon={ |
|||
<div style={{ |
|||
width: '22px', |
|||
height: '22px', |
|||
background: 'url(https://gw.alipayobjects.com/zos/rmsportal/ekLecvKBnRazVLXbWOnE.svg) center center / 21px 21px no-repeat' |
|||
}} |
|||
/> |
|||
} |
|||
title="Koubei" |
|||
key="Koubei" |
|||
badge={'new'} |
|||
selected={this.state.selectedTab === 'redTab'} |
|||
onPress={() => { |
|||
this.setState({ |
|||
selectedTab: 'redTab', |
|||
}); |
|||
}} |
|||
data-seed="logId1" |
|||
> |
|||
{this.renderContent('Koubei')} |
|||
</TabBar.Item> |
|||
<TabBar.Item |
|||
icon={ |
|||
<div style={{ |
|||
width: '22px', |
|||
height: '22px', |
|||
background: 'url(https://zos.alipayobjects.com/rmsportal/psUFoAMjkCcjqtUCNPxB.svg) center center / 21px 21px no-repeat' |
|||
}} |
|||
/> |
|||
} |
|||
selectedIcon={ |
|||
<div style={{ |
|||
width: '22px', |
|||
height: '22px', |
|||
background: 'url(https://zos.alipayobjects.com/rmsportal/IIRLrXXrFAhXVdhMWgUI.svg) center center / 21px 21px no-repeat' |
|||
}} |
|||
/> |
|||
} |
|||
title="Friend" |
|||
key="Friend" |
|||
dot |
|||
selected={this.state.selectedTab === 'greenTab'} |
|||
onPress={() => { |
|||
this.setState({ |
|||
selectedTab: 'greenTab', |
|||
}); |
|||
}} |
|||
> |
|||
{this.renderContent('Friend')} |
|||
</TabBar.Item> |
|||
<TabBar.Item |
|||
icon={{uri: 'https://zos.alipayobjects.com/rmsportal/asJMfBrNqpMMlVpeInPQ.svg'}} |
|||
selectedIcon={{uri: 'https://zos.alipayobjects.com/rmsportal/gjpzzcrPMkhfEqgbYvmN.svg'}} |
|||
title="My" |
|||
key="my" |
|||
selected={this.state.selectedTab === 'yellowTab'} |
|||
onPress={() => { |
|||
this.setState({ |
|||
selectedTab: 'yellowTab', |
|||
}); |
|||
}} |
|||
> |
|||
{this.renderContent('My')} |
|||
</TabBar.Item> |
|||
</TabBar> |
|||
</div> |
|||
); |
|||
} |
|||
} |
|||
|
|||
export default Tab; |
@ -1,5 +0,0 @@ |
|||
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
|||
// allows you to do things like:
|
|||
// expect(element).toHaveTextContent(/react/i)
|
|||
// learn more: https://github.com/testing-library/jest-dom
|
|||
import '@testing-library/jest-dom/extend-expect'; |
Loading…
Reference in new issue