* 'main' of https://framagit.org/isUnknown/design-to-pack:
  #88 - fix edit comment system
  delete reply working
This commit is contained in:
Timothée Goguely 2025-01-07 16:07:56 +01:00
commit bc1722495f
5 changed files with 16 additions and 17 deletions

View file

@ -21,13 +21,13 @@
</p>
</header>
<p v-if="!isEditCommentMode" class="comment__body">
<p v-if="!comment.isEditMode" class="comment__body">
{{ comment.text }}
</p>
<textarea v-else class="comment__body" v-model="draftText" :rows="Math.ceil(draftText.length / 32)"></textarea>
<footer v-if="!isEditCommentMode" class="comment__replies">
<footer v-if="!comment.isEditMode" class="comment__replies">
<p v-if="comment.replies?.length > 0">
{{ comment.replies.length }} réponse{{
comment.replies.length > 1 ? "s" : ""
@ -40,7 +40,7 @@
<button
class="btn btn--transparent btn--icon btn--sm"
data-icon="edit"
@click="isEditCommentMode = true"
@click="comment.isEditMode = true"
>
<span class="sr-only">Éditer</span>
</button>
@ -89,7 +89,7 @@ const emits = defineEmits(["update:file", "close:comment"]);
const userStore = useUserStore();
const api = useApiStore();
const dialog = useDialogStore();
const { activeTracks, isEditCommentMode } = storeToRefs(useDialogStore());
const { activeTracks } = storeToRefs(useDialogStore());
const draftText = ref(comment.text);
// Functions
@ -141,7 +141,7 @@ async function deleteComment(event) {
// If there is an active track,
// it's not the opened file that should be updated
// but the corresponding file in the active track
if (activeTracks.value.length > 0) {
if (activeTracks.value?.length > 0) {
activeTracks.value[0].files = activeTracks.value[0].files.map((file) => {
if (file.uuid !== newFile.uuid) return file;
return newFile;
@ -159,12 +159,12 @@ function saveEditedComment(event) {
comment.text = draftText.value;
comment.date = dayjs().format();
api.updateComment(comment);
isEditCommentMode.value = false;
comment.isEditMode = false;
}
function cancelEditComment(event) {
event.stopImmediatePropagation();
isEditCommentMode.value = false;
comment.isEditMode = false;
draftText.value = comment.text;
}
</script>

View file

@ -121,8 +121,9 @@ dayjs.locale("fr");
const { user } = useUserStore();
const { page } = usePageStore();
const dialog = useDialogStore();
const { comments, openedFile, draftComment, activeTracks, isEditCommentMode } =
storeToRefs(useDialogStore());
const { comments, openedFile, draftComment, activeTracks } = storeToRefs(
useDialogStore()
);
const api = useApiStore();
const openedComment = ref(null);
@ -304,11 +305,11 @@ function prepareDraftCommentInImage(event) {
}
function openComment(comment) {
if (isEditCommentMode.value) return;
if (comment.isEditMode) return;
openedComment.value = comment;
if (activeTracks?.value.length === 1) {
if (activeTracks.value?.length === 1) {
openedFile.value = activeTracks.value[0].files.find(
(file) => file.uuid === openedComment.value.location.file.uuid
);