@@ -1,6 +1,6 @@
11import Head from "next/head";
22import Link from "next/link";
3−import { getPage } from "../../lib/lib";
3+import { getPage, getAllPosts } from "../../lib/lib";
44import { join } from "path";
55import CopyLink from "../../components/CopyLink";
66import {
@@ -16,7 +16,7 @@ import MetadataBlock from "../../components/gateway/MetadataBlock";
1616import MetadataLink from "../../components/gateway/MetadataLink";
1717import Description from "../../components/gateway/Description";
1818
19−const ApplicationPage = ({ data, markdown, params }) => {
19+const ApplicationPage = ({ data, markdown, organisation, params }) => {
2020 const { application } = params;
2121 if (!ob.isValidPatp(application[0])) {
2222 return <Gateway404 type="application" />;
@@ -29,6 +29,31 @@ const ApplicationPage = ({ data, markdown, params }) => {
2929 data.title
3030 }.png?${reqParams.join("&")}`;
3131
32+ let devLink;
33+
34+ if (organisation) {
35+ devLink = (
36+ <MetadataLink
37+ title="Developer"
38+ href={`/organizations/${organisation.slug}`}
39+ content={organisation.title}
40+ />
41+ );
42+ } else {
43+ devLink =
44+ ob.isValidPatp(data?.developer || "") && data?.developer.length <= 14 ? (
45+ <MetadataLink
46+ title="Developer"
47+ href={`/ids/${data.developer}`}
48+ content={data.developer}
49+ />
50+ ) : (
51+ <MetadataBlock
52+ title="Developer"
53+ content={data.developer ? data.developer : "Unknown"}
54+ />
55+ );
56+ }
3257 return (
3358 <Container>
3459 <Head>
@@ -76,19 +101,7 @@ const ApplicationPage = ({ data, markdown, params }) => {
76101 }
77102 />
78103 )}
79− {ob.isValidPatp(data?.developer || "") &&
80− data?.developer.length <= 14 ? (
81− <MetadataLink
82− title="Developer"
83− href={`/ids/${data.developer}`}
84− content={data.developer}
85− />
86− ) : (
87− <MetadataBlock
88− title="Developer"
89− content={data.developer ? data.developer : "Unknown"}
90− />
91− )}
104+ {devLink}
92105 <CopyLink
93106 className="basis-1/2 sm:basis-1/4"
94107 content={data.shortcode ? data.shortcode : data.title}
@@ -119,7 +132,9 @@ const ApplicationPage = ({ data, markdown, params }) => {
119132 urbit.org?
120133 </p>
121134 <Link href="/applications/submit" passHref>
122− <a className="font-bold text-green-400">Submit your application</a>
135+ <a className="font-bold text-green-400">
136+ Submit your application
137+ </a>
123138 </Link>
124139 </div>
125140 <Link href="/" passHref>
@@ -145,6 +160,11 @@ export const getServerSideProps = async ({ params, res }) => {
145160 )
146161 ) || { data: {}, content: "" };
147162
163+ const organisation =
164+ getAllPosts(["title", "slug", "ships"], "organizations").filter((e) =>
165+ e.ships.includes(params.application?.[0])
166+ )[0] || null;
167+
148168 const markdown =
149169 content !== ""
150170 ? JSON.stringify(Markdown.parse({ post: { content } }))
@@ -161,6 +181,7 @@ export const getServerSideProps = async ({ params, res }) => {
161181 props: {
162182 data,
163183 markdown,
184+ organisation,
164185 params,
165186 },
166187 };