import ConfirmButton from '@app/components/Common/ConfirmButton'; import globalMessages from '@app/i18n/globalMessages'; import { ComputerDesktopIcon, DevicePhoneMobileIcon, TrashIcon, } from '@heroicons/react/24/solid'; import { defineMessages, useIntl } from 'react-intl'; import { UAParser } from 'ua-parser-js'; interface DeviceItemProps { disablePushNotifications: (p256dh: string) => void; device: { endpoint: string; p256dh: string; auth: string; userAgent: string; createdAt: Date; }; } const messages = defineMessages({ operatingsystem: 'Operating System', browser: 'Browser', engine: 'Engine', deletesubscription: 'Delete Subscription', }); const DeviceItem = ({ disablePushNotifications, device }: DeviceItemProps) => { const intl = useIntl(); return (
{UAParser(device.userAgent).device.type === 'mobile' ? ( ) : ( )}
{device.createdAt ? intl.formatDate(device.createdAt, { year: 'numeric', month: 'long', day: 'numeric', }) : 'Unknown'}
{device.userAgent ? UAParser(device.userAgent).device.model : 'Unknown'}
{intl.formatMessage(messages.operatingsystem)} {device.userAgent ? UAParser(device.userAgent).os.name : 'Unknown'}
{intl.formatMessage(messages.browser)} {device.userAgent ? UAParser(device.userAgent).browser.name : 'Unknown'}
{intl.formatMessage(messages.engine)} {device.userAgent ? UAParser(device.userAgent).engine.name : 'Unknown'}
disablePushNotifications(device.p256dh)} confirmText={intl.formatMessage(globalMessages.areyousure)} className="w-full" > {intl.formatMessage(messages.deletesubscription)}
); }; export default DeviceItem;