This is an automated email from the ASF dual-hosted git repository.
lahirujayathilake pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airavata-portals.git
The following commit(s) were added to refs/heads/main by this push:
new f2b9d014b add events page for allen workshop (#29)
f2b9d014b is described below
commit f2b9d014b80ebe3d30d7d6728801198dfa40a0eb
Author: Ganning Xu <[email protected]>
AuthorDate: Fri Jul 25 13:54:59 2025 -0700
add events page for allen workshop (#29)
* add events page for allen workshop
* update instructions
---
.../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..05c52f75a
--- /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/1kwf6TwAysGFl55svrsI-NPOoX_hBHaQJ/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>
);
};