diff --git a/src/components/header/HeaderNavigation.tsx b/src/components/header/HeaderNavigation.tsx index 43e38f2..260a0db 100644 --- a/src/components/header/HeaderNavigation.tsx +++ b/src/components/header/HeaderNavigation.tsx @@ -83,6 +83,18 @@ export default function App() { ))} + + + Github + GitHub + + ) diff --git a/src/components/header/RepairHeader.astro b/src/components/header/RepairHeader.astro index a86df09..0073152 100644 --- a/src/components/header/RepairHeader.astro +++ b/src/components/header/RepairHeader.astro @@ -27,7 +27,9 @@ makeLogtoClient().getIdTokenClaims().then((claims) => {
维修
-
+ diff --git a/src/pages/repair/EditRepairModal.tsx b/src/pages/repair/EditRepairModal.tsx new file mode 100644 index 0000000..1657233 --- /dev/null +++ b/src/pages/repair/EditRepairModal.tsx @@ -0,0 +1,131 @@ +import { useState, useEffect } from "react" +import { Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, Button, Input, Textarea } from "@heroui/react" +import { saturdayClient } from "../../utils/client" +import { makeLogtoClient } from "../../utils/auth" +import type { components } from "../../types/saturday" + +type PublicEvent = components["schemas"]["PublicEvent"] +type UpdateClientEventInputBody = components["schemas"]["UpdateClientEventInputBody"] + +interface EditRepairModalProps { + isOpen: boolean + onClose: () => void + event: PublicEvent + onSaved: () => void +} + +export default function EditRepairModal({ isOpen, onClose, event, onSaved }: EditRepairModalProps) { + const [loading, setLoading] = useState(false) + const [formData, setFormData] = useState({ + problem: "", + model: "", + phone: "", + qq: "", + }) + + useEffect(() => { + if (event) { + setFormData({ + problem: event.problem || "", + model: event.model || "", + phone: event.phone || "", + qq: event.qq || "", + }) + } + }, [event]) + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault() + setLoading(true) + + try { + const logtoToken = await makeLogtoClient().getAccessToken() + + const { error } = await saturdayClient.PATCH("/client/events/{EventId}", { + params: { + path: { + EventId: event.eventId, + }, + }, + headers: { + Authorization: `Bearer ${logtoToken}`, + }, + body: formData, + }) + + if (error) { + throw new Error("Failed to update event") + } + + onSaved() + } + catch (err) { + console.error("Error updating event:", err) + // Could add error handling/toast here + } + finally { + setLoading(false) + } + } + + const handleClose = () => { + if (!loading) { + onClose() + } + } + + return ( + + +
+ + 编辑维修预约 #{event?.eventId} + + +
+