summaryrefslogtreecommitdiff
path: root/client/components/Browser
diff options
context:
space:
mode:
Diffstat (limited to 'client/components/Browser')
-rw-r--r--client/components/Browser/Browser.jsx57
-rw-r--r--client/components/Browser/BrowserView.jsx29
-rw-r--r--client/components/Browser/Files/FileUploadButton.jsx (renamed from client/components/Browser/Folder/FileUploadButton.jsx)0
-rw-r--r--client/components/Browser/Files/Files.jsx (renamed from client/components/Browser/Folder/Files.jsx)13
4 files changed, 37 insertions, 62 deletions
diff --git a/client/components/Browser/Browser.jsx b/client/components/Browser/Browser.jsx
deleted file mode 100644
index a7731f1..0000000
--- a/client/components/Browser/Browser.jsx
+++ /dev/null
@@ -1,57 +0,0 @@
-import { h, Component } from 'preact'
-
-import Folders from './Folders/Folders.jsx'
-import Files from './Folder/Files.jsx'
-
-import client from '../../client'
-
-class Browser extends Component {
- constructor(props) {
- super()
- let openFolders = JSON.parse( localStorage['openFolders'] || 'null' )
- this.state = {
- folders: [],
- openFolders: openFolders || [],
- }
- client.folder.index().then( folders => this.setState({ folders }) )
- }
- openFolder(folder) {
- if (this.state.openFolders.indexOf(folder.id) === -1) {
- const newOpenFolders = this.state.openFolders.concat(folder.id)
- localStorage['openFolders'] = JSON.stringify(newOpenFolders)
- this.setState({ openFolders: newOpenFolders })
- }
- }
- closeFolder(folder) {
- const openFolders = this.state.openFolders.filter( folder_id => folder_id !== folder.id )
- localStorage['openFolders'] = JSON.stringify(openFolders)
- this.setState({ openFolders })
- }
- addFolder(folder) {
- this.setState({ folders: this.state.folders.concat([folder]) })
- }
- render() {
- const openFolders = this.state.openFolders.map((folder_id) => {
- const folder_list = this.state.folders.filter(folder => folder.id === folder_id)
- if (! folder_list.length) return
- const folder = folder_list[0]
- return (
- <Files
- folder={folder}
- onClose={() => this.closeFolder(folder)}
- />
- )
- })
- return (
- <div class='column'>
- <Folders folders={this.state.folders}
- openFolder={(folder) => this.openFolder(folder)}
- addFolder={(folder) => this.addFolder(folder)}
- />
- {openFolders}
- </div>
- )
- }
-}
-
-export default Browser
diff --git a/client/components/Browser/BrowserView.jsx b/client/components/Browser/BrowserView.jsx
new file mode 100644
index 0000000..ed4f2cb
--- /dev/null
+++ b/client/components/Browser/BrowserView.jsx
@@ -0,0 +1,29 @@
+import { h, Component } from 'preact'
+
+import Folders from './Folders/Folders.jsx'
+import Files from './Files/Files.jsx'
+
+export default function BrowserView (props) {
+ console.log('browser view', props)
+ const openFolders = (props.openFolders || []).map((folder_id) => {
+ const folder_list = props.folders.filter(folder => folder.id === folder_id)
+ if (! folder_list.length) return
+ const folder = folder_list[0]
+ return (
+ <Files
+ folder={folder}
+ onClose={() => props.closeFolder(folder)}
+ />
+ )
+ })
+
+ return (
+ <div class='column'>
+ <Folders folders={props.folders}
+ openFolder={(folder) => props.openFolder(folder)}
+ addFolder={(folder) => props.addFolder(folder)}
+ />
+ {openFolders}
+ </div>
+ )
+}
diff --git a/client/components/Browser/Folder/FileUploadButton.jsx b/client/components/Browser/Files/FileUploadButton.jsx
index 136cd45..136cd45 100644
--- a/client/components/Browser/Folder/FileUploadButton.jsx
+++ b/client/components/Browser/Files/FileUploadButton.jsx
diff --git a/client/components/Browser/Folder/Files.jsx b/client/components/Browser/Files/Files.jsx
index f0ad95e..74c266f 100644
--- a/client/components/Browser/Folder/Files.jsx
+++ b/client/components/Browser/Files/Files.jsx
@@ -13,13 +13,9 @@ export default class Files extends Component {
constructor(props) {
super()
this.state = {
- files: props.folder.files || [],
selected: null,
}
this.addFiles = this.addFiles.bind(this)
- if (! props.folder.files) {
- client.file.index({ folder_id: props.folder.id }).then( files => this.setState({ files }) )
- }
}
addFiles(newFiles) {
if (! newFiles) return
@@ -30,7 +26,14 @@ export default class Files extends Component {
this.setState({ selected: file })
}
render() {
- const files = (this.state.files).map(toFilenamePair).sort(sortByFilename).map(fromPair).map( (file, i) => {
+ let file_list;
+ if (this.props.folder && this.props.folder.files) {
+ file_list = this.props.folder.files
+ }
+ else {
+ file_list = []
+ }
+ const files = file_list.map(toFilenamePair).sort(sortByFilename).map(fromPair).map( (file, i) => {
if (! file) return
return (
<div key={i} class={this.state.selected === file ? 'selected' : ''}>