import React, { useState } from 'react';
import { useSettings } from './Settings/hooks/useSettings';
import SettingsTabs from './Settings/components/SettingsTabs';
import SaveButton from './Settings/components/SaveButton';
import Notification from './Settings/components/Notification';
import SiteInformationSettings from './Settings/components/SiteInformationSettings';
import ContentReadingSettings from './Settings/components/ContentReadingSettings';
import WritingPublishingSettings from './Settings/components/WritingPublishingSettings';
import MediaAssetsSettings from './Settings/components/MediaAssetsSettings';
import UsersMembershipSettings from './Settings/components/UsersMembershipSettings';
import HelixSettings from './Settings/components/HelixSettings';
import './Settings/styles.css';
/**
* Main Settings Page Component
*/
export default function Settings() {
const {
settings,
loading,
saving,
error,
hasUnsavedChanges,
updateSetting,
saveSettings,
resetSettings,
} = useSettings();
const [ activeTab, setActiveTab ] = useState( 'site' );
const [ notification, setNotification ] = useState( null );
const handleSave = async () => {
const result = await saveSettings();
if ( result.success ) {
setNotification( {
type: 'success',
message: result.message || 'Settings saved successfully!',
} );
} else {
setNotification( {
type: 'error',
message:
result.message ||
'Failed to save settings. Please try again.',
} );
}
};
const handleReset = () => {
resetSettings();
setNotification( {
type: 'info',
message: 'Changes have been reset to their original values.',
} );
};
const handleTabChange = ( tabId ) => {
if ( hasUnsavedChanges ) {
const confirmed = window.confirm(
'You have unsaved changes. Are you sure you want to switch tabs? Your changes will be lost.'
);
if ( ! confirmed ) {
return;
}
}
setActiveTab( tabId );
};
const renderTabContent = () => {
const commonProps = { settings, updateSetting };
switch ( activeTab ) {
case 'site':
return
Loading settings...
Manage your WordPress site configuration