<template>
  <article class="content-page">
    <h1 class="page-heading">{{ heading }}</h1>
    <section class="content-container">
      <div class="content">
        <slot></slot>
      </div>
    </section>
    <!-- TODO CHANGE THE BACKGROUND DIV TO A NAMED SLOT -->
    <div class="background background-container">
      <div class="background background-loading"
           :style="loadingStyle"></div>
      <div class="background background-img"
           :style="backgroundStyle"></div>
    </div>
  </article>
</template>

<script>
export default {
  props: {
    bgLoading: {
      type: String,
      required: false,
      default: function () {
        return 'linear-gradient(310deg, #35405d, #6174aa, #a8b3d0, #e2e5ef)'
      }
    },
    img: {
      type: String,
      required: false,
      default: function () {
        return 'url(https://via.placeholder.com/1920x1080)'
      }
    },
    heading: {
      type: String,
      required: true
    }
  },

  data () {
    return {
    }
  },

  computed: {
    loadingStyle () {
      return {
        background: this.bgLoading
      }
    },
    backgroundStyle () {
      return {
        backgroundImage: this.img
      }
    }
  },

  methods: {
  }

}
</script>

<style lang="scss" scoped>
$z-index-bottom: 5;
$z-index-top: 10;

.content-page {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  padding: $site-menu__header-width 0 0 0;

  @media (min-width: $bp__layout) {
    padding:  0 0 0 $site-menu__header-width;
  }

  background-color: rgba(black, .1); // TEMP
}

.content-container {
  z-index: $z-index-top;
  position: relative;

  height: 100%;
  width: 100%;

  overflow-y: auto;
  overflow-x: hidden;

  @media (min-width: $bp__layout) {
    position: absolute;
    top: 0;
    right: 0;
  }
}

.content {
  position: absolute;
  width: 100%;
  top: 0;
  right: 0;

  padding: 2rem;

  @media (min-width: $bp__layout) {
    width: 50%;

    background-color: rgba(0, 0, 0, .3);
  }

  color: #fff; // TEMP
}

.background-container {
  z-index: $z-index-bottom
}

.page-heading {
  z-index: $z-index-top;
  position: relative;

  @media (min-width: $bp__layout) {
    max-width: 50%;
    padding-right: $site-menu__header-width;
  }
}

.background {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.background-img {
  background-size: cover;
  background-position: center center;
  opacity: .5;
}
</style>
