Chore: Remove Form usage in NewFolderForm components (#83028)
* Chore: Remove Form usage from NewFolderForm * Chore: Remove Form usage from NewFolderForm * Chore: Remove Form usage from NewFolderForm * Replace HorizontalGroup with Stack * add Default Values and launch prettier
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import { useForm } from 'react-hook-form';
|
||||||
|
|
||||||
import { selectors } from '@grafana/e2e-selectors';
|
import { selectors } from '@grafana/e2e-selectors';
|
||||||
import { Button, Input, Form, Field, HorizontalGroup } from '@grafana/ui';
|
import { Button, Input, Field, Stack } from '@grafana/ui';
|
||||||
import { Trans, t } from 'app/core/internationalization';
|
import { Trans, t } from 'app/core/internationalization';
|
||||||
|
|
||||||
import { validationSrv } from '../../manage-dashboards/services/ValidationSrv';
|
import { validationSrv } from '../../manage-dashboards/services/ValidationSrv';
|
||||||
@@ -18,6 +19,12 @@ interface FormModel {
|
|||||||
const initialFormModel: FormModel = { folderName: '' };
|
const initialFormModel: FormModel = { folderName: '' };
|
||||||
|
|
||||||
export function NewFolderForm({ onCancel, onConfirm }: Props) {
|
export function NewFolderForm({ onCancel, onConfirm }: Props) {
|
||||||
|
const {
|
||||||
|
handleSubmit,
|
||||||
|
register,
|
||||||
|
formState: { errors },
|
||||||
|
} = useForm<FormModel>({ defaultValues: initialFormModel });
|
||||||
|
|
||||||
const translatedFolderNameRequiredPhrase = t(
|
const translatedFolderNameRequiredPhrase = t(
|
||||||
'browse-dashboards.action.new-folder-name-required-phrase',
|
'browse-dashboards.action.new-folder-name-required-phrase',
|
||||||
'Folder name is required.'
|
'Folder name is required.'
|
||||||
@@ -38,37 +45,34 @@ export function NewFolderForm({ onCancel, onConfirm }: Props) {
|
|||||||
const fieldNameLabel = t('browse-dashboards.new-folder-form.name-label', 'Folder name');
|
const fieldNameLabel = t('browse-dashboards.new-folder-form.name-label', 'Folder name');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form
|
<form
|
||||||
defaultValues={initialFormModel}
|
name="addFolder"
|
||||||
onSubmit={(form: FormModel) => onConfirm(form.folderName)}
|
onSubmit={handleSubmit((form) => onConfirm(form.folderName))}
|
||||||
data-testid={selectors.pages.BrowseDashboards.NewFolderForm.form}
|
data-testid={selectors.pages.BrowseDashboards.NewFolderForm.form}
|
||||||
>
|
>
|
||||||
{({ register, errors }) => (
|
<Field
|
||||||
<>
|
label={fieldNameLabel}
|
||||||
<Field
|
invalid={!!errors.folderName}
|
||||||
label={fieldNameLabel}
|
error={errors.folderName && errors.folderName.message}
|
||||||
invalid={!!errors.folderName}
|
>
|
||||||
error={errors.folderName && errors.folderName.message}
|
<Input
|
||||||
>
|
data-testid={selectors.pages.BrowseDashboards.NewFolderForm.nameInput}
|
||||||
<Input
|
id="folder-name-input"
|
||||||
data-testid={selectors.pages.BrowseDashboards.NewFolderForm.nameInput}
|
defaultValue={initialFormModel.folderName}
|
||||||
id="folder-name-input"
|
{...register('folderName', {
|
||||||
{...register('folderName', {
|
required: translatedFolderNameRequiredPhrase,
|
||||||
required: translatedFolderNameRequiredPhrase,
|
validate: async (v) => await validateFolderName(v),
|
||||||
validate: async (v) => await validateFolderName(v),
|
})}
|
||||||
})}
|
/>
|
||||||
/>
|
</Field>
|
||||||
</Field>
|
<Stack>
|
||||||
<HorizontalGroup>
|
<Button variant="secondary" fill="outline" onClick={onCancel}>
|
||||||
<Button variant="secondary" fill="outline" onClick={onCancel}>
|
<Trans i18nKey="browse-dashboards.new-folder-form.cancel-label">Cancel</Trans>
|
||||||
<Trans i18nKey="browse-dashboards.new-folder-form.cancel-label">Cancel</Trans>
|
</Button>
|
||||||
</Button>
|
<Button type="submit">
|
||||||
<Button type="submit">
|
<Trans i18nKey="browse-dashboards.new-folder-form.create-label">Create</Trans>
|
||||||
<Trans i18nKey="browse-dashboards.new-folder-form.create-label">Create</Trans>
|
</Button>
|
||||||
</Button>
|
</Stack>
|
||||||
</HorizontalGroup>
|
</form>
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</Form>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user