Skip to content

Commit 9446fd9

Browse files
authored
Update page.tsx
1 parent 9a507f0 commit 9446fd9

1 file changed

Lines changed: 17 additions & 8 deletions

File tree

app/tools/template-manager/page.tsx

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default function TemplateManagerPage() {
1818
const [searchQuery, setSearchQuery] = useState('');
1919
const [selectedCategories, setSelectedCategories] = useState<string[]>([]);
2020
const [tags, setTags] = useState('');
21+
const [error, setError] = useState<string | null>(null);
2122

2223
useEffect(() => {
2324
const init = async () => {
@@ -58,13 +59,18 @@ export default function TemplateManagerPage() {
5859
loadData();
5960
}, [loadData]);
6061
const handleCreateTemplate = async () => {
61-
const newTemplate = await TemplateService.createTemplate({
62-
name: 'Untitled',
63-
category: 'blog',
64-
content: 'New content...',
65-
});
66-
setTemplates([newTemplate, ...templates]);
67-
setSelectedTemplate(newTemplate);
62+
try {
63+
setError(null);
64+
const newTemplate = await TemplateService.createTemplate({
65+
name: 'Untitled',
66+
category: 'blog',
67+
content: 'New content...',
68+
});
69+
setTemplates([newTemplate, ...templates]);
70+
setSelectedTemplate(newTemplate);
71+
} catch (err) {
72+
setError('Failed to create template.');
73+
}
6874
};
6975

7076
const handleVariableChange = async (key: string, value: string) => {
@@ -85,7 +91,9 @@ export default function TemplateManagerPage() {
8591
};
8692

8793
const getHighlightedText = (text: string, highlight: string) => {
88-
const parts = text.split(new RegExp(`(${highlight})`, 'gi'));
94+
if (!highlight) return <span>{text}</span>;
95+
const escaped = highlight.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
96+
const parts = text.split(new RegExp(`(${escaped})`, 'gi'));
8997
return (
9098
<span>
9199
{parts.map((part, i) =>
@@ -148,6 +156,7 @@ export default function TemplateManagerPage() {
148156
+ New Template
149157
</button>
150158
</div>
159+
{error && <p className="text-red-500">{error}</p>}
151160

152161
<div className="grid md:grid-cols-2 gap-8">
153162
<VariableForm

0 commit comments

Comments
 (0)