"use client";

import BuddyConnect from '../connect/BuddyConnect';
import BuddyState from '../state/BuddyState';

/**
 * Main Buddy Component
 * SSR-Safe wrapper that lazy loads client functionality
 * 
 * @param {Object} props - Component props
 * @param {string} props.apiKey - App API key
 * @param {string} props.appId - Application ID
 * @param {boolean} [props.connect=true] - Whether to show connect wallet functionality
 * @param {string} [props.baseUrl] - Base URL for API calls
 * @param {React.ReactNode} [props.children] - Child components
 * @returns {React.ReactElement} Buddy component
 */

import { initBuddyState } from '../../../hooks/useBuddyState';
import { initialBuddyState } from '../state/BuddyState';

export default function BuddyClient({ 
    apiKey, 
    appId, 
    connect = true,
    children,
    initialState
  }) {
    if (!apiKey || !appId) {
      console.error('[Buddy]: apiKey and appId are required');
    }

    initBuddyState({...initialBuddyState, ...initialState});
  
    return (
      <>
        {connect && (
          <BuddyConnect />
        )}
        <BuddyState />
        {children}
      </>
    );
}