diff --git a/src/features/guides/components/Frame.tsx b/src/features/guides/components/Frame.tsx
index 110e5ed..c93c1e4 100644
--- a/src/features/guides/components/Frame.tsx
+++ b/src/features/guides/components/Frame.tsx
@@ -16,9 +16,18 @@ export default function Frame({
}) {
return (
-
+
+
+
updateStep(frame.id, e.target.value)}
+ />
})
-
+
{frame.steps.map((step: StepType, index: number) => (
updateStep(step.id, e.target.value)}
/>
-
+
);
}
diff --git a/src/features/guides/hooks/useNewGuide.ts b/src/features/guides/hooks/useNewGuide.ts
index 2804bc5..b3db19c 100644
--- a/src/features/guides/hooks/useNewGuide.ts
+++ b/src/features/guides/hooks/useNewGuide.ts
@@ -1,8 +1,12 @@
import { useState } from "react";
-import { type Frame, type Guide, type Steps } from "../../../lib/schemas";
+import {
+ type CompiledGuideType,
+ type FrameType,
+ type GuideType,
+} from "../../../lib/schemas";
export default function useNewGuide() {
- const [guide, setGuide] = useState({
+ const [guide, setGuide] = useState({
id: crypto.randomUUID(),
title: "",
description: "",
@@ -10,7 +14,7 @@ export default function useNewGuide() {
updatedAt: new Date(),
deletedAt: undefined,
});
- const [frames, setFrames] = useState([]);
+ const [frames, setFrames] = useState([]);
const handleUpdateTitle = (title: string) => {
setGuide((prev) => ({ ...prev, title }));
@@ -31,6 +35,7 @@ export default function useNewGuide() {
return {
id: frameId,
file: file,
+ title: "",
guideId: guide.id,
steps: [{ id: crypto.randomUUID(), text: "", frameId: frameId }],
};
@@ -87,9 +92,16 @@ export default function useNewGuide() {
);
};
- const handleSaveGuide = () => {
- const compiledGuide = {
- ...guide,
+ const handleSaveGuide = (e: React.SubmitEvent) => {
+ e.preventDefault();
+
+ const compiledGuide: CompiledGuideType = {
+ id: guide.id,
+ title: guide.title,
+ description: guide.description,
+ createdAt: guide.createdAt,
+ updatedAt: guide.updatedAt,
+ deletedAt: guide.deletedAt,
frames,
};
diff --git a/src/features/guides/routes/NewGuide.tsx b/src/features/guides/routes/NewGuide.tsx
index fb06b09..ff86d88 100644
--- a/src/features/guides/routes/NewGuide.tsx
+++ b/src/features/guides/routes/NewGuide.tsx
@@ -15,14 +15,10 @@ export default function NewGuide() {
handleUpdateStep,
handleSaveGuide,
} = useNewGuide();
- const handleSubmitForm = (e: React.SubmitEvent) => {
- e.preventDefault();
- console.log(e.currentTarget);
- };
return (
);
diff --git a/src/lib/schemas.ts b/src/lib/schemas.ts
index 3058af3..5239aaa 100644
--- a/src/lib/schemas.ts
+++ b/src/lib/schemas.ts
@@ -26,3 +26,12 @@ export const GuideSchema = z.object({
export type StepType = z.infer;
export type FrameType = z.infer;
export type GuideType = z.infer;
+export type CompiledGuideType = {
+ id: string;
+ title: string;
+ description: string | undefined;
+ createdAt: Date;
+ updatedAt: Date;
+ deletedAt: Date | undefined;
+ frames: FrameType[];
+};