@tableflip/ipfs-filexp
v0.0.1
Published
Web based file manager for use with IPFS.
Downloads
4
Readme
ipfs-filexp
This is a web based file manager for use with IPFS.
Usage
The explorer is built in React, and requires a redux store, with saga middleware to be available in your app.
main.js
import React from 'react'
import {render} from 'react-dom'
import {Route} from 'react-router'
import {syncHistoryWithStore} from 'react-router-redux'
import configureStore from './configure-store'
// 1. GRAB THE Explorer AND Preview COMPONENT!
import {Explorer, Preview} from '@tableflip/ipfs-filexp'
const ExplorerPage = () => <Explorer />
const PreviewPage = () => <Preview />
const store = configureStore()
const history = syncHistoryWithStore(hashHistory, store)
// 2. WIRE INTO APP
render(
<Provider store={store}>
<Router history={history}>
<Route path='/' component={ExplorerPage}>
<Route path='preview' component={PreviewPage} />
</Route>
</Router>
</Provider>,
document.getElementById('root')
)
That's it! Although we need an appropriate configureStore
function which will apply the file explorer redux reducers and run the file explorer sagas for us. Here's how you might do that:
configure-store.js
import {createStore, applyMiddleware, combineReducers} from 'redux'
import createSagaMiddleware from 'redux-saga'
import {fork} from 'redux-saga/effects'
import * as Filexp from '@tableflip/ipfs-filexp'
// BYO reducers and sagas
import reducers from './reducers'
import sagas from './sagas'
export default function configureStore (initialState) {
const rootReducer = combineReducers({ ...reducers, ...Filexp.reducers })
const sagaMiddleware = createSagaMiddleware()
const store = createStore(
rootReducer,
initialState,
applyMiddleware(sagaMiddleware)
)
sagaMiddleware.run(function * () {
yield [
fork(sagas),
fork(Filexp.sagas)
]
})
return store
}
Development
Make sure node.js version 4+ and npm version 3+ are installed and in your path.
Building
npm run build # The result will be in /lib
Contribute
Please contribute! The more people who work on this, the faster we'll be able to ship it. Dive in by testing it and looking at the issues.
The CONTRIBUTING file has more information relevant to this repo. To contribute to IPFS in general, just click on the image above to go to our global contributing guide.