import { useState } from 'react'; /** * useCharacterSelection - A custom hook to manage character selection logic. * * Responsibilities: * 1. Manages the `selectedCharacter` state. * 2. Provides a function (`handleCharacterSelect`) to update the selected character. * 3. Ensures the selected character data is validated before updating. */ const useCharacterSelection = () => { const [selectedCharacter, setSelectedCharacter] = useState(null); // Holds the currently selected character. /** * handleCharacterSelect - Updates the selected character. * * @param character - The character to select. */ const handleCharacterSelect = (character: any) => { if (!character?.agent?.agent_details) { console.error('Invalid character data'); // Log an error if the character data structure is invalid. return; } setSelectedCharacter(character); // Update the selected character state. }; return { selectedCharacter, handleCharacterSelect, setSelectedCharacter }; // Return the state and handlers for character selection. }; export default useCharacterSelection;