mirror of
https://github.com/agentrhq/authsome.git
synced 2026-09-19 01:34:19 +08:00
fix: keep connections page unfiltered after detail navigation
This commit is contained in:
@@ -1,33 +1,19 @@
|
||||
"use client";
|
||||
|
||||
import { Suspense } from "react";
|
||||
import { useSearchParams } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
|
||||
import { ConnectionsView } from "@/components/authsome-dashboard";
|
||||
import { fetchDashboard } from "@/lib/authsome-api";
|
||||
|
||||
function ConnectionsContent() {
|
||||
const searchParams = useSearchParams();
|
||||
const providerFilter = searchParams.get("provider") ?? "";
|
||||
export default function ConnectionsPage() {
|
||||
const { data, mutate } = useSWR("authsome-dashboard", fetchDashboard);
|
||||
if (!data) return null;
|
||||
return (
|
||||
<ConnectionsView
|
||||
connections={data.connections}
|
||||
globalConnections={data.globalConnections}
|
||||
initialFilter={providerFilter}
|
||||
isAdmin={data.account.isAdmin}
|
||||
key={providerFilter}
|
||||
onRefresh={() => void mutate()}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export default function ConnectionsPage() {
|
||||
return (
|
||||
<Suspense fallback={null}>
|
||||
<ConnectionsContent />
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1049,7 +1049,7 @@ function ProviderCard({ onNamedLogin, provider }: { onNamedLogin: () => void; pr
|
||||
) : (
|
||||
<form action={`/api/auth/providers/${provider.name}/connect`} method="post">
|
||||
<input name="connection" type="hidden" value="default" />
|
||||
<input name="return_url" type="hidden" value={`/connections?provider=${provider.name}`} />
|
||||
<input name="return_url" type="hidden" value="/connections" />
|
||||
<Button className="w-full" type="submit">
|
||||
<LogIn />
|
||||
Connect
|
||||
@@ -1100,7 +1100,7 @@ function NamedConnectionDialog({
|
||||
method="post"
|
||||
onSubmit={handleSubmit}
|
||||
>
|
||||
<input name="return_url" type="hidden" value={provider ? `/connections?provider=${provider.name}` : NEXT_URL} />
|
||||
<input name="return_url" type="hidden" value="/connections" />
|
||||
<label className="grid gap-2 text-sm">
|
||||
<span className="text-muted-foreground">Connection name</span>
|
||||
<Input
|
||||
@@ -1135,15 +1135,7 @@ export function ConnectionsView({
|
||||
onRefresh: () => void;
|
||||
}) {
|
||||
const router = useRouter();
|
||||
const [query, setQuery] = useState(() => {
|
||||
if (initialFilter) {
|
||||
return initialFilter;
|
||||
}
|
||||
if (typeof window === "undefined") {
|
||||
return "";
|
||||
}
|
||||
return new URLSearchParams(window.location.search).get("provider") ?? "";
|
||||
});
|
||||
const [query, setQuery] = useState(initialFilter ?? "");
|
||||
const filteredConnections = useMemo(() => {
|
||||
const normalized = query.trim().toLowerCase();
|
||||
if (!normalized) return connections;
|
||||
@@ -1657,7 +1649,7 @@ export function ProviderDetailBody({ data, onRefresh }: { data: ProviderDetail;
|
||||
) : (
|
||||
<form action={`/api/auth/providers/${data.provider.name}/connect`} method="post">
|
||||
<input name="connection" type="hidden" value="default" />
|
||||
<input name="return_url" type="hidden" value={`/connections?provider=${data.provider.name}`} />
|
||||
<input name="return_url" type="hidden" value="/connections" />
|
||||
<Button type="submit">
|
||||
<LogIn />
|
||||
New connection
|
||||
|
||||
Reference in New Issue
Block a user