[home][s]-make recent dataset section dynamic

This commit is contained in:
Gift Egwuenu
2020-06-22 10:29:31 +01:00
parent 676d54280d
commit 702f796d6f
3 changed files with 85 additions and 81 deletions

View File

@@ -1,19 +1,28 @@
import Link from 'next/link'; import Link from 'next/link';
function Recent() { function Recent({ datapackages }) {
return ( return (
<section className="my-10 mx-4 lg:my-20"> <section className="my-10 mx-4 lg:my-20">
<h1 className="text-2xl font-thin mb-4">Recent Datasets</h1> <h1 className="text-2xl font-thin mb-4">Recent Datasets</h1>
<div> <div className="flex flex-col lg:flex-row">
<div className="border px-4 mb-4 mr-3 border-gray-100 w-5/6 shadow-sm"> {datapackages.map((resource, index) => (
<h1 className="text-2xl font-thin">Title</h1> <div
<p className="text-gray-500">Description</p> key={index}
<Link href="/"> className="border px-4 mb-4 mr-3 border-gray-100 w-5/6 shadow-sm"
>
<h1 className="text-2xl font-thin">{resource.title}</h1>
<p className="text-gray-500">{resource.organization.description}</p>
<Link
href={`/@${
resource.organization ? resource.organization.name : 'dataset'
}/${resource.name}`}
>
<a className="pt-3 flex justify-end text-orange-500"> <a className="pt-3 flex justify-end text-orange-500">
View Dataset View Dataset
</a> </a>
</Link> </Link>
</div> </div>
))}
</div> </div>
</section> </section>
); );

View File

@@ -58,63 +58,64 @@ const population = {
}, },
}; };
const recentDataset = { const recentDataset = [
license_title: 'Creative Commons Attribution', {
maintainer: '', name: 'gdp',
relationships_as_object: [], title: 'Country, Regional and World GDP (Gross Domestic Product)',
private: false, notes:
maintainer_email: '', 'Country, regional and world GDP in current US Dollars ($). Regional means collections of countries e.g. Europe & Central Asia. Data is sourced from the World Bank and turned into a standard normalized CSV.',
num_tags: 0,
id: '9b960530-728c-4a07-8f96-c5f89b545d05',
metadata_created: '2020-06-19T07:30:03.796668',
metadata_modified: '2020-06-19T07:30:11.392832',
author: '',
author_email: '',
state: 'active',
version: '',
creator_user_id: '0d23e029-ddd5-4909-a2cd-5af7fe8d6e9c',
type: 'dataset',
resources: [ resources: [
{ {
mimetype: null, name: 'gdp',
cache_url: null, id: 'gdp',
hash: '', title: 'GDP data',
description: '', format: 'csv',
name: 'gettyimages-954867550.jpg', created: '2019-03-07T12:00:36.273495',
format: 'JPEG', last_modified: '2020-05-07T12:00:36.273495',
url:
'https://demo.ckan.org/pl/dataset/9b960530-728c-4a07-8f96-c5f89b545d05/resource/ac28179c-023e-4c17-af3c-00cbb81f5dcb/download/gettyimages-954867550.jpg',
datastore_active: false, datastore_active: false,
cache_last_updated: null, url: 'http://mock.filestore/gdp.csv',
package_id: '9b960530-728c-4a07-8f96-c5f89b545d05',
created: '2020-06-19T07:30:10.786597',
state: 'active',
mimetype_inner: null,
last_modified: null,
position: 0,
revision_id: 'a810e134-79ba-4ab7-a7c4-f60e2fb21d40',
url_type: 'upload',
id: 'ac28179c-023e-4c17-af3c-00cbb81f5dcb',
resource_type: null,
size: null,
}, },
], ],
num_resources: 1, organization: {
tags: [], title: 'World Bank',
groups: [], name: 'world-bank',
license_id: 'cc-by', description:
relationships_as_subject: [], 'The World Bank is an international financial institution that provides loans and grants to the governments of poorer countries for the purpose of pursuing capital projects.',
organization: null, created: '2019-03-07T11:51:13.758844',
name: 'sdfasdasda', image_url:
isopen: true, 'https://github.com/datahq/frontend/raw/master/public/img/avatars/world-bank.jpg',
url: '', },
notes: 'sdf', metadata_created: '2019-03-07T11:56:19.696257',
owner_org: null, metadata_modified: '2019-03-07T12:03:58.817280',
extras: [], },
license_url: 'http://www.opendefinition.org/licenses/cc-by', {
title: 'sdf', name: 'population',
revision_id: 'a810e134-79ba-4ab7-a7c4-f60e2fb21d40', title: 'World population data',
}; notes:
'Population figures for countries, regions (e.g. Asia) and the world. Data comes originally from World Bank and has been converted into standard CSV.',
resources: [
{
name: 'population',
id: 'population',
title: 'Population data',
format: 'csv',
created: '2019-03-07T12:00:36.273495',
last_modified: '2020-05-07T12:00:36.273495',
datastore_active: true,
url: 'http://mock.filestore/population.csv',
},
],
organization: {
title: 'World Bank',
name: 'world-bank',
description:
'The World Bank is an international financial institution that provides loans and grants to the governments of poorer countries for the purpose of pursuing capital projects.',
created: '2019-03-07T11:51:13.758844',
image_url:
'https://github.com/datahq/frontend/raw/master/public/img/avatars/world-bank.jpg',
},
},
];
module.exports.initMocks = function () { module.exports.initMocks = function () {
// Uncomment this line if you want to record API calls // Uncomment this line if you want to record API calls
@@ -173,15 +174,12 @@ module.exports.initMocks = function () {
.reply(200, { .reply(200, {
success: true, success: true,
result: { result: {
success: true, count: 2,
result: {
count: 1923,
sort: 'metadata_created desc', sort: 'metadata_created desc',
facets: {}, facets: {},
results: [recentDataset], results: recentDataset,
search_facets: {}, search_facets: {},
}, },
},
}); });
// "datastore_search" mocks // "datastore_search" mocks

View File

@@ -4,10 +4,8 @@ import Nav from '../components/home/Nav';
import Recent from '../components/home/Recent'; import Recent from '../components/home/Recent';
import Input from '../components/search/Input'; import Input from '../components/search/Input';
import config from '../config/'; import config from '../config/';
import utils from '../utils';
import { util } from 'prettier';
function Home() { function Home({ datapackages }) {
return ( return (
<div className="container mx-auto"> <div className="container mx-auto">
<Head> <Head>
@@ -32,7 +30,7 @@ function Home() {
<img src="/images/banner.svg" className="w-4/5" /> <img src="/images/banner.svg" className="w-4/5" />
</div> </div>
</section> </section>
<Recent /> <Recent datapackages={datapackages} />
</div> </div>
); );
} }
@@ -44,8 +42,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
)}/api/3/action/package_search?sort=metadata_created%20desc` )}/api/3/action/package_search?sort=metadata_created%20desc`
); );
const ckanResult = (await res.json()).result; const ckanResult = (await res.json()).result;
const datapackages = ckanResult; const datapackages = ckanResult.results;
console.log(datapackages);
return { return {
props: { props: {
datapackages, datapackages,