Skip to content
Snippets Groups Projects
ListLayer.vue 4.02 KiB
Newer Older
<template>
Adam Procter's avatar
Adam Procter committed
  <div>
    <div v-if="deleted == false">
      <form class="nodes">
Adam Procter's avatar
Adam Procter committed
        <div v-for="value in $options.myArray" v-bind:key="value.node_id">
          <textarea
            v-if="nodeid == value.node_id"
            @focus="editTrue(true)"
            @blur="editTrue(false)"
            autofocus
            v-model="value.node_text"
            @input="editNode"
            :id="value.node_id"
            ref="nodetext"
            placeholder="Idea goes here!"
          ></textarea>
        </div>

        <!-- <div v-if="localreadmode == true && deleted == false">
          <p class="read" :id="nodeid" :inner-html.prop="nodetext | marked"></p>
        </div> -->
        <div class="allemoji">
          <div
            class="eachemoji"
            v-for="(emojis, index) in configEmoji"
            :key="index"
          >
            <p v-if="nodeid == emojis.node_id">
              {{ emojis.emoji_text }}
            </p>
        </div>
        <p class="info">*markdown supported &amp; autosaves</p>
        <div class="btn-row">
          <BaseButton buttonClass="danger" @click="deleteFlag()"
            >Discard</BaseButton
          >
          <!-- <div v-if="localreadmode == true && deleted == false">
            <BaseButton class="read" buttonClass="action" @click="readFlag()"
              >Edit Mode
            </BaseButton>
          <div v-else>
            <BaseButton class="read" buttonClass="action" @click="readFlag()"
              >Read Mode</BaseButton
Adam Procter's avatar
Adam Procter committed
        </div>
Adam Procter's avatar
Adam Procter committed
    </div>
  </div>
</template>

<script>
import { mapState } from 'vuex'
//var readmode
export default {
  name: 'ListLayer',
Adam Procter's avatar
Adam Procter committed

  data: function () {
    return {
      // localreadmode: false,
    }
  props: {
    nodeid: String,
Adam Procter's avatar
Adam Procter committed
    nodetext: String,
Adam Procter's avatar
Adam Procter committed
    deleted: Boolean,
Adam Procter's avatar
Adam Procter committed
    // marked: marked,
  computed: mapState({
Adam Procter's avatar
Adam Procter committed
    myNodes: (state) => state.myNodes,
Adam Procter's avatar
Adam Procter committed
    configPositions: (state) => state.configPositions,
    configEmoji: (state) => state.configEmoji,
Adam Procter's avatar
Adam Procter committed
  myArray: null,
  created() {
    this.$options.myArray = this.myNodes
Adam Procter's avatar
Adam Procter committed
  },

  methods: {
    editNode(e) {
      var nodeid = e.target.id
      var nodetext = e.target.value
      this.$store.dispatch('editNode', { nodeid, nodetext })
    },

    editTrue(e) {
      this.$emit('editTrue', e)
    },

    deleteFlag(e) {
      e = this.nodeid
Adam Procter's avatar
Adam Procter committed
      if (confirm('Confirm discard?')) {
        this.$store.dispatch('deleteFlag', { e })
      } else {
        // nothing happens
      }
    // readFlag(e) {
    //   e = this.nodeid

    //   var i
    //   for (i = 0; i < Object.keys(this.configPositions).length; i++) {
    //     if (this.configPositions[i].node_id == this.nodeid) {
    //       this.localreadmode = this.configPositions[i].read_mode
    //     }
    //   }

    //   if (this.localreadmode == true) {
    //     readmode = false
    //     this.$store.dispatch('readFlag', { e, readmode })
    //     this.mode = 'Read'
    //   } else {
    //     readmode = true
    //     this.$store.dispatch('readFlag', { e, readmode })
    //     this.mode = 'Edit'
    //   }
    // },
Adam Procter's avatar
Adam Procter committed
  },
}
</script>

<style lang="css" scoped>
Adam Procter's avatar
Adam Procter committed
h2 {
  color: red;
}

Adam Procter's avatar
Adam Procter committed
  width: 95%;
  border: 2px dashed black;
  background-color: rgb(155, 194, 216);
  margin-top: 1em;
Adam Procter's avatar
Adam Procter committed
  margin-left: 1em;
}

textarea {
  width: 90%;
  height: 175px;
  resize: none;
  box-sizing: border-box;
  font-family: 'Inter var', Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  margin: 1em;
  border: none;
  outline: none;
  background-color: rgb(187, 227, 255);
  scrollbar-color: yellow rgb(187, 227, 255);
.btn-row {
  position: relative;
  margin-bottom: 5px;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  padding: 0 15px;
  border-radius: 4px;
}

.allemoji {
  font-size: 2em;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(0, auto));

  /* float: left; */
}

.eachemoji p {
  margin: 0em;
}