2021-11-12 16:41:27 +01:00
|
|
|
import React from "react";
|
|
|
|
import {ILigne, PassageType} from "./interfaces";
|
2021-11-12 17:24:16 +01:00
|
|
|
import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'
|
|
|
|
import {faBus} from '@fortawesome/free-solid-svg-icons'
|
|
|
|
|
2021-11-12 16:41:27 +01:00
|
|
|
|
|
|
|
export default class Ligne extends React.Component<ILigne> {
|
|
|
|
render() {
|
2021-11-12 17:24:16 +01:00
|
|
|
return <div className="col-4">
|
|
|
|
<div className="card">
|
|
|
|
<div className="card-header"><FontAwesomeIcon icon={faBus}/> {placeholder(this.props.ligne)}</div>
|
|
|
|
<Passages passages={this.props.delais}/>
|
|
|
|
</div>
|
2021-11-12 16:41:27 +01:00
|
|
|
</div>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
interface IPassagesProps {
|
|
|
|
passages: PassageType[];
|
|
|
|
}
|
|
|
|
|
|
|
|
class Passages extends React.Component<IPassagesProps> {
|
|
|
|
render() {
|
2021-11-12 17:24:16 +01:00
|
|
|
return <ul className="list-group list-group-flush">
|
2021-11-12 16:41:27 +01:00
|
|
|
{this.props.passages?.map((passage, index) => <Passage key={index} passage={passage}/>)}
|
|
|
|
</ul>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
interface IPassageProps {
|
|
|
|
passage: PassageType;
|
|
|
|
}
|
|
|
|
|
|
|
|
class Passage extends React.Component<IPassageProps> {
|
|
|
|
render() {
|
2021-11-12 17:24:16 +01:00
|
|
|
return <li className="list-group-item">{placeholder(this.props.passage)}</li>
|
2021-11-12 16:41:27 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function placeholder(value?: string) {
|
|
|
|
if (value === undefined) {
|
|
|
|
return <span className="placeholder"/>
|
2021-11-12 17:24:16 +01:00
|
|
|
} else {
|
2021-11-12 16:41:27 +01:00
|
|
|
return value;
|
|
|
|
}
|
|
|
|
}
|