Skip to content
Snippets Groups Projects
ListLayer.vue 3.76 KiB
Newer Older
<template>
Adam Procter's avatar
Adam Procter committed
  <div>
    <div v-for="(value, index) in nodes" v-bind:key="index">
Adam Procter's avatar
Adam Procter committed
      {{ nodetext }}
    </div>
Adam Procter's avatar
Adam Procter committed

    <!-- <div v-for="(value, index) in readnodes" v-bind:key="index">
      {{ value.node_text }}
    </div>

    <div v-for="(value, index) in emojis" v-bind:key="index">
      {{ value.emoji_text }}
Adam Procter's avatar
Adam Procter committed
    </div> -->
  </div>
</template>

<script>
import { mapState } from 'vuex'
Adam Procter's avatar
Adam Procter committed
import marked from 'marked'
Adam Procter's avatar
Adam Procter committed

Adam Procter's avatar
Adam Procter committed
var readmode
export default {
  name: 'ListLayer',
Adam Procter's avatar
Adam Procter committed

  data: function () {
Adam Procter's avatar
Adam Procter committed
      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,
Adam Procter's avatar
Adam Procter committed
  computed: {
    ...mapState({
      myNodes: (state) => state.myNodes,
      configPositions: (state) => state.configPositions,
      configEmoji: (state) => state.configEmoji,
    }),
Adam Procter's avatar
Adam Procter committed
    nodes() {
Adam Procter's avatar
Adam Procter committed
      return this.myNodes.filter((node) => {
        return (
          (node == this.myNodes.node_id) == this.configPositions.node_id &&
          this.myNodes.deleted == false &&
          this.configPositions.read_mode == false
        )
      })
    },
Adam Procter's avatar
Adam Procter committed

    readnodes() {
Adam Procter's avatar
Adam Procter committed
      return this.myNodes.filter((readnode) => {
        return (
Adam Procter's avatar
Adam Procter committed
          (readnode == this.myNodes.node_id) == this.configPositions.node_id &&
          this.myNodes.deleted == false &&
          this.configPositions.read_mode == true
        )
      })
    },
Adam Procter's avatar
Adam Procter committed

    emojis() {
Adam Procter's avatar
Adam Procter committed
      return this.configEmoji.filter((emoji) => {
        return (
          (emoji == this.myNodes.node_id) == this.configPositions.node_id &&
          this.myNodes.deleted == false
        )
      })
    },
Adam Procter's avatar
Adam Procter committed
  },
Adam Procter's avatar
Adam Procter committed
  myArray: null,
  created() {
Adam Procter's avatar
Adam Procter committed
    //FIXME : now needs to use filter See Above
Adam Procter's avatar
Adam Procter committed
    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) {
Adam Procter's avatar
Adam Procter committed
      this.$emit('edit-true', e)
Adam Procter's avatar
Adam Procter committed
    },

    deleteFlag(e) {
      e = this.nodeid
Adam Procter's avatar
Adam Procter committed
      if (confirm('Confirm discard?')) {
        this.$store.dispatch('deleteFlag', { e })
      } else {
        // nothing happens
      }
Adam Procter's avatar
Adam Procter committed
    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
  },
Adam Procter's avatar
Adam Procter committed
  components: {},
}
</script>

<style lang="css" scoped>
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: 0.5em;
Adam Procter's avatar
Adam Procter committed
.readmode {
  margin-top: 1em;
  margin-left: 1em;
}

Adam Procter's avatar
Adam Procter committed
  width: 100%;
  height: 175px;
  resize: none;
  box-sizing: border-box;
Adam Procter's avatar
Adam Procter committed
  font-size: 18px;
  font-family: 'Inter var', Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
Adam Procter's avatar
Adam Procter committed

  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;
}
Adam Procter's avatar
Adam Procter committed

@media only screen and (max-width: 600px) {
  .readmode >>> a {
    font-size: 2em;
    word-break: break-all;
    padding-right: 0.5em;
Adam Procter's avatar
Adam Procter committed
  }
}