import externalLinks from '@/constants/external-links'; import { InfoCircleOutlined, LockOutlined, UserOutlined } from '@ant-design/icons'; import { HighlightCode, IconFont } from '@gpustack/core-ui'; import { useIntl } from '@umijs/max'; import { Button, Divider, Flex, Form, FormInstance, Input } from 'antd'; import { createStyles } from 'antd-style'; const useStyles = createStyles(({ token, css }) => { return { commandInfo: css` .content { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 12px; .icon { padding-top: 2px; color: ${token.colorInfo}; font-size: 16px; } .info { line-height: 1.5; color: ${token.colorTextSecondary}; font-size: 14px; } } `, passwordWrapper: css` position: relative; .forgot-password { position: absolute; right: 0; top: 74px; } ` }; }); interface LocalUserFormProps { handleLogin: (values: any) => void; form: FormInstance; loading?: boolean; loginOption: { saml: boolean; oidc: boolean; first_time_setup: boolean; get_initial_password_command: string; }; } const LocalUserForm: React.FC = (props) => { const { handleLogin, form, loginOption } = props; const intl = useIntl(); const { styles } = useStyles(); const renderCommandInfo = () => { if (!loginOption?.first_time_setup) { return null; } return (
{intl.formatMessage({ id: 'users.login.getInitialPassword' })}
); }; return (
} style={{ height: 44 }} placeholder={intl.formatMessage({ id: 'common.login.username.holder' })} />
{intl.formatMessage({ id: 'common.form.password' })} } rules={[ { required: true, message: intl.formatMessage( { id: 'common.form.rule.input' }, { name: intl.formatMessage({ id: 'common.form.password' }) } ) } ]} > } style={{ height: 44 }} placeholder={intl.formatMessage({ id: 'common.login.password.holder' })} />
{renderCommandInfo()}
); }; export default LocalUserForm;