leftpane settings

pull/1112/head
Vincent 5 years ago
parent 5564bfa134
commit 1fa7ee25f7

@ -1035,6 +1035,15 @@
"unpairDevice": { "unpairDevice": {
"message": "Unlink Device" "message": "Unlink Device"
}, },
"unpairDeviceWarning": {
"message": "Are you sure you want to unlink this device?",
"description": "Warning for device unlinking in settings view"
},
"unpairDeviceWarningSub": {
"message":
"Unlinking this device will delete all history, including all messages, sessions, and contacts from this device.",
"description": "Warning description for device unlinking in settings view"
},
"deviceUnpaired": { "deviceUnpaired": {
"message": "Device Unlinked" "message": "Device Unlinked"
}, },

@ -693,7 +693,8 @@ label {
font-size: $session-font-md; font-size: $session-font-md;
} }
&-sub-message { &-sub-message {
margin-top: 5px; text-align: center;
margin-top: 20px;
} }
} }
@ -1385,10 +1386,6 @@ input {
opacity: 0.8; opacity: 0.8;
margin-bottom: $session-margin-xs; margin-bottom: $session-margin-xs;
} }
.session-confirm-sub-message {
text-align: center;
}
} }
} }
@ -1641,3 +1638,4 @@ input {
pointer-events: none; pointer-events: none;
} }
} }

@ -172,7 +172,9 @@ export class LeftPane extends React.Component<Props, State> {
} }
private renderSettingSection() { private renderSettingSection() {
return <LeftPaneSettingSection />; const { isSecondaryDevice } = this.props;
return <LeftPaneSettingSection isSecondaryDevice={isSecondaryDevice} />;
} }
private renderChannelSection() { private renderChannelSection() {

@ -15,12 +15,16 @@ import { SessionIcon, SessionIconSize, SessionIconType } from './icon';
import { SessionSearchInput } from './SessionSearchInput'; import { SessionSearchInput } from './SessionSearchInput';
import { SessionSettingCategory } from './settings/SessionSettings'; import { SessionSettingCategory } from './settings/SessionSettings';
interface Props {
isSecondaryDevice: boolean;
}
export interface State { export interface State {
settingCategory: SessionSettingCategory; settingCategory: SessionSettingCategory;
searchQuery: string; searchQuery: string;
} }
export class LeftPaneSettingSection extends React.Component<any, State> { export class LeftPaneSettingSection extends React.Component<Props, State> {
public constructor(props: any) { public constructor(props: any) {
super(props); super(props);
@ -30,6 +34,7 @@ export class LeftPaneSettingSection extends React.Component<any, State> {
}; };
this.setCategory = this.setCategory.bind(this); this.setCategory = this.setCategory.bind(this);
this.onDeleteAccount = this.onDeleteAccount.bind(this);
} }
public componentDidMount() { public componentDidMount() {
@ -140,41 +145,61 @@ export class LeftPaneSettingSection extends React.Component<any, State> {
); );
} }
public renderBottomButtons(): JSX.Element { public renderBottomButtons(): JSX.Element | undefined {
const deleteAccount = window.i18n('deleteAccount'); const { isSecondaryDevice } = this.props;
const dangerButtonText = isSecondaryDevice
? window.i18n('unpairDevice')
: window.i18n('deleteAccount');
const showSeed = window.i18n('showSeed'); const showSeed = window.i18n('showSeed');
return ( return (
<div className="left-pane-setting-bottom-buttons"> <div className="left-pane-setting-bottom-buttons">
<SessionButton <SessionButton
text={deleteAccount} text={dangerButtonText}
buttonType={SessionButtonType.SquareOutline} buttonType={SessionButtonType.SquareOutline}
buttonColor={SessionButtonColor.Danger} buttonColor={SessionButtonColor.Danger}
onClick={this.onDeleteAccount} onClick={this.onDeleteAccount}
/> />
{!isSecondaryDevice && (
<SessionButton <SessionButton
text={showSeed} text={showSeed}
buttonType={SessionButtonType.SquareOutline} buttonType={SessionButtonType.SquareOutline}
buttonColor={SessionButtonColor.White} buttonColor={SessionButtonColor.White}
onClick={window.showSeedDialog} onClick={window.showSeedDialog}
/> />
)}
</div> </div>
); );
} }
public onDeleteAccount() { public onDeleteAccount() {
const params = { const { isSecondaryDevice } = this.props;
title: window.i18n('deleteAccount'),
message: window.i18n('deleteAccountWarning'), const title = window.i18n(
messageSub: window.i18n('deleteAccountWarningSub'), isSecondaryDevice ? 'unpairDevice' : 'deleteAccount'
);
const message = window.i18n(
isSecondaryDevice ? 'unpairDeviceWarning' : 'deleteAccountWarning'
);
const messageSub = window.i18n(
isSecondaryDevice ? 'unpairDeviceWarningSub' : 'deleteAccountWarningSub'
);
window.confirmationDialog({
title,
message,
messageSub,
resolve: window.deleteAccount, resolve: window.deleteAccount,
okTheme: 'danger', okTheme: 'danger',
}; });
window.confirmationDialog(params);
} }
public getCategories() { public getCategories() {
const { isSecondaryDevice } = this.props;
return [ return [
{ {
id: SessionSettingCategory.Appearance, id: SessionSettingCategory.Appearance,
@ -199,6 +224,7 @@ export class LeftPaneSettingSection extends React.Component<any, State> {
{ {
id: SessionSettingCategory.Devices, id: SessionSettingCategory.Devices,
title: window.i18n('devicesSettingsTitle'), title: window.i18n('devicesSettingsTitle'),
hidden: isSecondaryDevice,
}, },
]; ];
} }

Loading…
Cancel
Save