From 4439a7cddf3ede024ad965940ab1718fc921400c Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 23 Jan 2018 11:12:40 -0500 Subject: [PATCH] #5 tribes routing work --- src/components/portal/Category/Tribes.js | 74 +++++++++++++++++++++--- src/components/portal/index.js | 1 - 2 files changed, 67 insertions(+), 8 deletions(-) diff --git a/src/components/portal/Category/Tribes.js b/src/components/portal/Category/Tribes.js index e720f12..11b122d 100644 --- a/src/components/portal/Category/Tribes.js +++ b/src/components/portal/Category/Tribes.js @@ -2,6 +2,7 @@ import React from 'react'; import Interactive from 'react-interactive'; import { Link, Route } from 'react-router-dom'; import {observer, inject} from 'mobx-react'; +import loki from 'lokijs'; import s from '../../../styles/app.style'; import API from '../../SpreadsheetData'; import Creature from '../Single/Creature'; @@ -10,6 +11,11 @@ import Mugic from '../Single/Mugic'; @inject((stores, props, context) => props) @observer export default class Tribes extends React.Component { + constructor() { + super(); + this.filter = new loki("filter.db"); + } + // /{Tribe} // gives a brief summary and the option of "mugic" or "tribe" // to display the respective subcategories @@ -33,27 +39,81 @@ export default class Tribes extends React.Component { return(
Danian
OverWorld
UnderWorld
Mipedian
); } - const output = (() => ( -
Test
- ))(); + if (!store.cards.built.includes("mugic_cards")) { + store.cards.setupMugic("cards"); + return (Loading...); + } + + if (!store.portal.built.includes("mugic_portal")) { + store.portal.setupMugic("portal"); + return (Loading...); + } + + if (!store.cards.built.includes("creatures_cards")) { + store.cards.setupCreatures("cards"); + return (Loading...); + } + + if (!store.portal.built.includes("creatures_portal")) { + store.portal.setupCreatures("portal"); + return (Loading...); + } + + let filter = this.filter.addCollection('filter'); + var pview = filter.addDynamicView('filter'); + pview.applySimpleSort('gsx$name'); + + let temp; + + temp = store.portal.creatures.find({'gsx$tribe': tribe}); + temp.forEach((v) => { delete v.$loki }); + filter.insert(temp); + + temp = store.portal.mugic.find({'gsx$tribe': tribe}); + temp.forEach((v) => { delete v.$loki }); + filter.insert(temp); + + let results = pview.data(); + this.filter.removeCollection('filter'); + + const output = results.map((card, i) => { + let card_data, url; + + if (card.gsx$type == "Mugic") { + card_data = store.cards.mugic.findOne({'gsx$name': card.gsx$name}); + url = "/portal/" + tribe + "/Mugic/" + encodeURIComponent(card.gsx$name); + } + + if (card.gsx$type == "Creature") { + card_data = store.cards.creatures.findOne({'gsx$name': card.gsx$name}); + url = "/portal/" + tribe + "/Creatures/" + encodeURIComponent(card.gsx$name); + } + + return (
+ + {card.gsx$name}
+ +
+
); + }); return (
diff --git a/src/components/portal/index.js b/src/components/portal/index.js index 23949ca..2572d17 100644 --- a/src/components/portal/index.js +++ b/src/components/portal/index.js @@ -29,7 +29,6 @@ export default class Base extends React.Component { } function Routing(props) { - console.log(props); const match = props.match; const tribes = API.tribes.map((tribe, i) => (