diff --git a/bun.lockb b/bun.lockb index c0387b9..9f73a96 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/packages/doorman-ui/package.json b/packages/doorman-ui/package.json index c8b5906..e412577 100644 --- a/packages/doorman-ui/package.json +++ b/packages/doorman-ui/package.json @@ -15,6 +15,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.53.2", + "react-hook-form-cloudscape": "^1.7.7", "react-qr-code": "^2.0.12", "react-router-dom": "^6.15.0", "typescript": "^4.4.2", diff --git a/packages/doorman-ui/src/components/InputTokenGroup.tsx b/packages/doorman-ui/src/components/InputTokenGroup.tsx index 5440005..1618b91 100644 --- a/packages/doorman-ui/src/components/InputTokenGroup.tsx +++ b/packages/doorman-ui/src/components/InputTokenGroup.tsx @@ -1,8 +1,10 @@ -import { Button, ColumnLayout, Input, SpaceBetween, TokenGroup, TokenGroupProps } from "@cloudscape-design/components"; +import { Button, ColumnLayout, Input, InputProps, SpaceBetween, TokenGroup, TokenGroupProps } from "@cloudscape-design/components"; +import CInput from "react-hook-form-cloudscape/components/input"; export type InputTokenGroupProps = { - type?: React.HTMLInputTypeAttribute; - registerInput: any, + type?: InputProps.Type; + control: any; + name: string; tokenGroupProps: TokenGroupProps, onAdd: () => void, onDismiss: (i: number) => void, @@ -12,9 +14,13 @@ export const InputTokenGroup = (props: InputTokenGroupProps) => { return ( - diff --git a/packages/doorman-ui/src/pages/EditPage.tsx b/packages/doorman-ui/src/pages/EditPage.tsx index 6a2dc67..cf7b3ce 100644 --- a/packages/doorman-ui/src/pages/EditPage.tsx +++ b/packages/doorman-ui/src/pages/EditPage.tsx @@ -1,16 +1,18 @@ -import { AppLayout, BreadcrumbGroup, Button, Container, Flashbar, FlashbarProps, Form, FormField, Header, Link, SpaceBetween } from "@cloudscape-design/components"; +import { AppLayout, BreadcrumbGroup, Button, Container, Flashbar, FlashbarProps, Form, FormField, Header, Input, Link, SpaceBetween } from "@cloudscape-design/components"; import { useLoaderData, useSearchParams } from "react-router-dom"; import { DoorResponse } from "../types/DoorResponse"; import { useForm } from "react-hook-form"; import { InputTokenGroup } from "../components/InputTokenGroup"; import { ReactNode, useState } from "react"; +import CInput from "react-hook-form-cloudscape/components/input"; +import CTextArea from "react-hook-form-cloudscape/components/textarea"; export type DoorEditForm = DoorResponse & { pin: string, fallbackNumber: string, discordUser: string }; export const EditPage = () => { const doorResponse = useLoaderData() as DoorResponse; const door = doorResponse.id; - const { register, setValue, setError, getValues, watch, formState, clearErrors } = useForm({ + const { register, setValue, setError, getValues, watch, formState, clearErrors, control } = useForm({ defaultValues: doorResponse, mode: "all", }); @@ -22,7 +24,6 @@ export const EditPage = () => { setAlerts(alerts => alerts.filter(alert => alert.id !== id)); } - const createAlert = (type: FlashbarProps.Type, content: ReactNode): FlashbarProps.MessageDefinition => { const id = `${Math.random()}`; return { @@ -80,7 +81,12 @@ export const EditPage = () => {