Device manager - other sessions list (PSG-637) (#9155)

* add session manager tab to user settings

* fussy import ordering

* i18n

* basic sorted list outline

* rename to filtered device list

* exclude current device session from other sessions list

* test other sessions section
This commit is contained in:
Kerry 2022-08-11 11:45:35 +02:00 committed by GitHub
parent 09aade2907
commit 0be622e7f0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 193 additions and 4 deletions

View file

@ -22,11 +22,14 @@ import { useOwnDevices } from '../../devices/useOwnDevices';
import DeviceTile from '../../devices/DeviceTile';
import SettingsSubsection from '../../shared/SettingsSubsection';
import SettingsTab from '../SettingsTab';
import FilteredDeviceList from '../../devices/FilteredDeviceList';
const SessionManagerTab: React.FC = () => {
const { devices, currentDeviceId, isLoading } = useOwnDevices();
const currentDevice = devices[currentDeviceId];
const { [currentDeviceId]: currentDevice, ...otherDevices } = devices;
const shouldShowOtherSessions = Object.keys(otherDevices).length > 0;
return <SettingsTab heading={_t('Sessions')}>
<SettingsSubsection
heading={_t('Current session')}
@ -37,6 +40,19 @@ const SessionManagerTab: React.FC = () => {
device={currentDevice}
/> }
</SettingsSubsection>
{
shouldShowOtherSessions &&
<SettingsSubsection
heading={_t('Other sessions')}
description={_t(
`For best security, verify your sessions and sign out ` +
`from any session that you don't recognize or use anymore.`,
)}
data-testid='other-sessions-section'
>
<FilteredDeviceList devices={otherDevices} />
</SettingsSubsection>
}
</SettingsTab>;
};