<template>
  <div>
    <td
      :style="backgroundColor"
      class="line-number-cell">
      <v-btn
        flat
        block
        depressed
        class="line-number-btn"
        @click="toggleEditor"
      >
        {{ lineNo }}
      </v-btn>
      </v-btn>
    </td>
    <td class="code-cell-content pl-2">
        <span v-html="code" class="code-line"></span>
      <slot/>
    </td>
  </div>
</template>

<script>
export default {
  name: 'submission-line',
  props: {
    lineNo: {
      type: String,
      required: true
    },
    code: {
      type: String,
      required: true
    },
    codeLanguage: {
      type: String,
      default: 'lang-c'
    },
    hint: {
      type: Boolean,
      default: false,
    },
  },
  computed: {
    backgroundColor() {
      return this.hint ? 'background-color: #F44336;' : 'background-color: transparent;'
    }
  },
  methods: {
    toggleEditor () {
      this.$emit('toggleEditor')
    }
  }
}
</script>

<style scoped>
  .line-number-cell {
    vertical-align: top;
  }

  .code-cell-content {
    width: 100%;
  }

  .code-line {
    white-space: pre-wrap;
    font-family: monospace;
  }

  .line-number-btn {
    height: fit-content;
    min-width: 50px;
    margin: 0;
    border-radius: 0;
  }
</style>