feat: input virtual can join other table

This commit is contained in:
Firman Syah 2026-07-02 15:15:33 +07:00
parent 74250261f2
commit ceeef16de9
3 changed files with 1050 additions and 1028 deletions

2055
dist/index.js vendored

File diff suppressed because it is too large Load Diff

View File

@ -36,6 +36,12 @@ const Testing = () => {
filter={[ filter={[
{name:"company_id",value: "442,722","logic_operator":"IN","operator":"AND"} {name:"company_id",value: "442,722","logic_operator":"IN","operator":"AND"}
]} ]}
joins={[
{
table: "vehicle_type",
columns: ["min_speed", "max_speed"],
},
]}
multiple multiple
/> />
</ApiProvider> </ApiProvider>

View File

@ -36,7 +36,8 @@ export default function ListVirtual({
filter, filter,
isApiGo = false, isApiGo = false,
multiple, multiple,
customSxTextField = {} customSxTextField = {},
joins = [],
}) { }) {
const headersRequest = useApiHeaders(); const headersRequest = useApiHeaders();
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
@ -76,6 +77,10 @@ export default function ListVirtual({
payload.addJoin("company", ["name"]); payload.addJoin("company", ["name"]);
} }
joins.forEach(join => {
payload.addJoin(join.table, join.columns);
});
try { try {
const res = await apiRequest.search( const res = await apiRequest.search(
url, url,
@ -217,7 +222,9 @@ export default function ListVirtual({
}; };
const displayValue = multiple const displayValue = multiple
? `${selected?.length || 0} ${label} selected` ? (selected?.length > 0
? `${selected.length} ${label} selected`
: "")
: selected?.[name] || ""; : selected?.[name] || "";
const isSelected = (row) => { const isSelected = (row) => {
@ -256,6 +263,10 @@ export default function ListVirtual({
); );
} }
joins.forEach(join => {
payload.addJoin(join.table, join.columns);
});
requests.push( requests.push(
apiRequest.search( apiRequest.search(
url, url,