Vertical centering via flexbox. You get horizontal centering for free.

pull/9/head
Zach Fogg 11 years ago
parent 76b69697ad
commit d1b4451ef6

@ -3,51 +3,15 @@ import React from 'react'
export default class Centered extends React.Component { export default class Centered extends React.Component {
render() { render() {
const h = this.props.hor return <div style={{
const v = this.props.ver display: 'flex',
flexDirection: 'column',
if (h && v) { justifyContent: 'center',
height: '100%'}}>
return <div style={{ <div>
display: 'table', {this.props.children}
width: '100%',
height: '100%'}}>
<div style={{
display: 'table-cell',
verticalAlign: 'middle',
textAlign: 'center'}}>
<div style={{display: 'inline-block'}}>
{this.props.children}
</div>
</div>
</div>
} else if (h && !v) {
return <div style={{textAlign: 'center'}}>
<div style={{display: 'inline-block'}}>
{this.props.children}
</div>
</div> </div>
</div>
} else if (!h && v) {
return <div style={{
display: 'table',
width: '100%',
height: '100%'}}>
<div style={{
display: 'table-cell',
verticalAlign: 'middle'}}>
{this.props.children}
</div>
</div>
} else {
return this.props.children
}
} }
} }

@ -38,7 +38,7 @@ export default class DownloadPage extends React.Component {
render() { render() {
switch (this.state.status) { switch (this.state.status) {
case 'ready': case 'ready':
return <Centered ver> return <Centered>
<h1>FilePizza</h1> <h1>FilePizza</h1>
<Spinner dir="down" <Spinner dir="down"
@ -51,7 +51,7 @@ export default class DownloadPage extends React.Component {
case 'requesting': case 'requesting':
case 'downloading': case 'downloading':
return <Centered ver> return <Centered>
<h1>FilePizza</h1> <h1>FilePizza</h1>
<Spinner dir="down" animated <Spinner dir="down" animated
@ -63,7 +63,7 @@ export default class DownloadPage extends React.Component {
</Centered> </Centered>
case 'cancelled': case 'cancelled':
return <Centered ver> return <Centered>
<h1>FilePizza</h1> <h1>FilePizza</h1>
<Spinner dir="down" <Spinner dir="down"
@ -75,7 +75,7 @@ export default class DownloadPage extends React.Component {
</Centered> </Centered>
case 'done': case 'done':
return <Centered ver> return <Centered>
<h1>FilePizza</h1> <h1>FilePizza</h1>
<Spinner dir="down" <Spinner dir="down"

@ -1,5 +1,4 @@
import React from 'react' import React from 'react'
import Centered from './Centered'
export default class DropZone extends React.Component { export default class DropZone extends React.Component {

@ -48,7 +48,7 @@ export default class UploadPage extends React.Component {
case 'ready': case 'ready':
return <DropZone onDrop={this.uploadFile.bind(this)}> return <DropZone onDrop={this.uploadFile.bind(this)}>
<Centered ver> <Centered>
<Spinner dir="up" /> <Spinner dir="up" />
@ -65,7 +65,7 @@ export default class UploadPage extends React.Component {
</DropZone> </DropZone>
case 'processing': case 'processing':
return <Centered ver> return <Centered>
<Spinner dir="up" animated /> <Spinner dir="up" animated />
@ -77,7 +77,7 @@ export default class UploadPage extends React.Component {
case 'uploading': case 'uploading':
var keys = Object.keys(this.state.peerProgress) var keys = Object.keys(this.state.peerProgress)
keys.reverse() keys.reverse()
return <Centered ver> return <Centered>
<h1>FilePizza</h1> <h1>FilePizza</h1>
<Spinner dir="up" animated {...this.state.file} /> <Spinner dir="up" animated {...this.state.file} />

Loading…
Cancel
Save