fix a bug that could prevent user to selet their payment methods
All checks were successful
Deploy Amap / deploy (push) Successful in 1m52s
All checks were successful
Deploy Amap / deploy (push) Successful in 1m52s
This commit is contained in:
@@ -160,6 +160,7 @@
|
|||||||
"and/or": "and/or",
|
"and/or": "and/or",
|
||||||
"form name recommandation": "recommendation: Contract <contract-type> (Example: Pork-Lamb Contract)",
|
"form name recommandation": "recommendation: Contract <contract-type> (Example: Pork-Lamb Contract)",
|
||||||
"submit contract": "submit contract",
|
"submit contract": "submit contract",
|
||||||
|
"submit": "submit",
|
||||||
"example in user forms": "example in user contract form",
|
"example in user forms": "example in user contract form",
|
||||||
"occasional product": "occasional product",
|
"occasional product": "occasional product",
|
||||||
"recurrent product": "recurrent product",
|
"recurrent product": "recurrent product",
|
||||||
|
|||||||
@@ -160,6 +160,7 @@
|
|||||||
"and/or": "et/ou",
|
"and/or": "et/ou",
|
||||||
"form name recommandation": "recommandation : Contrat <contract-type> (Exemple : Contrat Porc-Agneau)",
|
"form name recommandation": "recommandation : Contrat <contract-type> (Exemple : Contrat Porc-Agneau)",
|
||||||
"submit contract": "envoyer le contrat",
|
"submit contract": "envoyer le contrat",
|
||||||
|
"submit": "envoyer",
|
||||||
"example in user forms": "exemple dans le formulaire à destination des amapiens",
|
"example in user forms": "exemple dans le formulaire à destination des amapiens",
|
||||||
"occasional product": "produit occasionnel",
|
"occasional product": "produit occasionnel",
|
||||||
"recurrent product": "produit récurrent",
|
"recurrent product": "produit récurrent",
|
||||||
|
|||||||
@@ -53,6 +53,8 @@ export default function FormModal({ opened, onClose, currentForm, handleSubmit }
|
|||||||
});
|
});
|
||||||
|
|
||||||
const usersSelect = useMemo(() => {
|
const usersSelect = useMemo(() => {
|
||||||
|
if (!users)
|
||||||
|
return [];
|
||||||
return users?.map((user) => ({
|
return users?.map((user) => ({
|
||||||
value: String(user.id),
|
value: String(user.id),
|
||||||
label: `${user.name}`,
|
label: `${user.name}`,
|
||||||
@@ -60,6 +62,8 @@ export default function FormModal({ opened, onClose, currentForm, handleSubmit }
|
|||||||
}, [users]);
|
}, [users]);
|
||||||
|
|
||||||
const productorsSelect = useMemo(() => {
|
const productorsSelect = useMemo(() => {
|
||||||
|
if (!productors)
|
||||||
|
return [];
|
||||||
return productors?.map((prod) => ({
|
return productors?.map((prod) => ({
|
||||||
value: String(prod.id),
|
value: String(prod.id),
|
||||||
label: `${prod.name}`,
|
label: `${prod.name}`,
|
||||||
|
|||||||
@@ -4,9 +4,12 @@ import "./index.css";
|
|||||||
import { Group, Loader } from "@mantine/core";
|
import { Group, Loader } from "@mantine/core";
|
||||||
import { Config } from "@/config/config";
|
import { Config } from "@/config/config";
|
||||||
import { useAuth } from "@/services/auth/AuthProvider";
|
import { useAuth } from "@/services/auth/AuthProvider";
|
||||||
|
import { useMediaQuery } from "@mantine/hooks";
|
||||||
|
import { IconHome, IconLogin, IconLogout, IconSettings } from "@tabler/icons-react";
|
||||||
|
|
||||||
export function Navbar() {
|
export function Navbar() {
|
||||||
const { loggedUser: user, isLoading } = useAuth();
|
const { loggedUser: user, isLoading } = useAuth();
|
||||||
|
const isPhone = useMediaQuery("(max-width: 760px");
|
||||||
|
|
||||||
if (!user && isLoading) {
|
if (!user && isLoading) {
|
||||||
return (
|
return (
|
||||||
@@ -20,11 +23,11 @@ export function Navbar() {
|
|||||||
<nav>
|
<nav>
|
||||||
<Group>
|
<Group>
|
||||||
<NavLink className={"navLink"} aria-label={t("home")} to="/">
|
<NavLink className={"navLink"} aria-label={t("home")} to="/">
|
||||||
{t("home", { capfirst: true })}
|
{isPhone ? <IconHome/> : t("home", { capfirst: true })}
|
||||||
</NavLink>
|
</NavLink>
|
||||||
{user?.logged ? (
|
{user?.logged ? (
|
||||||
<NavLink className={"navLink"} aria-label={t("dashboard")} to="/dashboard/help">
|
<NavLink className={"navLink"} aria-label={t("dashboard")} to="/dashboard/help">
|
||||||
{t("dashboard", { capfirst: true })}
|
{isPhone ? <IconSettings/> : t("dashboard", { capfirst: true })}
|
||||||
</NavLink>
|
</NavLink>
|
||||||
) : null}
|
) : null}
|
||||||
</Group>
|
</Group>
|
||||||
@@ -34,7 +37,7 @@ export function Navbar() {
|
|||||||
className={"navLink"}
|
className={"navLink"}
|
||||||
aria-label={t("login with keycloak", { capfirst: true })}
|
aria-label={t("login with keycloak", { capfirst: true })}
|
||||||
>
|
>
|
||||||
{t("login with keycloak", { capfirst: true })}
|
{isPhone ? <IconLogin/> : t("login with keycloak", { capfirst: true })}
|
||||||
</a>
|
</a>
|
||||||
) : (
|
) : (
|
||||||
<a
|
<a
|
||||||
@@ -42,7 +45,7 @@ export function Navbar() {
|
|||||||
className={"navLink"}
|
className={"navLink"}
|
||||||
aria-label={t("logout", { capfirst: true })}
|
aria-label={t("logout", { capfirst: true })}
|
||||||
>
|
>
|
||||||
{t("logout", { capfirst: true })}
|
{isPhone ? <IconLogout/> : t("logout", { capfirst: true })}
|
||||||
</a>
|
</a>
|
||||||
)}
|
)}
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ export function ProductModal({ opened, onClose, currentProduct, handleSubmit }:
|
|||||||
});
|
});
|
||||||
|
|
||||||
const productorsSelect = useMemo(() => {
|
const productorsSelect = useMemo(() => {
|
||||||
|
if (!productors)
|
||||||
|
return [];
|
||||||
return productors?.map((productor) => ({
|
return productors?.map((productor) => ({
|
||||||
value: String(productor.id),
|
value: String(productor.id),
|
||||||
label: `${productor.name}`,
|
label: `${productor.name}`,
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ export default function ShipmentModal({
|
|||||||
const { data: allProductors } = useGetProductors();
|
const { data: allProductors } = useGetProductors();
|
||||||
|
|
||||||
const formsSelect = useMemo(() => {
|
const formsSelect = useMemo(() => {
|
||||||
|
if (!allForms)
|
||||||
|
return [];
|
||||||
return allForms?.map((currentForm) => ({
|
return allForms?.map((currentForm) => ({
|
||||||
value: String(currentForm.id),
|
value: String(currentForm.id),
|
||||||
label: `${currentForm.name} ${currentForm.season}`,
|
label: `${currentForm.name} ${currentForm.season}`,
|
||||||
@@ -55,7 +57,7 @@ export default function ShipmentModal({
|
|||||||
}, [allForms]);
|
}, [allForms]);
|
||||||
|
|
||||||
const productsSelect = useMemo(() => {
|
const productsSelect = useMemo(() => {
|
||||||
if (!allProducts || !allProductors) return;
|
if (!allProducts || !allProductors) return [];
|
||||||
return allProductors?.map((productor) => {
|
return allProductors?.map((productor) => {
|
||||||
return {
|
return {
|
||||||
group: productor.name,
|
group: productor.name,
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ export function UserModal({ opened, onClose, currentUser, handleSubmit }: UserMo
|
|||||||
});
|
});
|
||||||
|
|
||||||
const roleSelect = useMemo(() => {
|
const roleSelect = useMemo(() => {
|
||||||
|
if (!allRoles)
|
||||||
|
return [];
|
||||||
return allRoles?.map((role) => ({ value: String(role.name), label: role.name }));
|
return allRoles?.map((role) => ({ value: String(role.name), label: role.name }));
|
||||||
}, [allRoles]);
|
}, [allRoles]);
|
||||||
|
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ export function Contract() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Stack w={{ base: "100%", md: "80%", lg: "50%" }}>
|
<Stack w={{ base: "100%", md: "80%", lg: "50%" }} p={{base: 'xs'}}>
|
||||||
<Title order={2}>{form.name}</Title>
|
<Title order={2}>{form.name}</Title>
|
||||||
<Title order={3}>{t("informations", { capfirst: true })}</Title>
|
<Title order={3}>{t("informations", { capfirst: true })}</Title>
|
||||||
<Text size="sm">
|
<Text size="sm">
|
||||||
@@ -283,6 +283,10 @@ export function Contract() {
|
|||||||
ref={(el) => {
|
ref={(el) => {
|
||||||
inputRefs.current.payment_method = el;
|
inputRefs.current.payment_method = el;
|
||||||
}}
|
}}
|
||||||
|
comboboxProps={{
|
||||||
|
withinPortal: false,
|
||||||
|
position: "bottom-start",
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
{inputForm.values.payment_method === "cheque" ? (
|
{inputForm.values.payment_method === "cheque" ? (
|
||||||
<ContractCheque
|
<ContractCheque
|
||||||
@@ -319,7 +323,7 @@ export function Contract() {
|
|||||||
<Button
|
<Button
|
||||||
leftSection={<IconDownload/>}
|
leftSection={<IconDownload/>}
|
||||||
aria-label={t("submit contracts")} onClick={handleSubmit}>
|
aria-label={t("submit contracts")} onClick={handleSubmit}>
|
||||||
{t("submit contract", {capfirst: true})}
|
{t("submit", {capfirst: true})}
|
||||||
</Button>
|
</Button>
|
||||||
</Overlay>
|
</Overlay>
|
||||||
</Stack>
|
</Stack>
|
||||||
|
|||||||
@@ -40,12 +40,16 @@ export default function Productors() {
|
|||||||
}, [navigate, searchParams]);
|
}, [navigate, searchParams]);
|
||||||
|
|
||||||
const names = useMemo(() => {
|
const names = useMemo(() => {
|
||||||
|
if (!allProductors)
|
||||||
|
return [];
|
||||||
return allProductors
|
return allProductors
|
||||||
?.map((productor: Productor) => productor.name)
|
?.map((productor: Productor) => productor.name)
|
||||||
.filter((season, index, array) => array.indexOf(season) === index);
|
.filter((season, index, array) => array.indexOf(season) === index);
|
||||||
}, [allProductors]);
|
}, [allProductors]);
|
||||||
|
|
||||||
const types = useMemo(() => {
|
const types = useMemo(() => {
|
||||||
|
if (!allProductors)
|
||||||
|
return [];
|
||||||
return allProductors
|
return allProductors
|
||||||
?.map((productor: Productor) => productor.type)
|
?.map((productor: Productor) => productor.type)
|
||||||
.filter((productor, index, array) => array.indexOf(productor) === index);
|
.filter((productor, index, array) => array.indexOf(productor) === index);
|
||||||
|
|||||||
@@ -38,12 +38,16 @@ export default function Products() {
|
|||||||
const { data: allProducts } = useGetProducts();
|
const { data: allProducts } = useGetProducts();
|
||||||
|
|
||||||
const names = useMemo(() => {
|
const names = useMemo(() => {
|
||||||
|
if (!allProducts)
|
||||||
|
return [];
|
||||||
return allProducts
|
return allProducts
|
||||||
?.map((product: Product) => product.name)
|
?.map((product: Product) => product.name)
|
||||||
.filter((season, index, array) => array.indexOf(season) === index);
|
.filter((season, index, array) => array.indexOf(season) === index);
|
||||||
}, [allProducts]);
|
}, [allProducts]);
|
||||||
|
|
||||||
const productors = useMemo(() => {
|
const productors = useMemo(() => {
|
||||||
|
if (!allProducts)
|
||||||
|
return [];
|
||||||
return allProducts
|
return allProducts
|
||||||
?.map((product: Product) => product.productor.name)
|
?.map((product: Product) => product.productor.name)
|
||||||
.filter((productor, index, array) => array.indexOf(productor) === index);
|
.filter((productor, index, array) => array.indexOf(productor) === index);
|
||||||
|
|||||||
@@ -44,12 +44,16 @@ export default function Shipments() {
|
|||||||
const { data: allShipments } = useGetShipments();
|
const { data: allShipments } = useGetShipments();
|
||||||
|
|
||||||
const names = useMemo(() => {
|
const names = useMemo(() => {
|
||||||
|
if (!allShipments)
|
||||||
|
return [];
|
||||||
return allShipments
|
return allShipments
|
||||||
?.map((shipment: Shipment) => shipment.name)
|
?.map((shipment: Shipment) => shipment.name)
|
||||||
.filter((season, index, array) => array.indexOf(season) === index);
|
.filter((season, index, array) => array.indexOf(season) === index);
|
||||||
}, [allShipments]);
|
}, [allShipments]);
|
||||||
|
|
||||||
const forms = useMemo(() => {
|
const forms = useMemo(() => {
|
||||||
|
if (!allShipments)
|
||||||
|
return [];
|
||||||
return allShipments
|
return allShipments
|
||||||
?.map((shipment: Shipment) => shipment.form.name)
|
?.map((shipment: Shipment) => shipment.form.name)
|
||||||
.filter((season, index, array) => array.indexOf(season) === index);
|
.filter((season, index, array) => array.indexOf(season) === index);
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ export default function Users() {
|
|||||||
const { data: allUsers } = useGetUsers();
|
const { data: allUsers } = useGetUsers();
|
||||||
|
|
||||||
const names = useMemo(() => {
|
const names = useMemo(() => {
|
||||||
|
if (!allUsers)
|
||||||
|
return [];
|
||||||
return allUsers
|
return allUsers
|
||||||
?.map((user: User) => user.name)
|
?.map((user: User) => user.name)
|
||||||
.filter((season, index, array) => array.indexOf(season) === index);
|
.filter((season, index, array) => array.indexOf(season) === index);
|
||||||
|
|||||||
Reference in New Issue
Block a user