summaryrefslogtreecommitdiff
path: root/app/client/common/folderList.component.js
blob: 13ef39893556732675800e4821da32293c387df9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { h, Component } from 'preact'
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
import { Link } from 'react-router-dom'
import util from '../util'

import Group from './group.component'
import Param from './param.component'
import Loading from './loading.component'

export default function FolderList ({ db, path, emptyText }) {
  if (! db) return null
  if (db.loading || !db.data) {
    return (
      <div class='col folderList'>
        <Loading progress={db.progress} />
      </div>
    )
  } else if (! db.data.folders.length && emptyText) {
    return (
      <div class='col folderList'>
        {emptyText}
      </div>
    )
  }
  console.log(db.data.folders)
  const folders = db.data.folders.map(folder => {
    const datasetCount = folder.datasets ? folder.datasets.length : 0
    const [ className, size ] = util.hush_null(datasetCount)
    return (
      <Param title={<Link to={path + folder.id + '/'}>{folder.name}</Link>}>
        <span className={className}>{datasetCount} dataset{util.courtesy_s(datasetCount)}</span>
      </Param>
    )
  })

  return (
    <div class='col folderList'>
      <Group title='Projects'>
        {folders}
      </Group>
    </div>
  )
}