11import { Button } from "@/components/ui/button" ;
22import { Card , CardContent , CardDescription , CardHeader , CardTitle } from "@/components/ui/card" ;
3- import { ArrowRight , Calendar , MessageSquare , Users , FileText } from "lucide-react" ;
3+ import { ArrowRight , BookOpen , Calendar , Users , Kanban , Newspaper , Sparkles } from "lucide-react" ;
44import { Link } from "react-router-dom" ;
55import { useSeoMeta } from '@unhead/react' ;
66import { PageHeader } from "@/components/PageHeader" ;
7- import { useToast } from "@/hooks/useToast" ;
87
98export default function FeaturesPage ( ) {
10- const { toast } = useToast ( ) ;
11-
129 useSeoMeta ( {
1310 title : 'Features - Nostr Onboarding' ,
1411 description : 'Entdecken Sie die vielfältigen Möglichkeiten des Nostr-Protokolls.' ,
1512 } ) ;
1613
1714 const features = [
1815 {
19- icon : MessageSquare ,
20- title : "Social Media " ,
21- description : "Veröffentlichen Sie Notizen, Artikel und Inhalte ohne Zensur. Ihre Beiträge gehören Ihnen für immer ." ,
16+ icon : BookOpen ,
17+ title : "Lehr- & Lernmaterialien " ,
18+ description : "Entdecken Sie Lehr- und Lernmaterialien aus der Community ." ,
2219 color : "text-blue-600" ,
23- url : ""
24- } ,
25- {
26- icon : Calendar ,
27- title : "Kalender & Events" ,
28- description : "Erstellen und teilen Sie Events und Termine. Koordinieren Sie Treffen dezentral mit der Community." ,
29- color : "text-purple-600" ,
30- url : "https://edufeed.org/calendar"
31- } ,
32- {
33- icon : MessageSquare ,
34- title : "Direktnachrichten" ,
35- description : "Verschlüsselte private Nachrichten. Kommunizieren Sie sicher ohne Drittanbieter." ,
36- color : "text-green-600" ,
37- url : ""
20+ url : "https://rpi.edufeed.org/discover?type=learning"
3821 } ,
3922 {
4023 icon : Users ,
4124 title : "Communities" ,
4225 description : "Treten Sie Interessengruppen bei oder erstellen Sie eigene. Dezentrale Moderation möglich." ,
4326 color : "text-indigo-600" ,
44- url : "https://edufeed.org/discover?type=communities"
27+ url : "https://rpi. edufeed.org/discover?type=communities"
4528 } ,
4629 {
47- icon : FileText ,
48- title : "Kanban-Boards" ,
30+ icon : Calendar ,
31+ title : "Kalender" ,
32+ description : "Erstellen und teilen Sie Events und Termine. Koordinieren Sie Treffen dezentral mit der Community." ,
33+ color : "text-purple-600" ,
34+ url : "https://rpi.edufeed.org/discover?type=events"
35+ } ,
36+ {
37+ icon : Kanban ,
38+ title : "Kanban" ,
4939 description : "Projektmanagement und Aufgabenverwaltung. Kollaborieren Sie transparent und offen." ,
5040 color : "text-orange-600" ,
51- url : "https://kanban .edufeed.org/cardsboard "
41+ url : "https://rpi .edufeed.org/discover?type=boards "
5242 } ,
5343 {
54- icon : FileText ,
55- title : "Artikel & Blog Posts " ,
56- description : "Veröffentlichen Sie Artikel, Blogs und Dokumentation. Vollständige Formatierung unterstützt ." ,
44+ icon : Newspaper ,
45+ title : "News / Blog" ,
46+ description : "Lesen und veröffentlichen Sie Artikel, Blogs und Neuigkeiten aus der Community ." ,
5747 color : "text-teal-600" ,
58- url : "https://zelo.news"
48+ url : "https://rpi.edufeed.org/discover?type=articles"
49+ } ,
50+ {
51+ icon : Sparkles ,
52+ title : "Mehr kommt noch ✨" ,
53+ description : "Weitere Funktionen wie ein Chat, Forum, Social Media-Verknüpfungen etc. sind geplant." ,
54+ color : "text-pink-500" ,
55+ url : null
5956 }
6057 ] ;
6158
@@ -81,8 +78,13 @@ export default function FeaturesPage() {
8178 { /* Features Grid */ }
8279 < div className = "grid md:grid-cols-2 lg:grid-cols-3 gap-6 max-w-7xl mx-auto mb-16" >
8380 { features . map ( ( feature , index ) => {
81+ const isComingSoon = feature . url === null ;
82+
8483 const card = (
85- < Card key = { index } className = "border-2 hover:shadow-lg transition-shadow cursor-pointer hover:border-primary" >
84+ < Card
85+ key = { index }
86+ className = { `border-2 transition-shadow ${ isComingSoon ? "opacity-75 border-dashed" : "hover:shadow-lg cursor-pointer hover:border-primary" } ` }
87+ >
8688 < CardHeader >
8789 < feature . icon className = { `h-10 w-10 mb-2 ${ feature . color } ` } />
8890 < CardTitle className = "text-lg" > { feature . title } </ CardTitle >
@@ -93,14 +95,12 @@ export default function FeaturesPage() {
9395 </ Card >
9496 ) ;
9597
96- return feature . url ? (
98+ return isComingSoon || ! feature . url ? (
99+ < div key = { index } > { card } </ div >
100+ ) : (
97101 < a key = { index } href = { feature . url } target = "_blank" rel = "noopener noreferrer" className = "block" >
98102 { card }
99103 </ a >
100- ) : (
101- < div key = { index } onClick = { ( ) => toast ( { title : "Kommt bald.." , description : "Dieses Feature ist noch in Entwicklung." } ) } >
102- { card }
103- </ div >
104104 ) ;
105105 } ) }
106106 </ div >
0 commit comments