network-resurrector/src/features/about/releaseNotes/ReleaseNotesContainer.js

37 lines
968 B
JavaScript
Raw Normal View History

2023-03-25 12:57:51 +02:00
import React, { useState, useEffect } from "react";
2023-03-26 22:36:26 +03:00
import PropTypes from "prop-types";
2023-03-25 12:57:51 +02:00
import ReleaseNotesList from "./ReleaseNotesList";
2023-03-26 22:36:26 +03:00
import TimelineComponent from "../timeline/TimelineComponent";
2023-04-15 00:53:11 +03:00
import { routes, get } from "../../../utils/api";
2023-03-25 01:16:11 +02:00
2023-03-26 22:36:26 +03:00
const sort = releases =>
releases.sort((a, b) => new Date(b.date) - new Date(a.date));
const ReleaseNotesContainer = ({ view }) => {
2023-03-25 12:57:51 +02:00
const [state, setState] = useState({ data: [], loaded: false });
useEffect(() => {
if (state.loaded) return;
2023-04-15 00:53:11 +03:00
get(routes.releaseNotes, {
onCompleted: data => setState({ data, loaded: true })
2023-03-25 12:57:51 +02:00
});
2023-04-15 00:53:11 +03:00
}, [state.loaded]);
2023-03-25 12:57:51 +02:00
2023-03-26 22:36:26 +03:00
return (
<>
{state.loaded &&
(view === "timeline" ? (
<TimelineComponent releases={sort(state.data)} />
) : (
<ReleaseNotesList releases={sort(state.data)} />
))}
</>
);
};
ReleaseNotesContainer.propTypes = {
view: PropTypes.string
2023-03-25 01:16:11 +02:00
};
export default ReleaseNotesContainer;