]> Untitled Git - lemmy.git/blob - ui/src/components/sponsors.tsx
Merge branch 'master' into arrudaricardo-issue-#814
[lemmy.git] / ui / src / components / sponsors.tsx
1 import { Component } from 'inferno';
2 import { WebSocketService } from '../services';
3 import { i18n } from '../i18next';
4 import { T } from 'inferno-i18next';
5 import { repoUrl } from '../utils';
6
7 interface SilverUser {
8   name: string;
9   link?: string;
10 }
11
12 let general = [
13   'dude in phx',
14   'twilight loki',
15   'Andrew Plaza',
16   'Jonathan Cremin',
17   'Arthur Nieuwland',
18   'Ernest Wiśniewski',
19   'HN',
20   'Forrest Weghorst',
21   'Andre Vallestero',
22   'NotTooHighToHack',
23 ];
24 let highlighted = ['DiscountFuneral', 'Oskenso Kashi', 'Alex Benishek'];
25 let silver: Array<SilverUser> = [
26   {
27     name: 'Redjoker',
28     link: 'https://iww.org',
29   },
30 ];
31 // let gold = [];
32 // let latinum = [];
33
34 export class Sponsors extends Component<any, any> {
35   constructor(props: any, context: any) {
36     super(props, context);
37   }
38
39   componentDidMount() {
40     document.title = `${i18n.t('sponsors')} - ${
41       WebSocketService.Instance.site.name
42     }`;
43     window.scrollTo(0, 0);
44   }
45
46   render() {
47     return (
48       <div class="container text-center">
49         {this.topMessage()}
50         <hr />
51         {this.sponsors()}
52         <hr />
53         {this.bitcoin()}
54       </div>
55     );
56   }
57
58   topMessage() {
59     return (
60       <div>
61         <h5>{i18n.t('donate_to_lemmy')}</h5>
62         <p>
63           <T i18nKey="sponsor_message">
64             #<a href={repoUrl}>#</a>
65           </T>
66         </p>
67         <a class="btn btn-secondary" href="https://liberapay.com/Lemmy/">
68           {i18n.t('support_on_liberapay')}
69         </a>
70         <a
71           class="btn btn-secondary ml-2"
72           href="https://www.patreon.com/dessalines"
73         >
74           {i18n.t('support_on_patreon')}
75         </a>
76         <a
77           class="btn btn-secondary ml-2"
78           href="https://opencollective.com/lemmy"
79         >
80           {i18n.t('support_on_open_collective')}
81         </a>
82       </div>
83     );
84   }
85   sponsors() {
86     return (
87       <div class="container">
88         <h5>{i18n.t('sponsors')}</h5>
89         <p>{i18n.t('silver_sponsors')}</p>
90         <div class="row card-columns">
91           {silver.map(s => (
92             <div class="card col-12 col-md-2">
93               <div>
94                 {s.link ? (
95                   <a href={s.link} target="_blank" rel="noopener">
96                     💎 {s.name}
97                   </a>
98                 ) : (
99                   <div>💎 {s.name}</div>
100                 )}
101               </div>
102             </div>
103           ))}
104         </div>
105         <p>{i18n.t('general_sponsors')}</p>
106         <div class="row card-columns">
107           {highlighted.map(s => (
108             <div class="card bg-primary col-12 col-md-2 font-weight-bold">
109               <div>{s}</div>
110             </div>
111           ))}
112           {general.map(s => (
113             <div class="card col-12 col-md-2">
114               <div>{s}</div>
115             </div>
116           ))}
117         </div>
118       </div>
119     );
120   }
121
122   bitcoin() {
123     return (
124       <div>
125         <h5>{i18n.t('crypto')}</h5>
126         <div class="table-responsive">
127           <table class="table table-hover text-center">
128             <tbody>
129               <tr>
130                 <td>{i18n.t('bitcoin')}</td>
131                 <td>
132                   <code>1Hefs7miXS5ff5Ck5xvmjKjXf5242KzRtK</code>
133                 </td>
134               </tr>
135               <tr>
136                 <td>{i18n.t('ethereum')}</td>
137                 <td>
138                   <code>0x400c96c96acbC6E7B3B43B1dc1BB446540a88A01</code>
139                 </td>
140               </tr>
141               <tr>
142                 <td>{i18n.t('monero')}</td>
143                 <td>
144                   <code>
145                     41taVyY6e1xApqKyMVDRVxJ76sPkfZhALLTjRvVKpaAh2pBd4wv9RgYj1tSPrx8wc6iE1uWUfjtQdTmTy2FGMeChGVKPQuV
146                   </code>
147                 </td>
148               </tr>
149             </tbody>
150           </table>
151         </div>
152       </div>
153     );
154   }
155 }