| import React from 'react'; |
| import { Encoder, EncodingConfig, Dataset } from 'encodable'; |
| import { LegendHooks } from './types'; |
| import DefaultLegend from './DefaultLegend'; |
| |
| export default function createRenderLegend<Config extends EncodingConfig>( |
| encoder: Encoder<Config>, |
| data: Dataset, |
| props: LegendHooks<Config>, |
| ) { |
| if (encoder.hasLegend()) { |
| const { |
| LegendRenderer = DefaultLegend, |
| LegendGroupRenderer, |
| LegendItemRenderer, |
| LegendItemLabelRenderer, |
| LegendItemMarkRenderer, |
| } = props; |
| |
| return () => ( |
| <LegendRenderer |
| groups={encoder.getLegendInformation(data)} |
| LegendGroupRenderer={LegendGroupRenderer} |
| LegendItemRenderer={LegendItemRenderer} |
| LegendItemMarkRenderer={LegendItemMarkRenderer} |
| LegendItemLabelRenderer={LegendItemLabelRenderer} |
| /> |
| ); |
| } |
| |
| return undefined; |
| } |