@@ -2,6 +2,7 @@ import { conform, list, requestIntent, useFieldList, useForm } from "@conform-to
2
2
import { parse } from "@conform-to/zod" ;
3
3
import { Form , useActionData , type MetaFunction } from "@remix-run/react" ;
4
4
import { json , type ActionFunction , type LoaderFunctionArgs } from "@remix-run/server-runtime" ;
5
+ import { tryCatch } from "@trigger.dev/core" ;
5
6
import { Fragment , useEffect , useRef , useState } from "react" ;
6
7
import { redirect , typedjson , useTypedLoaderData } from "remix-typedjson" ;
7
8
import { z } from "zod" ;
@@ -22,19 +23,20 @@ import { InputGroup } from "~/components/primitives/InputGroup";
22
23
import { Label } from "~/components/primitives/Label" ;
23
24
import { NavBar , PageAccessories , PageTitle } from "~/components/primitives/PageHeader" ;
24
25
import { Paragraph } from "~/components/primitives/Paragraph" ;
26
+ import { TextLink } from "~/components/primitives/TextLink" ;
25
27
import { prisma } from "~/db.server" ;
26
28
import { featuresForRequest } from "~/features.server" ;
27
29
import { redirectWithErrorMessage , redirectWithSuccessMessage } from "~/models/message.server" ;
28
30
import { getBillingAlerts , setBillingAlert } from "~/services/platform.v3.server" ;
29
31
import { requireUserId } from "~/services/session.server" ;
30
32
import { formatCurrency } from "~/utils/numberFormatter" ;
31
33
import {
34
+ docsPath ,
32
35
OrganizationParamsSchema ,
33
36
organizationPath ,
34
37
v3BillingAlertsPath ,
35
38
} from "~/utils/pathBuilder" ;
36
39
import { useCurrentPlan } from "../_app.orgs.$organizationSlug/route" ;
37
- import { tryCatch } from "@trigger.dev/core" ;
38
40
39
41
export const meta : MetaFunction = ( ) => {
40
42
return [
@@ -199,10 +201,17 @@ export default function Page() {
199
201
< PageBody scrollable = { true } >
200
202
< MainHorizontallyCenteredContainer >
201
203
< div >
202
- < Header2 spacing > Billing alerts</ Header2 >
203
- < Paragraph spacing variant = "small" >
204
- Receive an email when your compute spend crosses different thresholds.
205
- </ Paragraph >
204
+ < div className = "mb-3 border-b border-grid-dimmed pb-3" >
205
+ < Header2 spacing > Billing alerts</ Header2 >
206
+ < Paragraph variant = "small" >
207
+ Receive an email when your compute spend crosses different thresholds. You can also
208
+ learn how to{ " " }
209
+ < TextLink to = { docsPath ( "how-to-reduce-your-spend" ) } >
210
+ reduce your compute spend
211
+ </ TextLink >
212
+ .
213
+ </ Paragraph >
214
+ </ div >
206
215
< Form method = "post" { ...form . props } >
207
216
< Fieldset >
208
217
< InputGroup fullWidth >
0 commit comments