diff --git a/.prettierrc b/.prettierrc
index 17ec621..5fe2828 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -11,7 +11,6 @@
"requirePragma": false,
"insertPragma": false,
"proseWrap": "preserve",
- "parser": "babel",
"overrides": [
{
"files": "*.js",
diff --git a/components/FeaturedProject.module.scss b/components/FeaturedProject.module.scss
new file mode 100644
index 0000000..e69de29
diff --git a/components/FeaturedProject.tsx b/components/FeaturedProject.tsx
new file mode 100644
index 0000000..0055697
--- /dev/null
+++ b/components/FeaturedProject.tsx
@@ -0,0 +1,28 @@
+import { Image } from './Image';
+import styles from '@components/FeaturedProject.module.scss';
+
+export interface FeaturedProjectProps {
+ title: string;
+ image: any; //to do create a global image type that can be reused
+ href: string;
+ caption: string;
+}
+
+function FeaturedProject({ title, image, href, caption }: FeaturedProjectProps) {
+ console.log(image);
+ return (
+
+ );
+}
+
+export default FeaturedProject;
diff --git a/components/Image.tsx b/components/Image.tsx
new file mode 100644
index 0000000..ade32f0
--- /dev/null
+++ b/components/Image.tsx
@@ -0,0 +1,19 @@
+import NextImage from 'next/image';
+
+export function Image({ image, layout, props }: any) {
+ //to do : add a placeholder image if src is undefined
+ const { altText, height, src, width } = image;
+
+ return (
+
+ );
+}
diff --git a/components/Video.tsx b/components/Video.tsx
new file mode 100644
index 0000000..c927082
--- /dev/null
+++ b/components/Video.tsx
@@ -0,0 +1,44 @@
+import * as React from 'react';
+
+export const enum VIDEO_FORMAT_ENUM {
+ IFRAME = 'iframe',
+ VIDEO = 'video',
+}
+
+export default function Video({ src, title, format }) {
+ switch (format) {
+ case VIDEO_FORMAT_ENUM.VIDEO:
+ return (
+
+ );
+ // case VIDEO_FORMAT_ENUM.IFRAME:
+ // return (
+ //
+ // );
+ break;
+ }
+}
diff --git a/fixtures/resources.tsx b/fixtures/resources.tsx
new file mode 100644
index 0000000..276e8c3
--- /dev/null
+++ b/fixtures/resources.tsx
@@ -0,0 +1,118 @@
+import { VIDEO_FORMAT_ENUM } from '@root/components/Video';
+
+export const RESOURCE_PAGE_VIDEOS_FIXTURE = [
+ {
+ format: VIDEO_FORMAT_ENUM.IFRAME,
+ src: 'https://www.youtube.com/embed/AHAMHbpioGw',
+ title: 'Estuary: Getting Started',
+ },
+ {
+ format: VIDEO_FORMAT_ENUM.IFRAME,
+ src: 'https://www.youtube.com/watch?v=uiseAYCGOKU',
+ title: 'Estuary Ecosystem February 2022 Deep Dive: Command Line Programs to Manage Files on Cloud Storage',
+ },
+ {
+ format: VIDEO_FORMAT_ENUM.IFRAME,
+ src: 'https://www.youtube.com/watch?v=uiseAYCGOKU',
+ title: 'Estuary - A reliable way to upload public data onto Filecoin and pin it to IPFS',
+ },
+ {
+ format: VIDEO_FORMAT_ENUM.IFRAME,
+ src: 'https://youtu.be/Oidvj-BvMGU',
+ title: 'Ecosystem-WG March 2022 Deep Dive: Working with Estuary Collections [ARG]',
+ },
+ {
+ format: VIDEO_FORMAT_ENUM.IFRAME,
+ src: 'How We Made Slate',
+ title: '',
+ },
+];
+
+export const RESOURCE_PAGE_FEATURED_PROJECTS_FIXTURE = [
+ {
+ caption: 'Slate is a search tool designed to help you remember and keep track of things you care about on the web.',
+ github: 'https://github.com/filecoin-project/slate',
+ href: 'https://slate.host/',
+ image: 'https://blog.ipfs.tech/assets/img/slate-textile.aeb9e6be.jpg',
+ title: 'Slate',
+ },
+ {
+ caption: '',
+ href: '',
+ image: '',
+ title: 'Hackathon Project 2',
+ },
+ {
+ caption: '',
+ href: '',
+ image: '',
+ title: 'Hackathon Project 1',
+ },
+ {
+ caption: '',
+ href: '',
+ image: '',
+ title: 'Light Version of Estuary',
+ },
+ {
+ caption: 'Storage.Market is an information hub on data storage products, showing analytics on the storage market and recent news.',
+ github: 'https://github.com/application-research/storage.market',
+ href: 'https://storage.market',
+ image: '',
+ title: 'Storage Market',
+ },
+];
+
+export const GLOSSARY_FIXTURE = [
+ {
+ term: 'CID',
+ definition: '',
+ furthurReading: '',
+ },
+
+ {
+ term: 'On Chain',
+ definition: '',
+ furthurReading: '',
+ },
+ {
+ term: 'Off Chain',
+ definition: '',
+ furthurReading: '',
+ },
+ {
+ term: 'Sealed',
+ definition: '',
+ furthurReading: '',
+ },
+ {
+ term: 'Unsealed',
+ definition: '',
+ furthurReading: '',
+ },
+ {
+ term: 'Deals',
+ definition: '',
+ furthurReading: '',
+ },
+ {
+ term: 'Gateway',
+ definition: '',
+ furthurReading: '',
+ },
+ {
+ term: 'Pinned',
+ definition: '',
+ furthurReading: '',
+ },
+ {
+ term: 'Unpinned',
+ definition: '',
+ furthurReading: '',
+ },
+ {
+ term: 'AutoRetrieve',
+ definition: '',
+ furthurReading: '',
+ },
+];
diff --git a/pages/resources.module.scss b/pages/resources.module.scss
new file mode 100644
index 0000000..a47c357
--- /dev/null
+++ b/pages/resources.module.scss
@@ -0,0 +1,27 @@
+.body {
+ display: grid;
+ row-gap: 48px;
+}
+
+.videoGrid {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+}
+
+.column {
+ grid-column: 2 / 3;
+}
+
+.h2 {
+ font-family: 'Parabole';
+}
+
+.featuredProjectsGrid {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ grid-gap: 16px;
+}
+
+.featuredProjectsGridColumn {
+ grid-column: span 2;
+}
diff --git a/pages/resources.tsx b/pages/resources.tsx
new file mode 100644
index 0000000..f06c380
--- /dev/null
+++ b/pages/resources.tsx
@@ -0,0 +1,46 @@
+import Hero from '@root/components/Hero';
+import styles from '@pages/resources.module.scss';
+import Video from '@root/components/Video';
+import FeaturedProject from '@root/components/FeaturedProject';
+import { RESOURCE_PAGE_FEATURED_PROJECTS_FIXTURE, RESOURCE_PAGE_VIDEOS_FIXTURE } from '@root/fixtures/resources';
+
+//add small medium, large sizes to hero
+
+export default function Resources() {
+ const videos = RESOURCE_PAGE_VIDEOS_FIXTURE;
+ const featuredProjects = RESOURCE_PAGE_FEATURED_PROJECTS_FIXTURE;
+ return (
+
+
+
+
+
Video Tutorials
+
+ {videos.map((video, index) => {
+ return (
+
+
+
+ );
+ })}
+
+
Featured Projects
+
+
+ {featuredProjects.map((featuredProject, index) => {
+ const { title, image, href, caption } = featuredProject;
+ return (
+
+
+
+ );
+ })}
+
+
+
Glossary
+
retrievals on chain sealed unsealed deals CID gateway pinned & unpinned auto retrive (link to auto retrieve docs)
+
Further Reading
+
+
+ );
+}