diff --git a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsFilter.stories.tsx b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsFilter.stories.tsx index 246d5af875..1761379a15 100644 --- a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsFilter.stories.tsx +++ b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsFilter.stories.tsx @@ -19,6 +19,7 @@ const defaultFilterProps = getDefaultFilterProps< menus: { user: MockMenu, provider: MockMenu, + client: MockMenu, }, }); @@ -47,6 +48,7 @@ export const WithQuery: Story = { menus: { user: MockMenu, provider: MockMenu, + client: MockMenu, }, used: true, }), @@ -59,6 +61,7 @@ export const Loading: Story = { menus: { user: { ...MockMenu, isInitializing: true }, provider: MockMenu, + client: MockMenu, }, }, }; diff --git a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsFilter.tsx b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsFilter.tsx index 339254966f..937c43636b 100644 --- a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsFilter.tsx +++ b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsFilter.tsx @@ -5,10 +5,14 @@ import { type useFilter, } from "#/components/Filter/Filter"; import { type UserFilterMenu, UserMenu } from "#/components/Filter/UserFilter"; +import { + ClientFilter, + type ClientFilterMenu, +} from "../RequestLogsPage/RequestLogsFilter/ClientFilter"; import { ProviderFilter, type ProviderFilterMenu, -} from "#/pages/AIBridgePage/RequestLogsPage/RequestLogsFilter/ProviderFilter"; +} from "../RequestLogsPage/RequestLogsFilter/ProviderFilter"; interface ListSessionsFilterProps { filter: ReturnType; @@ -16,6 +20,7 @@ interface ListSessionsFilterProps { menus: { user: UserFilterMenu; provider: ProviderFilterMenu; + client: ClientFilterMenu; }; } @@ -44,8 +49,7 @@ export const ListSessionsFilter: FC = ({ <> - {/* TODO: add client filter */} - {/* */} + } /> diff --git a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPage.tsx b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPage.tsx index d8bc298cb6..b6ffb1d601 100644 --- a/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPage.tsx +++ b/site/src/pages/AIBridgePage/ListSessionsPage/ListSessionsPage.tsx @@ -8,6 +8,7 @@ import { usePaginatedQuery } from "#/hooks/usePaginatedQuery"; import { useDashboard } from "#/modules/dashboard/useDashboard"; import { RequirePermission } from "#/modules/permissions/RequirePermission"; import { pageTitle } from "#/utils/page"; +import { useClientFilterMenu } from "../RequestLogsPage/RequestLogsFilter/ClientFilter"; import { useProviderFilterMenu } from "../RequestLogsPage/RequestLogsFilter/ProviderFilter"; import { ListSessionsPageView } from "./ListSessionsPageView"; @@ -56,6 +57,15 @@ const AISessionListPage: FC = () => { }), }); + const clientMenu = useClientFilterMenu({ + value: filter.values.client, + onChange: (option) => + filter.update({ + ...filter.values, + client: option?.value, + }), + }); + return ( {pageTitle("Sessions", "AI Bridge")} @@ -76,6 +86,7 @@ const AISessionListPage: FC = () => { menus: { user: userMenu, provider: providerMenu, + client: clientMenu, }, }} />