mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
feat(FE-62): replace native checkboxes with CheckboxInput component in MovementForm
This commit is contained in:
@@ -29,6 +29,7 @@ import { ProductWarehouseApi } from '@/services/api/inventory';
|
|||||||
import { toast } from 'react-hot-toast';
|
import { toast } from 'react-hot-toast';
|
||||||
import FileInput from '@/components/input/FileInput';
|
import FileInput from '@/components/input/FileInput';
|
||||||
import FieldMessage from '@/components/helper/FieldMessage';
|
import FieldMessage from '@/components/helper/FieldMessage';
|
||||||
|
import CheckboxInput from '@/components/input/CheckboxInput';
|
||||||
|
|
||||||
interface MovementFormProps {
|
interface MovementFormProps {
|
||||||
type?: 'add' | 'edit' | 'detail';
|
type?: 'add' | 'edit' | 'detail';
|
||||||
@@ -831,26 +832,29 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
|
|||||||
<tr>
|
<tr>
|
||||||
{type !== 'detail' && (
|
{type !== 'detail' && (
|
||||||
<th>
|
<th>
|
||||||
<input
|
<div className='flex justify-center'>
|
||||||
type='checkbox'
|
<CheckboxInput
|
||||||
className='checkbox'
|
name='select-all-products'
|
||||||
checked={
|
checked={
|
||||||
formik.values.products?.length ===
|
formik.values.products?.length ===
|
||||||
selectedProducts.length &&
|
selectedProducts.length &&
|
||||||
formik.values.products?.length > 0
|
formik.values.products?.length > 0
|
||||||
}
|
|
||||||
onChange={(e) => {
|
|
||||||
if (e.target.checked) {
|
|
||||||
setSelectedProducts(
|
|
||||||
formik.values.products?.map(
|
|
||||||
(_, idx) => idx
|
|
||||||
) ?? []
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
setSelectedProducts([]);
|
|
||||||
}
|
}
|
||||||
}}
|
onChange={(e) => {
|
||||||
/>
|
if (e.target.checked) {
|
||||||
|
setSelectedProducts(
|
||||||
|
formik.values.products?.map(
|
||||||
|
(_, idx) => idx
|
||||||
|
) ?? []
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
setSelectedProducts([]);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
naked={true}
|
||||||
|
size='sm'
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</th>
|
</th>
|
||||||
)}
|
)}
|
||||||
<th>Produk</th>
|
<th>Produk</th>
|
||||||
@@ -863,10 +867,9 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
|
|||||||
<tr key={`product-row-${idx}-${product.product_id}`}>
|
<tr key={`product-row-${idx}-${product.product_id}`}>
|
||||||
{type !== 'detail' && (
|
{type !== 'detail' && (
|
||||||
<td>
|
<td>
|
||||||
<div className='flex flex-col items-start gap-2'>
|
<div className='flex flex-col items-center gap-2'>
|
||||||
<input
|
<CheckboxInput
|
||||||
type='checkbox'
|
name={`product-${idx}`}
|
||||||
className='checkbox'
|
|
||||||
checked={selectedProducts.includes(idx)}
|
checked={selectedProducts.includes(idx)}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
if (e.target.checked) {
|
if (e.target.checked) {
|
||||||
@@ -880,6 +883,8 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
naked={true}
|
||||||
|
size='sm'
|
||||||
/>
|
/>
|
||||||
<FieldMessage message={null} isVisible={false} />
|
<FieldMessage message={null} isVisible={false} />
|
||||||
</div>
|
</div>
|
||||||
@@ -1019,26 +1024,29 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
|
|||||||
<tr>
|
<tr>
|
||||||
{type !== 'detail' && (
|
{type !== 'detail' && (
|
||||||
<th>
|
<th>
|
||||||
<input
|
<div className='flex justify-center'>
|
||||||
type='checkbox'
|
<CheckboxInput
|
||||||
className='checkbox'
|
name='select-all-deliveries'
|
||||||
checked={
|
checked={
|
||||||
formik.values.deliveries?.length ===
|
formik.values.deliveries?.length ===
|
||||||
selectedDeliveries.length &&
|
selectedDeliveries.length &&
|
||||||
formik.values.deliveries?.length > 0
|
formik.values.deliveries?.length > 0
|
||||||
}
|
|
||||||
onChange={(e) => {
|
|
||||||
if (e.target.checked) {
|
|
||||||
setSelectedDeliveries(
|
|
||||||
formik.values.deliveries?.map(
|
|
||||||
(_, idx) => idx
|
|
||||||
) ?? []
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
setSelectedDeliveries([]);
|
|
||||||
}
|
}
|
||||||
}}
|
onChange={(e) => {
|
||||||
/>
|
if (e.target.checked) {
|
||||||
|
setSelectedDeliveries(
|
||||||
|
formik.values.deliveries?.map(
|
||||||
|
(_, idx) => idx
|
||||||
|
) ?? []
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
setSelectedDeliveries([]);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
naked={true}
|
||||||
|
size='sm'
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</th>
|
</th>
|
||||||
)}
|
)}
|
||||||
<th>Produk</th>
|
<th>Produk</th>
|
||||||
@@ -1058,9 +1066,8 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
|
|||||||
{type !== 'detail' && (
|
{type !== 'detail' && (
|
||||||
<td>
|
<td>
|
||||||
<div className='flex flex-col items-start gap-2'>
|
<div className='flex flex-col items-start gap-2'>
|
||||||
<input
|
<CheckboxInput
|
||||||
type='checkbox'
|
name={`delivery-${idx}`}
|
||||||
className='checkbox'
|
|
||||||
checked={selectedDeliveries.includes(idx)}
|
checked={selectedDeliveries.includes(idx)}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
if (e.target.checked) {
|
if (e.target.checked) {
|
||||||
@@ -1076,6 +1083,8 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
naked={true}
|
||||||
|
size='sm'
|
||||||
/>
|
/>
|
||||||
<FieldMessage message={null} isVisible={false} />
|
<FieldMessage message={null} isVisible={false} />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user