Refactor providers call
This commit is contained in:
parent
29254b49a6
commit
014c2625f9
@ -8,9 +8,7 @@ import {
|
|||||||
} from "@mui/material";
|
} from "@mui/material";
|
||||||
import React, { PropsWithChildren } from "react";
|
import React, { PropsWithChildren } from "react";
|
||||||
|
|
||||||
interface AlertContext {
|
type AlertContext = (message: string, title?: string) => Promise<void>;
|
||||||
alert: (message: string, title?: string) => Promise<void>;
|
|
||||||
}
|
|
||||||
|
|
||||||
const AlertContextK = React.createContext<AlertContext | null>(null);
|
const AlertContextK = React.createContext<AlertContext | null>(null);
|
||||||
|
|
||||||
@ -29,8 +27,7 @@ export function AlertDialogProvider(p: PropsWithChildren): React.ReactElement {
|
|||||||
cb.current = null;
|
cb.current = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
const hook: AlertContext = {
|
const hook: AlertContext = (message, title) => {
|
||||||
alert: (message, title) => {
|
|
||||||
setTitle(title);
|
setTitle(title);
|
||||||
setMessage(message);
|
setMessage(message);
|
||||||
setOpen(true);
|
setOpen(true);
|
||||||
@ -38,7 +35,6 @@ export function AlertDialogProvider(p: PropsWithChildren): React.ReactElement {
|
|||||||
return new Promise((res) => {
|
return new Promise((res) => {
|
||||||
cb.current = res;
|
cb.current = res;
|
||||||
});
|
});
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -8,13 +8,11 @@ import {
|
|||||||
} from "@mui/material";
|
} from "@mui/material";
|
||||||
import React, { PropsWithChildren } from "react";
|
import React, { PropsWithChildren } from "react";
|
||||||
|
|
||||||
interface ConfirmContext {
|
type ConfirmContext = (
|
||||||
confirm: (
|
|
||||||
message: string,
|
message: string,
|
||||||
title?: string,
|
title?: string,
|
||||||
confirmButton?: string
|
confirmButton?: string
|
||||||
) => Promise<boolean>;
|
) => Promise<boolean>;
|
||||||
}
|
|
||||||
|
|
||||||
const ConfirmContextK = React.createContext<ConfirmContext | null>(null);
|
const ConfirmContextK = React.createContext<ConfirmContext | null>(null);
|
||||||
|
|
||||||
@ -38,8 +36,7 @@ export function ConfirmDialogProvider(
|
|||||||
cb.current = null;
|
cb.current = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
const hook: ConfirmContext = {
|
const hook: ConfirmContext = (message, title, confirmButton) => {
|
||||||
confirm: (message, title, confirmButton) => {
|
|
||||||
setTitle(title);
|
setTitle(title);
|
||||||
setMessage(message);
|
setMessage(message);
|
||||||
setConfirmButton(confirmButton);
|
setConfirmButton(confirmButton);
|
||||||
@ -48,7 +45,6 @@ export function ConfirmDialogProvider(
|
|||||||
return new Promise((res) => {
|
return new Promise((res) => {
|
||||||
cb.current = res;
|
cb.current = res;
|
||||||
});
|
});
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -28,7 +28,7 @@ export function CreateFamilyDialog(p: {
|
|||||||
await FamilyApi.CreateFamily(name);
|
await FamilyApi.CreateFamily(name);
|
||||||
setName("");
|
setName("");
|
||||||
p.onCreated();
|
p.onCreated();
|
||||||
await alert.alert("La famille a été créée avec succès !");
|
await alert("La famille a été créée avec succès !");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
setError(true);
|
setError(true);
|
||||||
|
@ -32,7 +32,7 @@ export function JoinFamilyDialog(p: {
|
|||||||
case JoinFamilyResult.Success:
|
case JoinFamilyResult.Success:
|
||||||
setCode("");
|
setCode("");
|
||||||
p.onJoined();
|
p.onJoined();
|
||||||
await alert.alert("La famille a été rejointe avec succès !");
|
await alert("La famille a été rejointe avec succès !");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case JoinFamilyResult.TooManyRequests:
|
case JoinFamilyResult.TooManyRequests:
|
||||||
|
@ -24,7 +24,7 @@ export function DeleteAccountRoute(): React.ReactElement {
|
|||||||
const doDelete = async () => {
|
const doDelete = async () => {
|
||||||
try {
|
try {
|
||||||
if (
|
if (
|
||||||
!(await confirm.confirm(
|
!(await confirm(
|
||||||
"Voulez-vous vraiment supprimer votre compte ?",
|
"Voulez-vous vraiment supprimer votre compte ?",
|
||||||
undefined,
|
undefined,
|
||||||
"Supprimer mon compte"
|
"Supprimer mon compte"
|
||||||
@ -35,12 +35,12 @@ export function DeleteAccountRoute(): React.ReactElement {
|
|||||||
await UserApi.DeleteAccount(token);
|
await UserApi.DeleteAccount(token);
|
||||||
AuthApi.RemoveAuthToken();
|
AuthApi.RemoveAuthToken();
|
||||||
|
|
||||||
await alert.alert("Votre compte a été supprimé avec succès !");
|
await alert("Votre compte a été supprimé avec succès !");
|
||||||
|
|
||||||
navigate("/");
|
navigate("/");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
alert.alert("Echec de la suppression du compte !");
|
alert("Echec de la suppression du compte !");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@ function FamilyCard(p: {
|
|||||||
try {
|
try {
|
||||||
if (
|
if (
|
||||||
!p.f.CanLeave ||
|
!p.f.CanLeave ||
|
||||||
!(await confirm.confirm(
|
!(await confirm(
|
||||||
"Voulez-vous vraiment quitter la famille " + p.f.name + " ?"
|
"Voulez-vous vraiment quitter la famille " + p.f.name + " ?"
|
||||||
))
|
))
|
||||||
)
|
)
|
||||||
@ -199,12 +199,12 @@ function FamilyCard(p: {
|
|||||||
|
|
||||||
p.onFamilyLeft();
|
p.onFamilyLeft();
|
||||||
|
|
||||||
alert.alert(
|
alert(
|
||||||
`La famille ${p.f.name} a été retirée de votre liste de familles !`
|
`La famille ${p.f.name} a été retirée de votre liste de familles !`
|
||||||
);
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
alert.alert("Echec du retrait de la famille !");
|
alert("Echec du retrait de la famille !");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -255,7 +255,7 @@ function DeleteAccountButton(): React.ReactElement {
|
|||||||
const requestDelete = async () => {
|
const requestDelete = async () => {
|
||||||
try {
|
try {
|
||||||
if (
|
if (
|
||||||
!(await confirm.confirm(
|
!(await confirm(
|
||||||
"Voulez-vous initier la suppression de votre compte ?",
|
"Voulez-vous initier la suppression de votre compte ?",
|
||||||
"Suppression de compte"
|
"Suppression de compte"
|
||||||
))
|
))
|
||||||
@ -264,12 +264,12 @@ function DeleteAccountButton(): React.ReactElement {
|
|||||||
|
|
||||||
await UserApi.RequestAccountDeletion();
|
await UserApi.RequestAccountDeletion();
|
||||||
|
|
||||||
await alert.alert(
|
await alert(
|
||||||
"Demande de suppression de compte enregistrée avec succès. Veuillez consulter votre boîte mail."
|
"Demande de suppression de compte enregistrée avec succès. Veuillez consulter votre boîte mail."
|
||||||
);
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
alert.alert("Echec de la demande de suppression de compte !");
|
alert("Echec de la demande de suppression de compte !");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
import CancelIcon from "@mui/icons-material/Close";
|
||||||
|
import DeleteIcon from "@mui/icons-material/DeleteOutlined";
|
||||||
|
import EditIcon from "@mui/icons-material/Edit";
|
||||||
|
import SaveIcon from "@mui/icons-material/Save";
|
||||||
import {
|
import {
|
||||||
DataGrid,
|
DataGrid,
|
||||||
GridActionsCellItem,
|
GridActionsCellItem,
|
||||||
@ -9,17 +13,12 @@ import {
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { FamilyApi, FamilyUser } from "../../api/FamilyApi";
|
import { FamilyApi, FamilyUser } from "../../api/FamilyApi";
|
||||||
import { useAlert } from "../../context_providers/AlertDialogProvider";
|
import { useAlert } from "../../context_providers/AlertDialogProvider";
|
||||||
|
import { useConfirm } from "../../context_providers/ConfirmDialogProvider";
|
||||||
import { AsyncWidget } from "../../widgets/AsyncWidget";
|
import { AsyncWidget } from "../../widgets/AsyncWidget";
|
||||||
import { useUser } from "../../widgets/BaseAuthenticatedPage";
|
import { useUser } from "../../widgets/BaseAuthenticatedPage";
|
||||||
import { useFamily } from "../../widgets/BaseFamilyRoute";
|
import { useFamily } from "../../widgets/BaseFamilyRoute";
|
||||||
import { FamilyPageTitle } from "../../widgets/FamilyPageTitle";
|
import { FamilyPageTitle } from "../../widgets/FamilyPageTitle";
|
||||||
import { TimeWidget } from "../../widgets/TimeWidget";
|
import { TimeWidget } from "../../widgets/TimeWidget";
|
||||||
import AddIcon from "@mui/icons-material/Add";
|
|
||||||
import EditIcon from "@mui/icons-material/Edit";
|
|
||||||
import DeleteIcon from "@mui/icons-material/DeleteOutlined";
|
|
||||||
import SaveIcon from "@mui/icons-material/Save";
|
|
||||||
import CancelIcon from "@mui/icons-material/Close";
|
|
||||||
import { useConfirm } from "../../context_providers/ConfirmDialogProvider";
|
|
||||||
|
|
||||||
export function FamilyUsersListRoute(): React.ReactElement {
|
export function FamilyUsersListRoute(): React.ReactElement {
|
||||||
const family = useFamily();
|
const family = useFamily();
|
||||||
@ -79,7 +78,7 @@ function UsersTable(p: {
|
|||||||
try {
|
try {
|
||||||
const user = p.users.find((u) => u.user_id === id)!;
|
const user = p.users.find((u) => u.user_id === id)!;
|
||||||
if (
|
if (
|
||||||
!(await confirm.confirm(
|
!(await confirm(
|
||||||
`Voulez-vous vraiment retirer ${user.user_name} de cette famille ?`
|
`Voulez-vous vraiment retirer ${user.user_name} de cette famille ?`
|
||||||
))
|
))
|
||||||
)
|
)
|
||||||
@ -89,7 +88,7 @@ function UsersTable(p: {
|
|||||||
p.onReload();
|
p.onReload();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
alert.alert("Echec de la suppression de l'utilisateur !");
|
alert("Echec de la suppression de l'utilisateur !");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -186,7 +185,7 @@ function UsersTable(p: {
|
|||||||
}}
|
}}
|
||||||
onProcessRowUpdateError={(e) => {
|
onProcessRowUpdateError={(e) => {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
alert.alert("Échec de la mise à jour des informations utilisateurs !");
|
alert("Échec de la mise à jour des informations utilisateurs !");
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
@ -65,7 +65,7 @@ export function BaseFamilyRoute(): React.ReactElement {
|
|||||||
const changeInvitationCode = async () => {
|
const changeInvitationCode = async () => {
|
||||||
try {
|
try {
|
||||||
if (
|
if (
|
||||||
!(await confirm.confirm(
|
!(await confirm(
|
||||||
"Voulez-vous vraiment générer un nouveau code d'invitation pour cette famille ? Cette action aura pour effet d'invalider l'ancien code !"
|
"Voulez-vous vraiment générer un nouveau code d'invitation pour cette famille ? Cette action aura pour effet d'invalider l'ancien code !"
|
||||||
))
|
))
|
||||||
)
|
)
|
||||||
@ -78,7 +78,7 @@ export function BaseFamilyRoute(): React.ReactElement {
|
|||||||
onReload();
|
onReload();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
alert.alert("Echec du renouvellement du code d'invitation !");
|
alert("Echec du renouvellement du code d'invitation !");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user