import React from 'react'; import classNames from 'classnames'; import { LeftPane } from '../LeftPane'; import { MainViewController } from '../MainViewController'; import { SessionButton, SessionButtonColor, SessionButtonType, } from './SessionButton'; import { SessionIcon, SessionIconSize, SessionIconType } from './icon'; import { SessionSearchInput } from './SessionSearchInput'; import { SessionSettingCategory } from './settings/SessionSettings'; export interface State { settingCategory: SessionSettingCategory; searchQuery: string; } export class LeftPaneSettingSection extends React.Component { public constructor(props: any) { super(props); this.state = { settingCategory: SessionSettingCategory.General, searchQuery: '', }; this.setCategory = this.setCategory.bind(this); this.renderRows = this.renderRows.bind(this); //this.updateSearchBound = this.updateSearch.bind(this); } public render(): JSX.Element { MainViewController.renderSettingsView(this.state.settingCategory); return (
{this.renderHeader()} {this.renderSettings()}
); } public renderHeader(): JSX.Element | undefined { const labels = [window.i18n('settingsHeader')]; return LeftPane.RENDER_HEADER( labels, null, undefined, undefined, undefined ); } public renderRows(): JSX.Element { const categories = this.getCategories(); return ( <> {categories.map(item => (
this.setCategory(item.id)} >
{item.title}
{item.description}
{item.id === this.state.settingCategory && ( )}
))} ); } public renderCategories(): JSX.Element { return (
{this.renderRows()}
); } public renderSettings(): JSX.Element { return (
null} placeholder="" />
{this.renderCategories()} {this.renderBottomButtons()}
); } public renderBottomButtons(): JSX.Element { const deleteAccount = window.i18n('deleteAccount'); const showSeed = window.i18n('showSeed'); return (
); } public onDeleteAccount() { const params = { title: window.i18n('deleteAccount'), message: window.i18n('deleteAccountWarning'), messageSub: window.i18n('deleteAccountWarningSub'), resolve: window.deleteAccount, okTheme: 'danger', }; window.confirmationDialog(params); } public getCategories() { return [ { id: SessionSettingCategory.General, title: window.i18n('generalSettingsTitle'), description: window.i18n('generalSettingsDescription'), }, { id: SessionSettingCategory.Privacy, title: window.i18n('privacySettingsTitle'), description: window.i18n('privacySettingsDescription'), }, { id: SessionSettingCategory.Permissions, title: window.i18n('permissionSettingsTitle'), description: window.i18n('permissionSettingsDescription'), }, { id: SessionSettingCategory.Notifications, title: window.i18n('notificationSettingsTitle'), description: window.i18n('notificationSettingsDescription'), }, ]; } public setCategory(category: SessionSettingCategory) { this.setState({ settingCategory: category, }); } // public updateSearch(searchTerm: string) { // const { updateSearchTerm, clearSearch } = this.props; // if (!searchTerm) { // clearSearch(); // return; // } // // reset our pubKeyPasted, we can either have a pasted sessionID or a sessionID got from a search // this.setState({ pubKeyPasted: '' }, () => { // window.Session.emptyContentEditableDivs(); // }); // if (updateSearchTerm) { // updateSearchTerm(searchTerm); // } // if (searchTerm.length < 2) { // return; // } // const cleanedTerm = cleanSearchTerm(searchTerm); // if (!cleanedTerm) { // return; // } // this.debouncedSearch(cleanedTerm); // } }