link-stack/apps/metamigo-frontend/app/_components/accounts/AccountEdit.tsx

63 lines
1.6 KiB
TypeScript
Raw Normal View History

2023-06-28 12:55:24 +00:00
"use client";
2023-02-13 12:41:30 +00:00
import { FC } from "react";
2023-05-25 14:36:08 +00:00
import { makeStyles } from "@mui/styles";
2023-02-13 12:41:30 +00:00
import {
SimpleForm,
TextInput,
Edit,
ReferenceInput,
SelectInput,
DateInput,
Toolbar,
DeleteButton,
EditProps,
} from "react-admin";
import { useSession } from "next-auth/react";
2023-05-25 07:03:57 +00:00
const useStyles = makeStyles((_theme: any) => ({
2023-02-13 12:41:30 +00:00
defaultToolbar: {
flex: 1,
display: "flex",
justifyContent: "space-between",
},
}));
type AccountEditToolbarProps = {
record?: any;
};
2023-07-05 09:39:24 +00:00
const AccountEditToolbar: FC<AccountEditToolbarProps> = (props) => {
2023-02-13 12:41:30 +00:00
const { data: session } = useSession();
const classes = useStyles(props);
return (
<Toolbar className={classes.defaultToolbar} {...props}>
<DeleteButton disabled={session?.user?.email === props.record?.userId} />
</Toolbar>
);
};
const AccountTitle = ({ record }: { record?: any }) => {
let title = "";
2023-03-15 12:17:43 +00:00
if (record) title = record.name ?? record.email;
2023-02-13 12:41:30 +00:00
return <span>Account {title}</span>;
};
2023-07-05 09:39:24 +00:00
export const AccountEdit: FC<EditProps> = (props) => (
2023-02-13 12:41:30 +00:00
<Edit title={<AccountTitle />} {...props}>
<SimpleForm toolbar={<AccountEditToolbar />}>
<TextInput disabled source="id" />
<ReferenceInput source="userId" reference="users">
<SelectInput disabled optionText="email" />
</ReferenceInput>
<TextInput disabled source="providerType" />
<TextInput disabled source="providerId" />
<TextInput disabled source="providerAccountId" />
<DateInput disabled source="createdAt" />
<DateInput disabled source="updatedAt" />
</SimpleForm>
</Edit>
);
2023-07-05 09:39:24 +00:00
2023-02-13 12:41:30 +00:00
export default AccountEdit;