soda-heroui 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/FormAutocomplete.d.ts +2 -2
- package/dist/cjs/components/FormAutocomplete.js.map +2 -2
- package/dist/cjs/components/FormSelect.d.ts +2 -2
- package/dist/cjs/components/FormSelect.js +1 -1
- package/dist/cjs/components/FormSelect.js.map +2 -2
- package/dist/esm/components/FormAutocomplete.d.ts +2 -2
- package/dist/esm/components/FormAutocomplete.js.map +1 -1
- package/dist/esm/components/FormSelect.d.ts +2 -2
- package/dist/esm/components/FormSelect.js +1 -1
- package/dist/esm/components/FormSelect.js.map +1 -1
- package/package.json +4 -4
- package/src/components/FormAutocomplete.tsx +5 -5
- package/src/components/FormSelect.tsx +10 -14
|
@@ -2,6 +2,6 @@ import { ReactNode } from "react";
|
|
|
2
2
|
import { Autocomplete } from "@heroui/react";
|
|
3
3
|
import { Key } from "@react-types/shared";
|
|
4
4
|
import { FieldComponentProps } from "soda-tanstack-form";
|
|
5
|
-
export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined,
|
|
5
|
+
export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object> extends FieldComponentProps<typeof Autocomplete<RenderItem>, FieldValue> {
|
|
6
6
|
}
|
|
7
|
-
export declare function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined,
|
|
7
|
+
export declare function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({ field, ...rest }: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/FormAutocomplete.tsx"],
|
|
4
|
-
"sourcesContent": ["\"use client\"\n\nimport { ReactNode } from \"react\"\nimport { Autocomplete } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined,
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAA6B;AAI7B,0BAA6B;AAKtB,SAAS,
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport { ReactNode } from \"react\"\nimport { Autocomplete } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>\n extends FieldComponentProps<typeof Autocomplete<RenderItem>, FieldValue> {}\n\nexport function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({\n field,\n ...rest\n}: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode {\n return (\n <Autocomplete<RenderItem>\n selectedKey={field.state.value ?? null}\n onSelectionChange={value => field.handleChange((value ?? undefined) as FieldValue)}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAA6B;AAI7B,0BAA6B;AAKtB,SAAS,iBAA2G;AAAA,EACvH;AAAA,EACA,GAAG;AACP,GAA6D;AACzD,SACI;AAAA,IAAC;AAAA;AAAA,MACG,aAAa,MAAM,MAAM,SAAS;AAAA,MAClC,mBAAmB,WAAS,MAAM,aAAc,SAAS,MAAwB;AAAA,MACjF,QAAQ,MAAM;AAAA,MACd,cAAc,oCAAC,oCAAa,MAAM,MAAM,MAAM,KAAK,QAAQ;AAAA,MAC3D,WAAW,MAAM,MAAM,KAAK,OAAO,KAAK,OAAO;AAAA,MAC9C,GAAG;AAAA;AAAA,EACR;AAER;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,7 +2,7 @@ import { Select } from "@heroui/react";
|
|
|
2
2
|
import { Key } from "@react-types/shared";
|
|
3
3
|
import { FieldComponentProps } from "soda-tanstack-form";
|
|
4
4
|
import { StrictOmit } from "soda-type";
|
|
5
|
-
export interface FormSelectProps<
|
|
5
|
+
export interface FormSelectProps<Multiple extends boolean = false, Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined, RenderItem extends object = object> extends StrictOmit<FieldComponentProps<typeof Select<RenderItem>, Value>, "multiple"> {
|
|
6
6
|
multiple?: Multiple;
|
|
7
7
|
}
|
|
8
|
-
export declare function FormSelect<
|
|
8
|
+
export declare function FormSelect<Multiple extends boolean = false, Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined, RenderItem extends object = object>({ field, multiple, ...rest }: FormSelectProps<Multiple, Value, RenderItem>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -30,7 +30,7 @@ function FormSelect({ field, multiple, ...rest }) {
|
|
|
30
30
|
return /* @__PURE__ */ React.createElement(
|
|
31
31
|
import_react.Select,
|
|
32
32
|
{
|
|
33
|
-
selectedKeys:
|
|
33
|
+
selectedKeys: (0, import_deepsea_tools.isNonNullable)(field.state.value) ? multiple ? field.state.value : [field.state.value] : [],
|
|
34
34
|
onSelectionChange: (keys) => {
|
|
35
35
|
const value = Array.from(keys);
|
|
36
36
|
field.handleChange(multiple ? value : value.at(0));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/FormSelect.tsx"],
|
|
4
|
-
"sourcesContent": ["\"use client\"\n\nimport { Select } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { isNonNullable } from \"deepsea-tools\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\nimport { StrictOmit } from \"soda-type\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormSelectProps<\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAuB;AAEvB,2BAA8B;AAI9B,0BAA6B;
|
|
4
|
+
"sourcesContent": ["\"use client\"\n\nimport { Select } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { isNonNullable } from \"deepsea-tools\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\nimport { StrictOmit } from \"soda-type\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormSelectProps<\n Multiple extends boolean = false,\n Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,\n RenderItem extends object = object,\n> extends StrictOmit<FieldComponentProps<typeof Select<RenderItem>, Value>, \"multiple\"> {\n multiple?: Multiple\n}\n\nexport function FormSelect<\n Multiple extends boolean = false,\n Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,\n RenderItem extends object = object,\n>({ field, multiple, ...rest }: FormSelectProps<Multiple, Value, RenderItem>) {\n return (\n <Select<RenderItem>\n selectedKeys={isNonNullable(field.state.value) ? (multiple ? (field.state.value as Key[]) : [field.state.value as Key]) : []}\n onSelectionChange={keys => {\n const value = Array.from(keys)\n field.handleChange((multiple ? value : value.at(0)) as Value)\n }}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAuB;AAEvB,2BAA8B;AAI9B,0BAA6B;AAUtB,SAAS,WAId,EAAE,OAAO,UAAU,GAAG,KAAK,GAAiD;AAC1E,SACI;AAAA,IAAC;AAAA;AAAA,MACG,kBAAc,oCAAc,MAAM,MAAM,KAAK,IAAK,WAAY,MAAM,MAAM,QAAkB,CAAC,MAAM,MAAM,KAAY,IAAK,CAAC;AAAA,MAC3H,mBAAmB,UAAQ;AACvB,cAAM,QAAQ,MAAM,KAAK,IAAI;AAC7B,cAAM,aAAc,WAAW,QAAQ,MAAM,GAAG,CAAC,CAAW;AAAA,MAChE;AAAA,MACA,QAAQ,MAAM;AAAA,MACd,cAAc,oCAAC,oCAAa,MAAM,MAAM,MAAM,KAAK,QAAQ;AAAA,MAC3D,WAAW,MAAM,MAAM,KAAK,OAAO,KAAK,OAAO;AAAA,MAC9C,GAAG;AAAA;AAAA,EACR;AAER;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@ import { ReactNode } from "react";
|
|
|
2
2
|
import { Autocomplete } from "@heroui/react";
|
|
3
3
|
import { Key } from "@react-types/shared";
|
|
4
4
|
import { FieldComponentProps } from "soda-tanstack-form";
|
|
5
|
-
export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined,
|
|
5
|
+
export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object> extends FieldComponentProps<typeof Autocomplete<RenderItem>, FieldValue> {
|
|
6
6
|
}
|
|
7
|
-
export declare function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined,
|
|
7
|
+
export declare function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({ field, ...rest }: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Autocomplete","ErrorMessage","jsx","_jsx","FormAutocomplete","field","rest","selectedKey","state","value","onSelectionChange","handleChange","undefined","onBlur","handleBlur","errorMessage","data","meta","errors","isInvalid","some","Boolean"],"sources":["../../../src/components/FormAutocomplete.tsx"],"sourcesContent":["\"use client\"\n\nimport { ReactNode } from \"react\"\nimport { Autocomplete } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined,
|
|
1
|
+
{"version":3,"names":["Autocomplete","ErrorMessage","jsx","_jsx","FormAutocomplete","field","rest","selectedKey","state","value","onSelectionChange","handleChange","undefined","onBlur","handleBlur","errorMessage","data","meta","errors","isInvalid","some","Boolean"],"sources":["../../../src/components/FormAutocomplete.tsx"],"sourcesContent":["\"use client\"\n\nimport { ReactNode } from \"react\"\nimport { Autocomplete } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>\n extends FieldComponentProps<typeof Autocomplete<RenderItem>, FieldValue> {}\n\nexport function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({\n field,\n ...rest\n}: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode {\n return (\n <Autocomplete<RenderItem>\n selectedKey={field.state.value ?? null}\n onSelectionChange={value => field.handleChange((value ?? undefined) as FieldValue)}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],"mappings":"AAAA,YAAY;;AAGZ,SAASA,YAAY,QAAQ,eAAe;AAI5C,SAASC,YAAY;AAAwB,SAAAC,GAAA,IAAAC,IAAA;AAK7C,OAAO,SAASC,gBAAgBA,CAA2F;EACvHC,KAAK;EACL,GAAGC;AACwC,CAAC,EAAa;EACzD,oBACIH,IAAA,CAACH,YAAY;IACTO,WAAW,EAAEF,KAAK,CAACG,KAAK,CAACC,KAAK,IAAI,IAAK;IACvCC,iBAAiB,EAAED,KAAK,IAAIJ,KAAK,CAACM,YAAY,CAAEF,KAAK,IAAIG,SAAwB,CAAE;IACnFC,MAAM,EAAER,KAAK,CAACS,UAAW;IACzBC,YAAY,eAAEZ,IAAA,CAACF,YAAY;MAACe,IAAI,EAAEX,KAAK,CAACG,KAAK,CAACS,IAAI,CAACC;IAAO,CAAE,CAAE;IAC9DC,SAAS,EAAEd,KAAK,CAACG,KAAK,CAACS,IAAI,CAACC,MAAM,CAACE,IAAI,CAACC,OAAO,CAAE;IAAA,GAC7Cf;EAAI,CACX,CAAC;AAEV"}
|
|
@@ -2,7 +2,7 @@ import { Select } from "@heroui/react";
|
|
|
2
2
|
import { Key } from "@react-types/shared";
|
|
3
3
|
import { FieldComponentProps } from "soda-tanstack-form";
|
|
4
4
|
import { StrictOmit } from "soda-type";
|
|
5
|
-
export interface FormSelectProps<
|
|
5
|
+
export interface FormSelectProps<Multiple extends boolean = false, Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined, RenderItem extends object = object> extends StrictOmit<FieldComponentProps<typeof Select<RenderItem>, Value>, "multiple"> {
|
|
6
6
|
multiple?: Multiple;
|
|
7
7
|
}
|
|
8
|
-
export declare function FormSelect<
|
|
8
|
+
export declare function FormSelect<Multiple extends boolean = false, Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined, RenderItem extends object = object>({ field, multiple, ...rest }: FormSelectProps<Multiple, Value, RenderItem>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -10,7 +10,7 @@ export function FormSelect({
|
|
|
10
10
|
...rest
|
|
11
11
|
}) {
|
|
12
12
|
return /*#__PURE__*/_jsx(Select, {
|
|
13
|
-
selectedKeys:
|
|
13
|
+
selectedKeys: isNonNullable(field.state.value) ? multiple ? field.state.value : [field.state.value] : [],
|
|
14
14
|
onSelectionChange: keys => {
|
|
15
15
|
const value = Array.from(keys);
|
|
16
16
|
field.handleChange(multiple ? value : value.at(0));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Select","isNonNullable","ErrorMessage","jsx","_jsx","FormSelect","field","multiple","rest","selectedKeys","
|
|
1
|
+
{"version":3,"names":["Select","isNonNullable","ErrorMessage","jsx","_jsx","FormSelect","field","multiple","rest","selectedKeys","state","value","onSelectionChange","keys","Array","from","handleChange","at","onBlur","handleBlur","errorMessage","data","meta","errors","isInvalid","some","Boolean"],"sources":["../../../src/components/FormSelect.tsx"],"sourcesContent":["\"use client\"\n\nimport { Select } from \"@heroui/react\"\nimport { Key } from \"@react-types/shared\"\nimport { isNonNullable } from \"deepsea-tools\"\nimport { FieldComponentProps } from \"soda-tanstack-form\"\nimport { StrictOmit } from \"soda-type\"\n\nimport { ErrorMessage } from \"./ErrorMessage\"\n\nexport interface FormSelectProps<\n Multiple extends boolean = false,\n Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,\n RenderItem extends object = object,\n> extends StrictOmit<FieldComponentProps<typeof Select<RenderItem>, Value>, \"multiple\"> {\n multiple?: Multiple\n}\n\nexport function FormSelect<\n Multiple extends boolean = false,\n Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,\n RenderItem extends object = object,\n>({ field, multiple, ...rest }: FormSelectProps<Multiple, Value, RenderItem>) {\n return (\n <Select<RenderItem>\n selectedKeys={isNonNullable(field.state.value) ? (multiple ? (field.state.value as Key[]) : [field.state.value as Key]) : []}\n onSelectionChange={keys => {\n const value = Array.from(keys)\n field.handleChange((multiple ? value : value.at(0)) as Value)\n }}\n onBlur={field.handleBlur}\n errorMessage={<ErrorMessage data={field.state.meta.errors} />}\n isInvalid={field.state.meta.errors.some(Boolean)}\n {...rest}\n />\n )\n}\n"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,MAAM,QAAQ,eAAe;AAEtC,SAASC,aAAa,QAAQ,eAAe;AAI7C,SAASC,YAAY;AAAwB,SAAAC,GAAA,IAAAC,IAAA;AAU7C,OAAO,SAASC,UAAUA,CAIxB;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAmD,CAAC,EAAE;EAC1E,oBACIJ,IAAA,CAACJ,MAAM;IACHS,YAAY,EAAER,aAAa,CAACK,KAAK,CAACI,KAAK,CAACC,KAAK,CAAC,GAAIJ,QAAQ,GAAID,KAAK,CAACI,KAAK,CAACC,KAAK,GAAa,CAACL,KAAK,CAACI,KAAK,CAACC,KAAK,CAAQ,GAAI,EAAG;IAC7HC,iBAAiB,EAAEC,IAAI,IAAI;MACvB,MAAMF,KAAK,GAAGG,KAAK,CAACC,IAAI,CAACF,IAAI,CAAC;MAC9BP,KAAK,CAACU,YAAY,CAAET,QAAQ,GAAGI,KAAK,GAAGA,KAAK,CAACM,EAAE,CAAC,CAAC,CAAW,CAAC;IACjE,CAAE;IACFC,MAAM,EAAEZ,KAAK,CAACa,UAAW;IACzBC,YAAY,eAAEhB,IAAA,CAACF,YAAY;MAACmB,IAAI,EAAEf,KAAK,CAACI,KAAK,CAACY,IAAI,CAACC;IAAO,CAAE,CAAE;IAC9DC,SAAS,EAAElB,KAAK,CAACI,KAAK,CAACY,IAAI,CAACC,MAAM,CAACE,IAAI,CAACC,OAAO,CAAE;IAAA,GAC7ClB;EAAI,CACX,CAAC;AAEV"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "soda-heroui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@internationalized/date": "^3.7.0",
|
|
33
33
|
"@tanstack/react-form": "^1.1.2",
|
|
34
|
-
"deepsea-tools": "5.
|
|
35
|
-
"soda-
|
|
36
|
-
"soda-
|
|
34
|
+
"deepsea-tools": "5.22.0",
|
|
35
|
+
"soda-tanstack-form": "0.0.3",
|
|
36
|
+
"soda-type": "6.0.2"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@react-types/shared": "^3.28.0",
|
|
@@ -7,15 +7,15 @@ import { FieldComponentProps } from "soda-tanstack-form"
|
|
|
7
7
|
|
|
8
8
|
import { ErrorMessage } from "./ErrorMessage"
|
|
9
9
|
|
|
10
|
-
export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined,
|
|
11
|
-
extends FieldComponentProps<typeof Autocomplete<
|
|
10
|
+
export interface FormAutocompleteProps<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>
|
|
11
|
+
extends FieldComponentProps<typeof Autocomplete<RenderItem>, FieldValue> {}
|
|
12
12
|
|
|
13
|
-
export function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined,
|
|
13
|
+
export function FormAutocomplete<FieldValue extends Key | undefined = Key | undefined, RenderItem extends object = object>({
|
|
14
14
|
field,
|
|
15
15
|
...rest
|
|
16
|
-
}: FormAutocompleteProps<FieldValue,
|
|
16
|
+
}: FormAutocompleteProps<FieldValue, RenderItem>): ReactNode {
|
|
17
17
|
return (
|
|
18
|
-
<Autocomplete<
|
|
18
|
+
<Autocomplete<RenderItem>
|
|
19
19
|
selectedKey={field.state.value ?? null}
|
|
20
20
|
onSelectionChange={value => field.handleChange((value ?? undefined) as FieldValue)}
|
|
21
21
|
onBlur={field.handleBlur}
|
|
@@ -9,28 +9,24 @@ import { StrictOmit } from "soda-type"
|
|
|
9
9
|
import { ErrorMessage } from "./ErrorMessage"
|
|
10
10
|
|
|
11
11
|
export interface FormSelectProps<
|
|
12
|
-
Value extends Key | undefined = Key | undefined,
|
|
13
12
|
Multiple extends boolean = false,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
> extends StrictOmit<FieldComponentProps<typeof Select<
|
|
13
|
+
Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,
|
|
14
|
+
RenderItem extends object = object,
|
|
15
|
+
> extends StrictOmit<FieldComponentProps<typeof Select<RenderItem>, Value>, "multiple"> {
|
|
17
16
|
multiple?: Multiple
|
|
18
17
|
}
|
|
19
18
|
|
|
20
19
|
export function FormSelect<
|
|
21
|
-
Value extends Key | undefined = Key | undefined,
|
|
22
20
|
Multiple extends boolean = false,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
>({ field, multiple, ...rest }: FormSelectProps<
|
|
21
|
+
Value extends (Multiple extends true ? Key[] : Key) | undefined = (Multiple extends true ? Key[] : Key) | undefined,
|
|
22
|
+
RenderItem extends object = object,
|
|
23
|
+
>({ field, multiple, ...rest }: FormSelectProps<Multiple, Value, RenderItem>) {
|
|
26
24
|
return (
|
|
27
|
-
<Select<
|
|
28
|
-
selectedKeys={
|
|
29
|
-
Array.isArray(field.state.value) ? field.state.value.filter(isNonNullable) : isNonNullable(field.state.value) ? [field.state.value] : []
|
|
30
|
-
}
|
|
25
|
+
<Select<RenderItem>
|
|
26
|
+
selectedKeys={isNonNullable(field.state.value) ? (multiple ? (field.state.value as Key[]) : [field.state.value as Key]) : []}
|
|
31
27
|
onSelectionChange={keys => {
|
|
32
|
-
const value = Array.from(keys)
|
|
33
|
-
field.handleChange((multiple ? value : value.at(0)) as
|
|
28
|
+
const value = Array.from(keys)
|
|
29
|
+
field.handleChange((multiple ? value : value.at(0)) as Value)
|
|
34
30
|
}}
|
|
35
31
|
onBlur={field.handleBlur}
|
|
36
32
|
errorMessage={<ErrorMessage data={field.state.meta.errors} />}
|