2024-09-27 16:30:04 -05:00
|
|
|
import React from 'react';
|
2024-09-13 16:17:19 -05:00
|
|
|
import Image from 'next/image';
|
|
|
|
import NostrIcon from '../../public/images/nostr.png';
|
2024-09-27 16:30:04 -05:00
|
|
|
import { Card } from 'primereact/card';
|
|
|
|
import { Message } from 'primereact/message';
|
|
|
|
import { useToast } from "@/hooks/useToast";
|
2024-09-15 15:53:27 -05:00
|
|
|
import useWindowWidth from "@/hooks/useWindowWidth";
|
2024-09-27 16:30:04 -05:00
|
|
|
import GenericButton from '@/components/buttons/GenericButton';
|
2024-10-10 17:54:34 -05:00
|
|
|
import InteractivePromotionalCarousel from '@/components/content/carousels/InteractivePromotionalCarousel';
|
2024-09-13 11:39:44 -05:00
|
|
|
|
|
|
|
const AboutPage = () => {
|
2024-09-27 16:30:04 -05:00
|
|
|
const { showToast } = useToast();
|
2024-09-15 15:53:27 -05:00
|
|
|
const windowWidth = useWindowWidth();
|
2024-09-13 16:17:19 -05:00
|
|
|
|
2024-10-10 17:54:34 -05:00
|
|
|
const isTabView = windowWidth <= 1360;
|
|
|
|
|
2024-09-13 16:17:19 -05:00
|
|
|
const copyToClipboard = async (text) => {
|
|
|
|
try {
|
2024-09-27 16:30:04 -05:00
|
|
|
await navigator.clipboard.writeText(text);
|
|
|
|
showToast("success", "Copied", "Copied Lightning Address to clipboard");
|
|
|
|
if (window && window?.webln && window?.webln?.lnurl) {
|
|
|
|
await window.webln.enable();
|
|
|
|
const result = await window.webln.lnurl("austin@bitcoinpleb.dev");
|
|
|
|
if (result && result?.preimage) {
|
|
|
|
showToast("success", "Payment Sent", "Thank you for your donation!");
|
|
|
|
}
|
2024-09-13 16:17:19 -05:00
|
|
|
}
|
|
|
|
} catch (err) {
|
2024-09-27 16:30:04 -05:00
|
|
|
console.error('Failed to copy:', err);
|
2024-09-13 16:17:19 -05:00
|
|
|
}
|
2024-09-27 16:30:04 -05:00
|
|
|
};
|
2024-09-13 16:17:19 -05:00
|
|
|
|
2024-09-13 11:39:44 -05:00
|
|
|
return (
|
2024-10-10 17:54:34 -05:00
|
|
|
<div className={`${isTabView ? 'w-full' : 'w-[83vw]'} p-4 mx-auto`}>
|
|
|
|
<InteractivePromotionalCarousel />
|
2024-09-27 16:30:04 -05:00
|
|
|
<Card title="Key Features" className="mb-4">
|
|
|
|
<div className="flex flex-col gap-4">
|
|
|
|
<div className="flex flex-col items-start justify-center">
|
|
|
|
<div className='flex flex-row items-start justify-center'>
|
|
|
|
<i className="pi pi-cloud text-2xl text-primary mr-2 text-blue-400"></i>
|
|
|
|
<h3 className='text-lg font-semibold'>Content Distribution:</h3>
|
|
|
|
</div>
|
|
|
|
<p className='text-lg'>All educational content is published to Nostr and actively pulled from Nostr relays, ensuring distributed and up-to-date information.</p>
|
|
|
|
</div>
|
|
|
|
<div className="flex items-start">
|
|
|
|
<i className="pi pi-file-edit text-2xl text-primary mr-2 text-green-400 mt-1"></i>
|
|
|
|
<div>
|
|
|
|
<h3 className="text-lg font-semibold">Content Types:</h3>
|
|
|
|
<p className='text-lg'>high signal, Bitcoin, Lightning, Nostr educational content.</p>
|
|
|
|
<ul className="list-disc list-inside ml-2 mt-2 space-y-2">
|
|
|
|
<li><span className="text-lg font-semibold">Documents:</span> Markdown documents posted as NIP-23 long-form events on Nostr.</li>
|
|
|
|
<li><span className="text-lg font-semibold">Videos:</span> Enhanced markdown files with rich media support, including embedded videos, also saved as NIP-23 events.</li>
|
2024-09-27 17:00:20 -05:00
|
|
|
<li><span className="text-lg font-semibold">Courses:</span> Nostr lists (NIP-51) that combines multiple documents and videos into a structured learning path.</li>
|
2024-09-27 16:30:04 -05:00
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className="flex items-start">
|
|
|
|
<i className="pi pi-users text-2xl text-primary mr-2 text-purple-400 mt-1"></i>
|
|
|
|
<div>
|
|
|
|
<h3 className="text-lg font-semibold">Community:</h3>
|
|
|
|
<p className='text-lg'>All of the current PlebDevs Community channels.</p>
|
|
|
|
<ul className="list-disc list-inside ml-2 mt-2 space-y-2">
|
|
|
|
<li><span className="text-lg font-semibold">Nostr:</span> Public plebdevs nostr chat</li>
|
|
|
|
<li><span className="text-lg font-semibold">Discord:</span> PlebDevs Discord server</li>
|
|
|
|
<li><span className="text-lg font-semibold">StackerNews:</span> StackerNews ~devs territory</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</Card>
|
2024-09-13 16:17:19 -05:00
|
|
|
|
2024-09-27 16:30:04 -05:00
|
|
|
<Card title="Connect with Us" className="mb-4">
|
|
|
|
<div className="flex flex-wrap gap-4 justify-center">
|
|
|
|
<GenericButton
|
|
|
|
severity="secondary"
|
|
|
|
outlined
|
|
|
|
icon="pi pi-github"
|
2024-09-30 12:59:19 -05:00
|
|
|
tooltip="Github"
|
|
|
|
className="text-gray-300"
|
2024-09-27 16:30:04 -05:00
|
|
|
onClick={() => window.open('https://github.com/pleb-devs', '_blank')}
|
|
|
|
/>
|
|
|
|
<GenericButton
|
|
|
|
severity="info"
|
|
|
|
outlined
|
|
|
|
icon="pi pi-twitter"
|
2024-09-30 12:59:19 -05:00
|
|
|
tooltip="X"
|
2024-09-27 16:30:04 -05:00
|
|
|
onClick={() => window.open('https://x.com/pleb_devs', '_blank')}
|
|
|
|
/>
|
|
|
|
<GenericButton
|
|
|
|
severity="help"
|
|
|
|
outlined
|
2024-09-30 12:59:19 -05:00
|
|
|
icon={<Image src={NostrIcon} alt="Nostr" width={20} height={20} className="mr-0" />}
|
|
|
|
tooltip="Nostr"
|
2024-09-27 16:30:04 -05:00
|
|
|
onClick={() => window.open('https://nostr.com/plebdevs@plebdevs.com', '_blank')}
|
|
|
|
/>
|
2024-10-07 16:26:54 -05:00
|
|
|
<GenericButton
|
|
|
|
severity="danger"
|
|
|
|
outlined
|
|
|
|
icon="pi pi-youtube"
|
|
|
|
tooltip="Youtube"
|
|
|
|
onClick={() => window.open('https://www.youtube.com/@plebdevs', '_blank')}
|
|
|
|
/>
|
2024-09-27 16:30:04 -05:00
|
|
|
<GenericButton
|
|
|
|
severity="warning"
|
2024-09-30 12:59:19 -05:00
|
|
|
className="text-yellow-400"
|
2024-09-27 16:30:04 -05:00
|
|
|
outlined
|
|
|
|
icon="pi pi-bolt"
|
2024-09-30 12:59:19 -05:00
|
|
|
tooltip="Donate"
|
2024-09-27 16:30:04 -05:00
|
|
|
onClick={() => copyToClipboard("austin@bitcoinpleb.dev")}
|
|
|
|
/>
|
2024-09-13 16:17:19 -05:00
|
|
|
</div>
|
2024-09-27 16:30:04 -05:00
|
|
|
</Card>
|
2024-09-13 11:39:44 -05:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default AboutPage;
|