mirror of
https://github.com/lux-tel/session-desktop.git
synced 2026-10-30 20:33:24 +00:00
61 lines
2.7 KiB
TypeScript
61 lines
2.7 KiB
TypeScript
import { type UserSettingsModalState } from '../../../state/ducks/modalDialog';
|
|
import { assertUnreachable } from '../../../types/sqlSharedTypes';
|
|
import { AppearanceSettingsPage } from './pages/AppearanceSettingsPage';
|
|
import { BlockedContactsSettingsPage } from './pages/BlockedContactsSettingsPage';
|
|
import { ConversationSettingsPage } from './pages/ConversationSettingsPage';
|
|
import { DefaultSettingPage } from './pages/DefaultSettingsPage';
|
|
import { EditPasswordSettingsPage } from './pages/EditPasswordSettingsPage';
|
|
import { HelpSettingsPage } from './pages/HelpSettingsPage';
|
|
import { SessionNetworkPage } from './pages/network/SessionNetworkPage';
|
|
import { NotificationsSettingsPage } from './pages/NotificationsSettingsPage';
|
|
import { PreferencesSettingsPage } from './pages/PreferencesSettingsPage';
|
|
import { PrivacySettingsPage } from './pages/PrivacySettingsPage';
|
|
import { RecoveryPasswordSettingsPage } from './pages/RecoveryPasswordSettingsPage';
|
|
import { ProNonOriginatingPage } from './pages/user-pro/ProNonOriginatingPage';
|
|
import { ProSettingsPage } from './pages/user-pro/ProSettingsPage';
|
|
|
|
export const UserSettingsDialog = (modalState: UserSettingsModalState) => {
|
|
if (!modalState?.userSettingsPage) {
|
|
return null;
|
|
}
|
|
|
|
const { userSettingsPage } = modalState;
|
|
|
|
switch (userSettingsPage) {
|
|
case 'default':
|
|
return <DefaultSettingPage {...modalState} />;
|
|
case 'privacy':
|
|
return <PrivacySettingsPage {...modalState} />;
|
|
case 'notifications':
|
|
return <NotificationsSettingsPage {...modalState} />;
|
|
case 'conversations':
|
|
return <ConversationSettingsPage {...modalState} />;
|
|
case 'help':
|
|
return <HelpSettingsPage {...modalState} />;
|
|
case 'preferences':
|
|
return <PreferencesSettingsPage {...modalState} />;
|
|
case 'blocked-contacts':
|
|
return <BlockedContactsSettingsPage {...modalState} />;
|
|
case 'appearance':
|
|
return <AppearanceSettingsPage {...modalState} />;
|
|
case 'recovery-password':
|
|
return <RecoveryPasswordSettingsPage {...modalState} />;
|
|
case 'password':
|
|
return <EditPasswordSettingsPage {...modalState} />;
|
|
case 'network':
|
|
return <SessionNetworkPage {...modalState} />;
|
|
case 'pro':
|
|
return <ProSettingsPage {...modalState} />;
|
|
case 'proNonOriginating':
|
|
return <ProNonOriginatingPage {...modalState} />;
|
|
case 'message-requests':
|
|
// the `message-request` is not a page of the user settings page, but a page in the left pane header currently.
|
|
return null;
|
|
case 'clear-data':
|
|
// the `clear-data` is not a page of the user settings page, but a separate dialog.
|
|
return null;
|
|
default:
|
|
return assertUnreachable(userSettingsPage, `Unknown user settings page: ${userSettingsPage}`);
|
|
}
|
|
};
|