/** ****************************************************************************** * Copyright (c) 2025 Precies. Software OU and others * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at * http://www.eclipse.org/legal/epl-2.0. * * SPDX-License-Identifier: EPL-2.0 * ****************************************************************************** */ import { FunctionComponent, ReactNode, useState } from "react"; import { Button, Dialog, DialogContent, DialogTitle, Stack } from "@mui/material"; export const LoginComponent: FunctionComponent = (props) => { const [dialogOpen, setDialogOpen] = useState(false); const showLoginDialog = () => setDialogOpen(true); const providers = Object.keys(props.loginProviders); if (providers.length === 1) { return props.renderButton(props.loginProviders[providers[0]]); } else { return <> {props.renderButton(undefined, showLoginDialog)} setDialogOpen(false)} > Log In {providers.map((provider) => ())} ; } }; export interface LoginComponentProps { loginProviders: Record renderButton: (href?: string, onClick?: () => void) => ReactNode }