From f81da0b4ca4740263c783c8380071dd779d0ae91 Mon Sep 17 00:00:00 2001
From: Laszlo Rafael <rlacko99@gmail.com>
Date: Sun, 20 Feb 2022 15:25:55 +0100
Subject: [PATCH] Sort events by date

---
 src/components/pages/Schedule.js | 82 ++++++++++++++++----------------
 1 file changed, 42 insertions(+), 40 deletions(-)

diff --git a/src/components/pages/Schedule.js b/src/components/pages/Schedule.js
index d4dda56..a761560 100644
--- a/src/components/pages/Schedule.js
+++ b/src/components/pages/Schedule.js
@@ -1,4 +1,4 @@
-import 'moment/locale/hu';
+import "moment/locale/hu";
 
 import {
   Accordion,
@@ -7,12 +7,12 @@ import {
   Header,
   Icon,
   Segment,
-} from 'semantic-ui-react';
-import React, { Component } from 'react';
+} from "semantic-ui-react";
+import React, { Component } from "react";
 
-import { connect } from 'react-redux';
-import { getStudentEvents } from '../../actions/statistics';
-import moment from 'moment';
+import { connect } from "react-redux";
+import { getStudentEvents } from "../../actions/statistics";
+import moment from "moment";
 
 class Schedule extends Component {
   // eslint-disable-next-line react/state-in-constructor
@@ -34,32 +34,34 @@ class Schedule extends Component {
     const { activeIndex } = this.state;
 
     const { events } = this.props;
-    const panels = events.map((event) => (
-      <Accordion key={Math.random()}>
-        <Accordion.Title
-          active={activeIndex === event.id}
-          index={event.id}
-          onClick={this.handleClick}
-        >
-          <h2>
-            <Grid>
-              <Grid.Column floated="left" width={5} textAlign="left">
-                <Icon name="calendar alternate outline" color="blue" />{' '}
-                {event.name}
-              </Grid.Column>
-              <Grid.Column floated="right" width={8} textAlign="right">
-                {moment(event.date).locale('hu').format('LLLL')}
-              </Grid.Column>
-            </Grid>
-          </h2>
-        </Accordion.Title>
-        <Accordion.Content active={activeIndex === event.id}>
-          <Segment textAlign="left" style={{ overflowWrap: 'break-word' }}>
-            {event.description}
-          </Segment>
-        </Accordion.Content>
-      </Accordion>
-    ));
+    const panels = events
+      .sort((a, b) => a.date - b.date)
+      .map((event) => (
+        <Accordion key={Math.random()}>
+          <Accordion.Title
+            active={activeIndex === event.id}
+            index={event.id}
+            onClick={this.handleClick}
+          >
+            <h2>
+              <Grid>
+                <Grid.Column floated="left" width={5} textAlign="left">
+                  <Icon name="calendar alternate outline" color="blue" />{" "}
+                  {event.name}
+                </Grid.Column>
+                <Grid.Column floated="right" width={8} textAlign="right">
+                  {moment(event.date).locale("hu").format("LLLL")}
+                </Grid.Column>
+              </Grid>
+            </h2>
+          </Accordion.Title>
+          <Accordion.Content active={activeIndex === event.id}>
+            <Segment textAlign="left" style={{ overflowWrap: "break-word" }}>
+              {event.description}
+            </Segment>
+          </Accordion.Content>
+        </Accordion>
+      ));
 
     return (
       <div>
@@ -68,10 +70,10 @@ class Schedule extends Component {
             as="h1"
             content="KĂŠpzĂŠs alkalmak"
             style={{
-              fontSize: '2em',
-              fontWeight: 'bold',
-              marginBottom: '0.5em',
-              marginTop: '0.5em',
+              fontSize: "2em",
+              fontWeight: "bold",
+              marginBottom: "0.5em",
+              marginTop: "0.5em",
             }}
           />
           <Accordion fluid styled>
@@ -81,10 +83,10 @@ class Schedule extends Component {
             as="h1"
             content="TĂĄbor"
             style={{
-              fontSize: '2em',
-              fontWeight: 'bold',
-              marginBottom: '0.5em',
-              marginTop: '1.5em',
+              fontSize: "2em",
+              fontWeight: "bold",
+              marginBottom: "0.5em",
+              marginTop: "1.5em",
             }}
           />
         </Container>
-- 
GitLab