aboutsummaryrefslogtreecommitdiffhomepage
path: root/frontend/src/pages/Settings.tsx
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-14 11:52:56 +0900
committernsfisis <nsfisis@gmail.com>2026-02-14 11:53:08 +0900
commit2889b562e64993482bd13fd806af8ed0865bab8b (patch)
tree39400ac4d994fb33d2c544e7d4b9d98f8ecbd86a /frontend/src/pages/Settings.tsx
parente216c3bc97994b4172d15d52b46d5f6b75f35ea4 (diff)
downloadfeedaka-2889b562e64993482bd13fd806af8ed0865bab8b.tar.gz
feedaka-2889b562e64993482bd13fd806af8ed0865bab8b.tar.zst
feedaka-2889b562e64993482bd13fd806af8ed0865bab8b.zip
refactor: migrate API from GraphQL to REST (TypeSpec/OpenAPI)
Replace the entire GraphQL stack (gqlgen, urql, graphql-codegen) with a TypeSpec → OpenAPI 3.x pipeline using oapi-codegen for Go server stubs and openapi-fetch + openapi-typescript for the frontend client. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'frontend/src/pages/Settings.tsx')
-rw-r--r--frontend/src/pages/Settings.tsx21
1 files changed, 7 insertions, 14 deletions
diff --git a/frontend/src/pages/Settings.tsx b/frontend/src/pages/Settings.tsx
index 9b1e04c..c179fab 100644
--- a/frontend/src/pages/Settings.tsx
+++ b/frontend/src/pages/Settings.tsx
@@ -1,31 +1,24 @@
-import { useQuery } from "urql";
+import { useCallback, useState } from "react";
import { AddFeedForm, FeedList } from "../components";
-import { GetFeedsDocument } from "../graphql/generated/graphql";
export function Settings() {
- const [, refetchFeeds] = useQuery({
- query: GetFeedsDocument,
- });
+ const [refreshKey, setRefreshKey] = useState(0);
- const handleFeedAdded = () => {
- refetchFeeds();
- };
-
- const handleFeedUnsubscribed = () => {
- refetchFeeds();
- };
+ const handleChange = useCallback(() => {
+ setRefreshKey((k) => k + 1);
+ }, []);
return (
<div className="mx-auto max-w-3xl space-y-10">
<section>
- <AddFeedForm onFeedAdded={handleFeedAdded} />
+ <AddFeedForm onFeedAdded={handleChange} />
</section>
<section>
<h2 className="mb-4 text-sm font-semibold uppercase tracking-wide text-stone-900">
Your Feeds
</h2>
- <FeedList onFeedUnsubscribed={handleFeedUnsubscribed} />
+ <FeedList key={refreshKey} onFeedUnsubscribed={handleChange} />
</section>
</div>
);