Files

23 lines
1.5 KiB
TypeScript

import type { ComponentConfig } from '@reacteditor/core';
import { MessagesSquare } from 'lucide-react';
import Testimonials, { type TestimonialsProps } from './testimonials';
const testimonialsConfig: ComponentConfig<TestimonialsProps> = {
label: 'Testimonials', icon: <MessagesSquare size={16} />, category: 'social-proof',
defaultProps: {
heading: 'Share what customers say about your business.',
testimonials: [
{ quote: 'Add a short customer quote that explains the value of your work.', name: 'Customer name', role: 'Role, Company', avatarUrl: '' },
{ quote: 'Use a second testimonial to reinforce the outcome customers can expect.', name: 'Customer name', role: 'Role, Company', avatarUrl: '' },
{ quote: 'Keep each quote focused, credible, and easy for visitors to scan.', name: 'Customer name', role: 'Role, Company', avatarUrl: '' },
],
},
fields: {
heading: { label: 'Heading', type: 'textarea', contentEditable: true },
testimonials: { label: 'Testimonials', type: 'array', defaultItemProps: { quote: 'Share a customer story.', name: 'Customer name', role: 'Role, Company', avatarUrl: '' }, getItemSummary: (item) => item?.name || 'Testimonial', arrayFields: { quote: { label: 'Quote', type: 'textarea', contentEditable: true }, name: { label: 'Name', type: 'text', contentEditable: true }, role: { label: 'Role and company', type: 'text', contentEditable: true }, avatarUrl: { label: 'Avatar', type: 'image' } } },
},
render: (props) => <Testimonials {...props} />,
};
export default testimonialsConfig;