diff --git a/app/routes/group.$synonymId.tsx b/app/routes/group.$synonymId.tsx index 910d92ffaa..6be792323d 100644 --- a/app/routes/group.$synonymId.tsx +++ b/app/routes/group.$synonymId.tsx @@ -7,7 +7,8 @@ */ import type { LoaderFunctionArgs } from '@remix-run/node' import { Link, useLoaderData } from '@remix-run/react' -import { Icon } from '@trussworks/react-uswds' +import { Button, Icon } from '@trussworks/react-uswds' +import { useRef, useState } from 'react' import type { SynonymGroup } from './synonyms/synonyms.lib' import { @@ -40,6 +41,18 @@ export default function Group() { const { members, eventIds, view, limit, page } = useLoaderData() const searchString = `?view=${view}&limit=${limit}&page=${page}` + const detailsRef = useRef>() + const [allOpen, setAllOpen] = useState(false) + const buttonText = allOpen ? 'Close' : 'Open' + + const toggleDetails = () => { + setAllOpen(!allOpen) + if (detailsRef.current) { + detailsRef.current.forEach((details) => { + details.open = !allOpen + }) + } + } return ( <> @@ -56,11 +69,17 @@ export default function Group() {       Back + +

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

- {members.map((circular) => ( -
-
+ +
(detailsRef.current = el?.querySelectorAll('details'))}> + {members.map((circular) => ( +
{circular.subject} @@ -80,8 +99,8 @@ export default function Group() {
-
- ))} + ))} + ) }