import { useState, useEffect } from 'react'; import { useGetUserQuery, useUpdateMemoryPreferencesMutation } from '~/data-provider'; import { useToastContext } from '~/Providers'; import { Switch } from '~/components/ui'; import { useLocalize } from '~/hooks'; interface PersonalizationProps { hasMemoryOptOut: boolean; hasAnyPersonalizationFeature: boolean; } export default function Personalization({ hasMemoryOptOut, hasAnyPersonalizationFeature, }: PersonalizationProps) { const localize = useLocalize(); const { showToast } = useToastContext(); const { data: user } = useGetUserQuery(); const [referenceSavedMemories, setReferenceSavedMemories] = useState(true); const updateMemoryPreferencesMutation = useUpdateMemoryPreferencesMutation({ onSuccess: () => { showToast({ message: localize('com_ui_preferences_updated'), status: 'success', }); }, onError: () => { showToast({ message: localize('com_ui_error_updating_preferences'), status: 'error', }); // Revert the toggle on error setReferenceSavedMemories((prev) => !prev); }, }); // Initialize state from user data useEffect(() => { if (user?.personalization?.memories !== undefined) { setReferenceSavedMemories(user.personalization.memories); } }, [user?.personalization?.memories]); const handleMemoryToggle = (checked: boolean) => { setReferenceSavedMemories(checked); updateMemoryPreferencesMutation.mutate({ memories: checked }); }; if (!hasAnyPersonalizationFeature) { return (
{localize('com_ui_no_personalization_available')}
); } return (
{/* Memory Settings Section */} {hasMemoryOptOut && ( <>
{localize('com_ui_memory')}
{localize('com_ui_reference_saved_memories')}
{localize('com_ui_reference_saved_memories_description')}
)}
); }