From b351e42538b0822edd2f97b52838dd86d76fa91d Mon Sep 17 00:00:00 2001 From: Kazu Yokomizo Date: Thu, 26 Oct 2017 15:27:22 +0900 Subject: [PATCH] Add notification at UI tab --- .../modals/PreferencesModal/ConfigTab.styl | 2 +- browser/main/modals/PreferencesModal/UiTab.js | 50 +++++++++++++++++-- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/browser/main/modals/PreferencesModal/ConfigTab.styl b/browser/main/modals/PreferencesModal/ConfigTab.styl index 23eef574..28a7d76f 100644 --- a/browser/main/modals/PreferencesModal/ConfigTab.styl +++ b/browser/main/modals/PreferencesModal/ConfigTab.styl @@ -73,7 +73,7 @@ right 15px font-size 14px .success - color green + color #1EC38B .error color red diff --git a/browser/main/modals/PreferencesModal/UiTab.js b/browser/main/modals/PreferencesModal/UiTab.js index efcfffff..113d592d 100644 --- a/browser/main/modals/PreferencesModal/UiTab.js +++ b/browser/main/modals/PreferencesModal/UiTab.js @@ -9,6 +9,11 @@ import CodeMirror from 'codemirror' const OSX = global.process.platform === 'darwin' +import _ from 'lodash' + +const electron = require('electron') +const ipc = electron.ipcRenderer + class UiTab extends React.Component { constructor (props) { super(props) @@ -18,10 +23,32 @@ class UiTab extends React.Component { } } + componentDidMount () { + this.handleSettingDone = () => { + this.setState({UiAlert: { + type: 'success', + message: 'Successfully applied!' + }}) + } + this.handleSettingError = (err) => { + this.setState({UiAlert: { + type: 'error', + message: err.message != null ? err.message : 'Error occurs!' + }}) + } + ipc.addListener('APP_SETTING_DONE', this.handleSettingDone) + ipc.addListener('APP_SETTING_ERROR', this.handleSettingError) + } + componentWillMount () { CodeMirror.autoLoadMode(ReactCodeMirror, 'javascript') } + componentWillUnmount () { + ipc.removeListener('APP_SETTING_DONE', this.handleSettingDone) + ipc.removeListener('APP_SETTING_ERROR', this.handleSettingError) + } + handleUIChange (e) { const { codemirrorTheme } = this.state let checkHighLight = document.getElementById('checkHighLight') @@ -80,9 +107,25 @@ class UiTab extends React.Component { type: 'SET_UI', config: newConfig }) + this.clearMessage() + } + + clearMessage () { + _.debounce(() => { + this.setState({ + UiAlert: null + }) + }, 2000)() } render () { + let UiAlert = this.state.UiAlert + let UiAlertElement = UiAlert != null + ?

+ {UiAlert.message} +

+ : null + const themes = consts.THEMES const { config, codemirrorTheme } = this.state const codemirrorSampleCode = 'function iamHappy (happy) {\n\tif (happy) {\n\t console.log("I am Happy!")\n\t} else {\n\t console.log("I am not Happy!")\n\t}\n};' @@ -285,12 +328,11 @@ class UiTab extends React.Component { -
+
+ {UiAlertElement}