From 4cb588c063df5f4c457c0819abdd3164784d1e8d Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 20:29:39 +0000 Subject: [PATCH] Add standalone TypeScript interfaces for React migration Convert Angular classes from src/app/shared/models/ to TypeScript interfaces in src/types/ for use by the React app (Phase 1 of migration). Types added: Story, Comment, User, PollResult, FeedType, Settings Co-Authored-By: Eashan Sinha --- src/types/comment.ts | 10 ++++++++++ src/types/feed-type.ts | 1 + src/types/index.ts | 6 ++++++ src/types/poll-result.ts | 4 ++++ src/types/settings.ts | 7 +++++++ src/types/story.ts | 21 +++++++++++++++++++++ src/types/user.ts | 8 ++++++++ 7 files changed, 57 insertions(+) create mode 100644 src/types/comment.ts create mode 100644 src/types/feed-type.ts create mode 100644 src/types/index.ts create mode 100644 src/types/poll-result.ts create mode 100644 src/types/settings.ts create mode 100644 src/types/story.ts create mode 100644 src/types/user.ts diff --git a/src/types/comment.ts b/src/types/comment.ts new file mode 100644 index 00000000..f1d123ce --- /dev/null +++ b/src/types/comment.ts @@ -0,0 +1,10 @@ +export interface Comment { + id: number; + level: number; + user: string; + time: number; + time_ago: string; + content: string; + deleted: boolean; + comments: Comment[]; +} diff --git a/src/types/feed-type.ts b/src/types/feed-type.ts new file mode 100644 index 00000000..5d3c15ba --- /dev/null +++ b/src/types/feed-type.ts @@ -0,0 +1 @@ +export type FeedType = 'poll' | 'story' | 'job'; diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 00000000..552141ac --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,6 @@ +export { Comment } from './comment'; +export { FeedType } from './feed-type'; +export { PollResult } from './poll-result'; +export { Settings } from './settings'; +export { Story } from './story'; +export { User } from './user'; diff --git a/src/types/poll-result.ts b/src/types/poll-result.ts new file mode 100644 index 00000000..54e386ac --- /dev/null +++ b/src/types/poll-result.ts @@ -0,0 +1,4 @@ +export interface PollResult { + points: number; + content: string; +} diff --git a/src/types/settings.ts b/src/types/settings.ts new file mode 100644 index 00000000..fcabb480 --- /dev/null +++ b/src/types/settings.ts @@ -0,0 +1,7 @@ +export interface Settings { + showSettings: boolean; + openLinkInNewTab: boolean; + theme: string; + titleFontSize: string; + listSpacing: string; +} diff --git a/src/types/story.ts b/src/types/story.ts new file mode 100644 index 00000000..d4ba265b --- /dev/null +++ b/src/types/story.ts @@ -0,0 +1,21 @@ +import { Comment } from './comment'; +import { FeedType } from './feed-type'; +import { PollResult } from './poll-result'; + +export interface Story { + id: number; + title: string; + points: number; + user: string; + time: number; + time_ago: number; + type: FeedType; + url: string; + domain: string; + comments: Comment[]; + comments_count: number; + poll: PollResult[]; + poll_votes_count: number; + deleted: boolean; + dead: boolean; +} diff --git a/src/types/user.ts b/src/types/user.ts new file mode 100644 index 00000000..56526754 --- /dev/null +++ b/src/types/user.ts @@ -0,0 +1,8 @@ +export interface User { + id: string; + crated_time: number; + created: string; + karma: number; + avg: number; + about: string; +}