Fix for block order
This commit is contained in:
@ -133,34 +133,24 @@ module.exports = function(app) {
|
|||||||
.shareReplay();
|
.shareReplay();
|
||||||
|
|
||||||
// create a stream of challenge blocks
|
// create a stream of challenge blocks
|
||||||
const superBlocks$ = challenge$
|
const blocks$ = challenge$
|
||||||
.map(challenge => challenge.toJSON())
|
.map(challenge => challenge.toJSON())
|
||||||
// group challenges by block | returns a stream of observables
|
// group challenges by block | returns a stream of observables
|
||||||
.groupBy(challenge => challenge.block)
|
.groupBy(challenge => challenge.block)
|
||||||
// turn block group stream into an array
|
// turn block group stream into an array
|
||||||
.flatMap(blocks$ => blocks$.toArray())
|
.flatMap(blocks$ => blocks$.toArray())
|
||||||
// turn array into stream of object
|
// turn array into stream of object
|
||||||
.map(blockArray => ({
|
.map(blocksArray => ({
|
||||||
name: blockArray[0].block,
|
name: blocksArray[0].block,
|
||||||
dashedName: dasherize(blockArray[0].block),
|
dashedName: dasherize(blocksArray[0].block),
|
||||||
challenges: blockArray,
|
challenges: blocksArray,
|
||||||
superBlock: blockArray[0].superBlock
|
superBlock: blocksArray[0].superBlock,
|
||||||
|
order: blocksArray[0].order
|
||||||
}))
|
}))
|
||||||
// filter out hikes
|
// filter out hikes
|
||||||
.filter(({ superBlock }) => {
|
.filter(({ superBlock }) => {
|
||||||
return !(/hikes/gi).test(superBlock);
|
return !(/hikes/gi).test(superBlock);
|
||||||
})
|
})
|
||||||
.groupBy(block => block.superBlock)
|
|
||||||
.flatMap(superBlocks$ => superBlocks$.toArray())
|
|
||||||
.map(superBlockArr => ({
|
|
||||||
name: superBlockArr[0].superBlock,
|
|
||||||
superOrder: superBlockArr[0].superOrder,
|
|
||||||
blocks: superBlockArr
|
|
||||||
}))
|
|
||||||
.shareReplay();
|
|
||||||
|
|
||||||
const blocks$ = superBlocks$
|
|
||||||
.flatMap(superBlock => Observable.from(superBlock.blocks))
|
|
||||||
.shareReplay();
|
.shareReplay();
|
||||||
|
|
||||||
const User = app.models.User;
|
const User = app.models.User;
|
||||||
@ -206,6 +196,7 @@ module.exports = function(app) {
|
|||||||
const blockIndex$ = blocks$
|
const blockIndex$ = blocks$
|
||||||
.findIndex(({ name }) => name === challenge.block);
|
.findIndex(({ name }) => name === challenge.block);
|
||||||
|
|
||||||
|
|
||||||
return blockIndex$
|
return blockIndex$
|
||||||
.flatMap(blockIndex => {
|
.flatMap(blockIndex => {
|
||||||
// could not find block?
|
// could not find block?
|
||||||
|
Reference in New Issue
Block a user