Skip to content

Commit dafe1b9

Browse files
committed
rework on demand loading of show notes
1 parent 71dadc7 commit dafe1b9

File tree

7 files changed

+16924
-34
lines changed

7 files changed

+16924
-34
lines changed

components/Player.js

+11-9
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export default class Player extends React.Component {
4545

4646
componentDidUpdate(prevProps, prevState) { //eslint-disable-line
4747
const { show } = this.props;
48+
console.log({ player: show });
4849
const { currentTime, currentVolume, playbackRate } = this.state;
4950
if (show.number !== prevProps.show.number) {
5051
const lp = localStorage.getItem(`lastPlayed${show.number}`);
@@ -81,7 +82,7 @@ export default class Player extends React.Component {
8182
}
8283
}
8384

84-
timeUpdate = e => {
85+
timeUpdate = (e) => {
8586
// console.log('Updating Time');
8687
const { show } = this.props;
8788
const { timeWasLoaded } = this.state;
@@ -102,7 +103,7 @@ export default class Player extends React.Component {
102103
}
103104
};
104105

105-
volumeUpdate = e => {
106+
volumeUpdate = (e) => {
106107
const { timeWasLoaded } = this.state;
107108
// Check if the user already had a curent volume
108109
if (timeWasLoaded) {
@@ -114,7 +115,7 @@ export default class Player extends React.Component {
114115
}
115116
};
116117

117-
groupUpdates = e => {
118+
groupUpdates = (e) => {
118119
this.timeUpdate(e);
119120
this.volumeUpdate(e);
120121
};
@@ -125,15 +126,15 @@ export default class Player extends React.Component {
125126
this.audio[method]();
126127
};
127128

128-
scrubTime = eventData =>
129+
scrubTime = (eventData) =>
129130
(eventData.nativeEvent.offsetX / this.progress.offsetWidth) *
130131
this.audio.duration;
131132

132-
scrub = e => {
133+
scrub = (e) => {
133134
this.audio.currentTime = this.scrubTime(e);
134135
};
135136

136-
seekTime = e => {
137+
seekTime = (e) => {
137138
this.setState({
138139
tooltipPosition: e.nativeEvent.offsetX,
139140
tooltipTime: formatTime(this.scrubTime(e)),
@@ -146,7 +147,7 @@ export default class Player extends React.Component {
146147
onPlayPause(this.audio);
147148
};
148149

149-
volume = e => {
150+
volume = (e) => {
150151
this.audio.volume = e.currentTarget.value;
151152
this.setState({
152153
currentVolume: `${e.currentTarget.value}`,
@@ -157,12 +158,12 @@ export default class Player extends React.Component {
157158
this.speed(0.25);
158159
};
159160

160-
speedDown = e => {
161+
speedDown = (e) => {
161162
e.preventDefault();
162163
this.speed(-0.25);
163164
};
164165

165-
speed = change => {
166+
speed = (change) => {
166167
const playbackRateMax = 2.5;
167168
const playbackRateMin = 0.75;
168169

@@ -260,6 +261,7 @@ export default class Player extends React.Component {
260261
</div>
261262
</div>
262263
{/* eslint-disable */}
264+
263265
<audio
264266
ref={audio => (this.audio = audio)}
265267
onPlay={this.playPause}

components/Show.js

+2-8
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,8 @@ import Bars from './bars';
77

88
export default class Show extends React.Component {
99
render() {
10-
const {
11-
show,
12-
currentPlaying,
13-
currentShow,
14-
setCurrentPlaying,
15-
isPlaying,
16-
} = this.props;
10+
const { show, currentPlaying, currentShow, setCurrentPlaying, isPlaying } =
11+
this.props;
1712
return (
1813
<div
1914
className={`show ${
@@ -22,7 +17,6 @@ export default class Show extends React.Component {
2217
`}
2318
>
2419
<Link
25-
shallow
2620
scroll={false}
2721
href="/show/[number]/[slug]"
2822
as={`/show/${show.displayNumber}/${slug(show.title)}`}

components/ShowList.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const ShowList = ({
1010
isPlaying,
1111
}) => (
1212
<div className="showList">
13-
{shows.map(show => (
13+
{shows.map((show) => (
1414
<Show
1515
setCurrentPlaying={setCurrentPlaying}
1616
currentPlaying={currentPlaying}

lib/getShows.js

+10-9
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ const readAFile = promisify(readFile);
88
const readDirContents = promisify(readdir);
99
const format = require('date-fns/format');
1010

11-
const pad = num => `000${num}`.substr(-3);
11+
const pad = (num) => `000${num}`.substr(-3);
1212

1313
let shows;
1414

1515
const renderer = new marked.Renderer();
16-
renderer.link = function(href, title, text) {
16+
renderer.link = function (href, title, text) {
1717
return `<a rel="noopener noreferrer" target="_blank" href="${href}"> ${text}</a>`;
1818
};
1919

@@ -24,17 +24,17 @@ const loadShows = async () => {
2424
}
2525

2626
const showsDir = path.join(process.cwd(), 'shows');
27-
const files = (await readDirContents(showsDir)).filter(file =>
27+
const files = (await readDirContents(showsDir)).filter((file) =>
2828
file.endsWith('.md')
2929
);
3030

31-
const markdownPromises = files.map(file =>
31+
const markdownPromises = files.map((file) =>
3232
readAFile(path.join(showsDir, file), 'utf-8')
3333
);
3434
const showMarkdown = await Promise.all(markdownPromises);
3535

3636
shows = showMarkdown
37-
.map(md => marked(md, { renderer })) // convert to markdown
37+
.map((md) => marked(md, { renderer })) // convert to markdown
3838
.map((show, i) => {
3939
const { number } = show.meta;
4040

@@ -54,13 +54,14 @@ const loadShows = async () => {
5454

5555
async function getShowsList() {
5656
const showsForList = await getShows();
57-
return showsForList.map(show => ({
57+
return showsForList.map((show) => ({
5858
id: show.number,
5959
title: show.title,
6060
slug: show.slug,
6161
date: show.date,
6262
displayDate: show.displayDate,
6363
displayNumber: show.displayNumber,
64+
url: show.url,
6465
}));
6566
}
6667

@@ -70,13 +71,13 @@ async function getShows(filter) {
7071
const now = Date.now();
7172
return filter === 'all'
7273
? showsForGetShows
73-
: showsForGetShows.filter(show => show.date < now);
74+
: showsForGetShows.filter((show) => show.date < now);
7475
}
7576

7677
async function getShow(number) {
7778
const showsForGetShow = await loadShows();
7879
const show = showsForGetShow.find(
79-
showItem => showItem.displayNumber === number
80+
(showItem) => showItem.displayNumber === number
8081
);
8182
return show;
8283
}
@@ -112,5 +113,5 @@ module.exports = {
112113
getShows,
113114
getShow,
114115
getAllShowSickPicks,
115-
getShowsList
116+
getShowsList,
116117
};

0 commit comments

Comments
 (0)