From 2e83920ca1597ad9704f01cc950d59a52c25635c Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Thu, 14 Nov 2019 22:20:43 -0800 Subject: [PATCH] Handle case where EQ images are missing --- js/components/EqualizerWindow/EqGraph.js | 9 +++++---- js/selectors.ts | 14 ++++++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/js/components/EqualizerWindow/EqGraph.js b/js/components/EqualizerWindow/EqGraph.js index 999c0698..8e8ed752 100644 --- a/js/components/EqualizerWindow/EqGraph.js +++ b/js/components/EqualizerWindow/EqGraph.js @@ -49,11 +49,12 @@ class EqGraph extends React.Component { } async createColorPattern(lineColorsImagePromise) { + const lineColorsImage = await lineColorsImagePromise; + if (lineColorsImage == null) { + return; + } this.setState({ - colorPattern: this.canvasCtx.createPattern( - await lineColorsImagePromise, - "repeat-x" - ), + colorPattern: this.canvasCtx.createPattern(lineColorsImage, "repeat-x"), }); } diff --git a/js/selectors.ts b/js/selectors.ts index 5e4def30..e8f0dd5d 100644 --- a/js/selectors.ts +++ b/js/selectors.ts @@ -721,24 +721,30 @@ export function getRandomizePresets(state: AppState): boolean { return state.milkdrop.randomize; } -export function getPreampLineUrl(state: AppState): string { +export function getPreampLineUrl(state: AppState): string | null { return state.display.skinImages.EQ_PREAMP_LINE; } -export function getLineColorsUrl(state: AppState): string { +export function getLineColorsUrl(state: AppState): string | null { return state.display.skinImages.EQ_GRAPH_LINE_COLORS; } export const getPreampLineImage = createSelector( getPreampLineUrl, - async (url): Promise => { + async (url): Promise => { + if (url == null) { + return null; + } return Utils.imgFromUrl(url); } ); export const getLineColorsImage = createSelector( getLineColorsUrl, - async (url): Promise => { + async (url): Promise => { + if (url == null) { + return null; + } return Utils.imgFromUrl(url); } );