/* eslint react/no-danger: "off" */ import { Fragment } from 'inferno'; import { useBackend } from '../backend'; import { Button, Box, Section, Table, LabeledList, Input, Tabs, Flex, AnimatedNumber, ProgressBar } from '../components'; import { NtosWindow } from '../layouts'; import { round } from 'common/math'; export const NtosEmailClient = (props, context) => { const { act, data } = useBackend(context); const { PC_device_theme, error, downloading, current_account } = data; let content = ; if (error) { content = ; } else if (downloading) { content = ; } else if (current_account) { content = ; } return ( {content} ); }; const NtosEmailClientDownloading = (props, context) => { const { act, data } = useBackend(context); const { down_filename, down_progress, down_size, down_speed } = data; return (
{down_filename} ({down_size} GQ) GQ/s {down_progress}/{down_size} ({round((down_progress / down_size) * 100, 1)}%)
); }; const NtosEmailClientContent = (props, context) => { const { act, data } = useBackend(context); const { current_account, addressbook, new_message, cur_title } = data; let content = ; if (addressbook) { content = ; } else if (new_message) { content = ; } else if (cur_title) { content = ; } return (
); }; const NtosEmailClientInbox = (props, context) => { const { act, data } = useBackend(context); const { current_account, folder, messagecount, messages } = data; return (
act('set_folder', { 'set_folder': 'Inbox' })}> Inbox act('set_folder', { 'set_folder': 'Spam' })}> Spam act('set_folder', { 'set_folder': 'Deleted' })}> Deleted {(messagecount && (
Source Title Received At Actions {messages.map((msg) => ( {msg.source} {msg.title} {msg.timestamp}
)) || No emails found in {folder}.}
); }; export const NtosEmailClientViewMessage = (props, context) => { const { act, data } = useBackend(context); // This is used to let NtosEmailAdministration use the same code for spying on emails // Administrators don't have access to attachments or the message UID, so we need to avoid // using those data attributes, as well as a slightly different act() model. const { administrator } = props; const { cur_title, cur_source, cur_timestamp, cur_body, cur_hasattachment, cur_attachment_filename, cur_attachment_size, cur_uid, } = data; return (
act('back')} /> ) : (
); }; const NtosEmailClientAddressBook = (props, context) => { const { act, data } = useBackend(context); const { accounts } = data; return (
act('set_recipient', { set_recipient: null })} />}> {accounts.map((acc) => (
); }; const NtosEmailClientNewMessage = (props, context) => { const { act, data } = useBackend(context); const { current_account, msg_title, msg_recipient, msg_body, msg_hasattachment, msg_attachment_filename, msg_attachment_size, } = data; return (
)) || ( ) }> {(msg_hasattachment && ( {msg_attachment_filename} ({msg_attachment_size}GQ) )) || null}
); }; const NtosEmailClientError = (props, context) => { const { act } = useBackend(context); const { error } = props; return (
act('reset')} />}> {error}
); }; const NtosEmailClientLogin = (props, context) => { const { act, data } = useBackend(context); const { stored_login, stored_password } = data; return (
act('edit_login', { val: val })} /> act('edit_password', { val: val })} />
); };