This commit is contained in:
Darren Clarke 2023-08-25 07:11:33 +00:00
parent 8f165d15d2
commit c620e4bf25
264 changed files with 9983 additions and 2280 deletions

View file

@ -0,0 +1,63 @@
"use client";
import { FC } from "react";
// import { makeStyles } from "@mui/styles";
import {
SimpleForm,
TextInput,
Edit,
ReferenceInput,
SelectInput,
DateInput,
Toolbar,
DeleteButton,
EditProps,
} from "react-admin";
import { useSession } from "next-auth/react";
/*
const useStyles = makeStyles((_theme: any) => ({
defaultToolbar: {
flex: 1,
display: "flex",
justifyContent: "space-between",
},
}));
*/
type AccountEditToolbarProps = {
record?: any;
};
const AccountEditToolbar: FC<AccountEditToolbarProps> = (props) => {
const { data: session } = useSession();
const classes: any = {}; // 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.email;
return <span>Account {title}</span>;
};
export const AccountEdit: FC<EditProps> = (props) => (
<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;

View file

@ -0,0 +1,46 @@
"use client";
import { FC } from "react";
import {
List,
Datagrid,
DateField,
TextField,
ReferenceField,
DeleteButton,
ListProps,
} from "react-admin";
import { useSession } from "next-auth/react";
type DeleteNotSelfButtonProps = {
record?: any;
};
const DeleteNotSelfButton: FC<DeleteNotSelfButtonProps> = (props) => {
const { data: session } = useSession();
return (
// @ts-ignore
<DeleteButton
disabled={session?.user?.email === props.record.userId}
{...props}
/>
);
};
export const AccountList: FC<ListProps> = (props) => (
<List {...props} exporter={false}>
<Datagrid rowClick="edit">
<ReferenceField source="userId" reference="users">
<TextField source="email" />
</ReferenceField>
<TextField source="providerType" />
<TextField source="providerId" />
<TextField source="providerAccountId" />
<DateField source="createdAt" />
<DateField source="updatedAt" />
<DeleteNotSelfButton />
</Datagrid>
</List>
);
export default AccountList;

View file

@ -0,0 +1,13 @@
"use client";
/* eslint-disable import/no-named-as-default */
/* eslint-disable import/no-anonymous-default-export */
import AccountIcon from "@mui/icons-material/AccountTree";
import AccountList from "./AccountList";
import AccountEdit from "./AccountEdit";
export default {
list: AccountList,
edit: AccountEdit,
icon: AccountIcon,
};