@@ -4,6 +4,7 @@ import { Copy, HelpCircle } from 'lucide-react';
44import type { JobDetails } from '../../types'
55import type { UseFormRegister , Control , UseFormWatch , FieldErrors } from 'react-hook-form' ;
66import { Controller } from "react-hook-form" ;
7+ import { ToggleSwitch } from '../common' ;
78
89interface Props {
910 register : UseFormRegister < JobDetails > ;
@@ -52,60 +53,15 @@ export default function Common({ register, control, watch, errors, emailNotifica
5253
5354 < div className = "flex flex-wrap items-center gap-4" >
5455 < div className = "flex items-center gap-2" >
55- < Controller
56- name = "enabled"
57- control = { control }
58- render = { ( { field } ) => (
59- < div className = "relative inline-flex items-center" >
60- < input
61- id = "switch-job-enabled"
62- type = "checkbox"
63- checked = { field . value }
64- onChange = { ( e ) => field . onChange ( e . target . checked ) }
65- className = "peer appearance-none w-11 h-4.5 rounded-full bg-gray-200 border border-gray-300
66- checked:bg-gradient-to-r checked:from-purple-600 checked:to-purple-800
67- transition-all duration-300 cursor-pointer"
68- />
69- < label
70- htmlFor = "switch-job-enabled"
71- className = "absolute -top-0.01 left-0 h-5.5 w-5.5 bg-white rounded-full shadow-md border border-gray-300
72- transform transition-all duration-300 peer-checked:translate-x-5.5
73- peer-active:scale-90 cursor-pointer"
74- > </ label >
75- </ div >
76- ) }
77- />
56+ < ToggleSwitch control = { control } name = "enabled" />
7857 < label htmlFor = "switch-job-enabled" className = "font-medium text-gray-700" >
7958 Enable job
8059 </ label >
8160 </ div >
8261
8362 { /* Enable Email */ }
8463 < div className = "flex items-center gap-2" >
85- < Controller
86- name = "email"
87- control = { control }
88- render = { ( { field } ) => (
89- < div className = "relative inline-flex items-center" >
90- < input
91- id = "switch-email-enabled"
92- type = "checkbox"
93- checked = { field . value }
94- disabled = { ! emailNotifications }
95- onChange = { ( e ) => field . onChange ( e . target . checked ) }
96- className = "peer appearance-none w-11 h-4.5 rounded-full bg-gray-200 border border-gray-300
97- checked:bg-gradient-to-r checked:from-purple-600 checked:to-purple-800
98- transition-all duration-300 cursor-pointer"
99- />
100- < label
101- htmlFor = "switch-email-enabled"
102- className = "absolute -top-0.01 left-0 h-5.5 w-5.5 bg-white rounded-full shadow-md border border-gray-300
103- transform transition-all duration-300 peer-checked:translate-x-5.5
104- peer-active:scale-90 cursor-pointer"
105- > </ label >
106- </ div >
107- ) }
108- />
64+ < ToggleSwitch control = { control } name = "email" disabled = { ! emailNotifications } />
10965 < label htmlFor = "switch-email-enabled" className = "font-medium text-gray-700" >
11066 Enable email
11167 </ label >
0 commit comments