From fe9b016e92aff3a0b8e2aabb5f306f219975fc14 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 14 Aug 2016 02:21:30 -0400 Subject: [PATCH] stub out docked tabs --- .../components/dockedtabs/dockedtabs.css | 24 +++++++ .../components/dockedtabs/dockedtabs.js | 67 +++++++++++++++++++ dashboard-ui/scripts/librarymenu.js | 3 + dashboard-ui/scripts/site.js | 1 + 4 files changed, 95 insertions(+) create mode 100644 dashboard-ui/components/dockedtabs/dockedtabs.css create mode 100644 dashboard-ui/components/dockedtabs/dockedtabs.js diff --git a/dashboard-ui/components/dockedtabs/dockedtabs.css b/dashboard-ui/components/dockedtabs/dockedtabs.css new file mode 100644 index 0000000000..f9dd7bcbff --- /dev/null +++ b/dashboard-ui/components/dockedtabs/dockedtabs.css @@ -0,0 +1,24 @@ +.dockedtabs { + height: 60px; + background: #212121; + position: fixed; + left: 0; + right: 0; + z-index: 99999; +} + +.dockedtabs-bottom { + bottom: 0; +} + +.dockedtabs-headroom { + transition: transform 180ms linear; +} + +.dockedtabs--pinned { + transform: none; +} + +.dockedtabs--unpinned { + transform: translateY(100%); +} diff --git a/dashboard-ui/components/dockedtabs/dockedtabs.js b/dashboard-ui/components/dockedtabs/dockedtabs.js new file mode 100644 index 0000000000..791244bea9 --- /dev/null +++ b/dashboard-ui/components/dockedtabs/dockedtabs.js @@ -0,0 +1,67 @@ +define(['css!./dockedtabs'], function () { + + function render(options) { + + var elem = document.createElement('div'); + + elem.classList.add('dockedtabs'); + elem.classList.add('dockedtabs-bottom'); + + // tabs: + // home + // favorites + // live tv + // now playing + + document.body.appendChild(elem); + + return elem; + } + + function initHeadRoom(instance, elem) { + + require(["headroom"], function () { + + // construct an instance of Headroom, passing the element + var headroom = new Headroom(elem, { + // or scroll tolerance per direction + tolerance: { + down: 20, + up: 0 + }, + classes: { + pinned: 'dockedtabs--pinned', + unpinned: 'dockedtabs--unpinned', + top: 'dockedtabs--top', + notTop: 'dockedtabs--not-top', + initial: 'dockedtabs-headroom' + } + }); + // initialise + headroom.init(); + + instance.headroom = headroom; + }); + } + + function dockedTabs(options) { + + var self = this; + + self.element = render(options); + + initHeadRoom(self, self.element); + } + + dockedTabs.prototype.destroy = function() { + var self = this; + + if (self.headroom) { + self.headroom.destroy(); + } + + self.Element = null; + }; + + return dockedTabs; +}); \ No newline at end of file diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index 31c91f82a5..0a4865086c 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -1107,4 +1107,7 @@ setDrawerClass(); + //require(['dockedtabs'], function (dockedtabs) { + // new dockedtabs({}); + //}); }); \ No newline at end of file diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 7a6d07bd07..5493bbce45 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1260,6 +1260,7 @@ var AppInfo = {}; define("libjass", [bowerPath + "/libjass/libjass.min", "css!" + bowerPath + "/libjass/libjass"], returnFirstDependency); + define("dockedtabs", ["components/dockedtabs/dockedtabs"], returnFirstDependency); define("directorybrowser", ["components/directorybrowser/directorybrowser"], returnFirstDependency); define("metadataEditor", [embyWebComponentsBowerPath + "/metadataeditor/metadataeditor"], returnFirstDependency); define("personEditor", [embyWebComponentsBowerPath + "/metadataeditor/personeditor"], returnFirstDependency);