This is an automated email from the ASF dual-hosted git repository. ganning pushed a commit to branch allen-workshop in repository https://gitbox.apache.org/repos/asf/airavata-portals.git
commit ab151fecb0f8a257b60eec33af02dd471ac0e2db Author: ganning127 <[email protected]> AuthorDate: Fri Jul 25 08:17:25 2025 -0700 add events page for allen workshop --- .../src/components/events/Jul28AllenWorkshop.tsx | 28 ++++++++++++ .../src/components/events/index.tsx | 50 +++++++++++---------- .../src/components/typography/KeyPair.tsx | 51 +++++++++++----------- 3 files changed, 82 insertions(+), 47 deletions(-) diff --git a/airavata-research-portal/src/components/events/Jul28AllenWorkshop.tsx b/airavata-research-portal/src/components/events/Jul28AllenWorkshop.tsx new file mode 100644 index 000000000..4879406af --- /dev/null +++ b/airavata-research-portal/src/components/events/Jul28AllenWorkshop.tsx @@ -0,0 +1,28 @@ +import {Heading, VStack} from "@chakra-ui/react"; +import {KeyPair} from "../typography/KeyPair"; + +export const Jul28AllenWorkshop = () => { + return ( + <> + <Heading fontSize="3xl" lineHeight={1.2}> + 2025 Allen Institute Modeling Software Workshop (July 28-30, 2025) + </Heading> + <VStack gap={1} align="start" mt={2}> + <KeyPair + keyStr="Workshop Details" + valueStr="https://alleninstitute.org/events/2025-modeling-software-workshop" + /> + <KeyPair + keyStr="User Instructions" + valueStr="Cybershuttle Instructions for Allen Workshop.pdf" + href="https://drive.google.com/file/d/1SxGttJkyTTyYxs_9lNPxbabJ2AjDssor/view?usp=sharing" + /> + <KeyPair + keyStr="FAQ" + valueStr="Common Cybershuttle FAQ.pdf" + href="https://drive.google.com/file/d/119Xhc9_yvm20DKulaFEU6k8PNwnWcPow/view?usp=sharing" + /> + </VStack> + </> + ); +}; diff --git a/airavata-research-portal/src/components/events/index.tsx b/airavata-research-portal/src/components/events/index.tsx index 728c2f916..bc1973afc 100644 --- a/airavata-research-portal/src/components/events/index.tsx +++ b/airavata-research-portal/src/components/events/index.tsx @@ -1,32 +1,38 @@ -import { Container, Accordion, Spacer, Span } from "@chakra-ui/react"; -import { Apr11Workshop } from "./Apr11Workshop"; -import { May7Workshop } from "./May7Workshop"; +import {Accordion, Container, Spacer, Span} from "@chakra-ui/react"; +import {Apr11Workshop} from "./Apr11Workshop"; +import {May7Workshop} from "./May7Workshop"; +import {Jul28AllenWorkshop} from "@/components/events/Jul28AllenWorkshop.tsx"; export const Events = () => { return ( - <Container maxW="breakpoint-lg" my={8}> - <Accordion.Root multiple defaultValue={["May 7, 2025"]}> - {events.map((event) => ( - <Accordion.Item key={event.id} value={event.id} mb={8}> - <Accordion.ItemTrigger> - {event.name} <Spacer /> - <Span color="gray.400" fontSize="sm"> - {event.id} - </Span> - <Accordion.ItemIndicator /> - </Accordion.ItemTrigger> + <Container maxW="breakpoint-lg" my={8}> + <Accordion.Root multiple defaultValue={[events[0].id]}> + {events.map((event) => ( + <Accordion.Item key={event.id} value={event.id} mb={8}> + <Accordion.ItemTrigger> + {event.name} <Spacer/> + <Span color="gray.400" fontSize="sm"> + {event.id} + </Span> + <Accordion.ItemIndicator/> + </Accordion.ItemTrigger> - <Accordion.ItemContent> - <Accordion.ItemBody>{event.component()}</Accordion.ItemBody> - </Accordion.ItemContent> - </Accordion.Item> - ))} - </Accordion.Root> - </Container> + <Accordion.ItemContent> + <Accordion.ItemBody>{event.component()}</Accordion.ItemBody> + </Accordion.ItemContent> + </Accordion.Item> + ))} + </Accordion.Root> + </Container> ); }; const events = [ + { + id: "July 28-30, 2025", + name: "2025 Allen Institute Modeling Software Workshop (28-30 July 2025)", + component: Jul28AllenWorkshop + }, { id: "May 7, 2025", name: "Cyberinfrastructure and Services for Science & Engineering Workshop", @@ -36,5 +42,5 @@ const events = [ id: "April 11, 2025", name: "Data-Driven and Large-Scale Modeling in Neuroscience", component: Apr11Workshop, - }, + } ]; diff --git a/airavata-research-portal/src/components/typography/KeyPair.tsx b/airavata-research-portal/src/components/typography/KeyPair.tsx index 5bab6ab0e..e365b53df 100644 --- a/airavata-research-portal/src/components/typography/KeyPair.tsx +++ b/airavata-research-portal/src/components/typography/KeyPair.tsx @@ -1,34 +1,35 @@ -import { Text } from "@chakra-ui/react"; -import { Link } from "@chakra-ui/react"; +import {Link, Text} from "@chakra-ui/react"; export const KeyPair = ({ - keyStr, - valueStr, -}: { + keyStr, + valueStr, + href + }: { keyStr: string; valueStr: string; + href?: string; }) => { - const isLink = valueStr.startsWith("http"); + const isLink = valueStr.startsWith("http") || (href != null); return ( - <Text> - <Text as="span" fontWeight="bold"> - {keyStr}:{" "} - </Text> - - {isLink ? ( - <Link - href={valueStr} - target="_blank" - color="blue.600" - fontWeight="normal" - > - {valueStr} - </Link> - ) : ( - <Text as="span" fontWeight="normal"> - {valueStr} + <Text> + <Text as="span" fontWeight="bold"> + {keyStr}:{" "} </Text> - )} - </Text> + + {isLink ? ( + <Link + href={href} + target="_blank" + color="blue.600" + fontWeight="normal" + > + {valueStr} + </Link> + ) : ( + <Text as="span" fontWeight="normal"> + {valueStr} + </Text> + )} + </Text> ); };
