summaryrefslogtreecommitdiff
path: root/app/client/common/folderList.component.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-07 16:07:12 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-07 16:07:12 +0200
commitddf2cc3f5dccc1b22275c3b39366e51036d7815f (patch)
tree6d744f6618ec12ed9bec5588bde7e496e2614f0d /app/client/common/folderList.component.js
parent209cfd09c16122e94acb1e28972a97a46c92a5c7 (diff)
folder list on new dataset page
Diffstat (limited to 'app/client/common/folderList.component.js')
-rw-r--r--app/client/common/folderList.component.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/app/client/common/folderList.component.js b/app/client/common/folderList.component.js
new file mode 100644
index 0000000..13ef398
--- /dev/null
+++ b/app/client/common/folderList.component.js
@@ -0,0 +1,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>
+ )
+}