added FeaturedEventAnnouncements component

This commit is contained in:
srgooglo 2022-10-20 11:54:29 +02:00
parent 14bc1a1d6c
commit 819de5c163
2 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,48 @@
import React from "react"
import { Icons } from "components/Icons"
import Announcement from "../FeaturedEventAnnouncement"
import "./index.less"
export default React.memo((props) => {
const [featuredEvents, setFeaturedEvents] = React.useState([])
const fetchFeaturedEvents = React.useCallback(async () => {
let { data } = await app.api.customRequest("main", {
url: "/featured_events",
method: "GET"
}).catch((err) => {
console.error(err)
app.message.error(`Failed to fetch featured events`)
return {
data: null
}
})
if (data) {
// parse announcement data
data = data.map((item) => {
try {
item.announcement = JSON.parse(item.announcement)
} catch (error) {
console.error(error)
app.message.error(`Failed to parse announcement data`)
}
return item
})
setFeaturedEvents(data)
}
}, [])
React.useEffect(() => {
fetchFeaturedEvents()
}, [])
return <div className="featuredEvents">
{featuredEvents.map((event, index) => <Announcement index={index} data={event.announcement} />)}
</div>
})

View File

@ -0,0 +1,8 @@
.featuredEvents {
display: flex;
flex-direction: column;
.featuredEvent {
margin-bottom: 20px;
}
}