diff --git a/frontend/src/components/shared/PersonaContext/PersonaTestComponent.tsx b/frontend/src/components/shared/PersonaContext/PersonaTestComponent.tsx new file mode 100644 index 00000000..8fbc0283 --- /dev/null +++ b/frontend/src/components/shared/PersonaContext/PersonaTestComponent.tsx @@ -0,0 +1,99 @@ +/** + * Persona Test Component + * Simple component to test and demonstrate the PlatformPersonaProvider + * This can be used to verify the implementation works correctly + */ + +import React from 'react'; +import { PlatformPersonaProvider, usePlatformPersonaContext } from './index'; +import { PlatformType } from '../../../types/PlatformPersonaTypes'; + +// Test component that uses the context +const PersonaDisplay: React.FC = () => { + const { + corePersona, + platformPersona, + platform, + loading, + error, + refreshPersonas + } = usePlatformPersonaContext(); + + if (loading) { + return
Error: {error}
+ +Name: {corePersona.persona_name}
+Archetype: {corePersona.archetype}
+Core Belief: {corePersona.core_belief}
+Confidence: {corePersona.confidence_score}%
+Platform: {platformPersona.platform_type}
+Character Limit: {platformPersona.content_format_rules?.character_limit || 'N/A'}
+Optimal Length: {platformPersona.content_format_rules?.optimal_length || 'N/A'}
+Posting Frequency: {platformPersona.engagement_patterns?.posting_frequency || 'N/A'}
+Avg Sentence Length: {corePersona.linguistic_fingerprint.sentence_metrics.average_sentence_length_words} words
+Voice Ratio: {corePersona.linguistic_fingerprint.sentence_metrics.active_to_passive_ratio}
+Go-to Words: {corePersona.linguistic_fingerprint.lexical_features.go_to_words?.join(', ') || 'N/A'}
+Loading {platform} persona...
+{error}
+ +