Skip to content

Commit cdee251

Browse files
Copilotmroxso
andauthored
Replace feature tiles: remove Chat/Social Media, add edufeed content categories (#63)
* Initial plan * feat: replace feature tiles with new set per issue request Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com>
1 parent 64d6c37 commit cdee251

1 file changed

Lines changed: 36 additions & 36 deletions

File tree

‎src/pages/FeaturesPage.tsx‎

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,58 @@
11
import { Button } from "@/components/ui/button";
22
import { 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";
44
import { Link } from "react-router-dom";
55
import { useSeoMeta } from '@unhead/react';
66
import { PageHeader } from "@/components/PageHeader";
7-
import { useToast } from "@/hooks/useToast";
87

98
export 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

Comments
 (0)