mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-25 07:45:47 +00:00
refactor(FE-Issue): remove unused product and warehouse selection from MovementTable for cleaner UI
This commit is contained in:
@@ -9,12 +9,10 @@ import { Icon } from '@iconify/react';
|
|||||||
import { Movement } from '@/types/api/inventory/movement';
|
import { Movement } from '@/types/api/inventory/movement';
|
||||||
import { MovementApi } from '@/services/api/inventory';
|
import { MovementApi } from '@/services/api/inventory';
|
||||||
import { cn } from '@/lib/helper';
|
import { cn } from '@/lib/helper';
|
||||||
import { Product } from '@/types/api/master-data/product';
|
|
||||||
import { Warehouse } from '@/types/api/master-data/warehouse';
|
|
||||||
import { isResponseSuccess } from '@/lib/api-helper';
|
import { isResponseSuccess } from '@/lib/api-helper';
|
||||||
import { useTableFilter } from '@/services/hooks/useTableFilter';
|
import { useTableFilter } from '@/services/hooks/useTableFilter';
|
||||||
import { ROWS_OPTIONS } from '@/config/constant';
|
import { ROWS_OPTIONS } from '@/config/constant';
|
||||||
import { OptionType, useSelect } from '@/components/input/SelectInput';
|
import { OptionType } from '@/components/input/SelectInput';
|
||||||
import Button from '@/components/Button';
|
import Button from '@/components/Button';
|
||||||
import DebouncedTextInput from '@/components/input/DebouncedTextInput';
|
import DebouncedTextInput from '@/components/input/DebouncedTextInput';
|
||||||
import SelectInput from '@/components/input/SelectInput';
|
import SelectInput from '@/components/input/SelectInput';
|
||||||
@@ -52,38 +50,15 @@ const MovementTable = () => {
|
|||||||
} = useTableFilter({
|
} = useTableFilter({
|
||||||
initial: {
|
initial: {
|
||||||
search: '',
|
search: '',
|
||||||
product: '',
|
|
||||||
warehouse: '',
|
|
||||||
},
|
},
|
||||||
paramMap: {
|
paramMap: {
|
||||||
page: 'page',
|
page: 'page',
|
||||||
pageSize: 'limit',
|
pageSize: 'limit',
|
||||||
product: 'product_id',
|
|
||||||
warehouse: 'warehouse_id',
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const [sorting, setSorting] = useState<SortingState>([]);
|
const [sorting, setSorting] = useState<SortingState>([]);
|
||||||
|
|
||||||
const {
|
|
||||||
setInputValue: setProductInputValue,
|
|
||||||
options: productOptions,
|
|
||||||
isLoadingOptions: isLoadingProductOptions,
|
|
||||||
} = useSelect<Product>('/products', 'id', 'name');
|
|
||||||
|
|
||||||
const {
|
|
||||||
setInputValue: setWarehouseInputValue,
|
|
||||||
options: warehouseOptions,
|
|
||||||
isLoadingOptions: isLoadingWarehouseOptions,
|
|
||||||
} = useSelect<Warehouse>('/warehouses', 'id', 'name');
|
|
||||||
|
|
||||||
const [selectedProduct, setSelectedProduct] = useState<OptionType | null>(
|
|
||||||
null
|
|
||||||
);
|
|
||||||
const [selectedWarehouse, setSelectedWarehouse] = useState<OptionType | null>(
|
|
||||||
null
|
|
||||||
);
|
|
||||||
|
|
||||||
const { data: movements, isLoading } = useSWR(
|
const { data: movements, isLoading } = useSWR(
|
||||||
`${MovementApi.basePath}${getTableFilterQueryString()}`,
|
`${MovementApi.basePath}${getTableFilterQueryString()}`,
|
||||||
MovementApi.getAllFetcher
|
MovementApi.getAllFetcher
|
||||||
@@ -99,16 +74,6 @@ const MovementTable = () => {
|
|||||||
setPage(1);
|
setPage(1);
|
||||||
};
|
};
|
||||||
|
|
||||||
const productChangeHandler = (val: OptionType | OptionType[] | null) => {
|
|
||||||
setSelectedProduct(val as OptionType);
|
|
||||||
updateFilter('product', val ? ((val as OptionType).value as string) : '');
|
|
||||||
};
|
|
||||||
|
|
||||||
const warehouseChangeHandler = (val: OptionType | OptionType[] | null) => {
|
|
||||||
setSelectedWarehouse(val as OptionType);
|
|
||||||
updateFilter('warehouse', val ? ((val as OptionType).value as string) : '');
|
|
||||||
};
|
|
||||||
|
|
||||||
const movementColumns: ColumnDef<Movement>[] = [
|
const movementColumns: ColumnDef<Movement>[] = [
|
||||||
{
|
{
|
||||||
header: '#',
|
header: '#',
|
||||||
@@ -200,33 +165,7 @@ const MovementTable = () => {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='grid grid-cols-12 justify-end gap-4'>
|
<div className='flex justify-end gap-4'>
|
||||||
<SelectInput
|
|
||||||
label='Produk'
|
|
||||||
options={productOptions}
|
|
||||||
isLoading={isLoadingProductOptions}
|
|
||||||
value={selectedProduct}
|
|
||||||
onChange={productChangeHandler}
|
|
||||||
onInputChange={setProductInputValue}
|
|
||||||
isClearable
|
|
||||||
className={{
|
|
||||||
wrapper: 'col-span-12 sm:col-span-4',
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<SelectInput
|
|
||||||
label='Gudang'
|
|
||||||
options={warehouseOptions}
|
|
||||||
isLoading={isLoadingWarehouseOptions}
|
|
||||||
value={selectedWarehouse}
|
|
||||||
onChange={warehouseChangeHandler}
|
|
||||||
onInputChange={setWarehouseInputValue}
|
|
||||||
isClearable
|
|
||||||
className={{
|
|
||||||
wrapper: 'col-span-12 sm:col-span-4',
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<SelectInput
|
<SelectInput
|
||||||
label='Baris'
|
label='Baris'
|
||||||
options={ROWS_OPTIONS}
|
options={ROWS_OPTIONS}
|
||||||
|
|||||||
Reference in New Issue
Block a user