@@ -19,8 +19,9 @@ import Gateway404 from "../../components/gateway/Gateway404";
1919import MetadataBlock from "../../components/gateway/MetadataBlock";
2020import MetadataLink from "../../components/gateway/MetadataLink";
2121import Description from "../../components/gateway/Description";
22+import { getGrantByShortcode } from "../../lib/lib";
2223
23−const ApplicationPage = ({ data, markdown, organisation, search, params }) => {
24+const ApplicationPage = ({ data, markdown, organisation, matchedGrant, search, params }) => {
2425 const { application } = params;
2526 if (!ob.isValidPatp(application[0])) {
2627 return <Gateway404 type="application" />;
@@ -83,7 +84,7 @@ const ApplicationPage = ({ data, markdown, organisation, search, params }) => {
8384 item="Application"
8485 />
8586
86− <div className="flex flex-wrap md:flex-nowrap justify-between">
87+ <div className="flex flex-wrap justify-between">
8788 <MetadataBlock
8889 title="License"
8990 content={data.license ? data.license : "Unknown"}
@@ -102,16 +103,20 @@ const ApplicationPage = ({ data, markdown, organisation, search, params }) => {
102103 className="basis-1/2 sm:basis-1/4"
103104 content={data.shortcode ? data.shortcode : data.title}
104105 />
106+ {matchedGrant && <div className="basis-full flex flex-col space-y-1">
107+ <p className="font-semibold text-wall-400">Grant Proposal</p>
108+ <Link href={`/grants/${matchedGrant}`} passHref>
109+ <a className="text-green-400 font-medium">urbit.org/grants/{matchedGrant}
110+ </a>
111+ </Link>
112+ </div>}
105113 </div>
106−
107114 <Description
108115 description={data.description}
109116 fallback="An application on Urbit."
110117 markdown={markdown}
111118 />
112119
113− <hr className="text-white" />
114−
115120 <div class="bg-wall-100 py-4 px-6 border-2 border-wall-200 rounded-xl">
116121 <p class="text-sm text-wall-400">
117122 <span class="font-bold">Disclaimer:</span> Applications may not be
@@ -175,6 +180,7 @@ export const getServerSideProps = async ({ params, res }) => {
175180 ? JSON.stringify(Markdown.parse({ post: { content } }))
176181 : null;
177182
183+ const matchedGrant = getGrantByShortcode(params.application);
178184 if (!data.title) {
179185 data = {
180186 title: params.application?.join("/"),
@@ -187,6 +193,7 @@ export const getServerSideProps = async ({ params, res }) => {
187193 data,
188194 markdown,
189195 organisation,
196+ matchedGrant,
190197 params,
191198 },
192199 };