]> Untitled Git - lemmy.git/blob - ui/src/components/create-private-message.tsx
Adding private messaging, and matrix user ids.
[lemmy.git] / ui / src / components / create-private-message.tsx
1 import { Component } from 'inferno';
2 import { PrivateMessageForm } from './private-message-form';
3 import { WebSocketService } from '../services';
4 import { PrivateMessageFormParams } from '../interfaces';
5 import { i18n } from '../i18next';
6
7 export class CreatePrivateMessage extends Component<any, any> {
8   constructor(props: any, context: any) {
9     super(props, context);
10     this.handlePrivateMessageCreate = this.handlePrivateMessageCreate.bind(
11       this
12     );
13   }
14
15   componentDidMount() {
16     document.title = `${i18n.t('create_private_message')} - ${
17       WebSocketService.Instance.site.name
18     }`;
19   }
20
21   render() {
22     return (
23       <div class="container">
24         <div class="row">
25           <div class="col-12 col-lg-6 offset-lg-3 mb-4">
26             <h5>{i18n.t('create_private_message')}</h5>
27             <PrivateMessageForm
28               onCreate={this.handlePrivateMessageCreate}
29               params={this.params}
30             />
31           </div>
32         </div>
33       </div>
34     );
35   }
36
37   get params(): PrivateMessageFormParams {
38     let urlParams = new URLSearchParams(this.props.location.search);
39     let params: PrivateMessageFormParams = {
40       recipient_id: Number(urlParams.get('recipient_id')),
41     };
42
43     return params;
44   }
45
46   handlePrivateMessageCreate() {
47     alert(i18n.t('message_sent'));
48
49     // Navigate to the front
50     this.props.history.push(`/`);
51   }
52 }