diff options
Diffstat (limited to 'client.js')
-rw-r--r-- | client.js | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/client.js b/client.js index a899c2d..c591a00 100644 --- a/client.js +++ b/client.js @@ -16,7 +16,7 @@ const { } } = require('./tui-lib') -const setupClient = async ({backend, writable, interfacer, appConfig, frameRate = 50}) => { +const setupClient = async ({backend, writable, interfacer, appConfig}) => { const cleanTerminal = () => { writable.write(ansi.cleanCursor()) writable.write(ansi.disableAlternateScreen()) @@ -29,14 +29,15 @@ const setupClient = async ({backend, writable, interfacer, appConfig, frameRate dirtyTerminal() - const root = new Root(interfacer) + const flushable = new Flushable(writable, true) + const root = new Root(interfacer, flushable) + root.on('rendered', () => flushable.flush()) const size = await interfacer.getScreenSize() root.w = size.width root.h = size.height root.fixAllLayout() - const flushable = new Flushable(writable, true) flushable.resizeScreen(size) flushable.write(ansi.clearScreen()) flushable.flush() @@ -78,12 +79,7 @@ const setupClient = async ({backend, writable, interfacer, appConfig, frameRate appElement.queueListingElement.buildItems() appElement.playbackInfoElement.updateTrack(backend.playingTrack) - const renderInterval = setInterval(() => { - root.renderTo(flushable) - flushable.flush() - }, frameRate) - - return {appElement, cleanTerminal, flushable, renderInterval} + return {appElement, cleanTerminal, dirtyTerminal, flushable, root} } module.exports = setupClient |