import {Component, ComponentInterface, Prop, h} from '@stencil/core';

@Component({
  tag: 'hy-cta-liftup-image-text',
  styleUrl: 'cta-liftup-image-text.scss',
  shadow: true
})
export class CtaLiftupImageText implements ComponentInterface {
  @Prop() imageRight: boolean = false;
  @Prop() imageUrl: string = null;
  @Prop() imageAlt: string = '';
  @Prop() textTitle?: string;
  @Prop() textDescription: string = null;
  @Prop() mainUrl?: string;
  @Prop() mainUrlTitle?: string;
  @Prop() mainUrlAriaLabel?: string;
  @Prop() mainUrlIsExternal: boolean = false;
  @Prop() standaloneUrl?: string;
  @Prop() standaloneUrlTitle?: string;
  @Prop() standaloneUrlAriaLabel?: string;
  @Prop() standaloneUrlIsExternal: boolean = false;
  @Prop() standaloneUrl2?: string;
  @Prop() standaloneUrlTitle2?: string;
  @Prop() standaloneUrlAriaLabel2?: string;
  @Prop() standaloneUrlIsExternal2: boolean = false;

  render() {
    const classAttributes = [
      'hy-cta-liftup-image-text',
      this.imageRight ? 'hy-cta-liftup-image-text--right-image' : null
    ].join(' ');
    const contentClassAttributes = [
      'hy-cta-liftup-image-text__text-container',
      this.imageRight
        ? 'hy-cta-liftup-image-text__text-container--left'
        : 'hy-cta-liftup-image-text__text-container--right'
    ].join(' ');
    const imageRightClassAttributes = [
      'hy-cta-liftup-image-text__image-container',
      'hy-cta-liftup-image-text__image-container--right'
    ].join(' ');
    const imageLeftClassAttributes = ['hy-cta-liftup-image-text__image-container'].join(' ');

    const imageLeft = !this.imageRight;
    const aspectRatioWidth = 4;
    const aspectRatioHeight = 3;

    return (
      <div class={classAttributes}>
        {imageLeft && (
          <div class={imageLeftClassAttributes}>
            <hy-image
              image-url={this.imageUrl}
              image-alt={this.imageAlt}
              aspect-ratio-width={aspectRatioWidth}
              aspect-ratio-height={aspectRatioHeight}
              caption=""
            ></hy-image>
          </div>
        )}
        <div class={contentClassAttributes}>
          <div class="hy-cta-liftup-image-text__text-container__title">{this.textTitle}</div>
          <div class="hy-cta-liftup-image-text__text-container__description">{this.textDescription}</div>
          {this.mainUrl && (
            <div class="hy-cta-liftup-image-text__text-container__link">
              <hy-cta-link-button
                link-content={this.mainUrlTitle}
                sc-label={this.mainUrlAriaLabel}
                url={this.mainUrl}
                is-external={this.mainUrlIsExternal}
              />
            </div>
          )}
          {this.standaloneUrl && (
            <div class="hy-cta-liftup-image-text__text-container__standalonelink">
              <hy-standalone-link
                link-content={this.standaloneUrlTitle}
                sc-label={this.standaloneUrlAriaLabel}
                url={this.standaloneUrl}
                is-external={this.standaloneUrlIsExternal}
              />
            </div>
          )}
          {this.standaloneUrl2 && (
            <div class="hy-cta-liftup-image-text__text-container__standalonelink">
              <hy-standalone-link
                link-content={this.standaloneUrlTitle2}
                sc-label={this.standaloneUrlAriaLabel2}
                url={this.standaloneUrl2}
                is-external={this.standaloneUrlIsExternal2}
              />
            </div>
          )}
        </div>
        {this.imageRight && (
          <div class={imageRightClassAttributes}>
            <hy-image
              image-url={this.imageUrl}
              image-alt={this.imageAlt}
              aspect-ratio-width={aspectRatioWidth}
              aspect-ratio-height={aspectRatioHeight}
              caption=""
            ></hy-image>
          </div>
        )}
      </div>
    );
  }
}