diff --git a/src/components/DesktopCard.tsx b/src/components/DesktopCard.tsx index 03f17f9..d307815 100644 --- a/src/components/DesktopCard.tsx +++ b/src/components/DesktopCard.tsx @@ -8,7 +8,7 @@ import FlashIcon from "./icons/FlashIcon"; import CogIcon from "./icons/CogIcon"; import ChevronLeftIcon from "./icons/ChevronLeftIcon"; import PlusIcon from "./icons/PlusIcon"; - +import EditTable from "./modals/EditTable"; interface IDesktopCardProps { server: IServer; } @@ -51,6 +51,7 @@ export default function DesktopCard({ server }: IDesktopCardProps) { variant='secondary' size='medium' className='absolute top-[0.347vw] right-[0.347vw] cursor-pointer flex items-center justify-center' + onClick={() => setModal()} > diff --git a/src/components/NewInput.tsx b/src/components/NewInput.tsx new file mode 100644 index 0000000..5fccc82 --- /dev/null +++ b/src/components/NewInput.tsx @@ -0,0 +1,47 @@ +import clsx from "clsx"; + +interface NewInputProps extends React.InputHTMLAttributes { + placeholder?: string; + isError?: boolean; + errorMessage?: string; +} + +function NewInput({ + placeholder, + isError, + errorMessage, + ...props +}: NewInputProps) { + return ( +
+
+ + {placeholder && ( + + {placeholder} + + )} + {isError && ( +

+ {errorMessage} +

+ )} +
+
+ ); +} + +export default NewInput; diff --git a/src/components/modals/EditTable.tsx b/src/components/modals/EditTable.tsx new file mode 100644 index 0000000..4f4f9d5 --- /dev/null +++ b/src/components/modals/EditTable.tsx @@ -0,0 +1,24 @@ +import { useState } from "react"; +import NewInput from "../NewInput"; + +function EditTable() { + const [name, setName] = useState(""); + return ( +
+

Редатирование стола

+
+
+ setName(e.target.value)} + isError={name.length > 20} + errorMessage='Что-то пошло не так' + /> +
+
+ ); +} + +export default EditTable;