adds the browser-rail header. fixes issue with aborted navigation dropping tasks to update browse lists

This commit is contained in:
Seyi Adebajo 2018-05-02 18:43:07 -07:00
parent 5f8b048a11
commit 3037028bd6
4 changed files with 16 additions and 6 deletions

View File

@ -1,5 +1,6 @@
import Component from '@ember/component';
import { get, set } from '@ember/object';
import { alias } from '@ember/object/computed';
import { task } from 'ember-concurrency';
import { DatasetPlatform, nodeToQueryParams } from 'wherehows-web/constants';
import { IBrowserRouteParams } from 'wherehows-web/routes/browse/entity';
@ -65,6 +66,12 @@ export default class BrowserRail extends Component {
*/
params: IBrowserRouteParams;
/**
* Text to be displayed at the top of the rail
* @type {string}
*/
header = alias('params.platform');
/**
* Maintains a list the nodes platforms or prefixes available in the selected entity
* @type {Array<IRailNode>}
@ -87,12 +94,14 @@ export default class BrowserRail extends Component {
* @type {TaskProperty<Promise<string[]>> & {perform: (a?: {} | undefined) => TaskInstance<Promise<string[]>>}}
* @memberof BrowserRail
*/
getNodesTask = task(function*(this: BrowserRail): IterableIterator<Promise<Array<string>>> {
getNodesTask = task(function*(
this: BrowserRail
): IterableIterator<Promise<Array<string>> | Promise<Array<IRailNode>>> {
const { prefix, platform, entity } = get(this, 'params');
const nodes: Array<IRailNode> = mapNodeToRoute(<DatasetPlatform>platform, entity)(
yield readPlatforms({ platform, prefix })
);
set(this, 'nodes', nodes);
}).drop();
}).restartable();
}

View File

@ -97,7 +97,7 @@ export default class BrowserViewport extends Component {
});
return response;
}).drop();
}).restartable();
/**
* Async requests for the list of entities and sets the value on class
@ -113,7 +113,7 @@ export default class BrowserViewport extends Component {
yield (<IGetEntityTaskStrategy>{
datasets: get(this, 'getDatasetsTask').perform('set', offset)
})[entity];
});
}).restartable();
/**
* The max possible entities that can currently be requested up to this.count

View File

@ -36,7 +36,8 @@ $pad-width: 16px;
.nacho-filter-card {
@include restyle(filter-card);
max-height: 625px;
overflow: scroll;
overflow-y: scroll;
overflow-x: hidden;
&:last-child {
border-bottom: none;

View File

@ -1 +1 @@
{{browser/browser-rail nodes=nodes nodesTask=getNodesTask}}
{{browser/browser-rail nodes=nodes nodesTask=getNodesTask header=header}}