@tamagui/focusable 1.0.1-beta.197 → 1.0.1-beta.199

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.
@@ -60,13 +60,14 @@ function focusableInputHOC(Component) {
60
60
  (0, import_registerFocusable.unregisterFocusable)(props.id);
61
61
  };
62
62
  }, [props.id]);
63
+ const onChangeText = (0, import_core.useEvent)((value) => {
64
+ var _a;
65
+ inputValue.current = value;
66
+ (_a = props.onChangeText) == null ? void 0 : _a.call(props, value);
67
+ });
63
68
  const finalProps = isInput ? {
64
69
  ...props,
65
- onChangeText(value) {
66
- var _a;
67
- inputValue.current = value;
68
- (_a = props.onChangeText) == null ? void 0 : _a.call(props, value);
69
- }
70
+ onChangeText
70
71
  } : props;
71
72
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
72
73
  ref: combinedRefs,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/focusableInputHOC.tsx"],
4
- "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { isTamaguiComponent } from '@tamagui/core'\nimport React, { useRef } from 'react'\nimport { forwardRef, useCallback, useEffect } from 'react'\n\nimport { registerFocusable, unregisterFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends Function>(Component: A): A {\n return forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n if (!props.id) return\n return () => {\n unregisterFocusable(props.id!)\n }\n }, [props.id])\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText(value) {\n inputValue.current = value\n props.onChangeText?.(value)\n },\n }\n : props\n\n return <Component ref={combinedRefs} {...finalProps} />\n }\n ) as any\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA6Da;AA7Db,0BAA4B;AAC5B,kBAAmC;AACnC,mBAA8B;AAC9B,IAAAA,gBAAmD;AAEnD,+BAAuD;AAEhD,SAAS,kBAAsC,WAAiB;AACrE,aAAO;AAAA,IACL,CACE,OAMA,QACG;AACH,YAAM,cAAU,gCAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,YAAM,iBAAa,qBAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AAEjE,YAAM,eAAW;AAAA,QACf,CAAC,UAAU;AACT,cAAI,CAAC,MAAM;AAAI;AACf,cAAI,CAAC;AAAO;AACZ,0DAAkB,MAAM,IAAI;AAAA,YAC1B,OAAO,MAAM;AAAA,YAEb,GAAI,WAAW;AAAA,cAEb,iBAAiB;AACf,sBAAM,MAAM;AACZ,oBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,wBAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,gBACjD;AAAA,cACF;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,CAAC,SAAS,MAAM,EAAE;AAAA,MACpB;AAEA,YAAM,mBAAe,iCAAY,KAAK,QAAQ;AAE9C,mCAAU,MAAM;AACd,YAAI,CAAC,MAAM;AAAI;AACf,eAAO,MAAM;AACX,4DAAoB,MAAM,EAAG;AAAA,QAC/B;AAAA,MACF,GAAG,CAAC,MAAM,EAAE,CAAC;AAEb,YAAM,aAAa,UACf;AAAA,QACE,GAAG;AAAA,QACH,aAAa,OAAO;AAtDhC;AAuDc,qBAAW,UAAU;AACrB,sBAAM,iBAAN,+BAAqB;AAAA,QACvB;AAAA,MACF,IACA;AAEJ,aAAO,4CAAC;AAAA,QAAU,KAAK;AAAA,QAAe,GAAG;AAAA,OAAY;AAAA,IACvD;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { isTamaguiComponent, useEvent } from '@tamagui/core'\nimport React, { useRef } from 'react'\nimport { forwardRef, useCallback, useEffect } from 'react'\n\nimport { registerFocusable, unregisterFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends Function>(Component: A): A {\n return forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n if (!props.id) return\n return () => {\n unregisterFocusable(props.id!)\n }\n }, [props.id])\n\n const onChangeText = useEvent((value) => {\n inputValue.current = value\n props.onChangeText?.(value)\n })\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText,\n }\n : props\n\n return <Component ref={combinedRefs} {...finalProps} />\n }\n ) as any\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA+Da;AA/Db,0BAA4B;AAC5B,kBAA6C;AAC7C,mBAA8B;AAC9B,IAAAA,gBAAmD;AAEnD,+BAAuD;AAEhD,SAAS,kBAAsC,WAAiB;AACrE,aAAO;AAAA,IACL,CACE,OAMA,QACG;AACH,YAAM,cAAU,gCAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,YAAM,iBAAa,qBAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AAEjE,YAAM,eAAW;AAAA,QACf,CAAC,UAAU;AACT,cAAI,CAAC,MAAM;AAAI;AACf,cAAI,CAAC;AAAO;AACZ,0DAAkB,MAAM,IAAI;AAAA,YAC1B,OAAO,MAAM;AAAA,YAEb,GAAI,WAAW;AAAA,cAEb,iBAAiB;AACf,sBAAM,MAAM;AACZ,oBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,wBAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,gBACjD;AAAA,cACF;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,CAAC,SAAS,MAAM,EAAE;AAAA,MACpB;AAEA,YAAM,mBAAe,iCAAY,KAAK,QAAQ;AAE9C,mCAAU,MAAM;AACd,YAAI,CAAC,MAAM;AAAI;AACf,eAAO,MAAM;AACX,4DAAoB,MAAM,EAAG;AAAA,QAC/B;AAAA,MACF,GAAG,CAAC,MAAM,EAAE,CAAC;AAEb,YAAM,mBAAe,sBAAS,CAAC,UAAU;AAnD/C;AAoDQ,mBAAW,UAAU;AACrB,oBAAM,iBAAN,+BAAqB;AAAA,MACvB,CAAC;AAED,YAAM,aAAa,UACf;AAAA,QACE,GAAG;AAAA,QACH;AAAA,MACF,IACA;AAEJ,aAAO,4CAAC;AAAA,QAAU,KAAK;AAAA,QAAe,GAAG;AAAA,OAAY;AAAA,IACvD;AAAA,EACF;AACF;",
6
6
  "names": ["import_react"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { composeRefs } from "@tamagui/compose-refs";
3
- import { isTamaguiComponent } from "@tamagui/core";
3
+ import { isTamaguiComponent, useEvent } from "@tamagui/core";
4
4
  import { useRef } from "react";
5
5
  import { forwardRef, useCallback, useEffect } from "react";
6
6
  import { registerFocusable, unregisterFocusable } from "./registerFocusable";
@@ -37,13 +37,14 @@ function focusableInputHOC(Component) {
37
37
  unregisterFocusable(props.id);
38
38
  };
39
39
  }, [props.id]);
40
+ const onChangeText = useEvent((value) => {
41
+ var _a;
42
+ inputValue.current = value;
43
+ (_a = props.onChangeText) == null ? void 0 : _a.call(props, value);
44
+ });
40
45
  const finalProps = isInput ? {
41
46
  ...props,
42
- onChangeText(value) {
43
- var _a;
44
- inputValue.current = value;
45
- (_a = props.onChangeText) == null ? void 0 : _a.call(props, value);
46
- }
47
+ onChangeText
47
48
  } : props;
48
49
  return /* @__PURE__ */ jsx(Component, {
49
50
  ref: combinedRefs,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/focusableInputHOC.tsx"],
4
- "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { isTamaguiComponent } from '@tamagui/core'\nimport React, { useRef } from 'react'\nimport { forwardRef, useCallback, useEffect } from 'react'\n\nimport { registerFocusable, unregisterFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends Function>(Component: A): A {\n return forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n if (!props.id) return\n return () => {\n unregisterFocusable(props.id!)\n }\n }, [props.id])\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText(value) {\n inputValue.current = value\n props.onChangeText?.(value)\n },\n }\n : props\n\n return <Component ref={combinedRefs} {...finalProps} />\n }\n ) as any\n}\n"],
5
- "mappings": "AA6Da;AA7Db,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AACnC,SAAgB,cAAc;AAC9B,SAAS,YAAY,aAAa,iBAAiB;AAEnD,SAAS,mBAAmB,2BAA2B;AAEhD,SAAS,kBAAsC,WAAiB;AACrE,SAAO;AAAA,IACL,CACE,OAMA,QACG;AACH,YAAM,UAAU,mBAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,YAAM,aAAa,OAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AAEjE,YAAM,WAAW;AAAA,QACf,CAAC,UAAU;AACT,cAAI,CAAC,MAAM;AAAI;AACf,cAAI,CAAC;AAAO;AACZ,4BAAkB,MAAM,IAAI;AAAA,YAC1B,OAAO,MAAM;AAAA,YAEb,GAAI,WAAW;AAAA,cAEb,iBAAiB;AACf,sBAAM,MAAM;AACZ,oBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,wBAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,gBACjD;AAAA,cACF;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,CAAC,SAAS,MAAM,EAAE;AAAA,MACpB;AAEA,YAAM,eAAe,YAAY,KAAK,QAAQ;AAE9C,gBAAU,MAAM;AACd,YAAI,CAAC,MAAM;AAAI;AACf,eAAO,MAAM;AACX,8BAAoB,MAAM,EAAG;AAAA,QAC/B;AAAA,MACF,GAAG,CAAC,MAAM,EAAE,CAAC;AAEb,YAAM,aAAa,UACf;AAAA,QACE,GAAG;AAAA,QACH,aAAa,OAAO;AAtDhC;AAuDc,qBAAW,UAAU;AACrB,sBAAM,iBAAN,+BAAqB;AAAA,QACvB;AAAA,MACF,IACA;AAEJ,aAAO,oBAAC;AAAA,QAAU,KAAK;AAAA,QAAe,GAAG;AAAA,OAAY;AAAA,IACvD;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { isTamaguiComponent, useEvent } from '@tamagui/core'\nimport React, { useRef } from 'react'\nimport { forwardRef, useCallback, useEffect } from 'react'\n\nimport { registerFocusable, unregisterFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends Function>(Component: A): A {\n return forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n if (!props.id) return\n return () => {\n unregisterFocusable(props.id!)\n }\n }, [props.id])\n\n const onChangeText = useEvent((value) => {\n inputValue.current = value\n props.onChangeText?.(value)\n })\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText,\n }\n : props\n\n return <Component ref={combinedRefs} {...finalProps} />\n }\n ) as any\n}\n"],
5
+ "mappings": "AA+Da;AA/Db,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB,gBAAgB;AAC7C,SAAgB,cAAc;AAC9B,SAAS,YAAY,aAAa,iBAAiB;AAEnD,SAAS,mBAAmB,2BAA2B;AAEhD,SAAS,kBAAsC,WAAiB;AACrE,SAAO;AAAA,IACL,CACE,OAMA,QACG;AACH,YAAM,UAAU,mBAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,YAAM,aAAa,OAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AAEjE,YAAM,WAAW;AAAA,QACf,CAAC,UAAU;AACT,cAAI,CAAC,MAAM;AAAI;AACf,cAAI,CAAC;AAAO;AACZ,4BAAkB,MAAM,IAAI;AAAA,YAC1B,OAAO,MAAM;AAAA,YAEb,GAAI,WAAW;AAAA,cAEb,iBAAiB;AACf,sBAAM,MAAM;AACZ,oBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,wBAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,gBACjD;AAAA,cACF;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,CAAC,SAAS,MAAM,EAAE;AAAA,MACpB;AAEA,YAAM,eAAe,YAAY,KAAK,QAAQ;AAE9C,gBAAU,MAAM;AACd,YAAI,CAAC,MAAM;AAAI;AACf,eAAO,MAAM;AACX,8BAAoB,MAAM,EAAG;AAAA,QAC/B;AAAA,MACF,GAAG,CAAC,MAAM,EAAE,CAAC;AAEb,YAAM,eAAe,SAAS,CAAC,UAAU;AAnD/C;AAoDQ,mBAAW,UAAU;AACrB,oBAAM,iBAAN,+BAAqB;AAAA,MACvB,CAAC;AAED,YAAM,aAAa,UACf;AAAA,QACE,GAAG;AAAA,QACH;AAAA,MACF,IACA;AAEJ,aAAO,oBAAC;AAAA,QAAU,KAAK;AAAA,QAAe,GAAG;AAAA,OAAY;AAAA,IACvD;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import { composeRefs } from "@tamagui/compose-refs";
2
- import { isTamaguiComponent } from "@tamagui/core";
2
+ import { isTamaguiComponent, useEvent } from "@tamagui/core";
3
3
  import { useRef } from "react";
4
4
  import { forwardRef, useCallback, useEffect } from "react";
5
5
  import { registerFocusable, unregisterFocusable } from "./registerFocusable";
@@ -36,12 +36,13 @@ function focusableInputHOC(Component) {
36
36
  unregisterFocusable(props.id);
37
37
  };
38
38
  }, [props.id]);
39
+ const onChangeText = useEvent((value) => {
40
+ inputValue.current = value;
41
+ props.onChangeText?.(value);
42
+ });
39
43
  const finalProps = isInput ? {
40
44
  ...props,
41
- onChangeText(value) {
42
- inputValue.current = value;
43
- props.onChangeText?.(value);
44
- }
45
+ onChangeText
45
46
  } : props;
46
47
  return <Component ref={combinedRefs} {...finalProps} />;
47
48
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/focusableInputHOC.tsx"],
4
- "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { isTamaguiComponent } from '@tamagui/core'\nimport React, { useRef } from 'react'\nimport { forwardRef, useCallback, useEffect } from 'react'\n\nimport { registerFocusable, unregisterFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends Function>(Component: A): A {\n return forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n if (!props.id) return\n return () => {\n unregisterFocusable(props.id!)\n }\n }, [props.id])\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText(value) {\n inputValue.current = value\n props.onChangeText?.(value)\n },\n }\n : props\n\n return <Component ref={combinedRefs} {...finalProps} />\n }\n ) as any\n}\n"],
5
- "mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AACnC,SAAgB,cAAc;AAC9B,SAAS,YAAY,aAAa,iBAAiB;AAEnD,SAAS,mBAAmB,2BAA2B;AAEhD,SAAS,kBAAsC,WAAiB;AACrE,SAAO;AAAA,IACL,CACE,OAMA,QACG;AACH,YAAM,UAAU,mBAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,YAAM,aAAa,OAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AAEjE,YAAM,WAAW;AAAA,QACf,CAAC,UAAU;AACT,cAAI,CAAC,MAAM;AAAI;AACf,cAAI,CAAC;AAAO;AACZ,4BAAkB,MAAM,IAAI;AAAA,YAC1B,OAAO,MAAM;AAAA,YAEb,GAAI,WAAW;AAAA,cAEb,iBAAiB;AACf,sBAAM,MAAM;AACZ,oBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,wBAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,gBACjD;AAAA,cACF;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,CAAC,SAAS,MAAM,EAAE;AAAA,MACpB;AAEA,YAAM,eAAe,YAAY,KAAK,QAAQ;AAE9C,gBAAU,MAAM;AACd,YAAI,CAAC,MAAM;AAAI;AACf,eAAO,MAAM;AACX,8BAAoB,MAAM,EAAG;AAAA,QAC/B;AAAA,MACF,GAAG,CAAC,MAAM,EAAE,CAAC;AAEb,YAAM,aAAa,UACf;AAAA,QACE,GAAG;AAAA,QACH,aAAa,OAAO;AAClB,qBAAW,UAAU;AACrB,gBAAM,eAAe,KAAK;AAAA,QAC5B;AAAA,MACF,IACA;AAEJ,aAAO,CAAC,UAAU,KAAK,kBAAkB,YAAY;AAAA,IACvD;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { isTamaguiComponent, useEvent } from '@tamagui/core'\nimport React, { useRef } from 'react'\nimport { forwardRef, useCallback, useEffect } from 'react'\n\nimport { registerFocusable, unregisterFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends Function>(Component: A): A {\n return forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n if (!props.id) return\n return () => {\n unregisterFocusable(props.id!)\n }\n }, [props.id])\n\n const onChangeText = useEvent((value) => {\n inputValue.current = value\n props.onChangeText?.(value)\n })\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText,\n }\n : props\n\n return <Component ref={combinedRefs} {...finalProps} />\n }\n ) as any\n}\n"],
5
+ "mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB,gBAAgB;AAC7C,SAAgB,cAAc;AAC9B,SAAS,YAAY,aAAa,iBAAiB;AAEnD,SAAS,mBAAmB,2BAA2B;AAEhD,SAAS,kBAAsC,WAAiB;AACrE,SAAO;AAAA,IACL,CACE,OAMA,QACG;AACH,YAAM,UAAU,mBAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,YAAM,aAAa,OAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AAEjE,YAAM,WAAW;AAAA,QACf,CAAC,UAAU;AACT,cAAI,CAAC,MAAM;AAAI;AACf,cAAI,CAAC;AAAO;AACZ,4BAAkB,MAAM,IAAI;AAAA,YAC1B,OAAO,MAAM;AAAA,YAEb,GAAI,WAAW;AAAA,cAEb,iBAAiB;AACf,sBAAM,MAAM;AACZ,oBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,wBAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,gBACjD;AAAA,cACF;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,CAAC,SAAS,MAAM,EAAE;AAAA,MACpB;AAEA,YAAM,eAAe,YAAY,KAAK,QAAQ;AAE9C,gBAAU,MAAM;AACd,YAAI,CAAC,MAAM;AAAI;AACf,eAAO,MAAM;AACX,8BAAoB,MAAM,EAAG;AAAA,QAC/B;AAAA,MACF,GAAG,CAAC,MAAM,EAAE,CAAC;AAEb,YAAM,eAAe,SAAS,CAAC,UAAU;AACvC,mBAAW,UAAU;AACrB,cAAM,eAAe,KAAK;AAAA,MAC5B,CAAC;AAED,YAAM,aAAa,UACf;AAAA,QACE,GAAG;AAAA,QACH;AAAA,MACF,IACA;AAEJ,aAAO,CAAC,UAAU,KAAK,kBAAkB,YAAY;AAAA,IACvD;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/focusable",
3
- "version": "1.0.1-beta.197",
3
+ "version": "1.0.1-beta.199",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.ts",
6
6
  "types": "./types/index.d.ts",
@@ -22,15 +22,15 @@
22
22
  "clean:build": "tamagui-build clean:build"
23
23
  },
24
24
  "dependencies": {
25
- "@tamagui/compose-refs": "^1.0.1-beta.197",
26
- "@tamagui/core": "^1.0.1-beta.197"
25
+ "@tamagui/compose-refs": "^1.0.1-beta.199",
26
+ "@tamagui/core": "^1.0.1-beta.199"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "react": "*",
30
30
  "react-dom": "*"
31
31
  },
32
32
  "devDependencies": {
33
- "@tamagui/build": "^1.0.1-beta.197",
33
+ "@tamagui/build": "^1.0.1-beta.199",
34
34
  "react": "*",
35
35
  "react-dom": "*"
36
36
  },
@@ -1,5 +1,5 @@
1
1
  import { composeRefs } from '@tamagui/compose-refs'
2
- import { isTamaguiComponent } from '@tamagui/core'
2
+ import { isTamaguiComponent, useEvent } from '@tamagui/core'
3
3
  import React, { useRef } from 'react'
4
4
  import { forwardRef, useCallback, useEffect } from 'react'
5
5
 
@@ -49,13 +49,15 @@ export function focusableInputHOC<A extends Function>(Component: A): A {
49
49
  }
50
50
  }, [props.id])
51
51
 
52
+ const onChangeText = useEvent((value) => {
53
+ inputValue.current = value
54
+ props.onChangeText?.(value)
55
+ })
56
+
52
57
  const finalProps = isInput
53
58
  ? {
54
59
  ...props,
55
- onChangeText(value) {
56
- inputValue.current = value
57
- props.onChangeText?.(value)
58
- },
60
+ onChangeText,
59
61
  }
60
62
  : props
61
63