[add] all creatures list

This commit is contained in:
Daniel 2017-09-15 22:09:39 -04:00
parent 975cf15587
commit ffdc63734e
3 changed files with 22 additions and 39 deletions

View File

@ -17,10 +17,14 @@ export default class Creatures extends React.Component {
componentDidMount() {
if (this.props.children) return;
var self = this;
API.getSpreadsheet(API.Creatures[this.tribe], function(data) {
// self.setState({creatures: this.state.creatures.concat([data])});
self.setState({creatures: Object.assign(self.state.creatures, {[self.tribe]: data})});
let urls = (this.tribe == "All") ? API.Creatures : {[this.tribe]: API.Creatures[this.tribe]};
// For each tribe, get its spreadsheet, set the state
Object.keys(urls).map((tribe) => {
API.getSpreadsheet(urls[tribe], function(data) {
self.setState({creatures: Object.assign(self.state.creatures, {[tribe]: data})});
});
});
// self.setState({creatures: this.state.creatures.concat([data])});
}
render() {
@ -50,15 +54,25 @@ export default class Creatures extends React.Component {
// No tribe specified
// Display all creatures
else {
return (<div><UnderConstruction location={this.props.location}/></div>);
this.tribe = "All";
const creatures = Object.keys(this.state.creatures).map(function(tribe, i) {
return (
<div key={i}>
<span>{tribe}</span>
{list_creatures(tribe)}
<hr />
</div>
);
});
return (<div>{creatures}</div>);
}
// Map creatures of the tribe
function list_creatures(tribe) {
if (!self.state.creatures[self.tribe]) {
if (!self.state.creatures[tribe]) {
return (<span>Loading...</span>);
}
else return self.state.creatures[self.tribe].map((creature, i) => {
else return self.state.creatures[tribe].map((creature, i) => {
return (
<div key={i}>
<Interactive as="a" {...s.link} href={"Creatures/"+creature.gsx$name.$t}><span>{creature.gsx$name.$t}</span></Interactive>

View File

@ -34,13 +34,6 @@ function Home() {
href="/portal/Mipedian/Creatures"
>Mipedian Creatures</Interactive>
<br />
<Interactive as="a" {...s.link}
href="/portal/Marrillian/Creatures"
>M'arrillian Creatures</Interactive>
<br />
<Interactive as="a" {...s.link}
href="/portal/Generic/Creatures"
>Generic Creatures</Interactive>
{/*<p style={s.p}>
This is an example single page app built
with React and React&nbsp;Router using {' '}

View File

@ -44,38 +44,14 @@ class URLS {
return URLS.path("1fUFYhG1NLLkSTzrdbevm6ZMKNP6xLiKUZvM1sY10pVI");
}
get Danian_Creatures() {
return URLS.path("1-Lz-itwOobEvqr8HSLFFwg3JFkT64NbwyGFEPfj9rxU");
}
get Generic_Creatures() {
return URLS.path("1pnDahSxGDNKvDmwRfYF4Cd75q5plmtb9tvGvU7RM05g");
}
get Marrillian_Creatures() {
return URLS.path("1rLlzND9hHgxJuEtcTE4nbIVb16IjRme8V-I4vyryIEU");
}
get Mipedian_Creatures() {
return URLS.path("1P4FKASfnhR46j2bqm89T9xhI1Yyyy-jiZ1CkRglSy2k");
}
get Overworld_Creatures() {
return URLS.path("1Z4_MmlV7uE34nLzrcxslqQKRwL4OBXNA15s7G8eteXU");
}
get Underworld_Creatures() {
return URLS.path("1c_XAxQsDIWVdzUxWl5t-K_mQumNjX-yrg0X-0NsZVts");
}
get Creatures() {
return {
'Overworld': URLS.path("1Z4_MmlV7uE34nLzrcxslqQKRwL4OBXNA15s7G8eteXU"),
'Underworld': URLS.path("1c_XAxQsDIWVdzUxWl5t-K_mQumNjX-yrg0X-0NsZVts"),
'Mipedian': URLS.path("1P4FKASfnhR46j2bqm89T9xhI1Yyyy-jiZ1CkRglSy2k"),
'Danian': URLS.path("1-Lz-itwOobEvqr8HSLFFwg3JFkT64NbwyGFEPfj9rxU"),
'Marrillian': URLS.path("1rLlzND9hHgxJuEtcTE4nbIVb16IjRme8V-I4vyryIEU"),
'Generic': URLS.path("1pnDahSxGDNKvDmwRfYF4Cd75q5plmtb9tvGvU7RM05g")
// 'Marrillian': URLS.path("1rLlzND9hHgxJuEtcTE4nbIVb16IjRme8V-I4vyryIEU"),
// 'Generic': URLS.path("1pnDahSxGDNKvDmwRfYF4Cd75q5plmtb9tvGvU7RM05g")
};
}