@@ -208,12 +208,8 @@ export const DuplicateActionModal = ({ dashboard, isOpen, onClose }: ActionModal
208208 return allProjects [ 0 ] || '' ;
209209 } , [ dashboard , editableProjects , allProjects ] ) ;
210210
211- const { schema : validationSchema } = useDashboardValidationSchema ( defaultProject , t ) ;
212-
213211 const form = useForm < CreateDashboardValidationType > ( {
214- resolver : validationSchema
215- ? zodResolver ( validationSchema )
216- : zodResolver ( createDashboardDialogValidationSchema ( t ) ) ,
212+ resolver : zodResolver ( createDashboardDialogValidationSchema ( t ) ) ,
217213 mode : 'onBlur' ,
218214 defaultValues : {
219215 projectName : defaultProject ,
@@ -223,6 +219,8 @@ export const DuplicateActionModal = ({ dashboard, isOpen, onClose }: ActionModal
223219
224220 const selectedProjectName = form . watch ( 'projectName' ) ;
225221
222+ const { schema : dynamicValidationSchema } = useDashboardValidationSchema ( selectedProjectName , t ) ;
223+
226224 const projectOptions = useMemo < TypeaheadSelectOption [ ] > ( ( ) => {
227225 if ( ! editableProjects ) {
228226 return [ ] ;
@@ -236,6 +234,27 @@ export const DuplicateActionModal = ({ dashboard, isOpen, onClose }: ActionModal
236234
237235 const createDashboardMutation = useCreateDashboardMutation ( ) ;
238236
237+ React . useEffect ( ( ) => {
238+ if ( dynamicValidationSchema && selectedProjectName ) {
239+ const currentValues = form . getValues ( ) ;
240+ const result = dynamicValidationSchema . safeParse ( currentValues ) ;
241+
242+ if ( ! result . success ) {
243+ // Apply validation errors for the current form values
244+ result . error . issues . forEach ( ( issue ) => {
245+ if ( issue . path [ 0 ] === 'dashboardName' ) {
246+ form . setError ( 'dashboardName' , {
247+ type : 'validate' ,
248+ message : issue . message ,
249+ } ) ;
250+ }
251+ } ) ;
252+ } else {
253+ form . clearErrors ( 'dashboardName' ) ;
254+ }
255+ }
256+ } , [ selectedProjectName , dynamicValidationSchema , form ] ) ;
257+
239258 React . useEffect ( ( ) => {
240259 if ( isOpen && dashboard && editableProjects ?. length > 0 && defaultProject ) {
241260 form . reset ( {
0 commit comments