Skip to content
Snippets Groups Projects
FormImageDisplay.vue 1.29 KiB
Newer Older
Gilgard's avatar
Gilgard committed
<template>
  <!-- Image -->
Gilgard's avatar
Gilgard committed
  <img
    :src="image"
    class="w-2/5 inline"
    alt="Bilde av gjenstanden"
    @click="toggleModal"
  />
  <!-- Modal -->
  <CustomFooterModal
Gilgard's avatar
Gilgard committed
    @close="toggleModal"
    :message="'Bilder som fjernes kan ikke lastes opp på nytt uten å laste opp et annet bilde først.'"
    :title="'Er du sikker på at du vil fjene bilde?'"
    :visible="show"
  >
    <!-- Buttons for modal footer -->
Gilgard's avatar
Gilgard committed
    <div class="flex justify-center p-2">
      <ColoredButton :text="'Avbryt'" @click="toggleModal" class="m-2" />
      <ColoredButton
        :text="'Slett'"
        :color="'red'"
        @click="removeImage"
        class="m-2"
      />
Gilgard's avatar
Gilgard committed
    </div>
  </CustomFooterModal>
Gilgard's avatar
Gilgard committed
</template>

<script>
import ColoredButton from "@/components/BaseComponents/ColoredButton";
import CustomFooterModal from "@/components/BaseComponents/CustomFooterModal.vue";

/**
 * Displays uploaded image for forms.
 */
Gilgard's avatar
Gilgard committed
export default {
  components: {
    ColoredButton,
    CustomFooterModal,
  },
  data() {
    return {
      show: false,
    };
  },
  props: {
    image: String,
  },
  methods: {
    /**
     * Emits remove image to parent
     */
Gilgard's avatar
Gilgard committed
    removeImage() {
      this.$emit("remove");
    },
    /**
     * Toggles modal
     */
Gilgard's avatar
Gilgard committed
    toggleModal() {
      this.show = !this.show;
    },
  },
};
</script>