/** @jsx h */ import { h, Component } from 'preact'; import api from 'common/api'; import { getHandleClickProps } from 'common/accessibility'; export default class BlockedUsers extends Component { constructor(props) { super(props); this.state = { unblockedUsers: [], }; } block(user) { if (confirm('Do you want to block this user?')) { api.blockUser({ id: user.id }).then(() => { this.setState({ unblockedUsers: this.state.unblockedUsers.filter(x => x !== user.id) }); if (this.props.onBlock) this.props.onBlock(user.id); }); } } unblock(user) { if (confirm('Do you want to unblock this user?')) { api.unblockUser({ id: user.id }).then(() => { this.setState({ unblockedUsers: this.state.unblockedUsers.concat([user.id]) }); if (this.props.onUnblock) this.props.onUnblock(user.id); }); } } render(props, { unblockedUsers }) { const { users } = props; return (
{!users.length &&

There are no blocked users.

} {!!users.length &&

List of blocked users:

} {!!users.length && ( )}
); } } function formatTime(time) { // 'ru-RU' adds a dot as a separator const date = time.toLocaleDateString(['ru-RU'], { day: '2-digit', month: '2-digit', year: '2-digit' }); // do it manually because Intl API doesn't add leading zeros to hours; idk why const hours = `0${time.getHours()}`.slice(-2); const mins = `0${time.getMinutes()}`.slice(-2); return `${date} at ${hours}:${mins}`; }