diff --git a/components/HowItWorksData.tsx b/components/HowItWorksData.tsx index 33c41fa7..80693be0 100644 --- a/components/HowItWorksData.tsx +++ b/components/HowItWorksData.tsx @@ -4,6 +4,11 @@ import { GlobalProblemSolutionsList } from "@/components/global-problem-solution import { GlobalProblemsList } from "@/components/global-problems-list" import { PollRandomGlobalProblemSolutions } from "@/components/poll-random-global-problem-solutions" import { PollRandomGlobalProblems } from "@/components/poll-random-global-problems" +import ActionableTaskStrategyVisualizer from "@/components/landing-page/TaskGalaxyVisualizerWithData"; +import TaskAllocationVisualizer from "@/components/landing-page/TaskAllocationVisualizer"; +import ResearchEffortCataloger from "@/components/landing-page/ResearchEffortCataloger"; +import ImpactTrackerVisualizer from "@/components/landing-page/ImpactTrackerVisualizer"; +import IdeaSubmissionHub from "@/components/landing-page/IdeaSubmissionHub"; export interface QAItem { question: string @@ -67,7 +72,7 @@ const HowItWorksData: QAItem[] = [ answer: "The chosen solutions are broken down into smaller, actionable tasks. " + "Goal decomposition agents help in this process by identifying necessary steps, potential dependencies, and required skills for each task.", - //visual: , + visual: , }, { question: "Who carries out these tasks?", @@ -75,7 +80,7 @@ const HowItWorksData: QAItem[] = [ "Tasks can be completed by anyone with the right skills – this includes " + "both humans and AI. We use AI to match tasks with the most suitable " + "people or teams based on their skills, experience, and interests.", - //visual: , + visual: , }, { question: "How does it avoid duplicating work that's already being done?", @@ -83,7 +88,7 @@ const HowItWorksData: QAItem[] = [ "AI research agents to continuously scan and catalog existing efforts " + "related to each problem and solution. This helps us identify " + "opportunities for collaboration and avoid reinventing the wheel.", - //visual: , + visual: , }, { question: "How does it track progress and measure impact?", @@ -91,13 +96,13 @@ const HowItWorksData: QAItem[] = [ "AI research agents also analyze data from various sources, tracking key metrics related " + "to each problem and solution. This allows us to measure the " + "real-world impact of our efforts and adjust strategies as needed.", - //visual: , + visual: , }, { question: "What if someone has a new idea or solution?", answer: "New ideas are always welcome! Anyone can submit new problems, solutions, or tasks. ", - //visual: , + visual: , }, ] diff --git a/components/landing-page/IdeaSubmissionHub.tsx b/components/landing-page/IdeaSubmissionHub.tsx new file mode 100644 index 00000000..5c7ae001 --- /dev/null +++ b/components/landing-page/IdeaSubmissionHub.tsx @@ -0,0 +1,114 @@ +"use client" +import React, { useState } from 'react'; +import { Lightbulb, AlertCircle, Cog, List, Send } from 'lucide-react'; + +type IdeaType = 'problem' | 'solution' | 'task' | 'other'; + +interface Idea { + type: IdeaType; + title: string; + description: string; +} + +const IdeaSubmissionHub: React.FC = () => { + const [ideaType, setIdeaType] = useState('problem'); + const [title, setTitle] = useState(''); + const [description, setDescription] = useState(''); + const [submitted, setSubmitted] = useState(false); + const [recentIdeas, setRecentIdeas] = useState([]); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + const newIdea: Idea = { type: ideaType, title, description }; + setRecentIdeas(prev => [newIdea, ...prev.slice(0, 2)]); + setSubmitted(true); + setTimeout(() => { + setSubmitted(false); + setTitle(''); + setDescription(''); + }, 3000); + }; + + const getIcon = (type: IdeaType) => { + switch (type) { + case 'problem': return ; + case 'solution': return ; + case 'task': return ; + default: return ; + } + }; + + return ( +
+

Idea Submission Hub

+
+

New Ideas Welcome!

+

We encourage everyone to submit new problems, solutions, or tasks. Your ideas can make a difference!

+
+
+
+ +
+ {(['problem', 'solution', 'task', 'other'] as IdeaType[]).map(type => ( + + ))} +
+
+
+ + setTitle(e.target.value)} + className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2" + required + /> +
+
+ +