From b5c91d429d1699215ab04c30f6eb7c4a46e0df3c Mon Sep 17 00:00:00 2001 From: Nathan Vasse Date: Wed, 4 Oct 2023 15:48:22 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F(react)=20move=20SelectPro?= =?UTF-8?q?ps=20to=20index.tsx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It makes more sense for this type to be next to the Select component. --- .../src/components/Forms/Select/index.tsx | 25 ++++++++++++++-- .../components/Forms/Select/mono-common.tsx | 3 +- .../Forms/Select/mono-searchable.tsx | 2 +- .../src/components/Forms/Select/mono.tsx | 30 ++----------------- .../components/Forms/Select/multi-common.tsx | 3 +- .../src/components/Forms/Select/multi.tsx | 4 +-- .../components/Forms/Select/stories-utils.tsx | 3 +- 7 files changed, 33 insertions(+), 37 deletions(-) diff --git a/packages/react/src/components/Forms/Select/index.tsx b/packages/react/src/components/Forms/Select/index.tsx index b6b4335..f33e2aa 100644 --- a/packages/react/src/components/Forms/Select/index.tsx +++ b/packages/react/src/components/Forms/Select/index.tsx @@ -1,6 +1,7 @@ -import React, { forwardRef } from "react"; +import React, { forwardRef, PropsWithChildren } from "react"; import { SelectMulti } from ":/components/Forms/Select/multi"; -import { SelectMono, SelectProps } from ":/components/Forms/Select/mono"; +import { Option, SelectMono } from ":/components/Forms/Select/mono"; +import { FieldProps } from ":/components/Forms/Field"; export * from ":/components/Forms/Select/mono"; export * from ":/components/Forms/Select/multi"; @@ -8,6 +9,26 @@ export * from ":/components/Forms/Select/multi"; export interface SelectHandle { blur: () => void; } + +export type SelectProps = PropsWithChildren & + FieldProps & { + label: string; + hideLabel?: boolean; + options: Option[]; + searchable?: boolean; + name?: string; + defaultValue?: string | number | string[]; + value?: string | number | string[]; + onChange?: (event: { + target: { value: string | number | undefined | string[] }; + }) => void; + onBlur?: (event: { + target: { value: string | number | undefined | string[] }; + }) => void; + disabled?: boolean; + clearable?: boolean; + multi?: boolean; + }; export const Select = forwardRef((props, ref) => { if (props.defaultValue && props.value) { throw new Error( diff --git a/packages/react/src/components/Forms/Select/mono-common.tsx b/packages/react/src/components/Forms/Select/mono-common.tsx index 3e640ba..b1f3a77 100644 --- a/packages/react/src/components/Forms/Select/mono-common.tsx +++ b/packages/react/src/components/Forms/Select/mono-common.tsx @@ -5,7 +5,8 @@ import { useCunningham } from ":/components/Provider"; import { Field } from ":/components/Forms/Field"; import { LabelledBox } from ":/components/Forms/LabelledBox"; import { Button } from ":/components/Button"; -import { Option, SelectProps } from ":/components/Forms/Select/mono"; +import { Option } from ":/components/Forms/Select/mono"; +import { SelectProps } from ":/components/Forms/Select"; export function getOptionsFilter(inputValue?: string) { return (option: Option) => { diff --git a/packages/react/src/components/Forms/Select/mono-searchable.tsx b/packages/react/src/components/Forms/Select/mono-searchable.tsx index 5130e91..e392194 100644 --- a/packages/react/src/components/Forms/Select/mono-searchable.tsx +++ b/packages/react/src/components/Forms/Select/mono-searchable.tsx @@ -14,7 +14,7 @@ import { SelectMonoAux, SubProps, } from ":/components/Forms/Select/mono-common"; -import { SelectHandle } from ":/components/Forms/Select/index"; +import { SelectHandle } from ":/components/Forms/Select"; export const SelectMonoSearchable = forwardRef( (props, ref) => { diff --git a/packages/react/src/components/Forms/Select/mono.tsx b/packages/react/src/components/Forms/Select/mono.tsx index 10a7658..1128173 100644 --- a/packages/react/src/components/Forms/Select/mono.tsx +++ b/packages/react/src/components/Forms/Select/mono.tsx @@ -1,15 +1,9 @@ -import React, { - forwardRef, - PropsWithChildren, - useEffect, - useState, -} from "react"; +import React, { forwardRef, useEffect, useState } from "react"; import { UseSelectStateChange } from "downshift"; -import { FieldProps } from ":/components/Forms/Field"; import { optionToValue, SubProps } from ":/components/Forms/Select/mono-common"; import { SelectMonoSearchable } from ":/components/Forms/Select/mono-searchable"; import { SelectMonoSimple } from ":/components/Forms/Select/mono-simple"; -import { SelectHandle } from ":/components/Forms/Select/index"; +import { SelectHandle, SelectProps } from ":/components/Forms/Select"; export interface Option { value?: string; @@ -17,26 +11,6 @@ export interface Option { disabled?: boolean; } -export type SelectProps = PropsWithChildren & - FieldProps & { - label: string; - hideLabel?: boolean; - options: Option[]; - searchable?: boolean; - name?: string; - defaultValue?: string | number | string[]; - value?: string | number | string[]; - onChange?: (event: { - target: { value: string | number | undefined | string[] }; - }) => void; - onBlur?: (event: { - target: { value: string | number | undefined | string[] }; - }) => void; - disabled?: boolean; - clearable?: boolean; - multi?: boolean; - }; - export const SelectMono = forwardRef( (props, ref) => { const defaultSelectedItem = props.defaultValue diff --git a/packages/react/src/components/Forms/Select/multi-common.tsx b/packages/react/src/components/Forms/Select/multi-common.tsx index 28638d4..1a236ea 100644 --- a/packages/react/src/components/Forms/Select/multi-common.tsx +++ b/packages/react/src/components/Forms/Select/multi-common.tsx @@ -5,7 +5,8 @@ import { Field } from ":/components/Forms/Field"; import { LabelledBox } from ":/components/Forms/LabelledBox"; import { Button } from ":/components/Button"; import { useCunningham } from ":/components/Provider"; -import { Option, SelectProps } from ":/components/Forms/Select/mono"; +import { Option } from ":/components/Forms/Select/mono"; +import { SelectProps } from ":/components/Forms/Select"; import { getOptionsFilter, optionToValue, diff --git a/packages/react/src/components/Forms/Select/multi.tsx b/packages/react/src/components/Forms/Select/multi.tsx index 208b514..41ff4e1 100644 --- a/packages/react/src/components/Forms/Select/multi.tsx +++ b/packages/react/src/components/Forms/Select/multi.tsx @@ -3,8 +3,8 @@ import { optionToValue } from ":/components/Forms/Select/mono-common"; import { SelectMultiSearchable } from ":/components/Forms/Select/multi-searchable"; import { SelectMultiSimple } from ":/components/Forms/Select/multi-simple"; import { SubProps } from ":/components/Forms/Select/multi-common"; -import { Option, SelectProps } from ":/components/Forms/Select/mono"; -import { SelectHandle } from ":/components/Forms/Select/index"; +import { Option } from ":/components/Forms/Select/mono"; +import { SelectHandle, SelectProps } from ":/components/Forms/Select/index"; export type SelectMultiProps = Omit & { onChange?: (event: { target: { value: string[] } }) => void; diff --git a/packages/react/src/components/Forms/Select/stories-utils.tsx b/packages/react/src/components/Forms/Select/stories-utils.tsx index e7e81e1..bda9646 100644 --- a/packages/react/src/components/Forms/Select/stories-utils.tsx +++ b/packages/react/src/components/Forms/Select/stories-utils.tsx @@ -1,7 +1,6 @@ import { Controller, useFormContext } from "react-hook-form"; import React from "react"; -import { Select } from ":/components/Forms/Select/index"; -import { SelectProps } from ":/components/Forms/Select/mono"; +import { Select, SelectProps } from ":/components/Forms/Select/index"; export const RhfSelect = (props: SelectProps & { name: string }) => { const { control, setValue } = useFormContext();