import { useState } from '@wordpress/element'; import { Button, Modal } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import LCPDataGrid from './LCPDataGrid'; const LCPDatasetBuilder = ({ attributes, setAttributes }) => { const [isOpen, setIsOpen] = useState(false); const [activeTab, setActiveTab] = useState(0); // Track the active tab const handleUpdateDataset = (index, newData) => { // Log the newData in a readable format console.log("newData (formatted for copy-pasting):", JSON.stringify(newData, null, 2)); // Make a shallow copy of the datasets to avoid mutation const datasets = [...attributes.datasets]; // Ensure the data structure is correct before replacing if (newData && newData.data) { // Replace the data array at the specified index with the new data datasets[0].data = newData.data; // Log the datasets before the update console.log("Before Update:", JSON.stringify(datasets, null, 2)); // Update the attributes with the modified datasets setAttributes({ datasets: datasets }); // Log the updated attributes (you can check this after re-rendering) console.log("After Update:", JSON.stringify(datasets, null, 2)); } else { console.error("Invalid data format:", newData); } }; return ( <> {isOpen && ( setIsOpen(false)} title={__('Dataset Builder', 'lcp-visualize')} style={{ width: '90vw', height: '90vh' }} >
{/* Tabs */}
{attributes.datasets.map((dataset, index) => ( ))}
{/* Render all the LCPDataGrid components */}
{attributes.datasets.map((dataset, index) => (
))}
)} ); }; export default LCPDatasetBuilder;