aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/src/pages
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-21 09:26:44 +0900
committernsfisis <nsfisis@gmail.com>2026-02-21 09:26:44 +0900
commit938863425bf8ad6c17e43b3da128f92cf6d6ab63 (patch)
tree9210ea9d77c7c6fb030328cae5e8192093ebd61a /frontend/src/pages
parent4ebfe21a6c89ae0518c66bc6f06b0b15bf9b7724 (diff)
downloadfeedaka-0.7.3.tar.gz
feedaka-0.7.3.tar.zst
feedaka-0.7.3.zip
fix(frontend): prevent layout shift in feed sidebar during loadingHEADv0.7.3main
Show "All feeds" button immediately and load individual feeds asynchronously via internal Suspense boundary, avoiding the spinner-to-content shift that occurred with the outer Suspense wrapper. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'frontend/src/pages')
-rw-r--r--frontend/src/pages/ReadArticles.tsx10
-rw-r--r--frontend/src/pages/UnreadArticles.tsx10
2 files changed, 4 insertions, 16 deletions
diff --git a/frontend/src/pages/ReadArticles.tsx b/frontend/src/pages/ReadArticles.tsx
index 8fcf9df..4d70558 100644
--- a/frontend/src/pages/ReadArticles.tsx
+++ b/frontend/src/pages/ReadArticles.tsx
@@ -1,5 +1,5 @@
import { useAtomValue, useSetAtom } from "jotai";
-import { Suspense, useEffect } from "react";
+import { useEffect } from "react";
import { useSearch } from "wouter";
import {
articleFeedFilterAtom,
@@ -7,9 +7,7 @@ import {
articleViewAtom,
} from "../atoms";
import { ArticleList } from "../components/ArticleList";
-import { ErrorBoundary } from "../components/ErrorBoundary";
import { FeedSidebar } from "../components/FeedSidebar";
-import { LoadingSpinner } from "../components/LoadingSpinner";
export function ReadArticles() {
const search = useSearch();
@@ -27,11 +25,7 @@ export function ReadArticles() {
return (
<div className="flex gap-8">
<div className="hidden w-56 shrink-0 md:block">
- <ErrorBoundary>
- <Suspense fallback={<LoadingSpinner />}>
- <FeedSidebar basePath="/read" isReadView />
- </Suspense>
- </ErrorBoundary>
+ <FeedSidebar basePath="/read" isReadView />
</div>
<div className="min-w-0 flex-1">
<ReadArticleList feedId={feedId} />
diff --git a/frontend/src/pages/UnreadArticles.tsx b/frontend/src/pages/UnreadArticles.tsx
index 32d1190..e4754a3 100644
--- a/frontend/src/pages/UnreadArticles.tsx
+++ b/frontend/src/pages/UnreadArticles.tsx
@@ -1,5 +1,5 @@
import { useAtomValue, useSetAtom } from "jotai";
-import { Suspense, useEffect } from "react";
+import { useEffect } from "react";
import { useSearch } from "wouter";
import {
articleFeedFilterAtom,
@@ -7,9 +7,7 @@ import {
articleViewAtom,
} from "../atoms";
import { ArticleList } from "../components/ArticleList";
-import { ErrorBoundary } from "../components/ErrorBoundary";
import { FeedSidebar } from "../components/FeedSidebar";
-import { LoadingSpinner } from "../components/LoadingSpinner";
export function UnreadArticles() {
const search = useSearch();
@@ -27,11 +25,7 @@ export function UnreadArticles() {
return (
<div className="flex gap-8">
<div className="hidden w-56 shrink-0 md:block">
- <ErrorBoundary>
- <Suspense fallback={<LoadingSpinner />}>
- <FeedSidebar basePath="/unread" />
- </Suspense>
- </ErrorBoundary>
+ <FeedSidebar basePath="/unread" />
</div>
<div className="min-w-0 flex-1">
<UnreadArticleList feedId={feedId} />