import React, { useContext, useEffect } from "react";
import { xformFinal as final, xforms as transforms } from "../src/params";
import { PainterContext } from "../src/Canvas";
import { chaosGameHistogram } from "./chaosGameHistogram";

type Props = {
  paint: (width: number, height: number, histogram: number[]) => ImageData;
  children?: React.ReactElement;
}
export default function FlameHistogram({ paint, children }: Props) {
  const { width, height, setPainter } = useContext(PainterContext);

  useEffect(() => {
    const gameParams = {
      width,
      height,
      transforms,
      final,
      paint
    };
    setPainter(chaosGameHistogram(gameParams));
  }, [width, height]);

  return children;
}