{"version":3,"file":"EditCommentModal-C8_2V_PA.mjs","names":[],"sources":["../src/components/display/comments/modal/EditCommentModal.vue","../src/components/display/comments/modal/EditCommentModal.vue"],"sourcesContent":["<template>\n  <ClassicModal\n    id-modal=\"edit-comment-modal\"\n    :title-modal=\"t('Edit comment')\"\n    @close=\"closePopup\"\n  >\n    <template #body>\n      <ClassicLoading\n        :loading-text=\"inProcessing ? t('Send in progress') : undefined\"\n        :error-text=\"errorUpdate ? t(`An error occurred`) : undefined\"\n      />\n      <template v-if=\"!inProcessing && !errorUpdate\">\n        <ClassicInputText\n          v-model:text-init=\"commentText\"\n          v-model:error-variable=\"errorCommentText\"\n          input-id=\"comment-textarea\"\n          :label=\"t('Comment')\"\n          :max-length=\"Constants.MAX_COMMENT\"\n          :error-text=\"t('Please provide a comment')\"\n          :is-textarea=\"true\"\n          :is-emoji-picker=\"true\"\n          popover-relative-class=\"octopus-modal\"\n          :focus=\"true\"\n        />\n        <ClassicSelect\n          v-if=\"editRight\"\n          v-model:text-init=\"commentState\"\n          id-select=\"comment-state-select\"\n          :label=\"t('Status')\"\n          :display-label=\"true\"\n          :options=\"[\n            { title: t('pending'), value: 'PENDING' },\n            { title: t('Validated'), value: 'VALIDATED' },\n            { title: t('Invalid'), value: 'NOT_VALID' },\n          ]\"\n        />\n      </template>\n    </template>\n    <template #footer>\n      <button class=\"btn m-1\" @click=\"closePopup\">\n        {{ t(\"No\") }}\n      </button>\n      <button\n        class=\"btn btn-primary m-1\"\n        :disabled=\"errorCommentText\"\n        @click=\"onEditComment\"\n      >\n        {{ t(\"Yes\") }}\n      </button>\n    </template>\n  </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../../api/classicApi\";\nimport Constants from \"../../../../../public/config\";\nimport { defineAsyncComponent, onBeforeMount, Ref, ref } from \"vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { useI18n } from \"vue-i18n\";\nconst ClassicModal = defineAsyncComponent(\n  () => import(\"../../../misc/modal/ClassicModal.vue\"),\n);\nconst ClassicLoading = defineAsyncComponent(\n  () => import(\"../../../form/ClassicLoading.vue\"),\n);\nconst ClassicInputText = defineAsyncComponent(\n  () => import(\"../../../form/ClassicInputText.vue\"),\n);\nconst ClassicSelect = defineAsyncComponent(\n  () => import(\"../../../form/ClassicSelect.vue\"),\n);\n\n//Props \nconst props = defineProps({\n  comment: {\n    default: undefined,\n    type: Object as () => CommentPodcast,\n  },\n  editRight: { default: false, type: Boolean },\n})\n \n//Emits\nconst emit = defineEmits([\"close\", \"update:comment\"]);\n\n\n//Data \nconst commentText: Ref<string | undefined> = ref(undefined);\nconst errorCommentText = ref(true);\nconst commentState = ref(\"PENDING\");\nconst errorUpdate = ref(false);\nconst inProcessing = ref(false);\n\n//Composables\nconst { t } = useI18n();\n  \nonBeforeMount(()=>initComment())\n\n\n//Methods\nfunction initComment() {\n  if (!props.comment) {\n    return;\n  }\n  commentText.value = props.comment.content;\n  commentState.value = props.comment.state;\n}\nasync function onEditComment() {\n  if (!props.comment) {\n    return;\n  }\n  inProcessing.value = true;\n  try {\n    const commentUpdated = await classicApi.putData({\n      api: 2,\n      path: \"comment/\",\n      dataToSend: {\n        commentId: props.comment.commentId,\n        content: commentText.value,\n        state: commentState.value,\n      },\n      isNotAuth: !props.editRight,\n    });\n    emit(\"update:comment\", commentUpdated);\n    closePopup();\n  } catch {\n    errorUpdate.value = true;\n  }\n  inProcessing.value = false;\n}\nfunction closePopup() {\n  emit(\"close\");\n}\n</script>\n","<template>\n  <ClassicModal\n    id-modal=\"edit-comment-modal\"\n    :title-modal=\"t('Edit comment')\"\n    @close=\"closePopup\"\n  >\n    <template #body>\n      <ClassicLoading\n        :loading-text=\"inProcessing ? t('Send in progress') : undefined\"\n        :error-text=\"errorUpdate ? t(`An error occurred`) : undefined\"\n      />\n      <template v-if=\"!inProcessing && !errorUpdate\">\n        <ClassicInputText\n          v-model:text-init=\"commentText\"\n          v-model:error-variable=\"errorCommentText\"\n          input-id=\"comment-textarea\"\n          :label=\"t('Comment')\"\n          :max-length=\"Constants.MAX_COMMENT\"\n          :error-text=\"t('Please provide a comment')\"\n          :is-textarea=\"true\"\n          :is-emoji-picker=\"true\"\n          popover-relative-class=\"octopus-modal\"\n          :focus=\"true\"\n        />\n        <ClassicSelect\n          v-if=\"editRight\"\n          v-model:text-init=\"commentState\"\n          id-select=\"comment-state-select\"\n          :label=\"t('Status')\"\n          :display-label=\"true\"\n          :options=\"[\n            { title: t('pending'), value: 'PENDING' },\n            { title: t('Validated'), value: 'VALIDATED' },\n            { title: t('Invalid'), value: 'NOT_VALID' },\n          ]\"\n        />\n      </template>\n    </template>\n    <template #footer>\n      <button class=\"btn m-1\" @click=\"closePopup\">\n        {{ t(\"No\") }}\n      </button>\n      <button\n        class=\"btn btn-primary m-1\"\n        :disabled=\"errorCommentText\"\n        @click=\"onEditComment\"\n      >\n        {{ t(\"Yes\") }}\n      </button>\n    </template>\n  </ClassicModal>\n</template>\n\n<script setup lang=\"ts\">\nimport classicApi from \"../../../../api/classicApi\";\nimport Constants from \"../../../../../public/config\";\nimport { defineAsyncComponent, onBeforeMount, Ref, ref } from \"vue\";\nimport { CommentPodcast } from \"@/stores/class/general/comment\";\nimport { useI18n } from \"vue-i18n\";\nconst ClassicModal = defineAsyncComponent(\n  () => import(\"../../../misc/modal/ClassicModal.vue\"),\n);\nconst ClassicLoading = defineAsyncComponent(\n  () => import(\"../../../form/ClassicLoading.vue\"),\n);\nconst ClassicInputText = defineAsyncComponent(\n  () => import(\"../../../form/ClassicInputText.vue\"),\n);\nconst ClassicSelect = defineAsyncComponent(\n  () => import(\"../../../form/ClassicSelect.vue\"),\n);\n\n//Props \nconst props = defineProps({\n  comment: {\n    default: undefined,\n    type: Object as () => CommentPodcast,\n  },\n  editRight: { default: false, type: Boolean },\n})\n \n//Emits\nconst emit = defineEmits([\"close\", \"update:comment\"]);\n\n\n//Data \nconst commentText: Ref<string | undefined> = ref(undefined);\nconst errorCommentText = ref(true);\nconst commentState = ref(\"PENDING\");\nconst errorUpdate = ref(false);\nconst inProcessing = ref(false);\n\n//Composables\nconst { t } = useI18n();\n  \nonBeforeMount(()=>initComment())\n\n\n//Methods\nfunction initComment() {\n  if (!props.comment) {\n    return;\n  }\n  commentText.value = props.comment.content;\n  commentState.value = props.comment.state;\n}\nasync function onEditComment() {\n  if (!props.comment) {\n    return;\n  }\n  inProcessing.value = true;\n  try {\n    const commentUpdated = await classicApi.putData({\n      api: 2,\n      path: \"comment/\",\n      dataToSend: {\n        commentId: props.comment.commentId,\n        content: commentText.value,\n        state: commentState.value,\n      },\n      isNotAuth: !props.editRight,\n    });\n    emit(\"update:comment\", commentUpdated);\n    closePopup();\n  } catch {\n    errorUpdate.value = true;\n  }\n  inProcessing.value = false;\n}\nfunction closePopup() {\n  emit(\"close\");\n}\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EA2DA,MAAM,eAAe,2BACb,OAAO,+BAAA,MAAA,MAAA,EAAA,CAAA,CACf;EACA,MAAM,iBAAiB,2BACf,OAAO,iCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EACA,MAAM,mBAAmB,2BACjB,OAAO,mCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EACA,MAAM,gBAAgB,2BACd,OAAO,gCAAA,MAAA,MAAA,EAAA,CAAA,CACf;EAGA,MAAM,QAAQ;EASd,MAAM,OAAO;EAIb,MAAM,cAAuC,IAAI,KAAA,CAAS;EAC1D,MAAM,mBAAmB,IAAI,IAAI;EACjC,MAAM,eAAe,IAAI,SAAS;EAClC,MAAM,cAAc,IAAI,KAAK;EAC7B,MAAM,eAAe,IAAI,KAAK;EAG9B,MAAM,EAAE,MAAM,QAAQ;EAEtB,oBAAkB,YAAY,CAAC;EAI/B,SAAS,cAAc;GACrB,IAAI,CAAC,MAAM,SACT;GAEF,YAAY,QAAQ,MAAM,QAAQ;GAClC,aAAa,QAAQ,MAAM,QAAQ;EACrC;EACA,eAAe,gBAAgB;GAC7B,IAAI,CAAC,MAAM,SACT;GAEF,aAAa,QAAQ;GACrB,IAAI;IAWF,KAAK,kBAAkB,MAVM,mBAAW,QAAQ;KAC9C,KAAK;KACL,MAAM;KACN,YAAY;MACV,WAAW,MAAM,QAAQ;MACzB,SAAS,YAAY;MACrB,OAAO,aAAa;KACtB;KACA,WAAW,CAAC,MAAM;IACpB,CAAC,CACoC;IACrC,WAAW;GACb,QAAQ;IACN,YAAY,QAAQ;GACtB;GACA,aAAa,QAAQ;EACvB;EACA,SAAS,aAAa;GACpB,KAAK,OAAO;EACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBClIE,YAiDe,OAAA,iBAAA;EAhDb,YAAS;EACR,eAAa,OAAA,EAAC,cAAA;EACd,SAAO,OAAA;;EAEG,MAAI,cAIX,CAHF,YAGE,OAAA,mBAAA;GAFC,gBAAc,OAAA,eAAe,OAAA,EAAC,kBAAA,IAAuB,KAAA;GACrD,cAAY,OAAA,cAAc,OAAA,EAAC,mBAAA,IAAwB,KAAA;gDAErC,OAAA,gBAAY,CAAK,OAAA,eAAA,UAAA,GAAlC,mBAyBW,UAAA,EAAA,KAAA,EAAA,GAAA,CAxBT,YAWE,OAAA,qBAAA;GAVQ,aAAW,OAAA;8DAAA,OAAA,cAAW;GACtB,kBAAgB,OAAA;mEAAA,OAAA,mBAAgB;GACxC,YAAS;GACR,OAAO,OAAA,EAAC,SAAA;GACR,cAAY,OAAA,UAAU;GACtB,cAAY,OAAA,EAAC,0BAAA;GACb,eAAa;GACb,mBAAiB;GAClB,0BAAuB;GACtB,OAAO;;;;;;;MAGF,OAAA,aAAA,UAAA,GADR,YAWE,OAAA,kBAAA;;GATQ,aAAW,OAAA;8DAAA,OAAA,eAAY;GAC/B,aAAU;GACT,OAAO,OAAA,EAAC,QAAA;GACR,iBAAe;GACf,SAAO;;YAAyB,OAAA,EAAC,SAAA;KAAA,OAAA;IAAA;;YAAsD,OAAA,EAAC,WAAA;KAAA,OAAA;IAAA;;YAA0D,OAAA,EAAC,SAAA;KAAA,OAAA;IAAA;;;;;;;EAQ/I,QAAM,cAGN,CAFT,mBAES,UAAA;GAFD,OAAM;GAAW,SAAO,OAAA;qBAC3B,OAAA,EAAC,IAAA,CAAA,GAAA,CAAA,GAEN,mBAMS,UAAA;GALP,OAAM;GACL,UAAU,OAAA;GACV,SAAO,OAAA;qBAEL,OAAA,EAAC,KAAA,CAAA,GAAA,GAAA,UAAA,CAAA,CAAA"}