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