/* * cloudbeaver - Cloud Database Manager * Copyright (C) 2020 DBeaver Corp and others * * Licensed under the Apache License, Version 2.0. * you may not use this file except in compliance with the License. */ import { observer } from 'mobx-react'; import { useCallback, useEffect } from 'react'; import styled, { css } from 'reshadow'; import { SubmittingForm, InputGroup, InputField, useFocus, Switch, Button } from '@cloudbeaver/core-blocks'; import { IExecutor } from '@cloudbeaver/core-executor'; import { useTranslate } from '@cloudbeaver/core-localization'; import { ServerConfigInput } from '@cloudbeaver/core-sdk'; import { useStyles } from '@cloudbeaver/core-theming'; export const formStyles = css` SubmittingForm { flex: 1; display: flex; overflow: auto; flex-direction: row; } group { box-sizing: border-box; display: flex; } Button { margin: 12px; margin-left: 24px; float: right; } `; const boxStyles = css` box { flex: 1; display: flex; flex-wrap: wrap; } box-element { width: 450px; } `; interface Props { serverConfig: ServerConfigInput; validationTask?: IExecutor; editing?: boolean; onChange: () => void; onSubmit: () => void; } export const ServerConfigurationForm = observer(function ServerConfigurationForm({ serverConfig, validationTask, editing, onChange, onSubmit, }: Props) { const translate = useTranslate(); const [focusedRef] = useFocus({ focusFirstChild: true }); const validate = useCallback(() => { focusedRef.current?.checkValidity(); focusedRef.current?.reportValidity(); }, []); useEffect(() => { if (!validationTask) { return; } validationTask.addHandler(validate); return () => validationTask.removeHandler(validate); }, [validationTask]); return styled(useStyles(formStyles, boxStyles))( {translate('administration_configuration_wizard_configuration_server_info')} {translate('administration_configuration_wizard_configuration_server_name')} {editing ? : ( <> {translate('administration_configuration_wizard_configuration_admin')} {translate('administration_configuration_wizard_configuration_admin_name')} {translate('administration_configuration_wizard_configuration_admin_password')} )} {translate('administration_configuration_wizard_configuration_plugins')} {translate('administration_configuration_wizard_configuration_anonymous_access')} {translate('administration_configuration_wizard_configuration_authentication')} {translate('administration_configuration_wizard_configuration_custom_connections')} ); });