diff --git a/admin-ui/src/App.tsx b/admin-ui/src/App.tsx index b35ccf1e..c1ca130c 100644 --- a/admin-ui/src/App.tsx +++ b/admin-ui/src/App.tsx @@ -23,11 +23,14 @@ import { NutritionEdit } from "./Nutrition/NutritionEdit"; import { NutritionList } from "./Nutrition/NutritionList"; import { PersonEdit } from "./People/PersonEdit"; import { PersonList } from "./People/PersonList"; -import { Register } from "./People/Register"; +import { Register as PeopleRegister } from "./People/Register"; import { ResetPassword } from "./People/ResetPassword"; import { ProductCreate } from "./Products/ProductCreate"; import { ProductEdit } from "./Products/ProductEdit"; import { ProductList } from "./Products/ProductList"; +import { SocialLoginList } from "./SocialLogin/SocialLoginList"; +import { Register as SocialLoginRegister } from "./SocialLogin/Register"; +import { SocialLoginEdit } from "./SocialLogin/SocialLoginEdit"; function App() { const auth = useAuth(); @@ -46,6 +49,7 @@ function App() { Person: { excludeFields: ["id"] }, Ingredient: { excludeFields: ["id"] }, Match: { excludeFields: ["id"] }, + SocialLoginUser: { excludeFields: ["id"] } }, }) .then((resolvedValue) => setDataProvider(resolvedValue)) @@ -111,7 +115,7 @@ function App() { /> - } /> + } /> } @@ -119,6 +123,21 @@ function App() { )} + + {auth.currentPerson?.role === "app_admin" && ( + <> + + + + } /> + + + )} ) : ( "loading..." diff --git a/admin-ui/src/People/PersonList.tsx b/admin-ui/src/People/PersonList.tsx index 693e1b31..0df550cf 100644 --- a/admin-ui/src/People/PersonList.tsx +++ b/admin-ui/src/People/PersonList.tsx @@ -12,32 +12,14 @@ import { useRecordContext, } from "react-admin"; import { useNavigate } from "react-router-dom"; +import UserRole from "../components/UserRole"; + type Person = { role: string; rowId: string; }; -const UserRole = (props: FieldProps) => { - const record = useRecordContext(); - - const roles: { [key: string]: string | undefined } = { - APP_ADMIN: "Admin", - APP_MEAL_DESIGNER: "Meal Designer", - APP_USER: "Client", - }; - - if (!record) { - return loading person; - } - const userRole = roles[record.role] || "Anonymous"; - console.log(record.role); - { - console.log("userRole", userRole); - } - return {userRole}; -}; - const ResetPassword = (props: FieldProps) => { const navigate = useNavigate(); const record = useRecordContext(); @@ -69,6 +51,7 @@ const PersonActions = () => { ); }; + export const PersonList = (props: ListProps) => { return ( diff --git a/admin-ui/src/SocialLogin/Register.tsx b/admin-ui/src/SocialLogin/Register.tsx new file mode 100644 index 00000000..924b6dad --- /dev/null +++ b/admin-ui/src/SocialLogin/Register.tsx @@ -0,0 +1,77 @@ +import { useApolloClient } from "@apollo/client"; +import { + Button, + FormControl, + Grid, + InputLabel, + MenuItem, + Select, + TextField +} from "@mui/material"; +import { useState } from "react"; +import { useNavigate } from "react-router-dom"; +import { registerSocialLoginUser } from "./service"; + + +export const Register = () => { + const [fullName, setFullName] = useState(""); + const [email, setEmail] = useState(""); + const [loginMode, setLoginMode] = useState(""); + const client = useApolloClient(); + const navigate = useNavigate(); + const isValid = fullName && email && loginMode; + + + return ( + + + { + setFullName(e.target.value); + }} + /> + + { + setEmail(e.target.value); + }} + /> + + + Login Mode + + + + + + + ); +}; \ No newline at end of file diff --git a/admin-ui/src/SocialLogin/SocialLoginEdit.tsx b/admin-ui/src/SocialLogin/SocialLoginEdit.tsx new file mode 100644 index 00000000..1d17b90d --- /dev/null +++ b/admin-ui/src/SocialLogin/SocialLoginEdit.tsx @@ -0,0 +1,46 @@ +import { + Edit, + EditProps, + SelectInput, + SimpleForm, + TextInput +} from "react-admin"; + + +export const SocialLoginEdit = (props: EditProps) => { + return ( + + + + + + + + + + ); +}; \ No newline at end of file diff --git a/admin-ui/src/SocialLogin/SocialLoginList.tsx b/admin-ui/src/SocialLogin/SocialLoginList.tsx new file mode 100644 index 00000000..7f17bf23 --- /dev/null +++ b/admin-ui/src/SocialLogin/SocialLoginList.tsx @@ -0,0 +1,83 @@ +import React from "react"; +import { + List, + Datagrid, + ListProps, + FieldProps, + TextField, + useRecordContext, + EditButton, + ExportButton, + TopToolbar, + Button +} from "react-admin"; +import { useNavigate } from "react-router-dom"; +import UserRole from "../components/UserRole"; + + +const SocialLoginActions = () => { + const navigate = useNavigate(); + return ( + +