TemplateList.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. /* eslint-disable react/prop-types */
  2. interface Template {
  3. id: string;
  4. title: string;
  5. content: string;
  6. }
  7. interface TemplateListProps {
  8. templates: Template[];
  9. onTemplateSelect: (content: string) => void;
  10. isDarkMode?: boolean;
  11. }
  12. const TemplateList: React.FC<TemplateListProps> = ({ templates, onTemplateSelect, isDarkMode = false }) => {
  13. return (
  14. <div className="p-2">
  15. <h3 className={`mb-3 text-sm font-medium ${isDarkMode ? 'text-gray-200' : 'text-gray-700'}`}>Quick Start</h3>
  16. <div className="grid grid-cols-1 gap-3 sm:grid-cols-2">
  17. {templates.map(template => (
  18. <button
  19. type="button"
  20. key={template.id}
  21. onClick={() => onTemplateSelect(template.content)}
  22. className={`rounded-lg p-3 text-left transition-colors ${
  23. isDarkMode ? 'bg-slate-800 text-gray-200 hover:bg-slate-700' : 'bg-white text-gray-700 hover:bg-sky-50'
  24. } border ${isDarkMode ? 'border-slate-700' : 'border-sky-100'}`}>
  25. <div className="text-sm font-medium">{template.title}</div>
  26. </button>
  27. ))}
  28. </div>
  29. </div>
  30. );
  31. };
  32. export default TemplateList;