/* Lager plantelistemenyen */
class Forsidemeny extends React.Component {
constructor(props) {
super(props);
this.state = {
apen: false
}
const typeliste = { tre:"trær og busker", urt:"urter og stauder", gre:"gressplanter", lyng:"lyngplanter", bre:"bregner", kra:"kråkefotplanter", mose:"moser" };
const farger = { rød:"rød", brun:"brun", oransje:"oransje", gul:"gul", grønn:"grønn", blå:"blå", lilla:"lilla", rosa:"rosa", hvit:"hvit",grå:"grå", svart:"svart"};
this.typeliste = typeliste;
this.farger = farger;
this.toggleMeny = this.toggleMeny.bind(this);
}
render() {
let typeliste = this.typeliste;
let farger = this.farger;
let meny = [];
let rader = [];
rader.push(
Plantetype );
Object.keys(typeliste).forEach( function(e) {
rader.push({typeliste[e]} );
});
meny.push()
rader = [];
rader.push(Blomsterfarge );
Object.keys(farger).forEach( function(e) {
rader.push({farger[e]} );
});
meny.push()
return (
NORSKFLORA.NO
{this.state.apen ? {lagIkon("lukk","#eee")} : {lagIkon("linjer","#eee")} } MENY
{this.state.apen &&
{meny}
}
);
}
toggleMeny(e) {
if (this.state.apen) {
this.setState({
apen:false
});
} else {
this.setState({
apen:true
});
}
}
}
class Planteliste extends React.Component {
constructor(props) {
super(props);
let planter = this.props.planter;
this.state = {
scrollet: 0,
skjermbredde: 0
};
const kolonner = {
nonavn: [
"Norsk navn",
"",
() => {sorterTekstAlfabetisk(planter,"nonavn")},
],
navn: [
"Botanisk navn", //tabell overskrift
"",// CSS-klasse
() => {sorterTekstAlfabetisk(planter,"navn")}, //sorteringsfunksjon
],
type: [
"Type",
"text-left",
() => {sorterTekstAlfabetisk(planter,"type")},
],
hoyde: [
"Høyde",
"text-right",
() => {sorterTallFallende(planter,"hoyde")},
],
farge: [
"Farge",
"text-center",
() => {sorterTekstAlfabetisk(planter,"farge")},
],
tax: [
"Taksonomisk",
"text-center",
() => {sorterTallStigende(planter,"familiesortering")},
],
}
this.planter = this.props.planter;
this.kolonner = kolonner;
this.byttSortering = this.byttSortering.bind(this);
this.selectByttSortering = this.selectByttSortering.bind(this);
this.byttPlante = this.byttPlante.bind(this);
this.handleScroll = this.handleScroll.bind(this);
this.updateWindowDimensions = this.updateWindowDimensions.bind(this);
}
byttPlante(e,navn) {
if (this.props.sidetype == "plante") {
e.preventDefault();
this.props.byttPlante(navn);
}
}
byttSortering(el,e) {
el.preventDefault();
this.props.byttSortering(e);
}
selectByttSortering(e) {
this.props.byttSortering(e.target.value);
}
componentDidMount() {
window.addEventListener('scroll', this.handleScroll);
this.updateWindowDimensions();
window.addEventListener('resize', this.updateWindowDimensions);
}
componentWillUnmount() {
window.removeEventListener('scroll', this.handleScroll);
window.removeEventListener('resize', this.updateWindowDimensions);
}
handleScroll(event) {
this.setState({
scrollet:event.target.scrollingElement.scrollTop
});
}
updateWindowDimensions() {
this.setState({ skjermbredde: window.innerWidth});
}
render() {
let klasser = this.klasser;
let byttPlante = this.byttPlante;
let kolonner = this.kolonner;
let sorteringsliste = [];
Object.keys(kolonner).forEach(function(c) {
sorteringsliste.push({kolonner[c][0].toLowerCase()} )
});
//sorter plantelista ut fra state
sorterTekstAlfabetisk(this.planter,"navn");
kolonner[this.props.sortering][2]();
/* gå gjennom alle plantene */
/* skriv ut som kort */
let plantekort = [];
for (let i = 0; i
{(p.bilder && p.bilder.length) ?
:
}
{p.nonavn.length ?
{p.nonavn}
:
{p.navn}
}
{p.hoyde.length ? {lagIkon("hoyde")}{lagHoyde(p.hoyde)} : null}
{(p.farge.length && p.farge != "sporer" && p.farge != "miks") ? • {lagIkon("fargeblomst","black", lagFargekode(p.farge), "5")} : null}
{(p.farge.length && (p.farge == "sporer" || p.farge == "miks")) ? • - : null}
{p.bladfarge ? • {lagBlad(p.bladfarge)} : null}
{p.navn}
{p.nofamilie}
{hentOrd(p.type)[1].charAt(0).toUpperCase() + hentOrd(p.type)[1].slice(1)}
;
plantekort.push(
);
};
return (
Viser {this.planter.length} planter, sortert etter {sorteringsliste}
{plantekort}
);
}
}
/* går gjennom planteliste, setter egenskaper fra arten inn på sorter og legger til div. */
function fiksPlanteliste(list) {
//gå gjennom og ta ut bare de norsk plantene, som ikke er navnesorter)
let nyliste = [];
nyliste.push(list[0]);
for (let i=1; i {
if(list[0][e]) {
p[e] = list[0][e];
}
});
}
list.shift();
return (list);
}
/* Tekst om vippsing */
class Stotte extends React.Component{
render() {
return (
Støtt norskflora.no
Støtt vårt arbeid med å lage en gratis flora på nettet, vipps 20 kroner til #727519!
);
}
}