You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
3.5 KiB
145 lines
3.5 KiB
import PropTypes from 'prop-types';
|
|
import React from 'react';
|
|
import { icons, kinds } from 'Helpers/Props';
|
|
import LegendIconItem from './LegendIconItem';
|
|
import LegendItem from './LegendItem';
|
|
import styles from './Legend.css';
|
|
|
|
function Legend(props) {
|
|
const {
|
|
view,
|
|
showFinaleIcon,
|
|
showSpecialIcon,
|
|
showCutoffUnmetIcon,
|
|
fullColorEvents,
|
|
colorImpairedMode
|
|
} = props;
|
|
|
|
const iconsToShow = [];
|
|
const isAgendaView = view === 'agenda';
|
|
|
|
if (showFinaleIcon) {
|
|
iconsToShow.push(
|
|
<LegendIconItem
|
|
name="Finale"
|
|
icon={icons.INFO}
|
|
kind={fullColorEvents ? kinds.DEFAULT : kinds.WARNING}
|
|
tooltip="Series or season finale"
|
|
/>
|
|
);
|
|
}
|
|
|
|
if (showSpecialIcon) {
|
|
iconsToShow.push(
|
|
<LegendIconItem
|
|
name="Special"
|
|
icon={icons.INFO}
|
|
kind={kinds.PINK}
|
|
darken={fullColorEvents}
|
|
tooltip="Special episode"
|
|
/>
|
|
);
|
|
}
|
|
|
|
if (showCutoffUnmetIcon) {
|
|
iconsToShow.push(
|
|
<LegendIconItem
|
|
name="Cutoff Not Met"
|
|
icon={icons.EPISODE_FILE}
|
|
kind={fullColorEvents ? kinds.DEFAULT : kinds.WARNING}
|
|
tooltip="Quality or language cutoff has not been met"
|
|
/>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<div className={styles.legend}>
|
|
<div>
|
|
<LegendItem
|
|
status="unaired"
|
|
tooltip="Episode hasn't aired yet"
|
|
isAgendaView={isAgendaView}
|
|
fullColorEvents={fullColorEvents}
|
|
colorImpairedMode={colorImpairedMode}
|
|
/>
|
|
|
|
<LegendItem
|
|
status="unmonitored"
|
|
tooltip="Episode is unmonitored"
|
|
isAgendaView={isAgendaView}
|
|
fullColorEvents={fullColorEvents}
|
|
colorImpairedMode={colorImpairedMode}
|
|
/>
|
|
</div>
|
|
|
|
<div>
|
|
<LegendItem
|
|
status="onAir"
|
|
name="On Air"
|
|
tooltip="Episode is currently airing"
|
|
isAgendaView={isAgendaView}
|
|
fullColorEvents={fullColorEvents}
|
|
colorImpairedMode={colorImpairedMode}
|
|
/>
|
|
|
|
<LegendItem
|
|
status="missing"
|
|
tooltip="Episode has aired and is missing from disk"
|
|
isAgendaView={isAgendaView}
|
|
fullColorEvents={fullColorEvents}
|
|
colorImpairedMode={colorImpairedMode}
|
|
/>
|
|
</div>
|
|
|
|
<div>
|
|
<LegendItem
|
|
status="downloading"
|
|
tooltip="Episode is currently downloading"
|
|
isAgendaView={isAgendaView}
|
|
fullColorEvents={fullColorEvents}
|
|
colorImpairedMode={colorImpairedMode}
|
|
/>
|
|
|
|
<LegendItem
|
|
status="downloaded"
|
|
tooltip="Episode was downloaded and sorted"
|
|
isAgendaView={isAgendaView}
|
|
fullColorEvents={fullColorEvents}
|
|
colorImpairedMode={colorImpairedMode}
|
|
/>
|
|
</div>
|
|
|
|
<div>
|
|
<LegendIconItem
|
|
name="Premiere"
|
|
icon={icons.INFO}
|
|
kind={kinds.INFO}
|
|
darken={true}
|
|
tooltip="Series or season premiere"
|
|
/>
|
|
|
|
{iconsToShow[0]}
|
|
</div>
|
|
|
|
{
|
|
iconsToShow.length > 1 &&
|
|
<div>
|
|
{iconsToShow[1]}
|
|
{iconsToShow[2]}
|
|
</div>
|
|
}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
Legend.propTypes = {
|
|
view: PropTypes.string.isRequired,
|
|
showFinaleIcon: PropTypes.bool.isRequired,
|
|
showSpecialIcon: PropTypes.bool.isRequired,
|
|
showCutoffUnmetIcon: PropTypes.bool.isRequired,
|
|
fullColorEvents: PropTypes.bool.isRequired,
|
|
colorImpairedMode: PropTypes.bool.isRequired
|
|
};
|
|
|
|
export default Legend;
|