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;