Skip to content

Commit 0a91b7b

Browse files
committed
refactor: moves template options in custom hook and template option
1 parent 9d802b3 commit 0a91b7b

File tree

3 files changed

+35
-9
lines changed

3 files changed

+35
-9
lines changed

app/page.tsx

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ import { useForm } from 'react-hook-form';
44
import { useRouter } from 'next/navigation';
55
import { useEntryStore } from '../hooks/useEntryStore';
66
import React, { useEffect, useState } from 'react';
7-
import { TemplateName, templatesDictionary } from "../config/templates";
7+
import { TemplateName, templatesDictionary } from '../config/templates';
88
import Image from 'next/image';
99

1010
import styles from '../styles/register.module.scss';
11+
import TemplatesList from '../components/templates/TeamplateOptions';
1112

1213
export default function Page() {
1314
const router = useRouter();
@@ -60,14 +61,7 @@ export default function Page() {
6061
onChange: (e) => setSelectedTemplate(e.target.value),
6162
})}
6263
>
63-
{Object.keys(TemplateName).map((template) => (
64-
<option
65-
key={template}
66-
value={TemplateName[template as keyof typeof TemplateName]}
67-
>
68-
{template}
69-
</option>
70-
))}
64+
<TemplatesList />
7165
</select>
7266
<Image
7367
priority
@@ -81,3 +75,4 @@ export default function Page() {
8175
</>
8276
);
8377
}
78+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import useTemplates from '../../hooks/useTemplates';
2+
3+
export default function TemplatesList(): React.ReactNode {
4+
const { templates } = useTemplates();
5+
return (
6+
<>
7+
{templates.map(({ name, value }) => (
8+
<option key={name} value={value}>
9+
{name}
10+
</option>
11+
))}
12+
</>
13+
);
14+
}

hooks/useTemplates.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { TemplateName } from '../config/templates';
2+
3+
interface UseTemplateList {
4+
templates: {
5+
name: string;
6+
value: TemplateName;
7+
}[];
8+
}
9+
10+
export default function useTemplates(): UseTemplateList {
11+
return {
12+
templates: Object.entries(TemplateName).map(([template, value]) => ({
13+
name: template,
14+
value,
15+
})),
16+
};
17+
}

0 commit comments

Comments
 (0)