A few react-admin upgrades

as per https://marmelab.com/react-admin/Upgrade.html
This commit is contained in:
Abel Luck 2023-06-07 12:14:12 +00:00
parent cdccc7f062
commit 49650795df
6 changed files with 41 additions and 34 deletions

View file

@ -9,10 +9,10 @@ import {
import { useSession } from "next-auth/react";
import { UserRoleInput } from "./shared";
const UserCreate: FC<CreateProps> = (props: any) => {
const UserCreate: FC<CreateProps> = () => {
const { data: session } = useSession();
return (
<Create {...props} title="Create Users">
<Create title="Create Users">
<SimpleForm>
<TextInput source="email" />
<TextInput source="name" />

View file

@ -8,8 +8,8 @@ import {
Toolbar,
SaveButton,
DeleteButton,
EditProps,
useRedirect,
useRecordContext,
} from "react-admin";
import { useSession } from "next-auth/react";
import { UserRoleInput } from "./shared";
@ -23,16 +23,20 @@ const useStyles = makeStyles((_theme: any) => ({
}));
const UserEditToolbar = (props: any) => {
const classes = useStyles(props);
const classes = useStyles();
const redirect = useRedirect();
const record = useRecordContext();
const {session} = props;
const shouldDisableDelete = !session || !session.user || session.user.id === record.id;
return (
<Toolbar className={classes.defaultToolbar} {...props}>
<Toolbar className={classes.defaultToolbar}>
<SaveButton
label="save"
mutationOptions={{ onSuccess: () => redirect("/users") }}
/>
<DeleteButton disabled={props.session.user.id === props.record.id} />
<DeleteButton disabled={shouldDisableDelete} />
</Toolbar>
);
};
@ -43,11 +47,11 @@ const UserTitle = ({ record }: { record?: any }) => {
return <span>User {title}</span>;
};
const UserEdit = (props: EditProps) => {
const UserEdit = () => {
const { data: session } = useSession();
return (
<Edit title={<UserTitle />} {...props}>
<Edit title={<UserTitle />}>
<SimpleForm toolbar={<UserEditToolbar session={session} />}>
<TextInput disabled source="id" />
<TextInput source="email" />

View file

@ -9,8 +9,8 @@ import {
ListProps,
} from "react-admin";
const UserList = (props: ListProps) => (
<List {...props} exporter={false}>
const UserList = () => (
<List exporter={false}>
<Datagrid rowClick="edit">
<EmailField source="email" />
<DateField source="emailVerified" />

View file

@ -1,14 +1,17 @@
import { SelectInput } from "react-admin";
import { SelectInput, useRecordContext } from "react-admin";
export const UserRoleInput = (props: any) => (
<SelectInput
source="userRole"
choices={[
{ id: "NONE", name: "None" },
{ id: "USER", name: "User" },
{ id: "ADMIN", name: "Admin" },
]}
disabled={props.session.user.id === props.record.id}
{...props}
/>
);
export const UserRoleInput = (props: any) => {
const record = useRecordContext();
return (
<SelectInput
source="userRole"
choices={[
{ id: "NONE", name: "None" },
{ id: "USER", name: "User" },
{ id: "ADMIN", name: "Admin" },
]}
disabled={props.session.user.id === record.id}
{...props}
/>
);
};