···5566## Bugs
7788+- [ ] Quoted posts should link to the original post
99+ - [ ] They should also nest properly
1010+811## High Priority Updates
9121010-- [ ] Profile RSS
1111- - OK. So making an RSS reader with share to BlueSky would be cool...
1313+- [ ] Feed view
1414+- [ ] Starter pack view
1515+- [ ] List view
1616+1717+## Updates
1818+1919+- [ ] Profile RSS?
12201321## Multicolumn Layouts
1422
+1-1
src/components/feeds/DraftsList.tsx
···11import { Icon } from "$/components/shared/Icon";
22import { DraftController } from "$/lib/api/drafts";
33-import { formatRelativeTime } from "$/lib/feeds";
43import type { Draft } from "$/lib/types";
44+import { formatRelativeTime } from "$/lib/utils/text";
55import { normalizeError } from "$/lib/utils/text";
66import * as logger from "@tauri-apps/plugin-log";
77import { createEffect, createSignal, For, Show } from "solid-js";
···55import { useAppSession } from "$/contexts/app-session";
66import { listNotifications, updateSeen } from "$/lib/api/notifications";
77import { NOTIFICATIONS_UNREAD_COUNT_EVENT } from "$/lib/constants/events";
88-import { formatRelativeTime, getAvatarLabel, getDisplayName } from "$/lib/feeds";
88+import { getAvatarLabel, getDisplayName } from "$/lib/feeds";
99import { collectModerationLabels } from "$/lib/moderation";
1010import { buildPostRoute } from "$/lib/post-routes";
1111import { buildProfileRoute, getProfileRouteActor } from "$/lib/profile";
1212import type { ListNotificationsResponse, NotificationReason, NotificationView, ProfileViewBasic } from "$/lib/types";
1313+import { formatRelativeTime } from "$/lib/utils/text";
1314import { normalizeError } from "$/lib/utils/text";
1415import { listen } from "@tauri-apps/api/event";
1516import * as logger from "@tauri-apps/plugin-log";
+2-1
src/components/posts/PostPanel.tsx
···22import { Icon } from "$/components/shared/Icon";
33import { useAppSession } from "$/contexts/app-session";
44import { FeedController } from "$/lib/api/feeds";
55-import { isBlockedNode, isNotFoundNode, isThreadViewPost, patchThreadNode } from "$/lib/feeds";
55+import { patchThreadNode } from "$/lib/feeds";
66+import { isBlockedNode, isNotFoundNode, isThreadViewPost } from "$/lib/feeds/type-guards";
67import type { PostView, ThreadNode, ThreadViewPost } from "$/lib/types";
78import { createEffect, createMemo, For, Match, Show, Switch } from "solid-js";
89import { createStore } from "solid-js/store";
+2-1
src/components/posts/ThreadDrawer.tsx
···11import { Icon } from "$/components/shared/Icon";
22import { useAppSession } from "$/contexts/app-session";
33import { FeedController } from "$/lib/api/feeds";
44-import { findRootPost, isBlockedNode, isNotFoundNode, isThreadViewPost, patchThreadNode } from "$/lib/feeds";
44+import { findRootPost, patchThreadNode } from "$/lib/feeds";
55+import { isBlockedNode, isNotFoundNode, isThreadViewPost } from "$/lib/feeds/type-guards";
56import { useNavigationHistory } from "$/lib/navigation-history";
67import type { PostView, ThreadNode } from "$/lib/types";
78import { createEffect, createMemo, For, Match, onCleanup, Show, splitProps, Switch } from "solid-js";
+1-1
src/components/saved/SavedPostsPanel.tsx
···88import { useAppSession } from "$/contexts/app-session";
99import { SearchController } from "$/lib/api/search";
1010import type { LocalPostResult, SavedPostSource, SyncStatus } from "$/lib/api/types/search";
1111-import { formatRelativeTime } from "$/lib/feeds";
1211import { subscribeBookmarkChanged } from "$/lib/post-events";
1312import type { PostView } from "$/lib/types";
1313+import { formatRelativeTime } from "$/lib/utils/text";
1414import { normalizeError } from "$/lib/utils/text";
1515import * as logger from "@tauri-apps/plugin-log";
1616import { createEffect, createMemo, createSignal, For, Match, onCleanup, Show, Switch } from "solid-js";
+1-1
src/components/search/SearchResultCard.tsx
···11-import { formatRelativeTime } from "$/lib/feeds";
21import { buildProfileRoute } from "$/lib/profile";
22+import { formatRelativeTime } from "$/lib/utils/text";
33import { escapeForRegex } from "$/lib/utils/text";
44import { createMemo, type JSX, type ParentProps, Show } from "solid-js";
55import { Icon } from "../shared/Icon";
+1-1
src/components/search/SyncStatusPanel.tsx
···11import { Icon } from "$/components/shared/Icon";
22import { SearchController } from "$/lib/api/search";
33import type { SyncStatus } from "$/lib/api/types/search";
44-import { formatRelativeTime } from "$/lib/feeds";
44+import { formatRelativeTime } from "$/lib/utils/text";
55import * as logger from "@tauri-apps/plugin-log";
66import { createMemo, createSignal, For, onCleanup, onMount, Show } from "solid-js";
77import { Motion, Presence } from "solid-motionone";