Sprzątanie projektu - dodanie podglądu gpx - dodanie obsługi logo i avatara - dodanie editable config do prostej edycji tekstów na stronie
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
|
||||
import React from 'react';
|
||||
import { WizardState, Tone, Goal } from '../types';
|
||||
import { Laugh, Brain, Zap, MessageCircle, Share2, ShoppingBag } from 'lucide-react';
|
||||
import { UI_TEXT } from '../_EDITABLE_CONFIG/ui_text';
|
||||
|
||||
interface StepToneGoalProps {
|
||||
data: WizardState;
|
||||
@@ -21,15 +23,15 @@ const StepToneGoal: React.FC<StepToneGoalProps> = ({ data, updateData, nextStep
|
||||
const isComplete = data.tone && data.goal;
|
||||
|
||||
const tones: { id: Tone; label: string; desc: string; icon: React.ReactNode }[] = [
|
||||
{ id: 'funny', label: 'Luzak', desc: 'Humor, dystans, memy', icon: <Laugh size={32} /> },
|
||||
{ id: 'serious', label: 'Ekspert', desc: 'Konkrety, wiedza, liczby', icon: <Brain size={32} /> },
|
||||
{ id: 'inspirational', label: 'Mentor', desc: 'Emocje, głębia, lekcja', icon: <Zap size={32} /> },
|
||||
{ id: 'funny', label: UI_TEXT.stepToneGoal.tones.funny.label, desc: UI_TEXT.stepToneGoal.tones.funny.desc, icon: <Laugh size={32} /> },
|
||||
{ id: 'serious', label: UI_TEXT.stepToneGoal.tones.serious.label, desc: UI_TEXT.stepToneGoal.tones.serious.desc, icon: <Brain size={32} /> },
|
||||
{ id: 'inspirational', label: UI_TEXT.stepToneGoal.tones.inspirational.label, desc: UI_TEXT.stepToneGoal.tones.inspirational.desc, icon: <Zap size={32} /> },
|
||||
];
|
||||
|
||||
const goals: { id: Goal; label: string; desc: string; icon: React.ReactNode }[] = [
|
||||
{ id: 'engagement', label: 'Społeczność', desc: 'Komentarze i dyskusja', icon: <MessageCircle size={32} /> },
|
||||
{ id: 'viral', label: 'Zasięg', desc: 'Udostępnienia (Share)', icon: <Share2 size={32} /> },
|
||||
{ id: 'sales', label: 'Sprzedaż', desc: 'Kliknięcie w link / Zakup', icon: <ShoppingBag size={32} /> },
|
||||
{ id: 'engagement', label: UI_TEXT.stepToneGoal.goals.engagement.label, desc: UI_TEXT.stepToneGoal.goals.engagement.desc, icon: <MessageCircle size={32} /> },
|
||||
{ id: 'viral', label: UI_TEXT.stepToneGoal.goals.viral.label, desc: UI_TEXT.stepToneGoal.goals.viral.desc, icon: <Share2 size={32} /> },
|
||||
{ id: 'sales', label: UI_TEXT.stepToneGoal.goals.sales.label, desc: UI_TEXT.stepToneGoal.goals.sales.desc, icon: <ShoppingBag size={32} /> },
|
||||
];
|
||||
|
||||
return (
|
||||
@@ -37,8 +39,8 @@ const StepToneGoal: React.FC<StepToneGoalProps> = ({ data, updateData, nextStep
|
||||
|
||||
{/* Sekcja 1: TON */}
|
||||
<div>
|
||||
<h2 className="text-3xl font-bold tracking-tight text-gray-900 mb-3">Wybierz Ton (Vibe)</h2>
|
||||
<p className="text-gray-500 mb-6 text-lg">Jak chcesz brzmieć?</p>
|
||||
<h2 className="text-3xl font-bold tracking-tight text-gray-900 mb-3">{UI_TEXT.stepToneGoal.toneTitle}</h2>
|
||||
<p className="text-gray-500 mb-6 text-lg">{UI_TEXT.stepToneGoal.toneSubtitle}</p>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
|
||||
{tones.map((t) => (
|
||||
@@ -63,8 +65,8 @@ const StepToneGoal: React.FC<StepToneGoalProps> = ({ data, updateData, nextStep
|
||||
|
||||
{/* Sekcja 2: CEL */}
|
||||
<div>
|
||||
<h2 className="text-3xl font-bold tracking-tight text-gray-900 mb-3">Wybierz Cel</h2>
|
||||
<p className="text-gray-500 mb-6 text-lg">Co chcesz osiągnąć tym postem?</p>
|
||||
<h2 className="text-3xl font-bold tracking-tight text-gray-900 mb-3">{UI_TEXT.stepToneGoal.goalTitle}</h2>
|
||||
<p className="text-gray-500 mb-6 text-lg">{UI_TEXT.stepToneGoal.goalSubtitle}</p>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
|
||||
{goals.map((g) => (
|
||||
@@ -87,14 +89,13 @@ const StepToneGoal: React.FC<StepToneGoalProps> = ({ data, updateData, nextStep
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Next Button */}
|
||||
<div className="flex justify-end pt-4">
|
||||
<button
|
||||
onClick={nextStep}
|
||||
disabled={!isComplete}
|
||||
className="bg-[#EA4420] text-white px-8 py-3 rounded-md font-bold hover:bg-[#d63b1a] transition-all disabled:opacity-50 disabled:cursor-not-allowed shadow-md"
|
||||
>
|
||||
Przejdź do szczegółów
|
||||
{UI_TEXT.stepToneGoal.nextBtn}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -102,4 +103,4 @@ const StepToneGoal: React.FC<StepToneGoalProps> = ({ data, updateData, nextStep
|
||||
);
|
||||
};
|
||||
|
||||
export default StepToneGoal;
|
||||
export default StepToneGoal;
|
||||
|
||||
Reference in New Issue
Block a user