blob: d8d09cdf13e1e6b1cbb38075312f6059ff0dded4 [file] [log] [blame]
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;
}