diff --git a/app/routes/group.$synonymId.tsx b/app/routes/group.$synonymId.tsx new file mode 100644 index 0000000000..910d92ffaa --- /dev/null +++ b/app/routes/group.$synonymId.tsx @@ -0,0 +1,87 @@ +/*! + * Copyright © 2023 United States Government as represented by the + * Administrator of the National Aeronautics and Space Administration. + * All Rights Reserved. + * + * SPDX-License-Identifier: Apache-2.0 + */ +import type { LoaderFunctionArgs } from '@remix-run/node' +import { Link, useLoaderData } from '@remix-run/react' +import { Icon } from '@trussworks/react-uswds' + +import type { SynonymGroup } from './synonyms/synonyms.lib' +import { + getAllSynonymMembers, + getSynonymById, +} from './synonyms/synonyms.server' +import { ToolbarButtonGroup } from '~/components/ToolbarButtonGroup' +import { PlainTextBody } from '~/components/circularDisplay/Body' +import { FrontMatter } from '~/components/circularDisplay/FrontMatter' +import { feature } from '~/lib/env.server' + +export async function loader({ + params: { synonymId }, + request: { url }, +}: LoaderFunctionArgs) { + if (!feature('SYNONYMS')) throw new Response(null, { status: 403 }) + if (!synonymId) throw new Response('Id is required', { status: 400 }) + + const { searchParams } = new URL(url) + const view = searchParams.get('view') || 'group' + const limit = searchParams.get('limit') || 20 + const page = searchParams.get('page') || 1 + const synonym = (await getSynonymById(synonymId)) as SynonymGroup + const members = await getAllSynonymMembers(synonym.eventIds) + + return { members, eventIds: synonym.eventIds, view, limit, page } +} + +export default function Group() { + const { members, eventIds, view, limit, page } = + useLoaderData() + const searchString = `?view=${view}&limit=${limit}&page=${page}` + + return ( + <> + + +
+ +
+       Back + +
+

{`Group ${eventIds.join(', ')}`}

+ {members.map((circular) => ( +
+
+ + + {circular.subject} + + +
+
+ +
+ +
+
+
+ ))} + + ) +} diff --git a/app/routes/group/route.tsx b/app/routes/group/route.tsx index eb41232cb9..d98fd4b3f4 100644 --- a/app/routes/group/route.tsx +++ b/app/routes/group/route.tsx @@ -8,12 +8,18 @@ import { Outlet } from '@remix-run/react' import { GridContainer } from '@trussworks/react-uswds' +import { feature } from '~/lib/env.server' import type { BreadcrumbHandle } from '~/root/Title' export const handle: BreadcrumbHandle = { breadcrumb: 'Circulars', } +export function loader() { + if (!feature('SYNONYMS')) throw new Response(null, { status: 403 }) + return null +} + export default function () { return (