Comments (1)
To ensure that the input fields in the 'Create a New Variant' modal on the playground page are cleared after successfully creating a variant, you can reset the state variables newVariantName
and templateVariantName
to their initial values after the modal is closed. Here is the updated code:
import React, {useState} from "react"
import {Modal, Input, Select, Space, Typography} from "antd"
import {createUseStyles} from "react-jss"
const {Text} = Typography
interface Props {
isModalOpen: boolean
setIsModalOpen: (value: boolean) => void
addTab: () => void
variants: any[]
setNewVariantName: (value: string) => void
newVariantName: string
setTemplateVariantName: (value: string) => void
}
const useStyles = createUseStyles({
select: {
width: "100%",
},
})
const NewVariantModal: React.FC<Props> = ({
isModalOpen,
setIsModalOpen,
addTab,
variants,
setNewVariantName,
newVariantName,
setTemplateVariantName,
}) => {
const classes = useStyles()
const [variantPlaceHolder, setVariantPlaceHolder] = useState("Source Variant")
const [isInputValid, setIsInputValid] = useState(false)
const handleTemplateVariantChange = (value: string) => {
let newValue = value.includes(".") ? value.split(".")[0] : value
setTemplateVariantName(value)
setVariantPlaceHolder(`${newValue}`)
setIsInputValid(newVariantName.trim().length > 0 && value !== "Source Variant")
}
const handleVariantNameChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const variantName = e.target.value
setNewVariantName(variantName)
setIsInputValid(variantName.trim().length > 0 && variantPlaceHolder !== "Source Variant")
}
const handleOk = () => {
if (isInputValid) {
setIsModalOpen(false)
addTab()
// Clear the input fields
setNewVariantName("")
setTemplateVariantName("")
setVariantPlaceHolder("Source Variant")
setIsInputValid(false)
}
}
return (
<Modal
data-cy="new-variant-modal"
title="Create a New Variant"
open={isModalOpen}
onOk={handleOk}
onCancel={() => setIsModalOpen(false)}
centered
okButtonProps={{disabled: !isInputValid}} // Disable OK button if input is not valid
>
<Space direction="vertical" size={20}>
<div>
<Text>Select an existing variant to use as a template:</Text>
<Select
className={classes.select}
data-cy="new-variant-modal-select"
placeholder="Select a variant"
onChange={handleTemplateVariantChange}
options={variants.map((variant) => ({
value: variant.variantName,
label: (
<div data-cy="new-variant-modal-label">{variant.variantName}</div>
),
}))}
/>
</div>
<div>
<Text>Enter a unique name for the new variant:</Text>
<Input
addonBefore={variantPlaceHolder}
onChange={handleVariantNameChange}
value={newVariantName}
data-cy="new-variant-modal-input"
/>
</div>
</Space>
</Modal>
)
}
export default NewVariantModal
In this updated code, the handleOk
function is modified to reset the newVariantName
, templateVariantName
, variantPlaceHolder
, and isInputValid
state variables after the modal is closed. This ensures that the input fields are cleared after successfully creating a variant [1].
To continue talking to Dosu, mention @dosu.
from agenta.
Related Issues (20)
- [AGE-278] Show the name of the columns in the test set without upper case the first letter HOT 2
- [AGE-230] [Bug] Start from code can fail if user has a .dockerignore or Dockerfile
- [AGE-286] Create a JSON evaluator
- [AGE-287] Add semantic similarity evaluator
- [AGE-288] Do not show cost in evaluation when cost is not available
- [AGE-290] [Bug] MultipleChoiceParam not shown in UI HOT 7
- [AGE-291] [Bug] Code Evaluation is not working HOT 3
- [Bug]: Test set table columns position are not changing after drag-and-drop HOT 1
- [Bug] Evaluation can't stop running on self-host agenta HOT 3
- Refactore: TestsetTable.tsx component code for better readability HOT 2
- [AGE-296] Apps fail when output is string in 16.0
- Enhancement: save variant tabs order
- [AGE-321] [Bug] Not all rows in evaluation comparison cannot be expanded
- [AGE-345] [bug] Some models are not working in the playground
- [Enhancement]: Table row's delete button placement and UI HOT 3
- [AGE-348] [bug] Errors are not correctly handled in the LLM applications HOT 4
- [AGE-357] [bug] Removing a variant used in an A/B test evaluation breaks the human evaluation view
- [AGE-365] Add new status for evaluation Queued HOT 2
- [AGE-370] Improve reproducibility of AI critique outputs HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from agenta.