+ {/* Label atas */}
+ {label && (
+
+ )}
+
+ {/* Daftar opsi radio */}
+
+ {options.map((option) => (
+
+ ))}
+
+
+ {/* Label bawah */}
+ {!isError && bottomLabel && (
+
{bottomLabel}
+ )}
+
+ {/* Pesan error */}
+ {isError && errorMessage && (
+
{errorMessage}
+ )}
+
+ );
+};
+
+export default RadioInput;
diff --git a/src/components/pages/inventory/adjustment/InventoryAdjustmentTable.tsx b/src/components/pages/inventory/adjustment/InventoryAdjustmentTable.tsx
new file mode 100644
index 00000000..45cfd3f3
--- /dev/null
+++ b/src/components/pages/inventory/adjustment/InventoryAdjustmentTable.tsx
@@ -0,0 +1,263 @@
+'use client';
+
+import Button from '@/components/Button';
+import SelectInput, { OptionType } from '@/components/input/SelectInput';
+import Table from '@/components/Table';
+import { ROWS_OPTIONS } from '@/config/constant';
+import { isResponseSuccess } from '@/lib/api-helper';
+import { cn } from '@/lib/helper';
+import { inventoryAdjustmentApi } from '@/services/api/inventory';
+import { useTableFilter } from '@/services/hooks/useTableFilter';
+import { InventoryAdjustment } from '@/types/api/inventory/adjustment';
+import { Icon } from '@iconify/react';
+import {
+ ColumnDef,
+ ColumnSort,
+ SortingState,
+} from '@tanstack/react-table';
+import { useCallback, useEffect, useState } from 'react';
+import useSWR from 'swr';
+
+const InventoryAdjustmentTable = () => {
+ const {
+ state: tableFilterState,
+ updateFilter,
+ setPage,
+ setPageSize,
+ toQueryString: getTableFilterQueryString,
+ } = useTableFilter({
+ initial: {
+ search: '',
+ productCategorySort: '',
+ productSort: '',
+ warehouseSort: '',
+ stockSort: '',
+ },
+ paramMap: {
+ page: 'page',
+ pageSize: 'limit',
+ productCategorySort: 'sort_product_category',
+ productSort: 'sort_product',
+ warehouseSort: 'sort_warehouse',
+ stockSort: 'sort_stock',
+ },
+ });
+
+ // Fetch Data
+ const {
+ data: inventoryAdjustments,
+ isLoading,
+ } = useSWR(
+ `${inventoryAdjustmentApi.basePath}${getTableFilterQueryString()}`,
+ inventoryAdjustmentApi.getAllFetcher
+ );
+
+ // State
+ const [sorting, setSorting] = useState