<!--

 This file is part of the Meeds project (https://meeds.io/).

 Copyright (C) 2020 - 2023 Meeds Association contact@meeds.io

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 3 of the License, or (at your option) any later version.
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public License
 along with this program; if not, write to the Free Software Foundation,
 Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

-->
<template>
  <attachments-image-crop-drawer
    ref="drawer"
    can-upload
    use-format
    back-icon
    embedded
    @update="$emit('update', $event)" />
</template>
<script>
export default {
  data: () => ({
    loading: false,
  }),
  watch: {
    loading() {
      this.$emit('loading', this.loading);
    },
  },
  created() {
    this.$root.$on('image-settings-drawer', this.open);
  },
  beforeDestroy() {
    this.$root.$off('image-settings-drawer', this.open);
  },
  methods: {
    open() {
      this.loading = true;
      this.$fileAttachmentService.getAttachments(this.$root.objectType, this.$root.name)
        .then(data => {
          const imageItem = data?.attachments?.[0];
          if (imageItem) {
            imageItem.src = `${eXo.env.portal.context}/${eXo.env.portal.rest}/v1/social/attachments/${this.$root.objectType}/${this.$root.name}/${imageItem.id}`;
          }
          this.$refs?.drawer?.open?.(imageItem);
        })
        .finally(() => this.loading = false);
    },
    close() {
      return this.$nextTick().then(() => this.$refs.drawer.close());
    },
  },
};
</script>