From 60301da07b361a0bee29b97f339a3643af6ef114 Mon Sep 17 00:00:00 2001 From: Samuel Rowe Date: Sun, 31 Jul 2022 13:17:28 +0530 Subject: [PATCH] refactor(frontend): updated labels in volumes modal to use `Records` component --- .../src/components/Modal/volume/Labels.tsx | 98 +++++-------------- 1 file changed, 22 insertions(+), 76 deletions(-) diff --git a/services/frontend/src/components/Modal/volume/Labels.tsx b/services/frontend/src/components/Modal/volume/Labels.tsx index afe693e..38a3040 100644 --- a/services/frontend/src/components/Modal/volume/Labels.tsx +++ b/services/frontend/src/components/Modal/volume/Labels.tsx @@ -1,9 +1,5 @@ -import { useCallback } from "react"; -import { PlusIcon } from "@heroicons/react/outline"; -import { Button, styled } from "@mui/joy"; -import { useFormikContext } from "formik"; -import Record from "../../Record"; -import { IEditServiceForm } from "../../../types"; +import { styled } from "@mui/joy"; +import Records from "../../Records"; const Root = styled("div")` display: flex; @@ -11,79 +7,29 @@ const Root = styled("div")` align-items: center; `; -const Records = styled("div")` - display: flex; - flex-direction: column; - row-gap: ${({ theme }) => theme.spacing(1)}; -`; - -const AddButton = styled(Button)` - margin-top: ${({ theme }) => theme.spacing(1)}; -`; - -const Description = styled("p")` - margin-top: ${({ theme }) => theme.spacing(1)}; - text-align: center; - color: #7a7a7a; - font-size: 14px; -`; - const Labels = () => { - const formik = useFormikContext(); - const { labels } = formik.values; - - const handleNewLabel = useCallback(() => { - formik.setFieldValue(`labels[${labels.length}]`, { - key: "", - value: "" - }); - }, [formik]); - - const handleRemoveLabel = useCallback( - (index: number) => { - const newLabels = labels.filter( - (_: unknown, currentIndex: number) => currentIndex != index - ); - formik.setFieldValue(`labels`, newLabels); - }, - [formik] - ); - - const emptyLabels = labels && labels.length === 0 ? true : false; - return ( - {!emptyLabels && ( - - {labels.map((_: unknown, index: number) => ( - - ))} - - )} - {emptyLabels && No labels.} - - - - New label - + [ + { + name: `labels[${index}].key`, + placeholder: "Key", + required: true, + type: "text" + }, + { + name: `labels[${index}].value`, + placeholder: "Value", + required: true, + type: "text" + } + ]} + newValue={{ key: "", value: "" }} + /> ); };