diff --git a/src/modules/nostr-feed/components/SubmissionComment.vue b/src/modules/nostr-feed/components/SubmissionComment.vue index 9a5f6d4..ab52a9e 100644 --- a/src/modules/nostr-feed/components/SubmissionComment.vue +++ b/src/modules/nostr-feed/components/SubmissionComment.vue @@ -6,8 +6,7 @@ import { computed, ref } from 'vue' import { formatDistanceToNow } from 'date-fns' -import { ChevronUp, ChevronDown, Reply, Flag, MoreHorizontal, Send, X } from 'lucide-vue-next' -import VoteControls from './VoteControls.vue' +import { ChevronUp, ChevronDown, Reply, Flag, MoreHorizontal, Send } from 'lucide-vue-next' import type { SubmissionComment as CommentType } from '../types/submission' interface Props { diff --git a/src/modules/nostr-feed/components/SubmissionDetail.vue b/src/modules/nostr-feed/components/SubmissionDetail.vue index 48a9068..7fe5822 100644 --- a/src/modules/nostr-feed/components/SubmissionDetail.vue +++ b/src/modules/nostr-feed/components/SubmissionDetail.vue @@ -5,7 +5,7 @@ */ import { ref, computed, watch } from 'vue' -import { useRoute, useRouter } from 'vue-router' +import { useRouter } from 'vue-router' import { formatDistanceToNow } from 'date-fns' import { ArrowLeft, @@ -17,9 +17,6 @@ import { Image as ImageIcon, FileText, Loader2, - ChevronUp, - ChevronDown, - Reply, Send } from 'lucide-vue-next' import { Badge } from '@/components/ui/badge' @@ -31,7 +28,6 @@ import { tryInjectService, SERVICE_TOKENS } from '@/core/di-container' import type { ProfileService } from '../services/ProfileService' import type { SubmissionService } from '../services/SubmissionService' import type { - SubmissionWithMeta, SubmissionComment as SubmissionCommentType, LinkSubmission, MediaSubmission, @@ -245,15 +241,6 @@ function toggleCollapse(commentId: string) { collapsedComments.value = new Set(collapsedComments.value) } -// Count total replies -function countReplies(comment: SubmissionCommentType): number { - let count = comment.replies?.length || 0 - comment.replies?.forEach(reply => { - count += countReplies(reply) - }) - return count -} - // Go back function goBack() { router.back() diff --git a/src/modules/nostr-feed/components/SubmissionList.vue b/src/modules/nostr-feed/components/SubmissionList.vue index 2a0bd1f..f4adea4 100644 --- a/src/modules/nostr-feed/components/SubmissionList.vue +++ b/src/modules/nostr-feed/components/SubmissionList.vue @@ -4,7 +4,7 @@ * Includes sort tabs, submission rows, and loading states */ -import { ref, computed, onMounted, watch } from 'vue' +import { computed, onMounted, watch } from 'vue' import { Loader2 } from 'lucide-vue-next' import SortTabs from './SortTabs.vue' import SubmissionRow from './SubmissionRow.vue' diff --git a/src/modules/nostr-feed/components/SubmissionThumbnail.vue b/src/modules/nostr-feed/components/SubmissionThumbnail.vue index 868e159..5735327 100644 --- a/src/modules/nostr-feed/components/SubmissionThumbnail.vue +++ b/src/modules/nostr-feed/components/SubmissionThumbnail.vue @@ -5,7 +5,7 @@ */ import { computed } from 'vue' -import { Link, FileText, Image, Film, MessageSquare, ExternalLink } from 'lucide-vue-next' +import { FileText, Image, ExternalLink } from 'lucide-vue-next' import type { SubmissionType } from '../types/submission' interface Props { diff --git a/src/modules/nostr-feed/composables/useSubmissions.ts b/src/modules/nostr-feed/composables/useSubmissions.ts index cdd457e..82dd155 100644 --- a/src/modules/nostr-feed/composables/useSubmissions.ts +++ b/src/modules/nostr-feed/composables/useSubmissions.ts @@ -4,7 +4,7 @@ * Provides reactive access to the SubmissionService for Reddit-style submissions. */ -import { computed, ref, onMounted, onUnmounted, watch } from 'vue' +import { computed, ref, onMounted, onUnmounted, watch, type Ref, type ComputedRef } from 'vue' import { tryInjectService, SERVICE_TOKENS } from '@/core/di-container' import type { SubmissionService } from '../services/SubmissionService' import type { LinkPreviewService } from '../services/LinkPreviewService' @@ -31,13 +31,13 @@ export interface UseSubmissionsOptions { export interface UseSubmissionsReturn { // State - submissions: ReturnType> - isLoading: ReturnType> - error: ReturnType> + submissions: ComputedRef + isLoading: ComputedRef + error: ComputedRef // Sorting - currentSort: ReturnType> - currentTimeRange: ReturnType> + currentSort: Ref + currentTimeRange: Ref // Actions subscribe: (config?: Partial) => Promise diff --git a/src/modules/nostr-feed/services/LinkPreviewService.ts b/src/modules/nostr-feed/services/LinkPreviewService.ts index 0f4f4dc..e018aa8 100644 --- a/src/modules/nostr-feed/services/LinkPreviewService.ts +++ b/src/modules/nostr-feed/services/LinkPreviewService.ts @@ -5,7 +5,7 @@ * Used when creating link submissions to embed preview data. */ -import { ref, reactive } from 'vue' +import { reactive } from 'vue' import { BaseService } from '@/core/base/BaseService' import type { LinkPreview } from '../types/submission' import { extractDomain } from '../types/submission' diff --git a/src/modules/nostr-feed/services/SubmissionService.ts b/src/modules/nostr-feed/services/SubmissionService.ts index 33e8900..b3f5658 100644 --- a/src/modules/nostr-feed/services/SubmissionService.ts +++ b/src/modules/nostr-feed/services/SubmissionService.ts @@ -30,7 +30,6 @@ import { type SubmissionComment, type LinkPreview, type MediaAttachment, - type CommunityRef, parseCommunityRef, formatCommunityRef, extractDomain, @@ -505,7 +504,7 @@ export class SubmissionService extends BaseService { id: event.id, pubkey: event.pubkey, created_at: event.created_at, - kind: SUBMISSION_KINDS.SUBMISSION as const, + kind: SUBMISSION_KINDS.SUBMISSION, tags, title, communityRef: this.extractCommunityRef(tags), diff --git a/src/modules/nostr-feed/types/submission.ts b/src/modules/nostr-feed/types/submission.ts index 2310a3b..ae7e0ad 100644 --- a/src/modules/nostr-feed/types/submission.ts +++ b/src/modules/nostr-feed/types/submission.ts @@ -5,7 +5,6 @@ * Submissions are kind 1111 events scoped to a community with structured metadata. */ -import type { Event as NostrEvent } from 'nostr-tools' // ============================================================================ // Constants @@ -193,7 +192,7 @@ export interface SubmissionRanking { // ============================================================================ /** Complete submission with all associated data */ -export interface SubmissionWithMeta extends Submission { +export type SubmissionWithMeta = Submission & { /** Vote counts and user state */ votes: SubmissionVotes /** Ranking scores */