diff --git a/components/form/Field.tsx b/components/form/Field.tsx index 9ac6e0a..eef2ef1 100644 --- a/components/form/Field.tsx +++ b/components/form/Field.tsx @@ -67,6 +67,7 @@ export interface FieldProps { pagination?: boolean; search?: "api" | "local"; visibleLabel?: boolean; + autoRefresh?: boolean; } export const Field: React.FC = ({ fm, @@ -97,6 +98,7 @@ export const Field: React.FC = ({ target, pagination = true, search = "api", + autoRefresh = false, }) => { let result = null; const field = useLocal({ @@ -217,7 +219,7 @@ export const Field: React.FC = ({
= ({ = ({ pagination = true, search = "api", required = false, + autoRefresh = false, }) => { const [open, setOpen] = useState(false as boolean); const [refreshKey, setRefreshKey] = useState(Date.now()); @@ -203,7 +204,7 @@ export const TypeAsyncDropdown: React.FC = ({ } } else if (typeof value === "object") { value = { - value: getLabel(value), + value: getValue(value), label: getLabel(value), }; } else if ( @@ -258,7 +259,9 @@ export const TypeAsyncDropdown: React.FC = ({ classNameTrigger={""} arrow={false} className="rounded-md" - onOpenChange={(open: any) => {}} + onOpenChange={(open: any) => { + setOpen(open); + }} open={true} content={
= ({ isClearable={clearable} onMenuOpen={() => { setOpen(true); + if (autoRefresh) { + setRefreshKey(Date.now()); // Refresh API saat menu dibuka jika autoRefresh true + } }} onMenuClose={() => { setOpen(false); }} - // closeMenuOnSelect={mode === "dropdown" ? true : false} - closeMenuOnSelect={false} + closeMenuOnSelect={mode === "dropdown" ? true : false} + // closeMenuOnSelect={false} getOptionValue={(item) => item.value} getOptionLabel={(item) => item.label} value={value} diff --git a/components/tablelist/TableList.tsx b/components/tablelist/TableList.tsx index f11b790..6926284 100644 --- a/components/tablelist/TableList.tsx +++ b/components/tablelist/TableList.tsx @@ -518,12 +518,12 @@ export const TableList = ({ }; const [pagination, setPagination] = React.useState({ pageIndex: 0, - pageSize: 20, + pageSize: take, }); const table = useReactTable({ data: data, columnResizeMode, - pageCount: Math.ceil(local.count / 20), + pageCount: Math.ceil(local.count / take), manualPagination: true, columnResizeDirection, columns, @@ -534,7 +534,7 @@ export const TableList = ({ initialState: { pagination: { pageIndex: 0, - pageSize: 20, //custom default page size + pageSize: take, //custom default page size }, }, state: { @@ -1078,7 +1078,7 @@ export const TableList = ({ setPage={(page: any) => { setPagination({ pageIndex: page, - pageSize: 20, + pageSize: take, }); local.paging = page; local.render();