This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git

commit 9dc8e63111d4e6c679cd42c8775bdc94f8bcb0ac
Author: Lari Hotari <[email protected]>
AuthorDate: Mon Oct 28 10:33:31 2024 +0200

    Order events by start date, don't add link if it's missing
---
 data/events.ts                                  |  8 +++----
 src/components/pages/EventsPage/Cards/Cards.tsx | 30 ++++++++++++++++++++-----
 2 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/data/events.ts b/data/events.ts
index 24065e8a1af2..03c52a94a31d 100644
--- a/data/events.ts
+++ b/data/events.ts
@@ -30,15 +30,15 @@ export const resources: Record<Category, Resource[]> = {
       startDate: "2024-05-14", // year-month-day
     },
     {
-      title: "Pulsar Summit North America 2024",
-      description: "Comming soon",
-      link: "",
+      title: "Data Streaming Summit 2024",
+      description: "The Data Streaming Summit 2024 is taking place on October 
28-29, 2024 Grand Hyatt SFO.",
+      link: "https://datastreaming-summit.org/";,
       displayDate: "October 29th, 2024",
       startDate: "2024-10-29", // year-month-day
     },
     {
       title: "Pulsar Summit Asia 2024",
-      description: "Comming soon",
+      description: "",
       link: "",
       displayDate: "November 22nd, 2024",
       startDate: "2024-11-22", // year-month-day
diff --git a/src/components/pages/EventsPage/Cards/Cards.tsx 
b/src/components/pages/EventsPage/Cards/Cards.tsx
index 6103b772acce..70caffd1da7b 100644
--- a/src/components/pages/EventsPage/Cards/Cards.tsx
+++ b/src/components/pages/EventsPage/Cards/Cards.tsx
@@ -4,13 +4,28 @@ import s from './Cards.module.css';
 import * as data from '@site/data/events';
 
 const Card: React.FC<data.Resource> = (props) => {
-  return (
-    <a href={props.link} className={s.Card}>
+  const content = (
+    <>
       {props.displayDate && <p>{props.displayDate}</p>}
-      {props.description && <p>{props.description}</p>}
       <h3>{props.title}</h3>
-      <img src={useBaseUrl('/img/goto.svg')} />
+      {props.description && <p>{props.description}</p>}
+      {props.link && <img src={useBaseUrl('/img/goto.svg')} />}
+    </>
+  );
+
+  return props.link ? (
+    <a 
+      href={props.link} 
+      className={s.Card}
+      target="_blank"
+      rel="noopener noreferrer"
+    >
+      {content}
     </a>
+  ) : (
+    <div className={s.Card}>
+      {content}
+    </div>
   );
 };
 
@@ -27,9 +42,14 @@ const Cards: React.FC<CardsProps> = (props) => {
     );
   }
 
+  const resources = props.resources.sort((a, b) => {
+    if (!a.startDate || !b.startDate) return 0;
+    return b.startDate.localeCompare(a.startDate, 'en', { sensitivity: 'base' 
});
+  });
+
   return (
     <section className={s.Cards}>
-      {props.resources.map((props, idx) => (
+      {resources.map((props, idx) => (
         <Card key={idx} {...props} />
       ))}
     </section>

Reply via email to