forked from Kieran/void.cat
Add donate page
This commit is contained in:
parent
534722bf0d
commit
e000f4cd49
@ -1,3 +1,5 @@
|
|||||||
|
import './App.css';
|
||||||
|
|
||||||
import {BrowserRouter, Routes, Route} from "react-router-dom";
|
import {BrowserRouter, Routes, Route} from "react-router-dom";
|
||||||
import {Provider} from "react-redux";
|
import {Provider} from "react-redux";
|
||||||
import store from "./Store";
|
import store from "./Store";
|
||||||
@ -7,8 +9,8 @@ import {Admin} from "./Admin/Admin";
|
|||||||
import {UserLogin} from "./Pages/UserLogin";
|
import {UserLogin} from "./Pages/UserLogin";
|
||||||
import {Profile} from "./Pages/Profile";
|
import {Profile} from "./Pages/Profile";
|
||||||
import {Header} from "./Components/Shared/Header";
|
import {Header} from "./Components/Shared/Header";
|
||||||
|
import {Donate} from "./Pages/Donate";
|
||||||
|
|
||||||
import './App.css';
|
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
return (
|
return (
|
||||||
@ -22,6 +24,7 @@ function App() {
|
|||||||
<Route exact path="/u/:id" element={<Profile/>}/>
|
<Route exact path="/u/:id" element={<Profile/>}/>
|
||||||
<Route exact path="/admin" element={<Admin/>}/>
|
<Route exact path="/admin" element={<Admin/>}/>
|
||||||
<Route exact path="/:id" element={<FilePreview/>}/>
|
<Route exact path="/:id" element={<FilePreview/>}/>
|
||||||
|
<Route exact path="/donate" element={<Donate/>}/>
|
||||||
</Routes>
|
</Routes>
|
||||||
</BrowserRouter>
|
</BrowserRouter>
|
||||||
</Provider>
|
</Provider>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import "./FooterLinks.css"
|
import "./FooterLinks.css"
|
||||||
import StrikeLogo from "../../image/strike.png";
|
import StrikeLogo from "../../image/strike.png";
|
||||||
import {useSelector} from "react-redux";
|
import {useSelector} from "react-redux";
|
||||||
|
import {Link} from "react-router-dom";
|
||||||
|
|
||||||
export function FooterLinks() {
|
export function FooterLinks() {
|
||||||
const profile = useSelector(state => state.login.profile);
|
const profile = useSelector(state => state.login.profile);
|
||||||
@ -16,6 +17,7 @@ export function FooterLinks() {
|
|||||||
<a href="https://github.com/v0l/void.cat" target="_blank">
|
<a href="https://github.com/v0l/void.cat" target="_blank">
|
||||||
GitHub
|
GitHub
|
||||||
</a>
|
</a>
|
||||||
|
<Link to="/donate">Donate</Link>
|
||||||
{profile?.roles?.includes("Admin") ? <a href="/admin">Admin</a> : null}
|
{profile?.roles?.includes("Admin") ? <a href="/admin">Admin</a> : null}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
33
VoidCat/spa/src/Pages/Donate.js
Normal file
33
VoidCat/spa/src/Pages/Donate.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
import {useState} from "react";
|
||||||
|
|
||||||
|
export function Donate() {
|
||||||
|
const Hostname = "pay.v0l.io";
|
||||||
|
const StoreId = "CxjchLEkirhBWU17KeJrAe71g5TzrxsvsfLuFwrnyp5Q";
|
||||||
|
|
||||||
|
const [currency, setCurrency] = useState("USD");
|
||||||
|
const [price, setPrice] = useState(1);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="page">
|
||||||
|
<h2>Donate with Bitcoin</h2>
|
||||||
|
<form method="POST" action={`https://${Hostname}/api/v1/invoices`} className="flex">
|
||||||
|
<input type="hidden" name="storeId" value={StoreId}/>
|
||||||
|
<input type="hidden" name="checkoutDesc" value="Donation"/>
|
||||||
|
<div className="flex">
|
||||||
|
<input name="price" type="number" min="1" step="1" value={price}
|
||||||
|
onChange={(e) => setPrice(parseFloat(e.target.value))}/>
|
||||||
|
<select name="currency" value={currency} onChange={(e) => setCurrency(e.target.value)}>
|
||||||
|
<option>USD</option>
|
||||||
|
<option>GBP</option>
|
||||||
|
<option>EUR</option>
|
||||||
|
<option>BTC</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<input type="image"
|
||||||
|
name="submit"
|
||||||
|
src={`https://${Hostname}/img/paybutton/pay.svg`}
|
||||||
|
alt="Pay with BTCPay Server, a Self-Hosted Bitcoin Payment Processor"/>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user