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