diff --git a/frontend/src/components/resources/alerter/index.tsx b/frontend/src/components/resources/alerter/index.tsx index 1749c1a48..75179a7c5 100644 --- a/frontend/src/components/resources/alerter/index.tsx +++ b/frontend/src/components/resources/alerter/index.tsx @@ -14,7 +14,7 @@ import { Input } from "@ui/input"; import { AlarmClock, AlertTriangle } from "lucide-react"; import { useState } from "react"; import { DataTable } from "@ui/data-table"; -import { Link } from "react-router-dom"; +import { Link, useNavigate } from "react-router-dom"; import { Card, CardDescription, CardHeader, CardTitle } from "@ui/card"; import { AlerterConfig, DeleteAlerter } from "./config"; import { CopyResource, ResourceLink } from "@components/util"; @@ -44,11 +44,13 @@ export const AlerterComponents: RequiredResourceComponents = { }, Actions: [], Table: ({ search }) => { + const nav = useNavigate(); const tags = useTagsFilter(); const alerters = useRead("ListAlerters", {}).data; const searchSplit = search?.split(" ") || []; return ( nav(`/alerters/${alerter.id}`)} data={ alerters?.filter((resource) => tags.every((tag) => resource.tags.includes(tag)) && diff --git a/frontend/src/components/resources/build/table.tsx b/frontend/src/components/resources/build/table.tsx index fa0d3d499..90303ab21 100644 --- a/frontend/src/components/resources/build/table.tsx +++ b/frontend/src/components/resources/build/table.tsx @@ -3,13 +3,16 @@ import { useRead } from "@lib/hooks"; import { DataTable } from "@ui/data-table"; import { fmt_date_with_minutes, fmt_version } from "@lib/formatting"; import { ResourceComponents } from ".."; +import { useNavigate } from "react-router-dom"; export const BuildTable = ({ search }: { search?: string }) => { + const nav = useNavigate(); const builds = useRead("ListBuilds", {}).data; const tags = useTagsFilter(); const searchSplit = search?.split(" ") || []; return ( nav(`/builds/${build.id}`)} data={ builds?.filter((resource) => tags.every((tag) => resource.tags.includes(tag)) && diff --git a/frontend/src/components/resources/builder/index.tsx b/frontend/src/components/resources/builder/index.tsx index 68f57e399..d33f53761 100644 --- a/frontend/src/components/resources/builder/index.tsx +++ b/frontend/src/components/resources/builder/index.tsx @@ -16,7 +16,7 @@ import { } from "@ui/select"; import { Cloud, Bot, Factory, AlertTriangle } from "lucide-react"; import { useState } from "react"; -import { Link } from "react-router-dom"; +import { Link, useNavigate } from "react-router-dom"; import { BuilderConfig, DeleteBuilder } from "./config"; import { CopyResource, ResourceLink } from "@components/util"; @@ -57,11 +57,13 @@ export const BuilderComponents: RequiredResourceComponents = { ), }, Table: ({ search }) => { + const nav = useNavigate(); const tags = useTagsFilter(); const builders = useRead("ListBuilders", {}).data; const searchSplit = search?.split(" ") || []; return ( nav(`/builders/${builder.id}`)} data={ builders?.filter((resource) => tags.every((tag) => resource.tags.includes(tag)) && diff --git a/frontend/src/components/resources/deployment/table.tsx b/frontend/src/components/resources/deployment/table.tsx index 3012e1c9f..209a651b9 100644 --- a/frontend/src/components/resources/deployment/table.tsx +++ b/frontend/src/components/resources/deployment/table.tsx @@ -8,6 +8,7 @@ import { text_color_class_by_intention, } from "@lib/color"; import { snake_case_to_upper_space_case } from "@lib/formatting"; +import { useNavigate } from "react-router-dom"; export const DeploymentTable = ({ deployments, @@ -16,13 +17,16 @@ export const DeploymentTable = ({ deployments: Types.DeploymentListItem[] | undefined; search: string | undefined; }) => { + const nav = useNavigate(); const tags = useTagsFilter(); const searchSplit = search?.split(" ") || []; return ( nav(`/deployments/${deployment.id}`)} data={ deployments?.filter((resource) => - tags.every((tag) => resource.tags.includes(tag)) && searchSplit.length > 0 + tags.every((tag) => resource.tags.includes(tag)) && + searchSplit.length > 0 ? searchSplit.every((search) => resource.name.includes(search)) : true ) ?? [] diff --git a/frontend/src/components/resources/procedure/table.tsx b/frontend/src/components/resources/procedure/table.tsx index 26abc327a..44f9da85a 100644 --- a/frontend/src/components/resources/procedure/table.tsx +++ b/frontend/src/components/resources/procedure/table.tsx @@ -2,13 +2,16 @@ import { useRead } from "@lib/hooks"; import { DataTable } from "@ui/data-table"; import { ProcedureComponents } from "."; import { TagsWithBadge, useTagsFilter } from "@components/tags"; +import { useNavigate } from "react-router-dom"; export const ProcedureTable = ({ search }: { search: string | undefined }) => { + const nav = useNavigate(); const tags = useTagsFilter(); const procedures = useRead("ListProcedures", {}).data; const searchSplit = search?.split(" ") || []; return ( nav(`/procedures/${procedure.id}`)} data={ procedures?.filter((resource) => tags.every((tag) => resource.tags.includes(tag)) && diff --git a/frontend/src/components/resources/repo/index.tsx b/frontend/src/components/resources/repo/index.tsx index 0ae501d5f..cb6b41495 100644 --- a/frontend/src/components/resources/repo/index.tsx +++ b/frontend/src/components/resources/repo/index.tsx @@ -4,7 +4,7 @@ import { RequiredResourceComponents } from "@types"; import { Card, CardDescription, CardHeader, CardTitle } from "@ui/card"; import { DataTable } from "@ui/data-table"; import { AlertTriangle, GitBranch } from "lucide-react"; -import { Link } from "react-router-dom"; +import { Link, useNavigate } from "react-router-dom"; import { DeleteRepo, RepoConfig } from "./config"; import { CopyResource, ResourceLink } from "@components/util"; import { useState } from "react"; @@ -36,11 +36,13 @@ export const RepoComponents: RequiredResourceComponents = { ), }, Table: ({ search }) => { + const nav = useNavigate(); const tags = useTagsFilter(); const repos = useRead("ListRepos", {}).data; const searchSplit = search?.split(" ") || []; return ( nav(`/repos/${repo.id}`)} data={ repos?.filter((resource) => tags.every((tag) => resource.tags.includes(tag)) && diff --git a/frontend/src/components/resources/server/table.tsx b/frontend/src/components/resources/server/table.tsx index b0d8d0992..e82d7ef0b 100644 --- a/frontend/src/components/resources/server/table.tsx +++ b/frontend/src/components/resources/server/table.tsx @@ -3,14 +3,16 @@ import { useRead } from "@lib/hooks"; import { DataTable } from "@ui/data-table"; import { ServerComponents } from "."; import { ResourceComponents } from ".."; +import { useNavigate } from "react-router-dom"; export const ServerTable = ({ search }: { search: string | undefined }) => { + const nav = useNavigate(); const servers = useRead("ListServers", {}).data; const tags = useTagsFilter(); const searchSplit = search?.split(" ") || []; return ( nav(`/servers/${id}`)} + onRowClick={(server) => nav(`/servers/${server.id}`)} data={ servers?.filter((resource) => tags.every((tag) => resource.tags.includes(tag)) &&