From 21027eca05d33eb2553db1680665ef079c50380a Mon Sep 17 00:00:00 2001 From: Joe Hand Date: Wed, 11 Jan 2017 12:15:17 -0800 Subject: [PATCH] add paging to file list --- client/js/components/hyperdrive/client.js | 4 ++-- client/js/components/hyperdrive/index.js | 16 +++++++++++----- client/js/models/archive.js | 4 +++- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/client/js/components/hyperdrive/client.js b/client/js/components/hyperdrive/client.js index da498ce5..f41fb9a7 100644 --- a/client/js/components/hyperdrive/client.js +++ b/client/js/components/hyperdrive/client.js @@ -1,7 +1,7 @@ var path = require('path') var yofs = require('yo-fs') -module.exports = function ui (root, entries, onclick) { +module.exports = function ui (root, entries, opts, onclick) { var lookup = {} for (var i in entries) { var entry = entries[i] @@ -16,6 +16,6 @@ module.exports = function ui (root, entries, onclick) { } } var vals = Object.keys(lookup).map(key => lookup[key]) - var tree = yofs(root, vals, onclick) + var tree = yofs(root, vals, opts, onclick) return tree.widget } diff --git a/client/js/components/hyperdrive/index.js b/client/js/components/hyperdrive/index.js index c2243c3a..dbe39919 100644 --- a/client/js/components/hyperdrive/index.js +++ b/client/js/components/hyperdrive/index.js @@ -5,15 +5,21 @@ module.exports = function (state, prev, send) { if (!module.parent && !state.archive.instance && state.archive.key) { send('archive:create', state.archive.key) } - var onclick = (ev, entry) => { - if (entry.type === 'directory') { - send('archive:update', {root: entry.name}) + var onclick = (ev, entry, opts) => { + if (ev.target.classList.contains('pagination')) { + send('archive:update', opts) + return // TODO: what does return do here + } else if (entry.type === 'directory') { + send('archive:update', {root: entry.name, offset: 0}) return true } else { send('preview:file', {archiveKey: state.archive.key, entry: entry}, noop) return false } } - - return hyperdriveRenderer(state.archive.root, state.archive.entries, onclick) + var opts = { + offset: state.archive.offset, + limit: state.archive.limit + } + return hyperdriveRenderer(state.archive.root, state.archive.entries, opts, onclick) } diff --git a/client/js/models/archive.js b/client/js/models/archive.js index b8d73d89..f037f892 100644 --- a/client/js/models/archive.js +++ b/client/js/models/archive.js @@ -40,7 +40,9 @@ var defaultState = { uploadTotal: 0, downloadMeter: null, downloadSpeed: 0, - downloadTotal: 0 + downloadTotal: 0, + offset: 0, + limit: 5 } module.exports = {