Update TemplateList.tsx
This commit is contained in:
@@ -1,16 +1,17 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { EmailTemplate } from '../types';
|
import { EmailTemplate } from '../types';
|
||||||
import { Plus, Edit, Trash2, FileCode, Search, Database, ArrowRightCircle, Code } from 'lucide-react';
|
import { Plus, Edit, Trash2, FileCode, Search, Database, ArrowRightCircle, Code, CopyPlus } from 'lucide-react';
|
||||||
import { generateSelectSQL, generateN8nCode } from '../services/storage';
|
import { generateSelectSQL, generateN8nCode } from '../services/storage';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
templates: EmailTemplate[];
|
templates: EmailTemplate[];
|
||||||
onCreate: () => void;
|
onCreate: () => void;
|
||||||
onEdit: (t: EmailTemplate) => void;
|
onEdit: (t: EmailTemplate) => void;
|
||||||
|
onClone: (t: EmailTemplate) => void;
|
||||||
onDelete: (id: string) => void;
|
onDelete: (id: string) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
const TemplateList: React.FC<Props> = ({ templates, onCreate, onEdit, onDelete }) => {
|
const TemplateList: React.FC<Props> = ({ templates, onCreate, onEdit, onClone, onDelete }) => {
|
||||||
const [search, setSearch] = React.useState('');
|
const [search, setSearch] = React.useState('');
|
||||||
|
|
||||||
const filtered = templates.filter(t =>
|
const filtered = templates.filter(t =>
|
||||||
@@ -131,6 +132,13 @@ const TemplateList: React.FC<Props> = ({ templates, onCreate, onEdit, onDelete }
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex gap-1">
|
<div className="flex gap-1">
|
||||||
|
<button
|
||||||
|
onClick={(e) => { e.stopPropagation(); onClone(t); }}
|
||||||
|
className="p-1.5 text-slate-500 hover:text-blue-600 hover:bg-white rounded shadow-sm transition-all"
|
||||||
|
title="Clone Template"
|
||||||
|
>
|
||||||
|
<CopyPlus size={16} />
|
||||||
|
</button>
|
||||||
<button
|
<button
|
||||||
onClick={(e) => { e.stopPropagation(); onEdit(t); }}
|
onClick={(e) => { e.stopPropagation(); onEdit(t); }}
|
||||||
className="p-1.5 text-slate-500 hover:text-brand-600 hover:bg-white rounded shadow-sm transition-all"
|
className="p-1.5 text-slate-500 hover:text-brand-600 hover:bg-white rounded shadow-sm transition-all"
|
||||||
@@ -155,4 +163,4 @@ const TemplateList: React.FC<Props> = ({ templates, onCreate, onEdit, onDelete }
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default TemplateList;
|
export default TemplateList;
|
||||||
|
|||||||
Reference in New Issue
Block a user