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