From e0dc1b48ecb93256ea7a5726b12665a21b9c489e Mon Sep 17 00:00:00 2001 From: Jake Archibald Date: Thu, 2 Aug 2018 16:52:11 +0100 Subject: [PATCH] Creating new objects rather than mutating existing objects. Fixes #121. --- src/components/Options/index.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/components/Options/index.tsx b/src/components/Options/index.tsx index 348f9245..97bcbe10 100644 --- a/src/components/Options/index.tsx +++ b/src/components/Options/index.tsx @@ -81,10 +81,18 @@ export default class Options extends Component { onPreprocessorEnabledChange(event: Event) { const el = event.currentTarget as HTMLInputElement; - const preprocessorState = this.props.preprocessorState; - const preprocessor = el.name.split('.')[0] as keyof typeof preprocessorState; - preprocessorState[preprocessor].enabled = el.checked; - this.props.onPreprocessorOptionsChange(preprocessorState); + const newPreprocessorState = { + ...this.props.preprocessorState, + }; + + const preprocessor = el.name.split('.')[0] as keyof typeof newPreprocessorState; + + newPreprocessorState[preprocessor] = { + ...newPreprocessorState[preprocessor], + enabled: el.checked, + }; + + this.props.onPreprocessorOptionsChange(newPreprocessorState); } @bind