import {Component, h, Host, Prop} from '@stencil/core';
import {ColorVariant, FooterVariant, SiteLogoSize} from '../../../utils/utils';

@Component({
  tag: 'hy-site-logo',
  styleUrl: 'site-logo.scss',
  shadow: false,
})
export class SiteLogo {
  @Prop() type: FooterVariant = FooterVariant.header;
  @Prop() color: ColorVariant = ColorVariant.black;
  @Prop() isGroup: boolean = false;
  @Prop() label?: string;
  @Prop() size: SiteLogoSize = SiteLogoSize.big;
  @Prop() url?: string;

  render() {
    const isGroupClass = this.isGroup ? 'group' : 'page';
    const classAttributes = [
      'hy-site-logo',
      `hy-site-logo__${this.type}__${isGroupClass}`,
      `hy-site-logo__${this.type}`,
    ].join(' ');
    return this.url ? (
      <Host class={classAttributes}>
        <a href={this.url}>
          <hy-icon
            class={{'hy-site-logo__icon': true, group: this.isGroup}}
            icon={'hy-icon-hy-logo'}
            size={this.size}
            fill={this.color}
          />
          <span class={{'hy-site-logo__label': true, group: this.isGroup}} style={{color: this.color}}>
            {this.label}
          </span>
        </a>
      </Host>
    ) : this.label ? (
      <Host class={classAttributes}>
        <hy-icon
          class={{'hy-site-logo__icon': true, group: this.isGroup}}
          icon={'hy-icon-hy-logo'}
          size={this.size}
          fill={this.color}
        />
        <span class={{'hy-site-logo__label': true, group: this.isGroup}} style={{color: this.color}}>
          {this.label}
        </span>
      </Host>
    ) : (
      ''
    );
  }
}