import { Component, h, Prop, Host } from "@stencil/core";
import * as icons from "./icons";
import { IconName } from "../../utils/utils";

// TODO: add all icons
const iconNames: IconName = {
  "hy-icon-arrow-left": p => <icons.IconArrowLeft {...p} />,
  "hy-icon-arrow-right": p => <icons.IconArrowRight {...p} />,
  "hy-icon-hy-logo": p => <icons.HyLogo {...p} />,
  "hy-icon-camera": p => <icons.Camera {...p} />,
  "hy-icon-image-gallery": p => <icons.ImageGallery {...p} />
};

@Component({
  tag: "hy-icon",
  styleUrl: "icon.css",
  shadow: false
})
export class Icon {
  @Prop() icon: string;
  @Prop() fill: string = "black";
  @Prop() size: number = 20;

  render() {
    return (
      <Host aria-hidden="true" style={{ display: "flex" }}>
        {iconNames[this.icon]({
          height: this.size,
          width: this.size,
          fill: this.fill
        })}
      </Host>
    );
  }
}