Fix React Hooks order - move useMemo and useEffect before conditional returns

cgen-c715432288b64226bb95a7b4b0bc467b
This commit is contained in:
Builder.io 2025-11-10 03:24:38 +00:00
parent 2ffc5b2f68
commit ada7c4024f

View file

@ -224,6 +224,39 @@ export default function Admin() {
}
}, [managedProfiles, selectedMemberId]);
useEffect(() => {
(async () => {
try {
setLoadingPosts(true);
const res = await fetch("/api/blog?limit=100");
const data = res.ok ? await res.json() : [];
if (Array.isArray(data)) setBlogPosts(data);
} catch (e) {
console.warn("Failed to load blog posts:", e);
} finally {
setLoadingPosts(false);
}
})();
}, []);
const resolvedBlogPosts = blogPosts.length ? blogPosts : blogSeedPosts;
const selectedMember = useMemo(
() =>
managedProfiles.find((profile) => profile.id === selectedMemberId) ??
null,
[managedProfiles, selectedMemberId],
);
const totalMembers = managedProfiles.length;
const publishedPosts = resolvedBlogPosts.length;
const featuredStudios = studios.length;
const pendingProjectApplications = projectApplications.filter((app) => {
const status = (app.status ?? "").toLowerCase();
return (
status !== "approved" && status !== "completed" && status !== "closed"
);
}).length;
if (loading) {
return (
<LoadingScreen
@ -276,39 +309,6 @@ export default function Admin() {
);
}
const resolvedBlogPosts = blogPosts.length ? blogPosts : blogSeedPosts;
const selectedMember = useMemo(
() =>
managedProfiles.find((profile) => profile.id === selectedMemberId) ??
null,
[managedProfiles, selectedMemberId],
);
const totalMembers = managedProfiles.length;
const publishedPosts = resolvedBlogPosts.length;
const featuredStudios = studios.length;
const pendingProjectApplications = projectApplications.filter((app) => {
const status = (app.status ?? "").toLowerCase();
return (
status !== "approved" && status !== "completed" && status !== "closed"
);
}).length;
useEffect(() => {
(async () => {
try {
setLoadingPosts(true);
const res = await fetch("/api/blog?limit=100");
const data = res.ok ? await res.json() : [];
if (Array.isArray(data)) setBlogPosts(data);
} catch (e) {
console.warn("Failed to load blog posts:", e);
} finally {
setLoadingPosts(false);
}
})();
}, []);
return (
<>
<SEO