Skip to content

Commit

Permalink
Add STAGING state
Browse files Browse the repository at this point in the history
  • Loading branch information
jakedex committed Feb 24, 2017
1 parent c855467 commit 4e6681a
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 53 deletions.
97 changes: 45 additions & 52 deletions src/components/Converter.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ import { uniqueFiles } from '../helpers/util'

const drop = (props, monitor, component) => {
const { files } = monitor.getItem()
const filesUnique = uniqueFiles(component.state.files, files)
component.setState({
status: 'IDLE',
files: uniqueFiles(component.state.files, files)
status: Object.keys(filesUnique).length ? 'STAGING' : 'IDLE',
files: filesUnique
})

if (component.state.shifted) {
Expand Down Expand Up @@ -62,21 +63,16 @@ class Sanitizer extends Component {

getMessage() {
switch (this.state.status) {
case 'IDLE': {
if (!Object.keys(this.state.files).length) {
return (
<div>
<h1>
{ this.isHover() ? 'Drop' : 'Drag & drop' }
</h1>
<p className="detail">
{`your files here to ${this.state.shifted ? 'convert' : 'add them'}`}
</p>
</div>
)
}
return null
}
case 'IDLE': return (
<div>
<h1>
{ this.isHover() ? 'Drop' : 'Drag & drop' }
</h1>
<p className="detail">
{`your files here to ${this.state.shifted ? 'convert' : 'add them'}`}
</p>
</div>
)
case 'CONVERTING': return (
<div>
<h1>
Expand Down Expand Up @@ -110,42 +106,39 @@ class Sanitizer extends Component {
case 'FAILED': return <Failed />
case 'DONE': return <Done />
case 'CONVERTING': return <Converting />
default:
if (Object.keys(this.state.files).length) {
return (
<div className="file__list">
<input type="text" value="Alchemy-1.txt">
<div className="switch">
<div className="merge">
<Merge />
<div>Merge</div>
</div>
<div className="convert">
<Convert />
<div>Convert</div>
</div>
</div>
<div className="dropdown">
<select name="file-type">
<option value="gif">GIF</option>
<option value="pdf">PDF</option>
</select>
</div>
<div className="file-list">
<div className="file-list__item">

</div>
</div>
{
Object.keys(this.state.files).map(key =>
<p className="file__list-item" key={key}>{this.state.files[key].name}</p>
)
}
<button className="button__convert" onClick={() => { this.convert() }}>CONVERT</button>
case 'STAGING': return (
<div className="staging">
<input type="text" value="Alchemy-1.txt" />
<div className="switch">
<div className="merge">
<Merge />
<div>Merge</div>
</div>
<div className="convert">
<Convert />
<div>Convert</div>
</div>
)
}
return <Idle />
</div>
<div className="dropdown">
<select name="file-type">
<option value="gif">GIF</option>
<option value="pdf">PDF</option>
</select>
</div>
<div className="file-list">
{
Object.keys(this.state.files).map(key =>
<div className="file-list__item" key={key}>
<div>{this.state.files[key].name}</div>
<button className="close-btn" />
</div>
)
}
</div>
<button className="button__convert" onClick={() => { this.convert() }}>CONVERT</button>
</div>
)
default: return <Idle />
}
}

Expand Down
2 changes: 1 addition & 1 deletion styles/index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ p {
animation: file3 0.25s forwards;
}

.file__list {
.staging {
z-index: 999;
display: flex;
flex-direction: column;
Expand Down

0 comments on commit 4e6681a

Please # to comment.