Refactor components for improved type safety and code consistency

- Updated AppHeader.vue to use TypeScript interfaces for member menu items and removed unnecessary type assertions.
- Modified AuthModal.vue to enhance styling and improve accessibility with consistent class names and structure.
- Enhanced CommentReplies.vue to support deleting replies with a new prop and improved event emission.
- Adjusted GifPicker.vue to specify types for fetched data, ensuring better type safety.
- Refined HomeMovieCard.vue to handle mouse and focus events more robustly, improving user interaction.
- Corrected layout in chinh-sach-bao-mat.vue for better responsiveness and readability.
- Updated index.vue to streamline gradient overlays and button positioning for a cleaner UI.
- Improved [slug].vue to handle server channels and subtitles more dynamically, enhancing playback experience.
This commit is contained in:
ngthanhvu
2026-07-31 04:01:24 -04:00
parent 91574aa72c
commit 59333d51e9
8 changed files with 158 additions and 76 deletions
+5 -2
View File
@@ -8,6 +8,7 @@ const props = defineProps<{
replyContent: Record<number, string>
isReplyAnonymous: Record<number, boolean>
isSubmittingReply?: Record<number, boolean>
isDeleting?: Map<number, boolean>
openGifPicker?: (id: number) => void
}>()
@@ -131,9 +132,11 @@ function formatMentions(content: string) {
<div v-if="reply.replies?.length" class="mt-3 pl-4 border-l-2 border-white/10">
<CommentReplies :replies="reply.replies" :depth="depth + 1" :user="user" :parent-id="reply.id"
:is-replying-to="isReplyingTo" :reply-content="replyContent" :is-reply-anonymous="isReplyAnonymous"
:is-submitting-reply="isSubmittingReply" :open-gif-picker="openGifPicker"
:is-submitting-reply="isSubmittingReply" :is-deleting="isDeleting" :open-gif-picker="openGifPicker"
@start-reply="emit('start-reply', $event)" @cancel-reply="emit('cancel-reply', $event)"
@submit-reply="emit('submit-reply', $event)" @vote="emit('vote', $event)" @delete="emit('delete', $event)" />
@submit-reply="emit('submit-reply', $event)"
@vote="(a, b, c, d) => emit('vote', a, b, c, d)"
@delete="emit('delete', $event)" />
</div>
</div>
</div>