Reputation — @sonordev/site-kit/reputation
Display client reviews, testimonials, and rating statistics from Sonor.
Usage
import { TestimonialSection } from '@sonordev/site-kit/reputation'
export default function ReviewsPage() {
return (
<TestimonialSection
title="What Our Clients Say"
showRating
maxReviews={6}
/>
)
}TestimonialSection Props
interface TestimonialSectionProps {
title?: string
subtitle?: string
autoplay?: boolean // Auto-rotate reviews
autoplayInterval?: number // ms between rotations
showRating?: boolean // Display star ratings
maxReviews?: number // Limit displayed count
featuredOnly?: boolean // Show featured reviews only
service?: string // Filter by service tag
className?: string
}API Functions
import { fetchReviews, fetchReviewStats } from '@sonordev/site-kit/reputation'
const reviews = await fetchReviews({ service: 'divorce', limit: 10, featured: true })
const stats = await fetchReviewStats() // { total_reviews, average_rating, distribution }Types
interface Review {
id: string; quote: string; name: string; role?: string;
rating: number; image?: string; date?: string;
platform?: string; isFeatured?: boolean; serviceTags?: string[];
}
interface ReviewStats {
total_reviews: number
average_rating: number
distribution: { 1: number; 2: number; 3: number; 4: number; 5: number }
}Caching
Uses in-memory cache (60s TTL) with retry-on-429 backoff to prevent rate limiting during dev hot reload.