diff --git a/.github/workflows/scip-typescript.yml b/.github/workflows/scip-typescript.yml index b98574ed2f0e..c44ba0bdd28d 100644 --- a/.github/workflows/scip-typescript.yml +++ b/.github/workflows/scip-typescript.yml @@ -33,7 +33,7 @@ jobs: run: pnpm install --frozen-lockfile - run: pnpm generate - run: pnpm --filter ./client/web-sveltekit run sync - - run: pnpm dlx @sourcegraph/scip-typescript index --pnpm-workspaces + - run: pnpm dlx @sourcegraph/scip-typescript index --pnpm-workspaces --no-global-caches - run: cp index.scip dump.lsif-typed - name: Install src-cli run: | diff --git a/client/web/src/enterprise/insights/components/creation-ui/code-insight-time-step-picker/CodeInsightTimeStepPicker.tsx b/client/web/src/enterprise/insights/components/creation-ui/code-insight-time-step-picker/CodeInsightTimeStepPicker.tsx index 83dc475604ca..8e6d33f88834 100644 --- a/client/web/src/enterprise/insights/components/creation-ui/code-insight-time-step-picker/CodeInsightTimeStepPicker.tsx +++ b/client/web/src/enterprise/insights/components/creation-ui/code-insight-time-step-picker/CodeInsightTimeStepPicker.tsx @@ -2,10 +2,9 @@ import { ChangeEvent, FocusEventHandler, forwardRef } from 'react' import classNames from 'classnames' -import { getInputStatus, Input } from '@sourcegraph/wildcard' +import { getInputStatus, Input, FormGroup } from '@sourcegraph/wildcard' import { InsightStep } from '../../../pages/insights/creation/search-insight' -import { FormGroup } from '../../form/form-group/FormGroup' import { FormRadioInput } from '../../form/form-radio-input/FormRadioInput' import { getDescriptionText } from './get-interval-descrtiption-text/get-interval-description-text' diff --git a/client/web/src/enterprise/insights/components/creation-ui/form-series/FormSeries.tsx b/client/web/src/enterprise/insights/components/creation-ui/form-series/FormSeries.tsx index b48c19df9837..8f0bf72eb087 100644 --- a/client/web/src/enterprise/insights/components/creation-ui/form-series/FormSeries.tsx +++ b/client/web/src/enterprise/insights/components/creation-ui/form-series/FormSeries.tsx @@ -2,10 +2,10 @@ import { FC, ReactNode } from 'react' import classNames from 'classnames' -import { Button } from '@sourcegraph/wildcard' +import { Button, useFieldAPI } from '@sourcegraph/wildcard' import { useUiFeatures } from '../../../hooks' -import { LimitedAccessLabel, useFieldAPI } from '../../index' +import { LimitedAccessLabel } from '../../index' import { FormSeriesInput } from './components/form-series-input/FormSeriesInput' import { SeriesCard } from './components/series-card/SeriesCard' diff --git a/client/web/src/enterprise/insights/components/creation-ui/form-series/components/form-series-input/FormSeriesInput.tsx b/client/web/src/enterprise/insights/components/creation-ui/form-series/components/form-series-input/FormSeriesInput.tsx index 744cf8741d7f..0bdafbc66e5b 100644 --- a/client/web/src/enterprise/insights/components/creation-ui/form-series/components/form-series-input/FormSeriesInput.tsx +++ b/client/web/src/enterprise/insights/components/creation-ui/form-series/components/form-series-input/FormSeriesInput.tsx @@ -3,10 +3,10 @@ import { FC, ReactNode } from 'react' import classNames from 'classnames' import { noop } from 'rxjs' -import { Button, Card, Input, Code } from '@sourcegraph/wildcard' +import { Button, Card, Input, Code, useForm, useField, getDefaultInputProps } from '@sourcegraph/wildcard' import { DEFAULT_DATA_SERIES_COLOR } from '../../../../../constants' -import { getDefaultInputProps, useField, InsightQueryInput, useForm } from '../../../../form' +import { InsightQueryInput } from '../../../../form' import { EditableDataSeries } from '../../types' import { FormColorInput } from '../form-color-input/FormColorInput' diff --git a/client/web/src/enterprise/insights/components/creation-ui/form-series/components/form-series-input/validators.ts b/client/web/src/enterprise/insights/components/creation-ui/form-series/components/form-series-input/validators.ts index fc440657e44b..1f4265af3d34 100644 --- a/client/web/src/enterprise/insights/components/creation-ui/form-series/components/form-series-input/validators.ts +++ b/client/web/src/enterprise/insights/components/creation-ui/form-series/components/form-series-input/validators.ts @@ -1,6 +1,6 @@ +import { createRequiredValidator, composeValidators, ValidationResult } from '@sourcegraph/wildcard' + import { searchQueryValidator } from '../../../../../pages/insights/creation/capture-group/utils/search-query-validator' -import { ValidationResult } from '../../../../form' -import { createRequiredValidator, composeValidators } from '../../../../form/hooks/validators' export const SERIES_NAME_VALIDATORS = createRequiredValidator('Name is a required field for data series.') diff --git a/client/web/src/enterprise/insights/components/creation-ui/form-series/use-editable-series.ts b/client/web/src/enterprise/insights/components/creation-ui/form-series/use-editable-series.ts index 93d8f12671e3..07e3e32ec186 100644 --- a/client/web/src/enterprise/insights/components/creation-ui/form-series/use-editable-series.ts +++ b/client/web/src/enterprise/insights/components/creation-ui/form-series/use-editable-series.ts @@ -2,8 +2,9 @@ import { useState } from 'react' import * as uuid from 'uuid' +import { useFieldAPI } from '@sourcegraph/wildcard' + import { DEFAULT_DATA_SERIES_COLOR } from '../../../constants' -import { useFieldAPI } from '../../form' import { EditableDataSeries } from './types' diff --git a/client/web/src/enterprise/insights/components/creation-ui/insight-repo-section/InsightRepoSection.tsx b/client/web/src/enterprise/insights/components/creation-ui/insight-repo-section/InsightRepoSection.tsx index 1cfa75b75df0..841efb093824 100644 --- a/client/web/src/enterprise/insights/components/creation-ui/insight-repo-section/InsightRepoSection.tsx +++ b/client/web/src/enterprise/insights/components/creation-ui/insight-repo-section/InsightRepoSection.tsx @@ -17,21 +17,17 @@ import { InputStatus, useDebounce, Link, + FormGroup, + useFieldAPI, + getDefaultInputProps, + getDefaultInputStatus, + getDefaultInputError, } from '@sourcegraph/wildcard' import { InsightRepositoriesCountResult, InsightRepositoriesCountVariables } from '../../../../../graphql-operations' import { useExperimentalFeatures } from '../../../../../stores' import { CreateInsightFormFields } from '../../../pages/insights/creation/search-insight' -import { - FormGroup, - getDefaultInputProps, - getDefaultInputStatus, - getDefaultInputError, - getRepoQueryPreview, - RepositoriesField, - useFieldAPI, - MonacoField, -} from '../../form' +import { getRepoQueryPreview, RepositoriesField, MonacoField } from '../../form' import { MonacoPreviewLink } from '../../form/monaco-field' import styles from './InsightRepoSection.module.scss' diff --git a/client/web/src/enterprise/insights/components/creation-ui/insight-repo-section/use-repo-fields.ts b/client/web/src/enterprise/insights/components/creation-ui/insight-repo-section/use-repo-fields.ts index 816022cd2da9..ecf908c0ba92 100644 --- a/client/web/src/enterprise/insights/components/creation-ui/insight-repo-section/use-repo-fields.ts +++ b/client/web/src/enterprise/insights/components/creation-ui/insight-repo-section/use-repo-fields.ts @@ -3,12 +3,11 @@ import { useMemo } from 'react' import { ApolloClient, gql, useApolloClient } from '@apollo/client' import { QueryState } from '@sourcegraph/shared/src/search' +import { FormAPI, AsyncValidator, useField, useFieldAPI, ValidationResult } from '@sourcegraph/wildcard' import { ValidateInsightRepoQueryResult, ValidateInsightRepoQueryVariables } from '../../../../../graphql-operations' import { useExperimentalFeatures } from '../../../../../stores' import { RepoMode } from '../../../pages/insights/creation/search-insight/types' -import { AsyncValidator, useField, useFieldAPI, ValidationResult } from '../../form' -import { FormAPI } from '../../form/hooks/useForm' import { insightRepositoriesValidator } from '../validators/validators' interface RepositoriesFields { diff --git a/client/web/src/enterprise/insights/components/creation-ui/validators/validators.ts b/client/web/src/enterprise/insights/components/creation-ui/validators/validators.ts index ce38b59b2e27..ff8fe3fd6f85 100644 --- a/client/web/src/enterprise/insights/components/creation-ui/validators/validators.ts +++ b/client/web/src/enterprise/insights/components/creation-ui/validators/validators.ts @@ -1,5 +1,5 @@ -import { Validator } from '../../form' -import { createRequiredValidator } from '../../form/hooks/validators' +import { Validator, createRequiredValidator } from '@sourcegraph/wildcard' + import { EditableDataSeries } from '../form-series' // Group of shared Creation UI/Edit UI insight validators. diff --git a/client/web/src/enterprise/insights/components/form/index.ts b/client/web/src/enterprise/insights/components/form/index.ts index eba4d00861ff..2bd86f1f7d7b 100644 --- a/client/web/src/enterprise/insights/components/form/index.ts +++ b/client/web/src/enterprise/insights/components/form/index.ts @@ -1,5 +1,4 @@ // helpers for form-field's setup -export { getDefaultInputProps, getDefaultInputError, getDefaultInputStatus } from './getDefaultInputProps' export { getRepoQueryPreview } from './query-input/utils/generate-repo-filters-query' // form components @@ -7,7 +6,4 @@ export { RepositoryField } from './repositories-field/RepositoryField' export { RepositoriesField } from './repositories-field/RepositoriesField' export { InsightQueryInput } from './query-input/InsightQueryInput' export { FormRadioInput } from './form-radio-input/FormRadioInput' -export { FormGroup } from './form-group/FormGroup' export { MonacoField } from './monaco-field' - -export * from './hooks' diff --git a/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/DrillDownInsightCreationForm.tsx b/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/DrillDownInsightCreationForm.tsx index e504747b6213..c881d1b35a0b 100644 --- a/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/DrillDownInsightCreationForm.tsx +++ b/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/DrillDownInsightCreationForm.tsx @@ -1,10 +1,19 @@ import { FunctionComponent } from 'react' -import { Button, Input, H3, ErrorAlert } from '@sourcegraph/wildcard' +import { + Button, + Input, + H3, + ErrorAlert, + useForm, + useField, + FORM_ERROR, + getDefaultInputProps, + createRequiredValidator, + SubmissionResult, +} from '@sourcegraph/wildcard' import { LoaderButton } from '../../../../../../../../components/LoaderButton' -import { getDefaultInputProps, useField, createRequiredValidator } from '../../../../../form' -import { FORM_ERROR, SubmissionResult, useForm } from '../../../../../form/hooks/useForm' export interface DrillDownInsightCreationFormValues { insightName: string diff --git a/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/drill-down-filters/DrillDownInsightFilters.tsx b/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/drill-down-filters/DrillDownInsightFilters.tsx index 2f6bf7a5305c..1f7fde086e7f 100644 --- a/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/drill-down-filters/DrillDownInsightFilters.tsx +++ b/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/drill-down-filters/DrillDownInsightFilters.tsx @@ -6,11 +6,20 @@ import classNames from 'classnames' import { isEqual, noop } from 'lodash' import { SeriesSortDirection, SeriesSortMode } from '@sourcegraph/shared/src/graphql-operations' -import { Button, Icon, Link, H4, ErrorAlert } from '@sourcegraph/wildcard' +import { + Button, + Icon, + Link, + H4, + ErrorAlert, + useField, + FormChangeEvent, + SubmissionResult, + useForm, + FORM_ERROR, +} from '@sourcegraph/wildcard' import { LoaderButton } from '../../../../../../../../../components/LoaderButton' -import { useField } from '../../../../../../form' -import { FormChangeEvent, SubmissionResult, useForm, FORM_ERROR } from '../../../../../../form/hooks/useForm' import { SortFilterSeriesPanel } from '../../sort-filter-series-panel/SortFilterSeriesPanel' import { DrillDownInput, LabelWithReset } from '../drill-down-input/DrillDownInput' import { FilterCollapseSection, FilterPreviewPill } from '../filter-collapse-section/FilterCollapseSection' diff --git a/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/drill-down-filters/validators.ts b/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/drill-down-filters/validators.ts index cc971ae014d8..ff66de7c92e3 100644 --- a/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/drill-down-filters/validators.ts +++ b/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-panel/drill-down-filters/validators.ts @@ -1,9 +1,8 @@ import { ApolloClient, gql } from '@apollo/client' -import { InputStatus } from '@sourcegraph/wildcard' +import { InputStatus, useFieldAPI, ValidationResult } from '@sourcegraph/wildcard' import { GetSearchContextByNameResult } from '../../../../../../../../../graphql-operations' -import { useFieldAPI, ValidationResult } from '../../../../../../form' export const REPO_FILTER_VALIDATORS = isValidRegexp diff --git a/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-popover/DrillDownFiltersPopover.tsx b/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-popover/DrillDownFiltersPopover.tsx index c6a9a941c007..518b658b2346 100644 --- a/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-popover/DrillDownFiltersPopover.tsx +++ b/client/web/src/enterprise/insights/components/insights-view-grid/components/backend-insight/components/drill-down-filters-popover/DrillDownFiltersPopover.tsx @@ -12,10 +12,11 @@ import { PopoverTail, Position, createRectangle, + FormChangeEvent, + SubmissionResult, } from '@sourcegraph/wildcard' import { InsightFilters } from '../../../../../../core' -import { FormChangeEvent, SubmissionResult } from '../../../../../form/hooks/useForm' import { DrillDownFiltersFormValues, DrillDownInsightCreationForm, diff --git a/client/web/src/enterprise/insights/pages/dashboards/creation/components/InsightsDashboardCreationContent.tsx b/client/web/src/enterprise/insights/pages/dashboards/creation/components/InsightsDashboardCreationContent.tsx index e3b3e5637d34..bcede31bdba0 100644 --- a/client/web/src/enterprise/insights/pages/dashboards/creation/components/InsightsDashboardCreationContent.tsx +++ b/client/web/src/enterprise/insights/pages/dashboards/creation/components/InsightsDashboardCreationContent.tsx @@ -2,17 +2,20 @@ import React, { ReactNode } from 'react' import classNames from 'classnames' -import { Input, ErrorAlert } from '@sourcegraph/wildcard' - import { + Input, + ErrorAlert, FormGroup, - FormRadioInput, - getDefaultInputProps, + useForm, useField, + getDefaultInputProps, createRequiredValidator, - LimitedAccessLabel, -} from '../../../../components' -import { FORM_ERROR, FormAPI, SubmissionErrors, useForm } from '../../../../components/form/hooks/useForm' + FORM_ERROR, + FormAPI, + SubmissionErrors, +} from '@sourcegraph/wildcard' + +import { FormRadioInput, LimitedAccessLabel } from '../../../../components' import { InsightsDashboardOwner, isGlobalOwner, isOrganizationOwner, isPersonalOwner } from '../../../../core' import { useUiFeatures } from '../../../../hooks' diff --git a/client/web/src/enterprise/insights/pages/dashboards/edit-dashboard/EditDashobardPage.tsx b/client/web/src/enterprise/insights/pages/dashboards/edit-dashboard/EditDashobardPage.tsx index 4b62a82f66ff..787831a71f98 100644 --- a/client/web/src/enterprise/insights/pages/dashboards/edit-dashboard/EditDashobardPage.tsx +++ b/client/web/src/enterprise/insights/pages/dashboards/edit-dashboard/EditDashobardPage.tsx @@ -4,12 +4,20 @@ import classNames from 'classnames' import MapSearchIcon from 'mdi-react/MapSearchIcon' import { useParams, useNavigate } from 'react-router-dom-v5-compat' -import { Button, Container, LoadingSpinner, PageHeader, useObservable, Link } from '@sourcegraph/wildcard' +import { + Button, + Container, + LoadingSpinner, + PageHeader, + useObservable, + Link, + SubmissionErrors, +} from '@sourcegraph/wildcard' import { HeroPage } from '../../../../../components/HeroPage' import { LoaderButton } from '../../../../../components/LoaderButton' import { PageTitle } from '../../../../../components/PageTitle' -import { CodeInsightsIcon, CodeInsightsPage, SubmissionErrors } from '../../../components' +import { CodeInsightsIcon, CodeInsightsPage } from '../../../components' import { CodeInsightsBackendContext, CustomInsightDashboard, diff --git a/client/web/src/enterprise/insights/pages/insights/creation/capture-group/CaptureGroupCreationPage.tsx b/client/web/src/enterprise/insights/pages/insights/creation/capture-group/CaptureGroupCreationPage.tsx index 0612874eaa16..e1dfeb6f8688 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/capture-group/CaptureGroupCreationPage.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/capture-group/CaptureGroupCreationPage.tsx @@ -1,18 +1,11 @@ import { FC, useEffect, useMemo } from 'react' import { TelemetryProps } from '@sourcegraph/shared/src/telemetry/telemetryService' -import { Link, PageHeader, useObservable } from '@sourcegraph/wildcard' +import { Link, PageHeader, useObservable, FORM_ERROR, FormChangeEvent, SubmissionErrors } from '@sourcegraph/wildcard' import { PageTitle } from '../../../../../../components/PageTitle' import { CodeInsightsIcon } from '../../../../../../insights/Icons' -import { - CodeInsightCreationMode, - CodeInsightsCreationActions, - CodeInsightsPage, - FORM_ERROR, - FormChangeEvent, - SubmissionErrors, -} from '../../../../components' +import { CodeInsightCreationMode, CodeInsightsCreationActions, CodeInsightsPage } from '../../../../components' import { MinimalCaptureGroupInsightData } from '../../../../core' import { useUiFeatures } from '../../../../hooks' import { CodeInsightTrackType } from '../../../../pings' diff --git a/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/CaptureGoupCreationForm.tsx b/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/CaptureGoupCreationForm.tsx index f57dd28207e1..4b0f3329e1e6 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/CaptureGoupCreationForm.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/CaptureGoupCreationForm.tsx @@ -2,17 +2,22 @@ import { FC, FormHTMLAttributes, ReactNode } from 'react' import classNames from 'classnames' -import { Card, Input, Label, Link } from '@sourcegraph/wildcard' - import { - CodeInsightTimeStepPicker, - CodeInsightDashboardsVisibility, + Card, + Input, + Label, + Link, FormGroup, getDefaultInputProps, useFieldAPI, - Form, - LimitedAccessLabel, + FormInstance, SubmissionErrors, +} from '@sourcegraph/wildcard' + +import { + CodeInsightTimeStepPicker, + CodeInsightDashboardsVisibility, + LimitedAccessLabel, RepoSettingSection, } from '../../../../../components' import { useUiFeatures } from '../../../../../hooks' @@ -24,7 +29,7 @@ import { CaptureGroupQueryInput } from './query-input/CaptureGroupQueryInput' import { SearchQueryChecks } from './search-query-checks/SearchQueryChecks' interface CaptureGroupCreationFormProps extends Omit, 'title' | 'children'> { - form: Form + form: FormInstance title: useFieldAPI repositories: useFieldAPI repoQuery: useFieldAPI diff --git a/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/CaptureGroupCreationContent.tsx b/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/CaptureGroupCreationContent.tsx index 00d38f274150..91260fed39fb 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/CaptureGroupCreationContent.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/CaptureGroupCreationContent.tsx @@ -2,17 +2,10 @@ import { FC, ReactNode } from 'react' import { noop } from 'lodash' +import { useField, FormChangeEvent, SubmissionErrors, useForm } from '@sourcegraph/wildcard' + import { useExperimentalFeatures } from '../../../../../../../stores' -import { - CreationUiLayout, - CreationUIForm, - CreationUIPreview, - useField, - FormChangeEvent, - SubmissionErrors, - useForm, - useRepoFields, -} from '../../../../../components' +import { CreationUiLayout, CreationUIForm, CreationUIPreview, useRepoFields } from '../../../../../components' import { LineChartLivePreview } from '../../LineChartLivePreview' import { CaptureGroupFormFields } from '../types' diff --git a/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/validators.ts b/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/validators.ts index 68389e937d1c..b81d69a131f0 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/validators.ts +++ b/client/web/src/enterprise/insights/pages/insights/creation/capture-group/components/validators.ts @@ -1,10 +1,6 @@ -import { - insightStepValueValidator, - insightTitleValidator, - composeValidators, - Validator, -} from '../../../../../components' -import { createRequiredValidator } from '../../../../../components/form/hooks' +import { Validator, composeValidators, createRequiredValidator } from '@sourcegraph/wildcard' + +import { insightStepValueValidator, insightTitleValidator } from '../../../../../components' import { Checks, searchQueryValidator } from '../utils/search-query-validator' const validateQueryCheck: Validator = (value: string | undefined) => { diff --git a/client/web/src/enterprise/insights/pages/insights/creation/compute/ComputeInsightCreationPage.tsx b/client/web/src/enterprise/insights/pages/insights/creation/compute/ComputeInsightCreationPage.tsx index 463ce770de14..014e74fce471 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/compute/ComputeInsightCreationPage.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/compute/ComputeInsightCreationPage.tsx @@ -3,17 +3,17 @@ import { FunctionComponent, useCallback, useMemo } from 'react' import BarChartIcon from 'mdi-react/BarChartIcon' import { TelemetryProps } from '@sourcegraph/shared/src/telemetry/telemetryService' -import { PageHeader, useLocalStorage, useObservable } from '@sourcegraph/wildcard' - -import { PageTitle } from '../../../../../../components/PageTitle' import { - CodeInsightCreationMode, - CodeInsightsCreationActions, - CodeInsightsPage, + PageHeader, + useLocalStorage, + useObservable, FORM_ERROR, FormChangeEvent, SubmissionErrors, -} from '../../../../components' +} from '@sourcegraph/wildcard' + +import { PageTitle } from '../../../../../../components/PageTitle' +import { CodeInsightCreationMode, CodeInsightsCreationActions, CodeInsightsPage } from '../../../../components' import { ComputeInsight } from '../../../../core' import { useUiFeatures } from '../../../../hooks' import { CodeInsightTrackType } from '../../../../pings' diff --git a/client/web/src/enterprise/insights/pages/insights/creation/compute/components/ComputeInsightCreationContent.tsx b/client/web/src/enterprise/insights/pages/insights/creation/compute/components/ComputeInsightCreationContent.tsx index 69b2a0e9bb44..e748c29322d9 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/compute/components/ComputeInsightCreationContent.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/compute/components/ComputeInsightCreationContent.tsx @@ -1,24 +1,28 @@ import { FC, HTMLAttributes, ReactNode } from 'react' import { GroupByField } from '@sourcegraph/shared/src/graphql-operations' -import { Code, Input, Label } from '@sourcegraph/wildcard' +import { + Code, + Input, + Label, + useForm, + useField, + FormGroup, + FormChangeEvent, + getDefaultInputProps, + SubmissionErrors, +} from '@sourcegraph/wildcard' import { createDefaultEditSeries, CreationUIForm, CreationUiLayout, CreationUIPreview, - FormChangeEvent, - FormGroup, FormSeries, - getDefaultInputProps, insightRepositoriesValidator, insightSeriesValidator, insightTitleValidator, RepositoriesField, - SubmissionErrors, - useField, - useForm, } from '../../../../../components' import { useUiFeatures } from '../../../../../hooks' import { CreateComputeInsightFormFields } from '../types' diff --git a/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/LangStatsInsightCreationPage.tsx b/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/LangStatsInsightCreationPage.tsx index 49a0160e3940..58b9637d8b37 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/LangStatsInsightCreationPage.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/LangStatsInsightCreationPage.tsx @@ -1,16 +1,11 @@ import { FC, useCallback, useEffect, useMemo } from 'react' import { TelemetryProps } from '@sourcegraph/shared/src/telemetry/telemetryService' -import { useLocalStorage, Link, PageHeader, useObservable } from '@sourcegraph/wildcard' +import { useLocalStorage, Link, PageHeader, useObservable, FORM_ERROR } from '@sourcegraph/wildcard' import { PageTitle } from '../../../../../../components/PageTitle' import { CodeInsightsIcon } from '../../../../../../insights/Icons' -import { - CodeInsightCreationMode, - CodeInsightsCreationActions, - CodeInsightsPage, - FORM_ERROR, -} from '../../../../components' +import { CodeInsightCreationMode, CodeInsightsCreationActions, CodeInsightsPage } from '../../../../components' import { MinimalLangStatsInsightData } from '../../../../core' import { useUiFeatures } from '../../../../hooks' import { CodeInsightTrackType } from '../../../../pings' diff --git a/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/LangStatsInsightCreationContent.tsx b/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/LangStatsInsightCreationContent.tsx index 16b1ff01d44e..d8344d5983c7 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/LangStatsInsightCreationContent.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/LangStatsInsightCreationContent.tsx @@ -2,17 +2,9 @@ import { FC, ReactNode } from 'react' import { noop } from 'rxjs' -import { - CreationUiLayout, - CreationUIForm, - CreationUIPreview, - useField, - FormChangeEvent, - SubmissionErrors, - useForm, - insightTitleValidator, - createRequiredValidator, -} from '../../../../../components' +import { useForm, useField, FormChangeEvent, SubmissionErrors, createRequiredValidator } from '@sourcegraph/wildcard' + +import { CreationUiLayout, CreationUIForm, CreationUIPreview, insightTitleValidator } from '../../../../../components' import { LangStatsCreationFormFields } from '../types' import { diff --git a/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/lang-stats-insight-creation-form/LangStatsInsightCreationForm.tsx b/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/lang-stats-insight-creation-form/LangStatsInsightCreationForm.tsx index bfa10c6cf146..4ae64c79b2f6 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/lang-stats-insight-creation-form/LangStatsInsightCreationForm.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/lang-stats-insight-creation-form/LangStatsInsightCreationForm.tsx @@ -1,14 +1,8 @@ import { FC, FormEventHandler, FormHTMLAttributes, ReactNode } from 'react' -import { Input } from '@sourcegraph/wildcard' +import { Input, useFieldAPI, getDefaultInputProps, SubmissionErrors } from '@sourcegraph/wildcard' -import { - CodeInsightDashboardsVisibility, - getDefaultInputProps, - useFieldAPI, - SubmissionErrors, - RepositoryField, -} from '../../../../../../components' +import { CodeInsightDashboardsVisibility, RepositoryField } from '../../../../../../components' import { LangStatsCreationFormFields } from '../../types' import styles from './LangStatsInsightCreationForm.module.scss' diff --git a/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/validators.ts b/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/validators.ts index b4f4b427fcd5..637f04669e7f 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/validators.ts +++ b/client/web/src/enterprise/insights/pages/insights/creation/lang-stats/components/validators.ts @@ -2,10 +2,9 @@ import { useCallback } from 'react' import { gql, useLazyQuery } from '@apollo/client' -import { renderError } from '@sourcegraph/wildcard' +import { renderError, AsyncValidator, Validator } from '@sourcegraph/wildcard' import { CheckRepositoryExistsResult, CheckRepositoryExistsVariables } from '../../../../../../../graphql-operations' -import { AsyncValidator, Validator } from '../../../../../components' /** * Primarily used in creation and edit insight pages and also on the landing page where diff --git a/client/web/src/enterprise/insights/pages/insights/creation/search-insight/SearchInsightCreationPage.tsx b/client/web/src/enterprise/insights/pages/insights/creation/search-insight/SearchInsightCreationPage.tsx index b8edb0dfe1e7..dca2990a38f2 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/search-insight/SearchInsightCreationPage.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/search-insight/SearchInsightCreationPage.tsx @@ -1,17 +1,11 @@ import { FC, useCallback, useEffect, useMemo } from 'react' import { TelemetryProps } from '@sourcegraph/shared/src/telemetry/telemetryService' -import { Link, PageHeader, useObservable } from '@sourcegraph/wildcard' +import { Link, PageHeader, useObservable, FORM_ERROR, FormChangeEvent } from '@sourcegraph/wildcard' import { PageTitle } from '../../../../../../components/PageTitle' import { CodeInsightsIcon } from '../../../../../../insights/Icons' -import { - FORM_ERROR, - FormChangeEvent, - CodeInsightsPage, - CodeInsightsCreationActions, - CodeInsightCreationMode, -} from '../../../../components' +import { CodeInsightsPage, CodeInsightsCreationActions, CodeInsightCreationMode } from '../../../../components' import { MinimalSearchBasedInsightData } from '../../../../core' import { useUiFeatures } from '../../../../hooks' import { CodeInsightTrackType } from '../../../../pings' diff --git a/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/SearchInsightCreationContent.tsx b/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/SearchInsightCreationContent.tsx index e9264adc7e45..911e283647b8 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/SearchInsightCreationContent.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/SearchInsightCreationContent.tsx @@ -2,12 +2,12 @@ import { FC, ReactNode } from 'react' import { noop } from 'rxjs' +import { FormChangeEvent, SubmissionErrors } from '@sourcegraph/wildcard' + import { CreationUiLayout, CreationUIForm, CreationUIPreview, - FormChangeEvent, - SubmissionErrors, createDefaultEditSeries, EditableDataSeries, getSanitizedSeries, diff --git a/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/SearchInsightCreationForm.tsx b/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/SearchInsightCreationForm.tsx index 2b0e10f3203f..3e1c2ba3c755 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/SearchInsightCreationForm.tsx +++ b/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/SearchInsightCreationForm.tsx @@ -1,15 +1,11 @@ import { FC, FormEventHandler, ReactNode, FormHTMLAttributes } from 'react' -import { Input } from '@sourcegraph/wildcard' +import { Input, FormGroup, getDefaultInputProps, useFieldAPI, SubmissionErrors } from '@sourcegraph/wildcard' import { FormSeries, CodeInsightDashboardsVisibility, CodeInsightTimeStepPicker, - FormGroup, - getDefaultInputProps, - useFieldAPI, - SubmissionErrors, RepoSettingSection, } from '../../../../../components' import { useUiFeatures } from '../../../../../hooks' diff --git a/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/use-insight-creation-form.ts b/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/use-insight-creation-form.ts index 0877f03ba139..8fa843d9fae8 100644 --- a/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/use-insight-creation-form.ts +++ b/client/web/src/enterprise/insights/pages/insights/creation/search-insight/components/use-insight-creation-form.ts @@ -1,18 +1,13 @@ import { QueryState } from '@sourcegraph/shared/src/search' +import { FormInstance, FormChangeEvent, SubmissionErrors, useField, useFieldAPI, useForm } from '@sourcegraph/wildcard' import { useExperimentalFeatures } from '../../../../../../../stores' import { createDefaultEditSeries, EditableDataSeries, - Form, - FormChangeEvent, insightSeriesValidator, insightStepValueValidator, insightTitleValidator, - SubmissionErrors, - useField, - useFieldAPI, - useForm, useRepoFields, } from '../../../../../components' import { CreateInsightFormFields, InsightStep, RepoMode } from '../types' @@ -39,7 +34,7 @@ export interface UseInsightCreationFormProps { } export interface InsightCreationForm { - form: Form + form: FormInstance title: useFieldAPI repositories: useFieldAPI repoQuery: useFieldAPI diff --git a/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditCaptureGroupInsight.tsx b/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditCaptureGroupInsight.tsx index 00e11f1afa4f..cbfebcb2dcf2 100644 --- a/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditCaptureGroupInsight.tsx +++ b/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditCaptureGroupInsight.tsx @@ -1,11 +1,8 @@ import { useMemo, FC } from 'react' -import { - CodeInsightCreationMode, - CodeInsightsCreationActions, - FORM_ERROR, - SubmissionErrors, -} from '../../../../components' +import { FORM_ERROR, SubmissionErrors } from '@sourcegraph/wildcard' + +import { CodeInsightCreationMode, CodeInsightsCreationActions } from '../../../../components' import { MinimalCaptureGroupInsightData, CaptureGroupInsight } from '../../../../core' import { CaptureGroupFormFields } from '../../creation/capture-group' import { CaptureGroupCreationContent } from '../../creation/capture-group/components/CaptureGroupCreationContent' diff --git a/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditComputeInsight.tsx b/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditComputeInsight.tsx index 2fdbd9b79e63..9a4c4d74cd9a 100644 --- a/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditComputeInsight.tsx +++ b/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditComputeInsight.tsx @@ -1,12 +1,8 @@ import { FC, useMemo } from 'react' -import { - CodeInsightCreationMode, - CodeInsightsCreationActions, - createDefaultEditSeries, - FORM_ERROR, - SubmissionErrors, -} from '../../../../components' +import { FORM_ERROR, SubmissionErrors } from '@sourcegraph/wildcard' + +import { CodeInsightCreationMode, CodeInsightsCreationActions, createDefaultEditSeries } from '../../../../components' import { ComputeInsight, MinimalComputeInsightData } from '../../../../core' import { ComputeInsightCreationContent } from '../../creation/compute/components/ComputeInsightCreationContent' import { CreateComputeInsightFormFields } from '../../creation/compute/types' diff --git a/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditLangStatsInsight.tsx b/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditLangStatsInsight.tsx index d487eb53c86c..c7b9bb49fe0b 100644 --- a/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditLangStatsInsight.tsx +++ b/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditLangStatsInsight.tsx @@ -1,11 +1,8 @@ import { FC, useMemo } from 'react' -import { - CodeInsightCreationMode, - CodeInsightsCreationActions, - FORM_ERROR, - SubmissionErrors, -} from '../../../../components' +import { FORM_ERROR, SubmissionErrors } from '@sourcegraph/wildcard' + +import { CodeInsightCreationMode, CodeInsightsCreationActions } from '../../../../components' import { MinimalLangStatsInsightData, LangStatsInsight } from '../../../../core' import { LangStatsCreationFormFields } from '../../creation/lang-stats' import { LangStatsInsightCreationContent } from '../../creation/lang-stats/components/LangStatsInsightCreationContent' diff --git a/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditSearchInsight.tsx b/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditSearchInsight.tsx index f585c7d78c78..f57045af923c 100644 --- a/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditSearchInsight.tsx +++ b/client/web/src/enterprise/insights/pages/insights/edit-insight/components/EditSearchInsight.tsx @@ -1,12 +1,8 @@ import { FC, useMemo } from 'react' -import { - SubmissionErrors, - createDefaultEditSeries, - CodeInsightsCreationActions, - CodeInsightCreationMode, - FORM_ERROR, -} from '../../../../components' +import { FORM_ERROR, SubmissionErrors } from '@sourcegraph/wildcard' + +import { createDefaultEditSeries, CodeInsightsCreationActions, CodeInsightCreationMode } from '../../../../components' import { MinimalSearchBasedInsightData, SearchBasedInsight } from '../../../../core' import { CreateInsightFormFields, InsightStep } from '../../creation/search-insight' import { SearchInsightCreationContent } from '../../creation/search-insight/components/SearchInsightCreationContent' diff --git a/client/web/src/enterprise/insights/pages/insights/edit-insight/hooks/use-edit-page-handlers.ts b/client/web/src/enterprise/insights/pages/insights/edit-insight/hooks/use-edit-page-handlers.ts index 799ad2601688..100614935f52 100644 --- a/client/web/src/enterprise/insights/pages/insights/edit-insight/hooks/use-edit-page-handlers.ts +++ b/client/web/src/enterprise/insights/pages/insights/edit-insight/hooks/use-edit-page-handlers.ts @@ -2,8 +2,9 @@ import { useContext } from 'react' import { useNavigate } from 'react-router-dom-v5-compat' +import { SubmissionErrors } from '@sourcegraph/wildcard' + import { eventLogger } from '../../../../../../tracking/eventLogger' -import { SubmissionErrors } from '../../../../components' import { CodeInsightsBackendContext, CreationInsightInput } from '../../../../core' import { useQueryParameters } from '../../../../hooks' import { getTrackingTypeByInsightType } from '../../../../pings' diff --git a/client/web/src/enterprise/insights/pages/insights/insight/components/standalone-backend-insight/StandaloneBackendInsight.tsx b/client/web/src/enterprise/insights/pages/insights/insight/components/standalone-backend-insight/StandaloneBackendInsight.tsx index 1f395a43e350..849788c8816d 100644 --- a/client/web/src/enterprise/insights/pages/insights/insight/components/standalone-backend-insight/StandaloneBackendInsight.tsx +++ b/client/web/src/enterprise/insights/pages/insights/insight/components/standalone-backend-insight/StandaloneBackendInsight.tsx @@ -5,7 +5,7 @@ import { useNavigate } from 'react-router-dom-v5-compat' import { useQuery } from '@sourcegraph/http-client' import { TelemetryProps } from '@sourcegraph/shared/src/telemetry/telemetryService' -import { Card, CardBody, useDebounce, useDeepMemo } from '@sourcegraph/wildcard' +import { Card, CardBody, useDebounce, useDeepMemo, FormChangeEvent } from '@sourcegraph/wildcard' import { GetInsightViewResult, @@ -14,7 +14,7 @@ import { SeriesDisplayOptionsInput, } from '../../../../../../../graphql-operations' import { useSeriesToggle } from '../../../../../../../insights/utils/use-series-toggle' -import { InsightCard, InsightCardHeader, InsightCardLoading, FormChangeEvent } from '../../../../../components' +import { InsightCard, InsightCardHeader, InsightCardLoading } from '../../../../../components' import { DrillDownInsightFilters, FilterSectionVisualMode, diff --git a/client/web/src/enterprise/insights/pages/landing/getting-started/components/dynamic-code-insight-example/DynamicCodeInsightExample.tsx b/client/web/src/enterprise/insights/pages/landing/getting-started/components/dynamic-code-insight-example/DynamicCodeInsightExample.tsx index abd959013808..8150a5f21691 100644 --- a/client/web/src/enterprise/insights/pages/landing/getting-started/components/dynamic-code-insight-example/DynamicCodeInsightExample.tsx +++ b/client/web/src/enterprise/insights/pages/landing/getting-started/components/dynamic-code-insight-example/DynamicCodeInsightExample.tsx @@ -5,16 +5,22 @@ import classNames from 'classnames' import { noop } from 'rxjs' import { TelemetryProps } from '@sourcegraph/shared/src/telemetry/telemetryService' -import { Button, Card, Link, useObservable, useDebounce, Icon, Input, Text, Label } from '@sourcegraph/wildcard' - import { - getDefaultInputProps, - useField, + Button, + Card, + Link, + Icon, + Input, + Text, + Label, useForm, - InsightQueryInput, - RepositoriesField, - insightRepositoriesValidator, -} from '../../../../../components' + useField, + useObservable, + useDebounce, + getDefaultInputProps, +} from '@sourcegraph/wildcard' + +import { InsightQueryInput, RepositoriesField, insightRepositoriesValidator } from '../../../../../components' import { CodeInsightsBackendContext } from '../../../../../core' import { getQueryPatternTypeFilter } from '../../../../insights/creation/search-insight' import { CodeInsightsDescription } from '../code-insights-description/CodeInsightsDescription' diff --git a/client/web/src/enterprise/insights/components/form/getDefaultInputProps.ts b/client/wildcard/src/components/Form/Form/getDefaultInputProps.ts similarity index 94% rename from client/web/src/enterprise/insights/components/form/getDefaultInputProps.ts rename to client/wildcard/src/components/Form/Form/getDefaultInputProps.ts index c78f8dbb0ca6..63127e2a9c2e 100644 --- a/client/web/src/enterprise/insights/components/form/getDefaultInputProps.ts +++ b/client/wildcard/src/components/Form/Form/getDefaultInputProps.ts @@ -1,4 +1,4 @@ -import { InputStatus, InputProps } from '@sourcegraph/wildcard' +import { InputStatus, InputProps } from '../Input' import { useFieldAPI } from './hooks' diff --git a/client/web/src/enterprise/insights/components/form/hooks/index.ts b/client/wildcard/src/components/Form/Form/hooks/index.ts similarity index 78% rename from client/web/src/enterprise/insights/components/form/hooks/index.ts rename to client/wildcard/src/components/Form/Form/hooks/index.ts index a5878a784ff9..c001e4106a8e 100644 --- a/client/web/src/enterprise/insights/components/form/hooks/index.ts +++ b/client/wildcard/src/components/Form/Form/hooks/index.ts @@ -1,6 +1,6 @@ // form hooks export { useForm, FORM_ERROR } from './useForm' -export type { Form, SubmissionErrors, FormChangeEvent } from './useForm' +export type { FormInstance, FormAPI, SubmissionResult, SubmissionErrors, FormChangeEvent } from './useForm' export { useField, useControlledField } from './useField' export type { useFieldAPI } from './useField' diff --git a/client/web/src/enterprise/insights/components/form/hooks/useCheckboxes.ts b/client/wildcard/src/components/Form/Form/hooks/useCheckboxes.ts similarity index 100% rename from client/web/src/enterprise/insights/components/form/hooks/useCheckboxes.ts rename to client/wildcard/src/components/Form/Form/hooks/useCheckboxes.ts diff --git a/client/web/src/enterprise/insights/components/form/hooks/useField.ts b/client/wildcard/src/components/Form/Form/hooks/useField.ts similarity index 100% rename from client/web/src/enterprise/insights/components/form/hooks/useField.ts rename to client/wildcard/src/components/Form/Form/hooks/useField.ts diff --git a/client/web/src/enterprise/insights/components/form/hooks/useForm.ts b/client/wildcard/src/components/Form/Form/hooks/useForm.ts similarity index 97% rename from client/web/src/enterprise/insights/components/form/hooks/useForm.ts rename to client/wildcard/src/components/Form/Form/hooks/useForm.ts index b1e1c7473827..fa1fce03c314 100644 --- a/client/web/src/enterprise/insights/components/form/hooks/useForm.ts +++ b/client/wildcard/src/components/Form/Form/hooks/useForm.ts @@ -17,7 +17,7 @@ import { noop } from 'rxjs' import { asError } from '@sourcegraph/common' -import { useDistinctValue } from '../../../hooks' +import { useDeepMemo } from '../../../../hooks' // Special key for the submit error store. export const FORM_ERROR = 'useForm/submissionErrors' @@ -67,7 +67,7 @@ interface UseFormProps { * form state, form handlers like handleSubmit and some props which should be * passed on root form element. */ -export interface Form { +export interface FormInstance { /** * Values of all inputs in the form. */ @@ -211,7 +211,7 @@ type FieldsState = { * form state - submitted, submitting, state of all form fileds from useField * hook. */ -export function useForm(props: UseFormProps): Form { +export function useForm(props: UseFormProps): FormInstance { const { onSubmit = noop, initialValues, touched = false, onChange = noop, onPureValueChange = noop } = props const [submitted, setSubmitted] = useState(false) @@ -243,9 +243,9 @@ export function useForm(props: UseFormProps getFormValues(fields), [fields])) + const values = useDeepMemo(useMemo(() => getFormValues(fields), [fields])) - const changeEvent = useDistinctValue( + const changeEvent = useDeepMemo( useMemo<{ values: FormValues; valid: boolean }>( () => ({ values: getFormValues(fields), diff --git a/client/web/src/enterprise/insights/components/form/hooks/utils/get-event-value.ts b/client/wildcard/src/components/Form/Form/hooks/utils/get-event-value.ts similarity index 100% rename from client/web/src/enterprise/insights/components/form/hooks/utils/get-event-value.ts rename to client/wildcard/src/components/Form/Form/hooks/utils/get-event-value.ts diff --git a/client/web/src/enterprise/insights/components/form/hooks/utils/use-async-validation.ts b/client/wildcard/src/components/Form/Form/hooks/utils/use-async-validation.ts similarity index 98% rename from client/web/src/enterprise/insights/components/form/hooks/utils/use-async-validation.ts rename to client/wildcard/src/components/Form/Form/hooks/utils/use-async-validation.ts index 79faf6179b72..5e0caca84840 100644 --- a/client/web/src/enterprise/insights/components/form/hooks/utils/use-async-validation.ts +++ b/client/wildcard/src/components/Form/Form/hooks/utils/use-async-validation.ts @@ -3,8 +3,7 @@ import { RefObject, useCallback, useRef } from 'react' import { EMPTY, from, Observable } from 'rxjs' import { debounceTime, switchMap, tap } from 'rxjs/operators' -import { useEventObservable } from '@sourcegraph/wildcard' - +import { useEventObservable } from '../../../../../hooks' import { FieldMetaState } from '../useForm' import { AsyncValidator, getCustomValidationContext, getCustomValidationMessage } from '../validators' diff --git a/client/web/src/enterprise/insights/components/form/hooks/validators.ts b/client/wildcard/src/components/Form/Form/hooks/validators.ts similarity index 100% rename from client/web/src/enterprise/insights/components/form/hooks/validators.ts rename to client/wildcard/src/components/Form/Form/hooks/validators.ts diff --git a/client/wildcard/src/components/Form/Form/index.ts b/client/wildcard/src/components/Form/Form/index.ts index 5e819e959788..100656c0cd4b 100644 --- a/client/wildcard/src/components/Form/Form/index.ts +++ b/client/wildcard/src/components/Form/Form/index.ts @@ -1 +1,3 @@ export * from './Form' +export * from './hooks' +export { getDefaultInputStatus, getDefaultInputError, getDefaultInputProps } from './getDefaultInputProps' diff --git a/client/web/src/enterprise/insights/components/form/form-group/FormGroup.module.scss b/client/wildcard/src/components/Form/FormGroup/FormGroup.module.scss similarity index 100% rename from client/web/src/enterprise/insights/components/form/form-group/FormGroup.module.scss rename to client/wildcard/src/components/Form/FormGroup/FormGroup.module.scss diff --git a/client/web/src/enterprise/insights/components/form/form-group/FormGroup.tsx b/client/wildcard/src/components/Form/FormGroup/FormGroup.tsx similarity index 97% rename from client/web/src/enterprise/insights/components/form/form-group/FormGroup.tsx rename to client/wildcard/src/components/Form/FormGroup/FormGroup.tsx index 894a5288a2de..798391a0941d 100644 --- a/client/web/src/enterprise/insights/components/form/form-group/FormGroup.tsx +++ b/client/wildcard/src/components/Form/FormGroup/FormGroup.tsx @@ -2,7 +2,7 @@ import React, { PropsWithChildren, ReactNode, RefObject } from 'react' import classNames from 'classnames' -import { ErrorMessage } from '@sourcegraph/wildcard' +import { ErrorMessage } from '../../ErrorMessage' import styles from './FormGroup.module.scss' diff --git a/client/wildcard/src/components/Form/FormGroup/index.ts b/client/wildcard/src/components/Form/FormGroup/index.ts new file mode 100644 index 000000000000..75ff71227d2b --- /dev/null +++ b/client/wildcard/src/components/Form/FormGroup/index.ts @@ -0,0 +1 @@ +export { FormGroup } from './FormGroup' diff --git a/client/wildcard/src/components/Form/index.ts b/client/wildcard/src/components/Form/index.ts index 3949ceda27c6..c1a89d227a84 100644 --- a/client/wildcard/src/components/Form/index.ts +++ b/client/wildcard/src/components/Form/index.ts @@ -6,3 +6,4 @@ export * from './LoaderInput' export * from './RadioButton' export * from './Select' export * from './TextArea' +export * from './FormGroup' diff --git a/client/wildcard/src/components/index.ts b/client/wildcard/src/components/index.ts index 8655a5ca6ae3..abd9e49d0ba5 100644 --- a/client/wildcard/src/components/index.ts +++ b/client/wildcard/src/components/index.ts @@ -17,19 +17,30 @@ export { ParentSize, } from './Charts' export { - Checkbox, - FlexTextArea, Form, + FormGroup, + useForm, + useField, + useCheckboxes, + useControlledField, + getDefaultInputProps, + getDefaultInputError, + getDefaultInputStatus, + composeValidators, + createRequiredValidator, + FORM_ERROR, Input, LoaderInput, + InputStatus, + InputElement, InputDescription, InputErrorMessage, - InputElement, - RadioButton, + getInputStatus, Select, + Checkbox, + RadioButton, TextArea, - InputStatus, - getInputStatus, + FlexTextArea, } from './Form' export { Grid } from './Grid' export { LoadingSpinner } from './LoadingSpinner' @@ -108,6 +119,17 @@ export type { BadgeProps, BadgeVariantType, ProductStatusType, BaseProductStatus export type { ModalProps } from './Modal' export type { MultiComboboxProps } from './Combobox' export type { RadioButtonProps } from './Form/RadioButton' +export type { + useFieldAPI, + FormInstance, + FormAPI, + FormChangeEvent, + SubmissionErrors, + SubmissionResult, + Validator, + AsyncValidator, + ValidationResult, +} from './Form/Form' /** * Class name helpers to be used with plain DOM nodes.