"use client"; import React, { useState, useRef } from 'react'; import Image from 'next/image'; import { LayoutDashboard, Newspaper, Users, BarChart3, Settings, HelpCircle, Image as ImageIcon, Type, Calendar, Clock, Tag, User, Save, Eye, Send } from 'lucide-react'; // Importe o componente que criámos (ajuste o caminho se necessário) import MultiAspectEditor from '../components/MultiAspectEditor'; const CreateNewsPage = () => { // 1. Estados para o Crop const [tempImage, setTempImage] = useState(null); const [isEditorOpen, setIsEditorOpen] = useState(false); const [finalCrops, setFinalCrops] = useState(null); // Guarda os Base64 finais const fileInputRef = useRef(null); // 2. Lógica de Upload const handleFileChange = (e: React.ChangeEvent) => { if (e.target.files && e.target.files.length > 0) { const reader = new FileReader(); reader.readAsDataURL(e.target.files[0]); reader.onload = () => { setTempImage(reader.result as string); setIsEditorOpen(true); }; } }; const triggerUpload = () => { fileInputRef.current?.click(); }; return (
{/* --- MODAL DO EDITOR (Renderiza fora do fluxo quando ativo) --- */} {isEditorOpen && tempImage && ( setIsEditorOpen(false)} onExport={(data) => { setFinalCrops(data); // Aqui tens o objeto com hero, news, square em Base64 setIsEditorOpen(false); console.log("Imagens prontas para envio:", data); }} /> )} {/* Sidebar Lateral */} {/* Main Content Area */}

James Wilson

Editor

User

Criar Nova Notícia

{/* Coluna Principal */}

B I