link-stack/apps/metamigo-frontend/components/accounts/AccountEdit.tsx
2023-02-13 13:10:48 +00:00

59 lines
1.6 KiB
TypeScript

import { FC } from "react";
import { makeStyles } from "@material-ui/core/styles";
import {
SimpleForm,
TextInput,
Edit,
ReferenceInput,
SelectInput,
DateInput,
Toolbar,
DeleteButton,
EditProps,
} from "react-admin";
import { useSession } from "next-auth/react";
const useStyles = makeStyles((_theme) => ({
defaultToolbar: {
flex: 1,
display: "flex",
justifyContent: "space-between",
},
}));
type AccountEditToolbarProps = {
record?: any;
};
const AccountEditToolbar: FC<AccountEditToolbarProps> = (props) => {
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 = "";
if (record) title = record.name ? record.name : record.email;
return <span>Account {title}</span>;
};
export const AccountEdit = (props: EditProps) => (
<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>
);
export default AccountEdit;