import React from 'react'; import { ClusterName, NewSchemaSubjectRaw } from 'redux/interfaces'; import { useForm } from 'react-hook-form'; import { ErrorMessage } from '@hookform/error-message'; import Breadcrumb from 'components/common/Breadcrumb/Breadcrumb'; import { clusterSchemaPath, clusterSchemasPath } from 'lib/paths'; import { NewSchemaSubject, SchemaType } from 'generated-sources'; import { SCHEMA_NAME_VALIDATION_PATTERN } from 'lib/constants'; import { useHistory, useParams } from 'react-router'; export interface NewProps { createSchema: ( clusterName: ClusterName, newSchemaSubject: NewSchemaSubject ) => Promise; } const New: React.FC = ({ createSchema }) => { const { clusterName } = useParams<{ clusterName: string }>(); const history = useHistory(); const { register, errors, handleSubmit, formState: { isDirty, isSubmitting }, } = useForm(); const onSubmit = React.useCallback( async ({ subject, schema, schemaType }: NewSchemaSubjectRaw) => { try { await createSchema(clusterName, { subject, schema, schemaType, }); history.push(clusterSchemaPath(clusterName, subject)); } catch (e) { // Show Error } }, [clusterName] ); return (
New Schema