Skip to content

Commit 81831aa

Browse files
Restructuring Dataset page
1 parent 3a056b5 commit 81831aa

File tree

2 files changed

+44
-42
lines changed

2 files changed

+44
-42
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { useEffect, useState } from "react";
2+
import { Helmet } from "react-helmet-async";
3+
4+
// Button to download the croissant description of a dataset
5+
const CroissantButton = ({ url }) => {
6+
const [jsonData, setJsonData] = useState({});
7+
8+
useEffect(() => {
9+
const fetchJsonData = async () => {
10+
try {
11+
const response = await fetch(url);
12+
if (response.ok) {
13+
const data = await response.json();
14+
setJsonData(data);
15+
} else {
16+
// Handle HTTP errors
17+
setJsonData({
18+
error: true,
19+
status: response.status,
20+
message: `HTTP error: ${response.status}`,
21+
});
22+
}
23+
} catch (error) {
24+
// Handle fetch errors
25+
setJsonData({
26+
error: true,
27+
message: error.message || "Error fetching JSON.",
28+
});
29+
}
30+
};
31+
32+
fetchJsonData();
33+
}, [url]);
34+
return (
35+
<Helmet>
36+
<script type="application/ld+json">{JSON.stringify(jsonData)}</script>
37+
</Helmet>
38+
);
39+
};
40+
41+
export default CroissantButton;

app/src/pages/d/[dataId].js

+3-42
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { useRouter } from "next/router";
2-
import React, { useEffect, useState } from "react";
1+
import React from "react";
32
import { Helmet } from "react-helmet-async";
43

54
import { Typography } from "@mui/material";
65

76
import DashboardLayout from "../../layouts/Dashboard";
87
import { getItem } from "../api/getItem";
98
import Wrapper from "../../components/Wrapper";
9+
import CroissantButton from "../../components/pages/data/CroissantButton";
1010

1111
import styled from "@emotion/styled";
1212
import {
@@ -63,42 +63,6 @@ const UserChip = styled(Chip)`
6363
margin-bottom: 5px;
6464
`;
6565

66-
const CroissantComponent = ({ url }) => {
67-
const [jsonData, setJsonData] = useState({});
68-
69-
useEffect(() => {
70-
const fetchJsonData = async () => {
71-
try {
72-
const response = await fetch(url);
73-
if (response.ok) {
74-
const data = await response.json();
75-
setJsonData(data);
76-
} else {
77-
// Handle HTTP errors
78-
setJsonData({
79-
error: true,
80-
status: response.status,
81-
message: `HTTP error: ${response.status}`,
82-
});
83-
}
84-
} catch (error) {
85-
// Handle fetch errors
86-
setJsonData({
87-
error: true,
88-
message: error.message || "Error fetching JSON.",
89-
});
90-
}
91-
};
92-
93-
fetchJsonData();
94-
}, [url]);
95-
return (
96-
<Helmet>
97-
<script type="application/ld+json">{JSON.stringify(jsonData)}</script>
98-
</Helmet>
99-
);
100-
};
101-
10266
export async function getStaticProps({ params, locale }) {
10367
try {
10468
// Fetch necessary data for the dataset page using params.dataId
@@ -125,9 +89,6 @@ export async function getStaticProps({ params, locale }) {
12589
}
12690

12791
function Dataset({ data, error }) {
128-
const router = useRouter();
129-
const dataId = router.query.dataId;
130-
// console.log(data["data_id"]);
13192
const featureTableColumns = [
13293
"",
13394
"Feature Name",
@@ -158,7 +119,7 @@ function Dataset({ data, error }) {
158119
<Wrapper>
159120
<Helmet title="OpenML Datasets" />
160121
{/* Download buttons */}
161-
<CroissantComponent url={croissant_url} />
122+
<CroissantButton url={croissant_url} />
162123
<Grid container spacing={6}>
163124
<Grid item xs={12}>
164125
<React.Fragment>

0 commit comments

Comments
 (0)