Updates on part order modal
This commit is contained in:
@@ -7278,6 +7278,27 @@
|
|||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>search</name>
|
||||||
|
<definition_loaded>false</definition_loaded>
|
||||||
|
<description></description>
|
||||||
|
<comment></comment>
|
||||||
|
<default_text></default_text>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-MX</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-CA</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
</children>
|
</children>
|
||||||
</folder_node>
|
</folder_node>
|
||||||
<folder_node>
|
<folder_node>
|
||||||
|
|||||||
@@ -1,5 +1,31 @@
|
|||||||
import React from "react";
|
import React, { useState } from "react";
|
||||||
|
import { AutoComplete, Icon } from "antd";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
export default function PartsOrderModalComponent({ vendorList }) {
|
||||||
|
const [vendorComplete, setVendorComplete] = useState(vendorList);
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const handleSearch = value => {
|
||||||
|
if (value === "") setVendorComplete(vendorList);
|
||||||
|
else
|
||||||
|
setVendorComplete(
|
||||||
|
vendorList.filter(v =>
|
||||||
|
v.name.toLowerCase().includes(value.toLowerCase())
|
||||||
|
)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
export default function PartsOrderModalComponent() {
|
return (
|
||||||
return <div>Component</div>;
|
<div>
|
||||||
|
<AutoComplete
|
||||||
|
onSearch={handleSearch}
|
||||||
|
placeholder={t("vendors.labels.search")}>
|
||||||
|
{vendorComplete.map(v => (
|
||||||
|
<AutoComplete.Option key={v.id}>
|
||||||
|
{v.name}
|
||||||
|
{v.favorite ? <Icon type='heart' /> : null}
|
||||||
|
</AutoComplete.Option>
|
||||||
|
))}
|
||||||
|
</AutoComplete>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,28 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { Modal } from "antd";
|
import { Modal } from "antd";
|
||||||
import PartsOrderModalComponent from "./parts-order-modal.component";
|
import PartsOrderModalComponent from "./parts-order-modal.component";
|
||||||
|
import { QUERY_ALL_VENDORS_FOR_ORDER } from "../../graphql/vendors.queries";
|
||||||
|
import { useQuery } from "react-apollo";
|
||||||
|
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
|
||||||
|
import AlertComponent from "../alert/alert.component";
|
||||||
|
|
||||||
export default function PartsOrderModalContainer({
|
export default function PartsOrderModalContainer({
|
||||||
partsOrderModalVisible,
|
partsOrderModalVisible,
|
||||||
linesToOrder
|
linesToOrder
|
||||||
}) {
|
}) {
|
||||||
|
|
||||||
const [modalVisible, setModalVisible] = partsOrderModalVisible;
|
const [modalVisible, setModalVisible] = partsOrderModalVisible;
|
||||||
|
const { loading, error, data } = useQuery(QUERY_ALL_VENDORS_FOR_ORDER, {
|
||||||
|
fetchPolicy: "network-only",
|
||||||
|
skip: !modalVisible
|
||||||
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal visible={modalVisible} onCancel={() => setModalVisible(false)}>
|
<Modal visible={modalVisible} onCancel={() => setModalVisible(false)}>
|
||||||
{JSON.stringify(linesToOrder)}
|
{error ? <AlertComponent message={error.message} type='error' /> : null}
|
||||||
<PartsOrderModalComponent />
|
<LoadingSpinner loading={loading}>
|
||||||
|
{JSON.stringify(linesToOrder)}
|
||||||
|
<PartsOrderModalComponent vendorList={(data && data.vendors) || []} />
|
||||||
|
</LoadingSpinner>
|
||||||
</Modal>
|
</Modal>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,3 +66,14 @@ export const DELETE_VENDOR = gql`
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
export const QUERY_ALL_VENDORS_FOR_ORDER = gql`
|
||||||
|
query QUERY_ALL_VENDORS_FOR_ORDER {
|
||||||
|
vendors(order_by: { favorite: desc }) {
|
||||||
|
name
|
||||||
|
cost_center
|
||||||
|
id
|
||||||
|
favorite
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|||||||
@@ -468,7 +468,8 @@
|
|||||||
"zip": "Zip/Postal Code"
|
"zip": "Zip/Postal Code"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"noneselected": "No vendor is selected."
|
"noneselected": "No vendor is selected.",
|
||||||
|
"search": "Type a Vendor's Name"
|
||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"deleted": "Vendor deleted successfully. ",
|
"deleted": "Vendor deleted successfully. ",
|
||||||
|
|||||||
@@ -468,7 +468,8 @@
|
|||||||
"zip": "código postal"
|
"zip": "código postal"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"noneselected": "Ningún vendedor está seleccionado."
|
"noneselected": "Ningún vendedor está seleccionado.",
|
||||||
|
"search": "Escriba el nombre de un proveedor"
|
||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"deleted": "Proveedor eliminado correctamente.",
|
"deleted": "Proveedor eliminado correctamente.",
|
||||||
|
|||||||
@@ -468,7 +468,8 @@
|
|||||||
"zip": "Zip / code postal"
|
"zip": "Zip / code postal"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"noneselected": "Aucun fournisseur n'est sélectionné."
|
"noneselected": "Aucun fournisseur n'est sélectionné.",
|
||||||
|
"search": "Tapez le nom d'un vendeur"
|
||||||
},
|
},
|
||||||
"successes": {
|
"successes": {
|
||||||
"deleted": "Le fournisseur a bien été supprimé.",
|
"deleted": "Le fournisseur a bien été supprimé.",
|
||||||
|
|||||||
Reference in New Issue
Block a user