import React, { useCallback } from 'react'; import styled from 'styled-components'; import { useTranslation } from 'react-i18next'; import { TextField, Button } from '@material-ui/core'; import { SupportedStorageServices } from '@services/types'; import { useUserInfoObservable } from '@services/auth/hooks'; import { ServiceEmailTypes, ServiceTokenTypes, ServiceUserNameTypes } from '@services/auth/interface'; import { useAuth } from './gitTokenHooks'; const AuthingLoginButton = styled(Button)` width: 100%; `; const GitTokenInput = styled(TextField)``; GitTokenInput.defaultProps = { fullWidth: true, variant: 'standard', }; export function GitTokenForm(props: { children?: JSX.Element | Array; storageService: SupportedStorageServices; }): JSX.Element { const { children, storageService } = props; const { t } = useTranslation(); const [onClickLogin] = useAuth(storageService); const userInfo = useUserInfoObservable(); if (userInfo === undefined) { return
Loading...
; } return ( <> {t('AddWorkspace.LogoutToGetStorageServiceToken')} { void window.service.auth.set(`${storageService}-token` as ServiceTokenTypes, event.target.value); }} value={userInfo[`${storageService}-token` as ServiceTokenTypes] ?? ''} /> { void window.service.auth.set(`${storageService}-userName` as ServiceUserNameTypes, event.target.value); }} value={userInfo[`${storageService}-userName` as ServiceUserNameTypes] ?? ''} /> { void window.service.auth.set(`${storageService}-email` as ServiceEmailTypes, event.target.value); }} value={userInfo[`${storageService}-email` as ServiceEmailTypes] ?? ''} /> {children} ); }