'use client'; import React from 'react'; import { classNames } from 'primereact/utils'; import { PrimeReactContext } from 'primereact/api'; import { RadioButton, RadioButtonChangeEvent } from 'primereact/radiobutton'; import { InputSwitch, InputSwitchChangeEvent } from 'primereact/inputswitch'; import { Button } from 'primereact/button'; import { LayoutContext } from './context/layoutcontext'; import { Sidebar } from 'primereact/sidebar'; import { useContext, useEffect } from 'react'; import { AppConfigProps, ColorScheme } from '../types/layout'; const AppConfig = (props: AppConfigProps) => { const { layoutConfig, setLayoutConfig, layoutState, setLayoutState, isSlim, isHorizontal, isSlimPlus } = useContext(LayoutContext); const { setRipple, changeTheme } = useContext(PrimeReactContext); const scales = [12, 13, 14, 15, 16]; const componentThemes = [ { name: 'blue', color: '#0F8BFD' }, { name: 'green', color: '#0BD18A' }, { name: 'magenta', color: '#EC4DBC' }, { name: 'orange', color: '#FD9214' }, { name: 'purple', color: '#873EFE' }, { name: 'red', color: '#FC6161' }, { name: 'teal', color: '#00D0DE' }, { name: 'yellow', color: '#EEE500' } ]; useEffect(() => { if (isSlim() || isHorizontal() || isSlimPlus()) { setLayoutState((prevState) => ({ ...prevState, resetMenu: true })); } }, [layoutConfig.menuMode]); const changeInputStyle = (e: RadioButtonChangeEvent) => { setLayoutConfig((prevState) => ({ ...prevState, inputStyle: e.value })); }; const changeRipple = (e: InputSwitchChangeEvent) => { setRipple(e.value); setLayoutConfig((prevState) => ({ ...prevState, ripple: e.value })); }; const changeMenuMode = (e: RadioButtonChangeEvent) => { setLayoutConfig((prevState) => ({ ...prevState, menuMode: e.value })); }; const changeColorScheme = (colorScheme: ColorScheme) => { changeTheme(layoutConfig.colorScheme, colorScheme, 'theme-link', () => { setLayoutConfig((prevState) => ({ ...prevState, colorScheme })); }); }; const _changeTheme = (theme: string) => { changeTheme(layoutConfig.theme, theme, 'theme-link', () => { setLayoutConfig((prevState) => ({ ...prevState, theme })); }); }; const getComponentThemes = () => { return (