mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 16:15:42 -06:00
* delete / delete folder / create folder * add backend tests * implement force delete * fix merge * lint fix * fix delete root folder * fix folder name validation * fix mysql path_hash issue * Fix returning error
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import React from 'react';
|
|
import { SubmitHandler, Validate } from 'react-hook-form';
|
|
|
|
import { Button, Field, Form, Input, Modal } from '@grafana/ui';
|
|
|
|
type FormModel = { folderName: string };
|
|
|
|
interface Props {
|
|
onSubmit: SubmitHandler<FormModel>;
|
|
onDismiss: () => void;
|
|
validate: Validate<string>;
|
|
}
|
|
|
|
const initialFormModel = { folderName: '' };
|
|
|
|
export function CreateNewFolderModal({ validate, onDismiss, onSubmit }: Props) {
|
|
return (
|
|
<Modal onDismiss={onDismiss} isOpen={true} title="New Folder">
|
|
<Form defaultValues={initialFormModel} onSubmit={onSubmit} maxWidth={'none'}>
|
|
{({ register, errors }) => (
|
|
<>
|
|
<Field
|
|
label="Folder name"
|
|
invalid={!!errors.folderName}
|
|
error={errors.folderName && errors.folderName.message}
|
|
>
|
|
<Input
|
|
id="folder-name-input"
|
|
{...register('folderName', {
|
|
required: 'Folder name is required.',
|
|
validate: { validate },
|
|
})}
|
|
/>
|
|
</Field>
|
|
|
|
<Modal.ButtonRow>
|
|
<Button type="submit">Create</Button>
|
|
</Modal.ButtonRow>
|
|
</>
|
|
)}
|
|
</Form>
|
|
</Modal>
|
|
);
|
|
}
|