--- /dev/null
+const React = require('react');
+
+const HorizontalScroller = require('./HorizontalScroller');
+
+module.exports = ({ title, list, Card }) => {
+ return (
+ <div
+ className="MusicalInterests"
+ id={title.toLowerCase().replace(/\s/g, '-')}
+ >
+ <h2>{title}</h2>
+ <HorizontalScroller>
+ {list.map((item, i) => (
+ <Card key={i} {...item} />
+ ))}
+ </HorizontalScroller>
+ </div>
+ );
+};
const React = require('react');
-module.exports = ({ links, externalLinks }) => {
+module.exports = ({ sections, links }) => {
const navActions = {
open: () => document.body.classList.add('isNavOpen'),
close: () => document.body.classList.remove('isNavOpen'),
<div className="Menu-Body">
<h3>Menu</h3>
<ul>
- {links.map((link, i) => (
+ {sections.map((section, i) => (
<li key={i}>
<a
- href={link.url}
+ href={'#' + section.toLowerCase().replace(/\s/g, '-')}
onClick={navActions.close}
style={{ color: 'inherit' }}
- >
- {link.text}
- </a>
+ children={section}
+ />
</li>
))}
</ul>
<hr />
<ul>
- {externalLinks.map((link, i) => (
+ {links.map((link, i) => (
<li key={i}>
- <a href={link.url}>{link.text}</a>
+ <a href={'https://' + link.url}>{link.text + ' \u2197'} </a>
</li>
))}
</ul>
+++ /dev/null
-const React = require('react');
-
-const HorizontalScroller = require('./HorizontalScroller');
-const AlbumCard = require('./AlbumCard');
-
-module.exports = (props) => {
- return (
- <div className="MusicalInterests" id="music-i-like">
- <h2>Music I like</h2>
- <HorizontalScroller>
- <AlbumCard
- song="Gepetto / Pinokkio"
- artist="Trio Dhoore"
- album="Momentum"
- link="https://triodhoore.com/momentum"
- />
- <AlbumCard
- song="The Offbeat Jig / Keep Dreaming"
- artist="Trio Dhoore"
- album="Parachute"
- link="https://triodhoore.com/parachute"
- />
- <AlbumCard
- song="Impossible"
- artist="Two Steps From Hell"
- album="Unleashed"
- link="https://music.apple.com/us/album/unleashed/1287310003"
- />
- <AlbumCard
- song="NOW That's What I Call Polka!"
- artist={'"Weird Al" Yankovic'}
- album="Mandatory Fun"
- link="https://www.weirdal.com/catalog/mandatory-fun/"
- />
- </HorizontalScroller>
- </div>
- );
-};
<!DOCTYPE html>
<html>
<head>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <meta
+ name="viewport"
+ content="width=device-width, initial-scale=1, viewport-fit=cover"
+ />
<title>Ben Larson</title>
<style>
@import url('./main.css');
const Hero = require('./components/Hero');
const Menu = require('./components/Menu');
-const MusicalInterests = require('./components/MusicalInterests');
+const Interest = require('./components/Interest');
+const AlbumCard = require('./components/AlbumCard');
+
+const interests = require('./interests.json');
ReactDom.render(
<>
<Menu
+ sections={['Music I like']}
links={[
- {
- url: '#',
- text: 'Top \u2191',
- },
- {
- url: '#music-i-like',
- text: 'Music I like',
- },
- ]}
- externalLinks={[
- {
- url: 'https://github.com/ben-larson/',
- text: 'Check out my GitHub \u2197',
- },
- {
- url: 'https://www.linkedin.com/in/ben-larson-dev/',
- text: 'Connect on LinkedIn \u2197',
- },
+ { url: 'github.com/ben-larson', text: 'GitHub' },
+ { url: 'stackoverflow.com/users/10377586/', text: 'Stack Overflow' },
+ { url: 'www.linkedin.com/in/ben-larson-dev', text: 'LinkedIn' },
+ { url: 'music.apple.com/profile/benthedev', text: 'Apple Music' },
]}
/>
<Hero
'\u2606 Living in Nashville, TN',
]}
/>
- <MusicalInterests />
+ <Interest
+ title="Music I like"
+ list={interests.music}
+ Card={AlbumCard}
+ ></Interest>
</>,
document.querySelector('#app')
);
--- /dev/null
+{
+ "music": [
+ {
+ "song": "Gepetto / Pinokkio",
+ "artist": "Trio Dhoore",
+ "album": "Momentum",
+ "link": "https://triodhoore.com/momentum"
+ },
+ {
+ "song": "The Offbeat Jig / Keep Dreaming",
+ "artist": "Trio Dhoore",
+ "album": "Parachute",
+ "link": "https://triodhoore.com/parachute"
+ },
+ {
+ "song": "Impossible",
+ "artist": "Two Steps From Hell",
+ "album": "Unleashed",
+ "link": "https://music.apple.com/us/album/unleashed/1287310003"
+ },
+ {
+ "song": "NOW That's What I Call Polka!",
+ "artist": "\"Weird Al\" Yankovic",
+ "album": "Mandatory Fun",
+ "link": "https://www.weirdal.com/catalog/mandatory-fun/"
+ }
+ ]
+}
@import url('https://fonts.larson.zone/inter/index.css');
@import url('./components/hero.css');
@import url('./components/menu.css');
-@import url('./components/musicalInterests.css');
+@import url('./components/interest.css');
* {
font-family: inherit;