mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-21 05:45:46 +00:00
feat(FE-114): add tanggal_recording field to RecordingForm and update schema validation
This commit is contained in:
@@ -8,6 +8,9 @@ export const RecordingFormSchema = Yup.object({
|
||||
label: Yup.string().required(),
|
||||
}).nullable(),
|
||||
flock_id: Yup.number().required('Flock wajib diisi!'),
|
||||
tanggal_recording: Yup.date()
|
||||
.required('Tanggal recording wajib diisi')
|
||||
.typeError('Format tanggal tidak valid'),
|
||||
data_pakan: Yup.array()
|
||||
.of(
|
||||
Yup.object({
|
||||
@@ -84,6 +87,9 @@ export const getRecordingFormInitialValues = (
|
||||
}
|
||||
: null,
|
||||
flock_id: initialValues?.flock?.id ?? 0,
|
||||
tanggal_recording: initialValues?.tanggal_recording
|
||||
? new Date(initialValues.tanggal_recording)
|
||||
: new Date(),
|
||||
data_pakan: initialValues?.data_pakan ?? [
|
||||
{
|
||||
nama_pakan: '',
|
||||
|
||||
@@ -67,6 +67,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
setRecordingFormErrorMessage('');
|
||||
const payload: CreateRecordingPayload = {
|
||||
flock_id: values.flock_id,
|
||||
tanggal_recording: values.tanggal_recording.toISOString(),
|
||||
data_pakan: (values.data_pakan ?? []).map((p) => ({
|
||||
nama_pakan: p.nama_pakan,
|
||||
qty_pakan: p.qty_pakan,
|
||||
@@ -230,6 +231,33 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
<div className='card bg-base-100 shadow mb-4'>
|
||||
<div className='card-body'>
|
||||
<div className='flex gap-4'>
|
||||
{/*<SelectInput*/}
|
||||
{/* required*/}
|
||||
{/* label='Flock'*/}
|
||||
{/* value={*/}
|
||||
{/* formik.values.flock_id*/}
|
||||
{/* ? {*/}
|
||||
{/* value: formik.values.flock_id,*/}
|
||||
{/* label: initialValues?.flock?.name,*/}
|
||||
{/* }*/}
|
||||
{/* : null*/}
|
||||
{/* }*/}
|
||||
{/* onChange={(val) => {*/}
|
||||
{/* formik.setFieldValue(*/}
|
||||
{/* 'flock_id',*/}
|
||||
{/* (val as OptionType)?.value*/}
|
||||
{/* );*/}
|
||||
{/* }}*/}
|
||||
{/* options={flockOptions}*/}
|
||||
{/* onInputChange={setFlockSelectInputValue}*/}
|
||||
{/* isLoading={isLoadingFlocks}*/}
|
||||
{/* isError={*/}
|
||||
{/* formik.touched.flock_id && Boolean(formik.errors.flock_id)*/}
|
||||
{/* }*/}
|
||||
{/* errorMessage={formik.errors.flock_id as string}*/}
|
||||
{/* isDisabled={type === 'detail'}*/}
|
||||
{/* isClearable*/}
|
||||
{/*/>*/}
|
||||
<SelectInput
|
||||
required
|
||||
label='Flock'
|
||||
@@ -243,10 +271,9 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
}}
|
||||
options={flockOptions}
|
||||
onInputChange={(val) => {
|
||||
// Filter options locally instead of API call
|
||||
return val;
|
||||
}}
|
||||
isLoading={false} // Remove isLoadingFlocks
|
||||
isLoading={false}
|
||||
isError={
|
||||
formik.touched.flock_id && Boolean(formik.errors.flock_id)
|
||||
}
|
||||
@@ -254,6 +281,26 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
isDisabled={type === 'detail'}
|
||||
isClearable
|
||||
/>
|
||||
<TextInput
|
||||
required
|
||||
label='Tanggal Recording'
|
||||
type='date'
|
||||
name='tanggal_recording'
|
||||
value={formik.values.tanggal_recording
|
||||
.toISOString()
|
||||
.substring(0, 10)}
|
||||
onChange={(e) => {
|
||||
const date = new Date(e.target.value);
|
||||
formik.setFieldValue('tanggal_recording', date);
|
||||
}}
|
||||
onBlur={formik.handleBlur}
|
||||
isError={
|
||||
formik.touched.tanggal_recording &&
|
||||
Boolean(formik.errors.tanggal_recording)
|
||||
}
|
||||
errorMessage={formik.errors.tanggal_recording as string}
|
||||
readOnly={type === 'detail'}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Vendored
+3
-1
@@ -4,10 +4,11 @@ import { Flock } from '@/types/api/flock/flock';
|
||||
export type BaseRecording = {
|
||||
id: number;
|
||||
flock: Flock;
|
||||
tanggal_recording: string;
|
||||
data_pakan: {
|
||||
nama_pakan: string;
|
||||
qty_pakan: number;
|
||||
stock_pakan;
|
||||
stock_pakan: number;
|
||||
}[];
|
||||
bobot_badan: {
|
||||
berat_ayam: number;
|
||||
@@ -29,6 +30,7 @@ export type Recording = BaseMetadata & BaseRecording;
|
||||
|
||||
export type CreateRecordingPayload = {
|
||||
flock_id: number;
|
||||
tanggal_recording: string;
|
||||
data_pakan: {
|
||||
nama_pakan: string;
|
||||
qty_pakan: number;
|
||||
|
||||
Reference in New Issue
Block a user