Skip to content

Commit f2ea6df

Browse files
committed
Waitpoint token filtering
1 parent 1e42c4e commit f2ea6df

2 files changed

Lines changed: 22 additions & 5 deletions

File tree

apps/webapp/app/presenters/v3/WaitpointTokenListPresenter.server.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ type Result =
4646
previous: string | undefined;
4747
};
4848
hasFilters: boolean;
49+
hasAnyTokens: boolean;
4950
filters: WaitpointSearchParams;
5051
}
5152
| {
@@ -58,6 +59,7 @@ type Result =
5859
previous: undefined;
5960
};
6061
hasFilters: false;
62+
hasAnyTokens: false;
6163
filters: undefined;
6264
};
6365

@@ -87,6 +89,7 @@ export class WaitpointTokenListPresenter extends BasePresenter {
8789
previous: undefined,
8890
},
8991
hasFilters: false,
92+
hasAnyTokens: false,
9093
filters: undefined,
9194
};
9295
}
@@ -242,6 +245,20 @@ export class WaitpointTokenListPresenter extends BasePresenter {
242245
? tokens.slice(1, pageSize + 1)
243246
: tokens.slice(0, pageSize);
244247

248+
let hasAnyTokens = tokensToReturn.length > 0;
249+
if (!hasAnyTokens) {
250+
const firstToken = await this._replica.waitpoint.findFirst({
251+
where: {
252+
environmentId: environment.id,
253+
type: "MANUAL",
254+
},
255+
});
256+
257+
if (firstToken) {
258+
hasAnyTokens = true;
259+
}
260+
}
261+
245262
return {
246263
success: true,
247264
tokens: tokensToReturn.map((token) => ({
@@ -262,6 +279,7 @@ export class WaitpointTokenListPresenter extends BasePresenter {
262279
previous,
263280
},
264281
hasFilters,
282+
hasAnyTokens,
265283
filters: {
266284
id,
267285
statuses: statuses?.length ? statuses : undefined,

apps/webapp/app/routes/_app.orgs.$organizationSlug.projects.$projectParam.env.$envParam.waitpoints.tokens/route.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import upgradeForWaitpointsPath from "~/assets/images/waitpoints-dashboard.png";
21
import { BookOpenIcon } from "@heroicons/react/20/solid";
32
import { Outlet, useParams, type MetaFunction } from "@remix-run/react";
43
import { type LoaderFunctionArgs } from "@remix-run/server-runtime";
@@ -8,6 +7,7 @@ import { NoWaitpointTokens } from "~/components/BlankStatePanels";
87
import { MainCenteredContainer, PageBody, PageContainer } from "~/components/layout/AppLayout";
98
import { ListPagination } from "~/components/ListPagination";
109
import { LinkButton } from "~/components/primitives/Buttons";
10+
import { CopyableText } from "~/components/primitives/CopyableText";
1111
import { DateTime } from "~/components/primitives/DateTime";
1212
import { NavBar, PageAccessories, PageTitle } from "~/components/primitives/PageHeader";
1313
import { Paragraph } from "~/components/primitives/Paragraph";
@@ -39,8 +39,6 @@ import { findEnvironmentBySlug } from "~/models/runtimeEnvironment.server";
3939
import { WaitpointTokenListPresenter } from "~/presenters/v3/WaitpointTokenListPresenter.server";
4040
import { requireUserId } from "~/services/session.server";
4141
import { docsPath, EnvironmentParamSchema, v3WaitpointTokenPath } from "~/utils/pathBuilder";
42-
import { determineEngineVersion } from "~/v3/engineVersion.server";
43-
import { CopyableText } from "~/components/primitives/CopyableText";
4442

4543
export const meta: MetaFunction = () => {
4644
return [
@@ -103,7 +101,8 @@ export const loader = async ({ request, params }: LoaderFunctionArgs) => {
103101
};
104102

105103
export default function Page() {
106-
const { success, tokens, pagination, hasFilters, filters } = useTypedLoaderData<typeof loader>();
104+
const { success, tokens, pagination, hasFilters, hasAnyTokens, filters } =
105+
useTypedLoaderData<typeof loader>();
107106

108107
const organization = useOrganization();
109108
const project = useProject();
@@ -124,7 +123,7 @@ export default function Page() {
124123
</PageAccessories>
125124
</NavBar>
126125
<PageBody scrollable={false}>
127-
{!hasFilters && tokens.length === 0 ? (
126+
{!hasAnyTokens ? (
128127
<MainCenteredContainer className="max-w-md">
129128
<NoWaitpointTokens />
130129
</MainCenteredContainer>

0 commit comments

Comments
 (0)