/** * @author oldj * @blog http://oldj.net */ 'use strict'; import React from 'react'; import Frame from './frame'; import classnames from 'classnames'; import './preferences.less'; import lang from '../../lang'; import util from '../../libs/util'; const current_version = require('../../../version').version; const AUTO_LAUNCH = 'auto_launch'; export default class PreferencesPrompt extends React.Component { constructor(props) { super(props); let choice_mode = SH_Agent.pref.get('choice_mode'); if (!choice_mode || (choice_mode != 'multiple' && choice_mode != 'single')) { choice_mode = 'multiple'; } this.state = { show: false, lang_key: SH_Agent.lang_key, after_cmd: SH_Agent.pref.get('after_cmd') || '', choice_mode: choice_mode, auto_launch: !!SH_Agent.pref.get(AUTO_LAUNCH), hide_at_launch: !!SH_Agent.pref.get('hide_at_launch'), update_found: false // 发现新版本 }; } componentDidMount() { SH_event.on('show_preferences', () => { this.setState({ show: true }); }); ipcRenderer.on('show_preferences', () => { this.setState({ show: true }); }); ipcRenderer.on('update_found', (v) => { console.log(v); this.setState({ update_found: true }); }); } onOK() { this.setState({ show: false }, () => { setTimeout(() => { SH_Agent.relaunch(); }, 200); }); } onCancel() { this.setState({ show: false }); } static getLanguageOptions() { return lang.lang_list.map(({key, name}, idx) => { return ( ); }); } updateLangKey(v) { SH_Agent.lang_key = v; SH_Agent.pref.set('user_language', v); this.setState({ lange_key: v }); } updateChoiceMode(v) { SH_Agent.pref.set('choice_mode', v); this.setState({ choice_mode: v }); } updateAfterCmd(v) { SH_Agent.pref.set('after_cmd', v); this.setState({ after_cmd: v }); } updateAutoLaunch(v) { SH_Agent.pref.set(AUTO_LAUNCH, v); this.setState({ auto_launch: v }); // todo set auto launch } updateMinimizeAtLaunch(v) { SH_Agent.pref.set('hide_at_launch', v); this.setState({ hide_at_launch: v }); } prefLanguage() { return (
{SH_Agent.lang.language}
{SH_Agent.lang.should_restart_after_change_language}
) } prefChoiceMode() { return (
{SH_Agent.lang.pref_choice_mode}
this.updateChoiceMode(e.target.value)} /> this.updateChoiceMode(e.target.value)} />
) } prefAfterCmd() { return (
{SH_Agent.lang.pref_after_cmd}
{SH_Agent.lang.pref_after_cmd_info}