@tamagui/select 1.47.4 → 1.47.6
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/Select.js +82 -40
- package/dist/cjs/Select.js.map +1 -1
- package/dist/cjs/SelectContent.js +2 -1
- package/dist/cjs/SelectContent.js.map +1 -1
- package/dist/cjs/SelectImpl.js +38 -23
- package/dist/cjs/SelectImpl.js.map +2 -2
- package/dist/cjs/SelectItem.js +24 -12
- package/dist/cjs/SelectItem.js.map +1 -1
- package/dist/cjs/SelectTrigger.js +7 -6
- package/dist/cjs/SelectTrigger.js.map +1 -1
- package/dist/cjs/SelectViewport.js +6 -5
- package/dist/cjs/SelectViewport.js.map +1 -1
- package/dist/cjs/context.js +19 -4
- package/dist/cjs/context.js.map +1 -1
- package/dist/esm/Select.js +89 -41
- package/dist/esm/Select.js.map +1 -1
- package/dist/esm/SelectContent.js +3 -2
- package/dist/esm/SelectContent.js.map +1 -1
- package/dist/esm/SelectImpl.js +42 -23
- package/dist/esm/SelectImpl.js.map +1 -1
- package/dist/esm/SelectItem.js +28 -13
- package/dist/esm/SelectItem.js.map +1 -1
- package/dist/esm/SelectTrigger.js +8 -7
- package/dist/esm/SelectTrigger.js.map +1 -1
- package/dist/esm/SelectViewport.js +11 -6
- package/dist/esm/SelectViewport.js.map +1 -1
- package/dist/esm/context.js +14 -3
- package/dist/esm/context.js.map +1 -1
- package/dist/jsx/Select.js +66 -22
- package/dist/jsx/Select.js.map +1 -1
- package/dist/jsx/SelectContent.js +3 -2
- package/dist/jsx/SelectContent.js.map +1 -1
- package/dist/jsx/SelectImpl.js +38 -23
- package/dist/jsx/SelectImpl.js.map +1 -1
- package/dist/jsx/SelectItem.js +28 -13
- package/dist/jsx/SelectItem.js.map +1 -1
- package/dist/jsx/SelectTrigger.js +8 -7
- package/dist/jsx/SelectTrigger.js.map +1 -1
- package/dist/jsx/SelectViewport.js +11 -6
- package/dist/jsx/SelectViewport.js.map +1 -1
- package/dist/jsx/context.js +14 -3
- package/dist/jsx/context.js.map +1 -1
- package/package.json +19 -19
- package/src/Select.tsx +101 -49
- package/src/SelectContent.tsx +3 -2
- package/src/SelectImpl.tsx +46 -23
- package/src/SelectItem.tsx +33 -14
- package/src/SelectTrigger.tsx +8 -7
- package/src/SelectViewport.tsx +13 -6
- package/src/context.tsx +24 -8
- package/src/types.tsx +24 -18
- package/types/Select.d.ts.map +1 -1
- package/types/SelectContent.d.ts.map +1 -1
- package/types/SelectImpl.d.ts +2 -1
- package/types/SelectImpl.d.ts.map +1 -1
- package/types/SelectItem.d.ts.map +1 -1
- package/types/SelectTrigger.d.ts.map +1 -1
- package/types/SelectViewport.d.ts.map +1 -1
- package/types/context.d.ts +23 -2
- package/types/context.d.ts.map +1 -1
- package/types/types.d.ts +23 -16
- package/types/types.d.ts.map +1 -1
|
@@ -2,18 +2,19 @@ import { jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
3
3
|
import { ListItem } from "@tamagui/list-item";
|
|
4
4
|
import * as React from "react";
|
|
5
|
-
import { useSelectContext } from "./context";
|
|
5
|
+
import { useSelectContext, useSelectItemParentContext } from "./context";
|
|
6
6
|
const TRIGGER_NAME = "SelectTrigger";
|
|
7
7
|
const SelectTrigger = React.forwardRef(
|
|
8
8
|
function SelectTrigger2(props, forwardedRef) {
|
|
9
9
|
var _a;
|
|
10
10
|
const { __scopeSelect, disabled = false, unstyled = false, ...triggerProps } = props;
|
|
11
11
|
const context = useSelectContext(TRIGGER_NAME, __scopeSelect);
|
|
12
|
+
const itemParentContext = useSelectItemParentContext(TRIGGER_NAME, __scopeSelect);
|
|
12
13
|
const composedRefs = useComposedRefs(
|
|
13
14
|
forwardedRef,
|
|
14
15
|
(_a = context.floatingContext) == null ? void 0 : _a.refs.setReference
|
|
15
16
|
);
|
|
16
|
-
if (
|
|
17
|
+
if (itemParentContext.shouldRenderWebNative) {
|
|
17
18
|
return null;
|
|
18
19
|
}
|
|
19
20
|
return /* @__PURE__ */ jsx(
|
|
@@ -34,7 +35,7 @@ const SelectTrigger = React.forwardRef(
|
|
|
34
35
|
},
|
|
35
36
|
borderWidth: 1
|
|
36
37
|
},
|
|
37
|
-
size:
|
|
38
|
+
size: itemParentContext.size,
|
|
38
39
|
"aria-expanded": context.open,
|
|
39
40
|
"aria-autocomplete": "none",
|
|
40
41
|
dir: context.dir,
|
|
@@ -42,16 +43,16 @@ const SelectTrigger = React.forwardRef(
|
|
|
42
43
|
"data-disabled": disabled ? "" : void 0,
|
|
43
44
|
...triggerProps,
|
|
44
45
|
ref: composedRefs,
|
|
45
|
-
...process.env.TAMAGUI_TARGET === "web" &&
|
|
46
|
-
...
|
|
46
|
+
...process.env.TAMAGUI_TARGET === "web" && itemParentContext.interactions ? {
|
|
47
|
+
...itemParentContext.interactions.getReferenceProps(),
|
|
47
48
|
onMouseDown() {
|
|
48
49
|
var _a2;
|
|
49
50
|
(_a2 = context.floatingContext) == null ? void 0 : _a2.update();
|
|
50
|
-
|
|
51
|
+
itemParentContext.setOpen(!context.open);
|
|
51
52
|
}
|
|
52
53
|
} : {
|
|
53
54
|
onPress() {
|
|
54
|
-
|
|
55
|
+
itemParentContext.setOpen(!context.open);
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SelectTrigger.tsx"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "AAiCM;AAjCN,SAAS,uBAAuB;AAEhC,SAAS,gBAA+B;AACxC,YAAY,WAAW;AAEvB,SAAS,kBAAkB,kCAAkC;AAM7D,MAAM,eAAe;AAId,MAAM,gBAAgB,MAAM;AAAA,EACjC,SAASA,eAAc,OAAwC,cAAc;AAhB/E;AAiBI,UAAM,EAAE,eAAe,WAAW,OAAO,WAAW,OAAO,GAAG,aAAa,IAAI;AAE/E,UAAM,UAAU,iBAAiB,cAAc,aAAa;AAC5D,UAAM,oBAAoB,2BAA2B,cAAc,aAAa;AAChF,UAAM,eAAe;AAAA,MACnB;AAAA,OACA,aAAQ,oBAAR,mBAAyB,KAAK;AAAA,IAChC;AAIA,QAAI,kBAAkB,uBAAuB;AAC3C,aAAO;AAAA,IACT;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC,eAAe;AAAA,QACf;AAAA,QACC,GAAI,CAAC,YAAY;AAAA,UAChB,cAAc;AAAA,UACd,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,YAAY;AAAA,YACV,cAAc;AAAA,YACd,cAAc;AAAA,YACd,cAAc;AAAA,UAChB;AAAA,UACA,aAAa;AAAA,QACf;AAAA,QACA,MAAM,kBAAkB;AAAA,QAExB,iBAAe,QAAQ;AAAA,QACvB,qBAAkB;AAAA,QAClB,KAAK,QAAQ;AAAA,QACb;AAAA,QACA,iBAAe,WAAW,KAAK;AAAA,QAC9B,GAAG;AAAA,QACJ,KAAK;AAAA,QACJ,GAAI,QAAQ,IAAI,mBAAmB,SAAS,kBAAkB,eAC3D;AAAA,UACE,GAAG,kBAAkB,aAAa,kBAAkB;AAAA,UACpD,cAAc;AA7D5B,gBAAAC;AA8DgB,aAAAA,MAAA,QAAQ,oBAAR,gBAAAA,IAAyB;AACzB,8BAAkB,QAAQ,CAAC,QAAQ,IAAI;AAAA,UACzC;AAAA,QACF,IACA;AAAA,UACE,UAAU;AACR,8BAAkB,QAAQ,CAAC,QAAQ,IAAI;AAAA,UACzC;AAAA,QACF;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;",
|
|
5
5
|
"names": ["SelectTrigger", "_a"]
|
|
6
6
|
}
|
|
@@ -10,7 +10,11 @@ import { styled } from "@tamagui/core";
|
|
|
10
10
|
import { PortalItem } from "@tamagui/portal";
|
|
11
11
|
import { ThemeableStack } from "@tamagui/stacks";
|
|
12
12
|
import { VIEWPORT_NAME } from "./constants";
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
ForwardSelectContext,
|
|
15
|
+
useSelectContext,
|
|
16
|
+
useSelectItemParentContext
|
|
17
|
+
} from "./context";
|
|
14
18
|
import { useSelectBreakpointActive } from "./useSelectBreakpointActive";
|
|
15
19
|
const SelectViewportFrame = styled(ThemeableStack, {
|
|
16
20
|
name: VIEWPORT_NAME,
|
|
@@ -42,6 +46,7 @@ const SelectViewport = SelectViewportFrame.styleable(
|
|
|
42
46
|
var _a;
|
|
43
47
|
const { __scopeSelect, children, disableScroll, ...viewportProps } = props;
|
|
44
48
|
const context = useSelectContext(VIEWPORT_NAME, __scopeSelect);
|
|
49
|
+
const itemContext = useSelectItemParentContext(VIEWPORT_NAME, __scopeSelect);
|
|
45
50
|
const breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint);
|
|
46
51
|
useIsomorphicLayoutEffect(() => {
|
|
47
52
|
if (context.update) {
|
|
@@ -52,13 +57,13 @@ const SelectViewport = SelectViewportFrame.styleable(
|
|
|
52
57
|
forwardedRef,
|
|
53
58
|
(_a = context.floatingContext) == null ? void 0 : _a.refs.setFloating
|
|
54
59
|
);
|
|
55
|
-
if (
|
|
60
|
+
if (itemContext.shouldRenderWebNative) {
|
|
56
61
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
57
62
|
}
|
|
58
63
|
if (breakpointActive || !isWeb) {
|
|
59
|
-
return /* @__PURE__ */ jsx(PortalItem, { hostName: `${context.scopeKey}SheetContents`, children: /* @__PURE__ */ jsx(ForwardSelectContext, { context, children }) });
|
|
64
|
+
return /* @__PURE__ */ jsx(PortalItem, { hostName: `${context.scopeKey}SheetContents`, children: /* @__PURE__ */ jsx(ForwardSelectContext, { itemContext, context, children }) });
|
|
60
65
|
}
|
|
61
|
-
if (!
|
|
66
|
+
if (!itemContext.interactions) {
|
|
62
67
|
if (process.env.NODE_ENV === "development") {
|
|
63
68
|
console.warn(`No interactions provided to Select, potentially missing Adapt`);
|
|
64
69
|
}
|
|
@@ -67,7 +72,7 @@ const SelectViewport = SelectViewportFrame.styleable(
|
|
|
67
72
|
const {
|
|
68
73
|
style: { scrollbarWidth, listStyleType, overflow, ...restStyle },
|
|
69
74
|
...floatingProps
|
|
70
|
-
} =
|
|
75
|
+
} = itemContext.interactions.getFloatingProps();
|
|
71
76
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
72
77
|
!disableScroll && !props.unstyled && /* @__PURE__ */ jsx(
|
|
73
78
|
"style",
|
|
@@ -80,7 +85,7 @@ const SelectViewport = SelectViewportFrame.styleable(
|
|
|
80
85
|
/* @__PURE__ */ jsx(FloatingFocusManager, { context: context.floatingContext, children: /* @__PURE__ */ jsx(AnimatePresence, { children: context.open ? /* @__PURE__ */ jsx(
|
|
81
86
|
SelectViewportFrame,
|
|
82
87
|
{
|
|
83
|
-
size:
|
|
88
|
+
size: itemContext.size,
|
|
84
89
|
role: "presentation",
|
|
85
90
|
...viewportProps,
|
|
86
91
|
ref: composedRefs,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SelectViewport.tsx"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "AA0Ea,wBA2BP,YA3BO;AA1Eb,SAAS,4BAA4B;AACrC,SAAS,uBAAuB;AAChC;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAG/B,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,iCAAiC;AAMnC,MAAM,sBAAsB,OAAO,gBAAgB;AAAA,EACxD,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,iBAAiB;AAAA,QACjB,SAAS;AAAA,QACT,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW,CAAC,KAAK,EAAE,OAAO,MAAM;AAC9B,eAAO;AAAA,UACL,cAAc,OAAO,OAAO,GAAG,KAAK;AAAA,QACtC;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC;AAEM,MAAM,iBAAiB,oBAAoB;AAAA,EAChD,SAASA,gBAAe,OAAyC,cAAc;AAxDjF;AAyDI,UAAM,EAAE,eAAe,UAAU,eAAe,GAAG,cAAc,IAAI;AACrE,UAAM,UAAU,iBAAiB,eAAe,aAAa;AAC7D,UAAM,cAAc,2BAA2B,eAAe,aAAa;AAC3E,UAAM,mBAAmB,0BAA0B,QAAQ,eAAe;AAE1E,8BAA0B,MAAM;AAC9B,UAAI,QAAQ,QAAQ;AAClB,gBAAQ,OAAO;AAAA,MACjB;AAAA,IACF,GAAG,CAAC,gBAAgB,CAAC;AAErB,UAAM,eAAe;AAAA,MACnB;AAAA,OACA,aAAQ,oBAAR,mBAAyB,KAAK;AAAA,IAChC;AAEA,QAAI,YAAY,uBAAuB;AACrC,aAAO,gCAAG,UAAS;AAAA,IACrB;AAEA,QAAI,oBAAoB,CAAC,OAAO;AAC9B,aACE,oBAAC,cAAW,UAAU,GAAG,QAAQ,yBAC/B,8BAAC,wBAAqB,aAA0B,SAC7C,UACH,GACF;AAAA,IAEJ;AAEA,QAAI,CAAC,YAAY,cAAc;AAC7B,UAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,gBAAQ,KAAK,+DAA+D;AAAA,MAC9E;AAEA,aAAO;AAAA,IACT;AAEA,UAAM;AAAA,MACJ,OAAO,EAAE,gBAAgB,eAAe,UAAU,GAAG,UAAU;AAAA,MAC/D,GAAG;AAAA,IACL,IAAI,YAAY,aAAa,iBAAiB;AAE9C,WACE,iCACG;AAAA,OAAC,iBAAiB,CAAC,MAAM,YACxB;AAAA,QAAC;AAAA;AAAA,UACC,yBAAyB;AAAA,YACvB,QAAQ;AAAA,UACV;AAAA;AAAA,MACF;AAAA,MAEF,oBAAC,wBAAqB,SAAS,QAAQ,iBACrC,8BAAC,mBACE,kBAAQ,OACP;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM,YAAY;AAAA,UAElB,MAAK;AAAA,UACJ,GAAG;AAAA,UACJ,KAAK;AAAA,UACJ,GAAG;AAAA,UACH,GAAG;AAAA,UACH,GAAI,CAAC,MAAM,YAAY;AAAA,YACtB,UAAU,gBAAgB,SAAY,YAAY;AAAA,UACpD;AAAA,UAEC;AAAA;AAAA,QAZG;AAAA,MAaN,IACE,MACN,GACF;AAAA,MAGC,CAAC,QAAQ,QAAQ,oBAAC,SAAI,OAAO,EAAE,SAAS,OAAO,GAAI,gBAAM,UAAS;AAAA,OACrE;AAAA,EAEJ;AACF;AAEA,MAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
5
|
"names": ["SelectViewport"]
|
|
6
6
|
}
|
package/dist/esm/context.js
CHANGED
|
@@ -3,14 +3,25 @@ import { createContextScope } from "@tamagui/create-context";
|
|
|
3
3
|
import { SELECT_NAME } from "./constants";
|
|
4
4
|
const [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME);
|
|
5
5
|
const [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);
|
|
6
|
-
const
|
|
7
|
-
|
|
6
|
+
const [createSelectItemParentContext, createSelectItemParentScope] = createContextScope(SELECT_NAME + "ItemParent");
|
|
7
|
+
const [SelectItemParentProvider, useSelectItemParentContext] = createSelectContext(SELECT_NAME);
|
|
8
|
+
const ForwardSelectContext = ({
|
|
9
|
+
__scopeSelect,
|
|
10
|
+
context,
|
|
11
|
+
itemContext,
|
|
12
|
+
children
|
|
13
|
+
}) => {
|
|
14
|
+
return /* @__PURE__ */ jsx(SelectProvider, { isInSheet: true, scope: __scopeSelect, ...context, children: /* @__PURE__ */ jsx(SelectItemParentProvider, { scope: __scopeSelect, ...itemContext, children }) });
|
|
8
15
|
};
|
|
9
16
|
export {
|
|
10
17
|
ForwardSelectContext,
|
|
18
|
+
SelectItemParentProvider,
|
|
11
19
|
SelectProvider,
|
|
12
20
|
createSelectContext,
|
|
21
|
+
createSelectItemParentContext,
|
|
22
|
+
createSelectItemParentScope,
|
|
13
23
|
createSelectScope,
|
|
14
|
-
useSelectContext
|
|
24
|
+
useSelectContext,
|
|
25
|
+
useSelectItemParentContext
|
|
15
26
|
};
|
|
16
27
|
//# sourceMappingURL=context.js.map
|
package/dist/esm/context.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/context.tsx"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "AA8BM;AA9BN,SAAS,0BAA0B;AAEnC,SAAS,mBAAmB;AAGrB,MAAM,CAAC,qBAAqB,iBAAiB,IAAI,mBAAmB,WAAW;AAE/E,MAAM,CAAC,gBAAgB,gBAAgB,IAC5C,oBAAwC,WAAW;AAI9C,MAAM,CAAC,+BAA+B,2BAA2B,IACtE,mBAAmB,cAAc,YAAY;AAExC,MAAM,CAAC,0BAA0B,0BAA0B,IAChE,oBAAkD,WAAW;AAExD,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAIO;AACL,SACE,oBAAC,kBAAe,WAAS,MAAC,OAAO,eAAgB,GAAG,SAClD,8BAAC,4BAAyB,OAAO,eAAgB,GAAG,aACjD,UACH,GACF;AAEJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/jsx/Select.js
CHANGED
|
@@ -18,7 +18,13 @@ import { Paragraph, SizableText } from "@tamagui/text";
|
|
|
18
18
|
import { useControllableState } from "@tamagui/use-controllable-state";
|
|
19
19
|
import * as React from "react";
|
|
20
20
|
import { SELECT_NAME } from "./constants";
|
|
21
|
-
import {
|
|
21
|
+
import {
|
|
22
|
+
SelectItemParentProvider,
|
|
23
|
+
SelectProvider,
|
|
24
|
+
createSelectContext,
|
|
25
|
+
useSelectContext,
|
|
26
|
+
useSelectItemParentContext
|
|
27
|
+
} from "./context";
|
|
22
28
|
import { SelectContent } from "./SelectContent";
|
|
23
29
|
import { SelectInlineImpl } from "./SelectImpl";
|
|
24
30
|
import { SelectItem, useSelectItemContext } from "./SelectItem";
|
|
@@ -41,12 +47,13 @@ const SelectValue = SelectValueFrame.styleable(function SelectValue2({
|
|
|
41
47
|
...props
|
|
42
48
|
}, forwardedRef) {
|
|
43
49
|
const context = useSelectContext(VALUE_NAME, __scopeSelect);
|
|
50
|
+
const itemParentContext = useSelectItemParentContext(VALUE_NAME, __scopeSelect);
|
|
44
51
|
const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);
|
|
45
52
|
const children = childrenProp ?? context.selectedItem;
|
|
46
53
|
const isEmptyValue = context.value == null || context.value === "";
|
|
47
54
|
const selectValueChildren = isEmptyValue ? placeholder ?? children : children;
|
|
48
55
|
return <SelectValueFrame
|
|
49
|
-
size={
|
|
56
|
+
size={itemParentContext.size}
|
|
50
57
|
ref={composedRefs}
|
|
51
58
|
pointerEvents="none"
|
|
52
59
|
{...props}
|
|
@@ -90,6 +97,7 @@ const SelectItemText = React.forwardRef(
|
|
|
90
97
|
(props, forwardedRef) => {
|
|
91
98
|
const { __scopeSelect, className, ...itemTextProps } = props;
|
|
92
99
|
const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);
|
|
100
|
+
const itemParentContext = useSelectItemParentContext(ITEM_TEXT_NAME, __scopeSelect);
|
|
93
101
|
const ref = React.useRef(null);
|
|
94
102
|
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
95
103
|
const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);
|
|
@@ -97,20 +105,20 @@ const SelectItemText = React.forwardRef(
|
|
|
97
105
|
const contents = React.useMemo(
|
|
98
106
|
() => <SelectItemTextFrame
|
|
99
107
|
className={className}
|
|
100
|
-
size={
|
|
108
|
+
size={itemParentContext.size}
|
|
101
109
|
id={itemContext.textId}
|
|
102
110
|
{...itemTextProps}
|
|
103
111
|
ref={composedRefs}
|
|
104
112
|
/>,
|
|
105
113
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
106
|
-
[props,
|
|
114
|
+
[props, itemParentContext.size, className, itemContext.textId]
|
|
107
115
|
);
|
|
108
116
|
useIsomorphicLayoutEffect(() => {
|
|
109
117
|
if (isSelected) {
|
|
110
118
|
context.setSelectedItem(contents);
|
|
111
119
|
}
|
|
112
120
|
}, [isSelected, contents]);
|
|
113
|
-
if (
|
|
121
|
+
if (itemParentContext.shouldRenderWebNative) {
|
|
114
122
|
return <>{props.children}</>;
|
|
115
123
|
}
|
|
116
124
|
return <>
|
|
@@ -138,7 +146,7 @@ const SelectItemIndicatorFrame = styled(XStack, {
|
|
|
138
146
|
const SelectItemIndicator = React.forwardRef(
|
|
139
147
|
(props, forwardedRef) => {
|
|
140
148
|
const { __scopeSelect, ...itemIndicatorProps } = props;
|
|
141
|
-
const context =
|
|
149
|
+
const context = useSelectItemParentContext(ITEM_INDICATOR_NAME, __scopeSelect);
|
|
142
150
|
const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);
|
|
143
151
|
if (context.shouldRenderWebNative) {
|
|
144
152
|
return null;
|
|
@@ -193,15 +201,16 @@ const SelectGroup = React.forwardRef(
|
|
|
193
201
|
const { __scopeSelect, ...groupProps } = props;
|
|
194
202
|
const groupId = React.useId();
|
|
195
203
|
const context = useSelectContext(GROUP_NAME, __scopeSelect);
|
|
196
|
-
const
|
|
204
|
+
const itemParentContext = useSelectItemParentContext(GROUP_NAME, __scopeSelect);
|
|
205
|
+
const size = itemParentContext.size ?? "$true";
|
|
197
206
|
const nativeSelectRef = React.useRef(null);
|
|
198
207
|
const content = function() {
|
|
199
|
-
if (
|
|
208
|
+
if (itemParentContext.shouldRenderWebNative) {
|
|
200
209
|
return (
|
|
201
210
|
// @ts-expect-error until we support typing based on tag
|
|
202
211
|
<NativeSelectFrame asChild size={size} value={context.value}><NativeSelectTextFrame
|
|
203
212
|
onChange={(event) => {
|
|
204
|
-
|
|
213
|
+
itemParentContext.onChange(event.currentTarget.value);
|
|
205
214
|
}}
|
|
206
215
|
size={size}
|
|
207
216
|
ref={nativeSelectRef}
|
|
@@ -228,7 +237,7 @@ const LABEL_NAME = "SelectLabel";
|
|
|
228
237
|
const SelectLabel = React.forwardRef(
|
|
229
238
|
(props, forwardedRef) => {
|
|
230
239
|
const { __scopeSelect, ...labelProps } = props;
|
|
231
|
-
const context =
|
|
240
|
+
const context = useSelectItemParentContext(LABEL_NAME, __scopeSelect);
|
|
232
241
|
const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);
|
|
233
242
|
if (context.shouldRenderWebNative) {
|
|
234
243
|
return null;
|
|
@@ -306,6 +315,13 @@ const Select = withStaticProperties(
|
|
|
306
315
|
transition: true
|
|
307
316
|
});
|
|
308
317
|
const [activeIndex, setActiveIndex] = React.useState(0);
|
|
318
|
+
const [emitValue, valueSubscribe] = useEmitter();
|
|
319
|
+
const [emitActiveIndex, activeIndexSubscribe] = useEmitter();
|
|
320
|
+
React.useEffect(() => {
|
|
321
|
+
queueMicrotask(() => {
|
|
322
|
+
emitValue(value);
|
|
323
|
+
});
|
|
324
|
+
}, [value]);
|
|
309
325
|
const selectedIndexRef = React.useRef(null);
|
|
310
326
|
const activeIndexRef = React.useRef(null);
|
|
311
327
|
const listContentRef = React.useRef([]);
|
|
@@ -316,10 +332,25 @@ const Select = withStaticProperties(
|
|
|
316
332
|
activeIndexRef.current = activeIndex;
|
|
317
333
|
});
|
|
318
334
|
const shouldRenderWebNative = isWeb && (native === true || native === "web" || Array.isArray(native) && native.includes("web"));
|
|
319
|
-
return <AdaptProvider><
|
|
335
|
+
return <AdaptProvider><SelectItemParentProvider
|
|
336
|
+
scope={__scopeSelect}
|
|
337
|
+
size={sizeProp}
|
|
338
|
+
activeIndexSubscribe={activeIndexSubscribe}
|
|
339
|
+
valueSubscribe={valueSubscribe}
|
|
340
|
+
setOpen={setOpen}
|
|
341
|
+
onChange={React.useCallback((val) => {
|
|
342
|
+
setValue(val);
|
|
343
|
+
emitValue(val);
|
|
344
|
+
}, [])}
|
|
345
|
+
setSelectedIndex={setSelectedIndex}
|
|
346
|
+
setValueAtIndex={React.useCallback((index, value2) => {
|
|
347
|
+
listContentRef.current[index] = value2;
|
|
348
|
+
}, [])}
|
|
349
|
+
shouldRenderWebNative={shouldRenderWebNative}
|
|
350
|
+
><SelectProvider
|
|
351
|
+
scope={__scopeSelect}
|
|
320
352
|
dir={dir}
|
|
321
353
|
blockSelection={false}
|
|
322
|
-
size={sizeProp}
|
|
323
354
|
fallback={false}
|
|
324
355
|
selectedItem={selectedItem}
|
|
325
356
|
setSelectedItem={setSelectedItem}
|
|
@@ -328,20 +359,17 @@ const Select = withStaticProperties(
|
|
|
328
359
|
onValueNodeChange={setValueNode}
|
|
329
360
|
scopeKey={scopeKey}
|
|
330
361
|
sheetBreakpoint={sheetBreakpoint}
|
|
331
|
-
scope={__scopeSelect}
|
|
332
|
-
setValueAtIndex={(index, value2) => {
|
|
333
|
-
listContentRef.current[index] = value2;
|
|
334
|
-
}}
|
|
335
362
|
activeIndex={activeIndex}
|
|
336
|
-
onChange={setValue}
|
|
337
363
|
selectedIndex={selectedIndex}
|
|
338
|
-
setActiveIndex={
|
|
339
|
-
|
|
340
|
-
|
|
364
|
+
setActiveIndex={React.useCallback((index) => {
|
|
365
|
+
setActiveIndex(index);
|
|
366
|
+
if (typeof index === "number") {
|
|
367
|
+
emitActiveIndex(index);
|
|
368
|
+
}
|
|
369
|
+
}, [])}
|
|
341
370
|
value={value}
|
|
342
371
|
open={open}
|
|
343
372
|
native={native}
|
|
344
|
-
shouldRenderWebNative={shouldRenderWebNative}
|
|
345
373
|
><SelectSheetController onOpenChange={setOpen} __scopeSelect={__scopeSelect}>{shouldRenderWebNative ? children : <SelectImpl
|
|
346
374
|
activeIndexRef={activeIndexRef}
|
|
347
375
|
listContentRef={listContentRef}
|
|
@@ -349,7 +377,7 @@ const Select = withStaticProperties(
|
|
|
349
377
|
{...props}
|
|
350
378
|
open={open}
|
|
351
379
|
value={value}
|
|
352
|
-
>{children}</SelectImpl>}</SelectSheetController></SelectProvider></AdaptProvider>;
|
|
380
|
+
>{children}</SelectImpl>}</SelectSheetController></SelectProvider></SelectItemParentProvider></AdaptProvider>;
|
|
353
381
|
},
|
|
354
382
|
{
|
|
355
383
|
Adapt,
|
|
@@ -368,6 +396,22 @@ const Select = withStaticProperties(
|
|
|
368
396
|
Sheet: Sheet.Controlled
|
|
369
397
|
}
|
|
370
398
|
);
|
|
399
|
+
function useEmitter() {
|
|
400
|
+
const listeners = React.useRef();
|
|
401
|
+
if (!listeners.current) {
|
|
402
|
+
listeners.current = /* @__PURE__ */ new Set();
|
|
403
|
+
}
|
|
404
|
+
const emit = (value) => {
|
|
405
|
+
listeners.current.forEach((l) => l(value));
|
|
406
|
+
};
|
|
407
|
+
const subscribe = React.useCallback((listener) => {
|
|
408
|
+
listeners.current.add(listener);
|
|
409
|
+
return () => {
|
|
410
|
+
listeners.current.delete(listener);
|
|
411
|
+
};
|
|
412
|
+
}, []);
|
|
413
|
+
return [emit, subscribe];
|
|
414
|
+
}
|
|
371
415
|
Select.displayName = SELECT_NAME;
|
|
372
416
|
export {
|
|
373
417
|
Select,
|
package/dist/jsx/Select.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Select.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,OAAO,sBAAsB;AACtC,SAAS,uBAAuB;AAChC;AAAA,EAKE;AAAA,EACA;AAAA,EACA;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["SelectValue", "value"]
|
|
6
6
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FloatingOverlay, FloatingPortal } from "@floating-ui/react";
|
|
2
2
|
import { Theme, useIsTouchDevice, useThemeName } from "@tamagui/core";
|
|
3
3
|
import { FocusScope } from "@tamagui/focus-scope";
|
|
4
|
-
import { useSelectContext } from "./context";
|
|
4
|
+
import { useSelectContext, useSelectItemParentContext } from "./context";
|
|
5
5
|
import { useShowSelectSheet } from "./useSelectBreakpointActive";
|
|
6
6
|
const CONTENT_NAME = "SelectContent";
|
|
7
7
|
const SelectContent = ({
|
|
@@ -11,11 +11,12 @@ const SelectContent = ({
|
|
|
11
11
|
...focusScopeProps
|
|
12
12
|
}) => {
|
|
13
13
|
const context = useSelectContext(CONTENT_NAME, __scopeSelect);
|
|
14
|
+
const itemParentContext = useSelectItemParentContext(CONTENT_NAME, __scopeSelect);
|
|
14
15
|
const themeName = useThemeName();
|
|
15
16
|
const showSheet = useShowSelectSheet(context);
|
|
16
17
|
const contents = <Theme forceClassName name={themeName}>{children}</Theme>;
|
|
17
18
|
const touch = useIsTouchDevice();
|
|
18
|
-
if (
|
|
19
|
+
if (itemParentContext.shouldRenderWebNative) {
|
|
19
20
|
return <>{children}</>;
|
|
20
21
|
}
|
|
21
22
|
if (showSheet) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SelectContent.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,iBAAiB,sBAAsB;AAChD,SAAS,OAAO,kBAAkB,oBAAoB;AACtD,SAAS,kBAAmC;AAE5C,SAAS,
|
|
4
|
+
"mappings": "AAAA,SAAS,iBAAiB,sBAAsB;AAChD,SAAS,OAAO,kBAAkB,oBAAoB;AACtD,SAAS,kBAAmC;AAE5C,SAAS,kBAAkB,kCAAkC;AAE7D,SAAS,0BAA0B;AAMnC,MAAM,eAAe;AAEd,MAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,GAAG;AACL,MAA4C;AAC1C,QAAM,UAAU,iBAAiB,cAAc,aAAa;AAC5D,QAAM,oBAAoB,2BAA2B,cAAc,aAAa;AAChF,QAAM,YAAY,aAAa;AAC/B,QAAM,YAAY,mBAAmB,OAAO;AAE5C,QAAM,WACJ,CAAC,MAAM,eAAe,MAAM,YACzB,SACH,EAFC;AAKH,QAAM,QAAQ,iBAAiB;AAE/B,MAAI,kBAAkB,uBAAuB;AAC3C,WAAO,GAAG,SAAS;AAAA,EACrB;AAEA,MAAI,WAAW;AACb,QAAI,CAAC,QAAQ,MAAM;AACjB,aAAO;AAAA,IACT;AACA,WAAO,GAAG,SAAS;AAAA,EACrB;AAEA,SACE,CAAC,eACC,CAAC;AAAA,IACC,OAAO,EAAE,QAAQ,eAAe,QAAQ,OAAO,SAAS,OAAO;AAAA,IAC/D,YAAY,CAAC,CAAC,QAAQ,QAAQ,CAAC;AAAA,GAE/B,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,QAAQ,UAAU,kBAC3C,SACH,EAFC,WAGH,EAPC,gBAQH,EATC;AAWL;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/jsx/SelectImpl.js
CHANGED
|
@@ -20,9 +20,15 @@ import {
|
|
|
20
20
|
useIsomorphicLayoutEffect
|
|
21
21
|
} from "@tamagui/core";
|
|
22
22
|
import * as React from "react";
|
|
23
|
+
import { useMemo } from "react";
|
|
23
24
|
import { flushSync } from "react-dom";
|
|
24
25
|
import { SCROLL_ARROW_THRESHOLD, WINDOW_PADDING } from "./constants";
|
|
25
|
-
import {
|
|
26
|
+
import {
|
|
27
|
+
SelectItemParentProvider,
|
|
28
|
+
SelectProvider,
|
|
29
|
+
useSelectContext,
|
|
30
|
+
useSelectItemParentContext
|
|
31
|
+
} from "./context";
|
|
26
32
|
const SelectInlineImpl = (props) => {
|
|
27
33
|
const {
|
|
28
34
|
__scopeSelect,
|
|
@@ -32,14 +38,12 @@ const SelectInlineImpl = (props) => {
|
|
|
32
38
|
listContentRef
|
|
33
39
|
} = props;
|
|
34
40
|
const selectContext = useSelectContext("SelectSheetImpl", __scopeSelect);
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
forceUpdate
|
|
42
|
-
} = selectContext;
|
|
41
|
+
const selectItemParentContext = useSelectItemParentContext(
|
|
42
|
+
"SelectSheetImpl",
|
|
43
|
+
__scopeSelect
|
|
44
|
+
);
|
|
45
|
+
const { setActiveIndex, selectedIndex, activeIndex, forceUpdate } = selectContext;
|
|
46
|
+
const { setOpen, setSelectedIndex } = selectItemParentContext;
|
|
43
47
|
const [scrollTop, setScrollTop] = React.useState(0);
|
|
44
48
|
const touch = useIsTouchDevice();
|
|
45
49
|
const listItemsRef = React.useRef([]);
|
|
@@ -242,7 +246,7 @@ const SelectInlineImpl = (props) => {
|
|
|
242
246
|
};
|
|
243
247
|
}
|
|
244
248
|
}, [open, refs, setOpen]);
|
|
245
|
-
|
|
249
|
+
React.useEffect(() => {
|
|
246
250
|
if (open && controlledScrolling) {
|
|
247
251
|
if (activeIndex != null) {
|
|
248
252
|
listItemsRef.current[activeIndex]?.scrollIntoView({ block: "nearest" });
|
|
@@ -250,7 +254,7 @@ const SelectInlineImpl = (props) => {
|
|
|
250
254
|
}
|
|
251
255
|
setScrollTop(refs.floating.current?.scrollTop ?? 0);
|
|
252
256
|
}, [open, refs, controlledScrolling, activeIndex]);
|
|
253
|
-
|
|
257
|
+
React.useEffect(() => {
|
|
254
258
|
if (open && fallback) {
|
|
255
259
|
if (selectedIndex != null) {
|
|
256
260
|
listItemsRef.current[selectedIndex]?.scrollIntoView({ block: "nearest" });
|
|
@@ -267,27 +271,27 @@ const SelectInlineImpl = (props) => {
|
|
|
267
271
|
{...selectContext}
|
|
268
272
|
setScrollTop={setScrollTop}
|
|
269
273
|
setInnerOffset={setInnerOffset}
|
|
270
|
-
setValueAtIndex={(index, value) => {
|
|
271
|
-
listContentRef.current[index] = value;
|
|
272
|
-
}}
|
|
273
274
|
fallback={fallback}
|
|
274
|
-
interactions={interactionsContext}
|
|
275
275
|
floatingContext={context}
|
|
276
276
|
activeIndex={activeIndex}
|
|
277
277
|
canScrollDown={!!showDownArrow}
|
|
278
278
|
canScrollUp={!!showUpArrow}
|
|
279
279
|
controlledScrolling={controlledScrolling}
|
|
280
|
-
dataRef={context.dataRef}
|
|
281
|
-
listRef={listItemsRef}
|
|
282
280
|
blockSelection={blockSelection}
|
|
283
|
-
allowMouseUpRef={allowMouseUpRef}
|
|
284
281
|
upArrowRef={upArrowRef}
|
|
285
282
|
downArrowRef={downArrowRef}
|
|
286
|
-
selectTimeoutRef={selectTimeoutRef}
|
|
287
|
-
allowSelectRef={allowSelectRef}
|
|
288
283
|
update={update}
|
|
289
284
|
>
|
|
290
|
-
|
|
285
|
+
<SelectItemParentProvider
|
|
286
|
+
scope={__scopeSelect}
|
|
287
|
+
{...selectItemParentContext}
|
|
288
|
+
allowMouseUpRef={allowMouseUpRef}
|
|
289
|
+
allowSelectRef={allowSelectRef}
|
|
290
|
+
dataRef={context.dataRef}
|
|
291
|
+
interactions={interactionsContext}
|
|
292
|
+
listRef={listItemsRef}
|
|
293
|
+
selectTimeoutRef={selectTimeoutRef}
|
|
294
|
+
>{children}</SelectItemParentProvider>
|
|
291
295
|
{
|
|
292
296
|
/* {isFormControl ? (
|
|
293
297
|
<BubbleSelect
|
|
@@ -304,8 +308,19 @@ const SelectInlineImpl = (props) => {
|
|
|
304
308
|
}
|
|
305
309
|
</SelectProvider>;
|
|
306
310
|
};
|
|
307
|
-
const
|
|
311
|
+
const useMemoDebug = (fn, args) => {
|
|
312
|
+
let run = 1;
|
|
313
|
+
const res = useMemo(() => {
|
|
314
|
+
run = 0;
|
|
315
|
+
return fn();
|
|
316
|
+
}, args);
|
|
317
|
+
if (run === 1) {
|
|
318
|
+
console.log("saved a run");
|
|
319
|
+
}
|
|
320
|
+
return res;
|
|
321
|
+
};
|
|
308
322
|
export {
|
|
309
|
-
SelectInlineImpl
|
|
323
|
+
SelectInlineImpl,
|
|
324
|
+
useMemoDebug
|
|
310
325
|
};
|
|
311
326
|
//# sourceMappingURL=SelectImpl.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SelectImpl.tsx"],
|
|
4
|
-
"mappings": "AAAA;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,YAAY,WAAW;AACvB,SAAS,iBAAiB;AAE1B,SAAS,wBAAwB,sBAAsB;AACvD,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["props"]
|
|
6
6
|
}
|