@tamagui/adapt 1.106.0 → 1.108.0

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/Adapt.js CHANGED
@@ -20,7 +20,7 @@ __export(Adapt_exports, {
20
20
  useAdaptParent: () => useAdaptParent
21
21
  });
22
22
  module.exports = __toCommonJS(Adapt_exports);
23
- var import_constants = require("@tamagui/constants"), import_constants2 = require("@tamagui/constants"), import_core = require("@tamagui/core"), import_helpers = require("@tamagui/helpers"), import_react = require("react"), import_jsx_runtime = require("react/jsx-runtime");
23
+ var import_constants = require("@tamagui/constants"), import_core = require("@tamagui/core"), import_helpers = require("@tamagui/helpers"), import_react = require("react"), import_jsx_runtime = require("react/jsx-runtime");
24
24
  const AdaptParentContext = (0, import_react.createContext)(null), AdaptContents = (props) => {
25
25
  const context = (0, import_react.useContext)(AdaptParentContext);
26
26
  if (!context?.Contents)
@@ -50,10 +50,10 @@ const useAdaptParent = ({
50
50
  }, Adapt = (0, import_helpers.withStaticProperties)(
51
51
  function({ platform, when, children }) {
52
52
  const context = (0, import_react.useContext)(AdaptParentContext), media = (0, import_core.useMedia)();
53
- let enabled = !platform;
54
- return platform === "touch" && (enabled = import_constants2.isTouchable), platform === "native" && (enabled = !import_constants.isWeb), platform === "web" && (enabled = import_constants.isWeb), platform === "ios" && (enabled = import_constants.isIos), platform === "android" && (enabled = import_constants.isAndroid), when && !media[when] && (enabled = !1), (0, import_constants.useIsomorphicLayoutEffect)(() => {
53
+ let enabled = !1;
54
+ return typeof when == "function" ? enabled = when({ media }) : (enabled = !platform, platform === "touch" && (enabled = import_constants.isTouchable), platform === "native" && (enabled = !import_constants.isWeb), platform === "web" && (enabled = import_constants.isWeb), platform === "ios" && (enabled = import_constants.isIos), platform === "android" && (enabled = import_constants.isAndroid), when && !media[when] && (enabled = !1)), (0, import_constants.useIsomorphicLayoutEffect)(() => {
55
55
  enabled && context?.setWhen(when || enabled);
56
- }, [when, context, enabled]), enabled ? children : null;
56
+ }, [when, context, enabled]), enabled ? typeof children == "function" ? children({ enabled, media }) : children : null;
57
57
  },
58
58
  {
59
59
  Contents: AdaptContents
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Adapt.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAmE,+BACnEA,oBAA4B,+BAE5B,cAAyB,0BACzB,iBAAqC,6BACrC,eAOO,kBAkDC;AAhCD,MAAM,yBAAqB,4BAA0C,IAAI,GAGnE,gBAAgB,CAAC,UAAe;AAC3C,QAAM,cAAU,yBAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR,QAAQ,IAAI,aAAa,eACrB,8CACA;AAAA,IACN;AAEF,aAAO,4BAAc,QAAQ,UAAU,KAAK;AAC9C;AAEA,cAAc,qBAAqB;AAE5B,MAAM,iBAAiB,CAAC;AAAA,EAC7B;AACF,MAEM;AACJ,QAAM,CAAC,MAAM,OAAO,QAAI,uBAAe,IAAI;AAmB3C,SAAO;AAAA,IACL,mBAlBoB,sBAAQ,MAAM;AAClC,YAAM,UAA+B;AAAA,QACnC;AAAA,QACA;AAAA,MACF;AAEA,eAAS,kBAAkB,OAA2B;AACpD,eACE,4CAAC,mBAAmB,UAAnB,EAA4B,OAAO,SACjC,gBAAM,UACT;AAAA,MAEJ;AAEA,aAAO;AAAA,IACT,GAAG,CAAC,QAAQ,CAAC;AAAA,IAIX;AAAA,EACF;AACF,GAEa,YAAQ;AAAA,EACnB,SAAe,EAAE,UAAU,MAAM,SAAS,GAAe;AACvD,UAAM,cAAU,yBAAW,kBAAkB,GACvC,YAAQ,sBAAS;AAEvB,QAAI,UAAU,CAAC;AAgBf,WAfI,aAAa,YAAS,UAAU,gCAChC,aAAa,aAAU,UAAU,CAAC,yBAClC,aAAa,UAAO,UAAU,yBAC9B,aAAa,UAAO,UAAU,yBAC9B,aAAa,cAAW,UAAU,6BAElC,QAAQ,CAAC,MAAM,IAAI,MACrB,UAAU,SAGZ,4CAA0B,MAAM;AAC9B,MAAK,WACL,SAAS,QAAS,QAAQ,OAAgB;AAAA,IAC5C,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,GAEtB,UAIE,WAHE;AAAA,EAIX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,EACZ;AACF;",
5
- "names": ["import_constants"]
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAMO,+BAEP,cAAyB,0BACzB,iBAAqC,6BACrC,eAA4E,kBAoDpE;AAhCD,MAAM,yBAAqB,4BAA0C,IAAI,GAGnE,gBAAgB,CAAC,UAAe;AAC3C,QAAM,cAAU,yBAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR,QAAQ,IAAI,aAAa,eACrB,8CACA;AAAA,IACN;AAEF,aAAO,4BAAc,QAAQ,UAAU,KAAK;AAC9C;AAEA,cAAc,qBAAqB;AAE5B,MAAM,iBAAiB,CAAC;AAAA,EAC7B;AACF,MAEM;AACJ,QAAM,CAAC,MAAM,OAAO,QAAI,uBAAe,IAAI;AAmB3C,SAAO;AAAA,IACL,mBAlBoB,sBAAQ,MAAM;AAClC,YAAM,UAA+B;AAAA,QACnC;AAAA,QACA;AAAA,MACF;AAEA,eAAS,kBAAkB,OAA2B;AACpD,eACE,4CAAC,mBAAmB,UAAnB,EAA4B,OAAO,SACjC,gBAAM,UACT;AAAA,MAEJ;AAEA,aAAO;AAAA,IACT,GAAG,CAAC,QAAQ,CAAC;AAAA,IAIX;AAAA,EACF;AACF,GAEa,YAAQ;AAAA,EACnB,SAAe,EAAE,UAAU,MAAM,SAAS,GAAe;AACvD,UAAM,cAAU,yBAAW,kBAAkB,GACvC,YAAQ,sBAAS;AAEvB,QAAI,UAAU;AAuBd,WArBI,OAAO,QAAS,aAClB,UAAU,KAAK,EAAE,MAAM,CAAC,KAExB,UAAU,CAAC,UAEP,aAAa,YAAS,UAAU,+BAChC,aAAa,aAAU,UAAU,CAAC,yBAClC,aAAa,UAAO,UAAU,yBAC9B,aAAa,UAAO,UAAU,yBAC9B,aAAa,cAAW,UAAU,6BAElC,QAAQ,CAAC,MAAM,IAAI,MACrB,UAAU,UAId,4CAA0B,MAAM;AAC9B,MAAK,WACL,SAAS,QAAS,QAAQ,OAAgB;AAAA,IAC5C,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,GAEtB,UAID,OAAO,YAAa,aACf,SAAS,EAAE,SAAS,MAAM,CAAC,IAG7B,WAPE;AAAA,EAQX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,EACZ;AACF;",
5
+ "names": []
6
6
  }
@@ -21,7 +21,7 @@ __export(Adapt_exports, {
21
21
  useAdaptParent: () => useAdaptParent
22
22
  });
23
23
  module.exports = __toCommonJS(Adapt_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime"), import_constants = require("@tamagui/constants"), import_constants2 = require("@tamagui/constants"), import_core = require("@tamagui/core"), import_helpers = require("@tamagui/helpers"), import_react = require("react");
24
+ var import_jsx_runtime = require("react/jsx-runtime"), import_constants = require("@tamagui/constants"), import_core = require("@tamagui/core"), import_helpers = require("@tamagui/helpers"), import_react = require("react");
25
25
  function _array_like_to_array(arr, len) {
26
26
  (len == null || len > arr.length) && (len = arr.length);
27
27
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
@@ -90,14 +90,19 @@ var useAdaptParent = function(param) {
90
90
  when
91
91
  };
92
92
  }, Adapt = (0, import_helpers.withStaticProperties)(function(param) {
93
- var platform = param.platform, when = param.when, children = param.children, context = (0, import_react.useContext)(AdaptParentContext), media = (0, import_core.useMedia)(), enabled = !platform;
94
- return platform === "touch" && (enabled = import_constants2.isTouchable), platform === "native" && (enabled = !import_constants.isWeb), platform === "web" && (enabled = import_constants.isWeb), platform === "ios" && (enabled = import_constants.isIos), platform === "android" && (enabled = import_constants.isAndroid), when && !media[when] && (enabled = !1), (0, import_constants.useIsomorphicLayoutEffect)(function() {
93
+ var platform = param.platform, when = param.when, children = param.children, context = (0, import_react.useContext)(AdaptParentContext), media = (0, import_core.useMedia)(), enabled = !1;
94
+ return typeof when == "function" ? enabled = when({
95
+ media
96
+ }) : (enabled = !platform, platform === "touch" && (enabled = import_constants.isTouchable), platform === "native" && (enabled = !import_constants.isWeb), platform === "web" && (enabled = import_constants.isWeb), platform === "ios" && (enabled = import_constants.isIos), platform === "android" && (enabled = import_constants.isAndroid), when && !media[when] && (enabled = !1)), (0, import_constants.useIsomorphicLayoutEffect)(function() {
95
97
  enabled && (context == null || context.setWhen(when || enabled));
96
98
  }, [
97
99
  when,
98
100
  context,
99
101
  enabled
100
- ]), enabled ? children : null;
102
+ ]), enabled ? typeof children == "function" ? children({
103
+ enabled,
104
+ media
105
+ }) : children : null;
101
106
  }, {
102
107
  Contents: AdaptContents
103
108
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/ui/adapt/src/Adapt.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;uDAAA,mBAAmE,+BACnEA,oBAA4B,+BAE5B,cAAyB,0BACzB,iBAAqC,6BACrC,eAOO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAMC,qBAAqBC,gDAA0C,IAAA,GAG/DC,gBAAgB,SAACC,OAAAA;AAC5B,MAAMC,cAAUC,yBAAWL,kBAAAA;AAC3B,MAAI,EAACI,WAAAA,QAAAA,QAASE;AACZ,UAAM,IAAIC,MACRC,QAAQC,IAAIC,aAAa,eACpB,8CACA,0GAAA;AAGT,SAAOC,gDAAcP,QAAQE,UAAUH,KAAAA;AACzC;AAEAD,cAAcU,qBAAqB;AAE5B,IAAMC,iBAAiB,SAAA,OAAA;MAC5BP,WAAAA,MAAAA,UAIwBQ,YAAAA,qBAAAA,uBAAe,IAAA,GAAA,CAAA,GAAhCC,OAAiBD,UAAAA,CAAAA,GAAXE,UAAWF,UAAAA,CAAAA,GAElBG,oBAAgBC,sBAAQ,WAAA;QAMnBC,oBAAT,SAA2BhB,OAAyB;AAClD,aACE,uCAAAiB,KAACpB,mBAAmBqB,UAAQ;QAACC,OAAOlB;kBACjCD,MAAMoB;;IAGb,GAXMnB,UAA+B;MACnCE;MACAU;IACF;AAUA,WAAOG;EACT,GAAG;IAACb;GAAS;AAEb,SAAO;IACLW;IACAF;EACF;AACF,GAEaS,YAAQC,qCACnB,SAAe,OAAwC;MAAtCC,WAAF,MAAEA,UAAUX,OAAZ,MAAYA,MAAMQ,WAAlB,MAAkBA,UACzBnB,cAAUC,yBAAWL,kBAAAA,GACrB2B,YAAQC,sBAAAA,GAEVC,UAAU,CAACH;AAgBf,SAfIA,aAAa,YAASG,UAAUC,gCAChCJ,aAAa,aAAUG,UAAU,CAACE,yBAClCL,aAAa,UAAOG,UAAUE,yBAC9BL,aAAa,UAAOG,UAAUG,yBAC9BN,aAAa,cAAWG,UAAUI,6BAElClB,QAAQ,CAACY,MAAMZ,IAAAA,MACjBc,UAAU,SAGZK,4CAA0B,WAAA;AACxB,IAAKL,YACLzB,WAAAA,QAAAA,QAASY,QAASD,QAAQc,OAAAA;EAC5B,GAAG;IAACd;IAAMX;IAASyB;GAAQ,GAEtBA,UAIEN,WAHE;AAIX,GACA;EACEjB,UAAUJ;AACZ,CAAA;",
5
- "names": ["import_constants", "AdaptParentContext", "createContext", "AdaptContents", "props", "context", "useContext", "Contents", "Error", "process", "env", "NODE_ENV", "createElement", "shouldForwardSpace", "useAdaptParent", "useState", "when", "setWhen", "AdaptProvider", "useMemo", "AdaptProviderView", "_jsx", "Provider", "value", "children", "Adapt", "withStaticProperties", "platform", "media", "useMedia", "enabled", "isTouchable", "isWeb", "isIos", "isAndroid", "useIsomorphicLayoutEffect"]
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;uDAAA,mBAMO,+BAEP,cAAyB,0BACzB,iBAAqC,6BACrC,eAA4E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBrE,IAAMA,qBAAqBC,gDAA0C,IAAA,GAG/DC,gBAAgB,SAACC,OAAAA;AAC5B,MAAMC,cAAUC,yBAAWL,kBAAAA;AAC3B,MAAI,EAACI,WAAAA,QAAAA,QAASE;AACZ,UAAM,IAAIC,MACRC,QAAQC,IAAIC,aAAa,eACpB,8CACA,0GAAA;AAGT,SAAOC,gDAAcP,QAAQE,UAAUH,KAAAA;AACzC;AAEAD,cAAcU,qBAAqB;AAE5B,IAAMC,iBAAiB,SAAA,OAAA;MAC5BP,WAAAA,MAAAA,UAIwBQ,YAAAA,qBAAAA,uBAAe,IAAA,GAAA,CAAA,GAAhCC,OAAiBD,UAAAA,CAAAA,GAAXE,UAAWF,UAAAA,CAAAA,GAElBG,oBAAgBC,sBAAQ,WAAA;QAMnBC,oBAAT,SAA2BhB,OAAyB;AAClD,aACE,uCAAAiB,KAACpB,mBAAmBqB,UAAQ;QAACC,OAAOlB;kBACjCD,MAAMoB;;IAGb,GAXMnB,UAA+B;MACnCE;MACAU;IACF;AAUA,WAAOG;EACT,GAAG;IAACb;GAAS;AAEb,SAAO;IACLW;IACAF;EACF;AACF,GAEaS,YAAQC,qCACnB,SAAe,OAAwC;MAAtCC,WAAF,MAAEA,UAAUX,OAAZ,MAAYA,MAAMQ,WAAlB,MAAkBA,UACzBnB,cAAUC,yBAAWL,kBAAAA,GACrB2B,YAAQC,sBAAAA,GAEVC,UAAU;AAuBd,SArBI,OAAOd,QAAS,aAClBc,UAAUd,KAAK;IAAEY;EAAM,CAAA,KAEvBE,UAAU,CAACH,UAEPA,aAAa,YAASG,UAAUC,+BAChCJ,aAAa,aAAUG,UAAU,CAACE,yBAClCL,aAAa,UAAOG,UAAUE,yBAC9BL,aAAa,UAAOG,UAAUG,yBAC9BN,aAAa,cAAWG,UAAUI,6BAElClB,QAAQ,CAACY,MAAMZ,IAAAA,MACjBc,UAAU,UAIdK,4CAA0B,WAAA;AACxB,IAAKL,YACLzB,WAAAA,QAAAA,QAASY,QAASD,QAAQc,OAAAA;EAC5B,GAAG;IAACd;IAAMX;IAASyB;GAAQ,GAEtBA,UAID,OAAON,YAAa,aACfA,SAAS;IAAEM;IAASF;EAAM,CAAA,IAG5BJ,WAPE;AAQX,GACA;EACEjB,UAAUJ;AACZ,CAAA;",
5
+ "names": ["AdaptParentContext", "createContext", "AdaptContents", "props", "context", "useContext", "Contents", "Error", "process", "env", "NODE_ENV", "createElement", "shouldForwardSpace", "useAdaptParent", "useState", "when", "setWhen", "AdaptProvider", "useMemo", "AdaptProviderView", "_jsx", "Provider", "value", "children", "Adapt", "withStaticProperties", "platform", "media", "useMedia", "enabled", "isTouchable", "isWeb", "isIos", "isAndroid", "useIsomorphicLayoutEffect"]
6
6
  }
package/dist/esm/Adapt.js CHANGED
@@ -1,14 +1,13 @@
1
- import { isAndroid, isIos, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
2
- import { isTouchable } from "@tamagui/constants";
1
+ import {
2
+ isAndroid,
3
+ isIos,
4
+ isTouchable,
5
+ isWeb,
6
+ useIsomorphicLayoutEffect
7
+ } from "@tamagui/constants";
3
8
  import { useMedia } from "@tamagui/core";
4
9
  import { withStaticProperties } from "@tamagui/helpers";
5
- import {
6
- createContext,
7
- createElement,
8
- useContext,
9
- useMemo,
10
- useState
11
- } from "react";
10
+ import { createContext, createElement, useContext, useMemo, useState } from "react";
12
11
  import { jsx } from "react/jsx-runtime";
13
12
  const AdaptParentContext = createContext(null), AdaptContents = (props) => {
14
13
  const context = useContext(AdaptParentContext);
@@ -39,10 +38,10 @@ const useAdaptParent = ({
39
38
  }, Adapt = withStaticProperties(
40
39
  function({ platform, when, children }) {
41
40
  const context = useContext(AdaptParentContext), media = useMedia();
42
- let enabled = !platform;
43
- return platform === "touch" && (enabled = isTouchable), platform === "native" && (enabled = !isWeb), platform === "web" && (enabled = isWeb), platform === "ios" && (enabled = isIos), platform === "android" && (enabled = isAndroid), when && !media[when] && (enabled = !1), useIsomorphicLayoutEffect(() => {
41
+ let enabled = !1;
42
+ return typeof when == "function" ? enabled = when({ media }) : (enabled = !platform, platform === "touch" && (enabled = isTouchable), platform === "native" && (enabled = !isWeb), platform === "web" && (enabled = isWeb), platform === "ios" && (enabled = isIos), platform === "android" && (enabled = isAndroid), when && !media[when] && (enabled = !1)), useIsomorphicLayoutEffect(() => {
44
43
  enabled && context?.setWhen(when || enabled);
45
- }, [when, context, enabled]), enabled ? children : null;
44
+ }, [when, context, enabled]), enabled ? typeof children == "function" ? children({ enabled, media }) : children : null;
46
45
  },
47
46
  {
48
47
  Contents: AdaptContents
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Adapt.tsx"],
4
- "mappings": "AAAA,SAAS,WAAW,OAAO,OAAO,iCAAiC;AACnE,SAAS,mBAAmB;AAE5B,SAAS,gBAAgB;AACzB,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAkDC;AAhCD,MAAM,qBAAqB,cAA0C,IAAI,GAGnE,gBAAgB,CAAC,UAAe;AAC3C,QAAM,UAAU,WAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR,QAAQ,IAAI,aAAa,eACrB,8CACA;AAAA,IACN;AAEF,SAAO,cAAc,QAAQ,UAAU,KAAK;AAC9C;AAEA,cAAc,qBAAqB;AAE5B,MAAM,iBAAiB,CAAC;AAAA,EAC7B;AACF,MAEM;AACJ,QAAM,CAAC,MAAM,OAAO,IAAI,SAAe,IAAI;AAmB3C,SAAO;AAAA,IACL,eAlBoB,QAAQ,MAAM;AAClC,YAAM,UAA+B;AAAA,QACnC;AAAA,QACA;AAAA,MACF;AAEA,eAAS,kBAAkB,OAA2B;AACpD,eACE,oBAAC,mBAAmB,UAAnB,EAA4B,OAAO,SACjC,gBAAM,UACT;AAAA,MAEJ;AAEA,aAAO;AAAA,IACT,GAAG,CAAC,QAAQ,CAAC;AAAA,IAIX;AAAA,EACF;AACF,GAEa,QAAQ;AAAA,EACnB,SAAe,EAAE,UAAU,MAAM,SAAS,GAAe;AACvD,UAAM,UAAU,WAAW,kBAAkB,GACvC,QAAQ,SAAS;AAEvB,QAAI,UAAU,CAAC;AAgBf,WAfI,aAAa,YAAS,UAAU,cAChC,aAAa,aAAU,UAAU,CAAC,QAClC,aAAa,UAAO,UAAU,QAC9B,aAAa,UAAO,UAAU,QAC9B,aAAa,cAAW,UAAU,YAElC,QAAQ,CAAC,MAAM,IAAI,MACrB,UAAU,KAGZ,0BAA0B,MAAM;AAC9B,MAAK,WACL,SAAS,QAAS,QAAQ,OAAgB;AAAA,IAC5C,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,GAEtB,UAIE,WAHE;AAAA,EAIX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,EACZ;AACF;",
4
+ "mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,gBAAgB;AACzB,SAAS,4BAA4B;AACrC,SAAS,eAAe,eAAe,YAAY,SAAS,gBAAgB;AAoDpE;AAhCD,MAAM,qBAAqB,cAA0C,IAAI,GAGnE,gBAAgB,CAAC,UAAe;AAC3C,QAAM,UAAU,WAAW,kBAAkB;AAC7C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR,QAAQ,IAAI,aAAa,eACrB,8CACA;AAAA,IACN;AAEF,SAAO,cAAc,QAAQ,UAAU,KAAK;AAC9C;AAEA,cAAc,qBAAqB;AAE5B,MAAM,iBAAiB,CAAC;AAAA,EAC7B;AACF,MAEM;AACJ,QAAM,CAAC,MAAM,OAAO,IAAI,SAAe,IAAI;AAmB3C,SAAO;AAAA,IACL,eAlBoB,QAAQ,MAAM;AAClC,YAAM,UAA+B;AAAA,QACnC;AAAA,QACA;AAAA,MACF;AAEA,eAAS,kBAAkB,OAA2B;AACpD,eACE,oBAAC,mBAAmB,UAAnB,EAA4B,OAAO,SACjC,gBAAM,UACT;AAAA,MAEJ;AAEA,aAAO;AAAA,IACT,GAAG,CAAC,QAAQ,CAAC;AAAA,IAIX;AAAA,EACF;AACF,GAEa,QAAQ;AAAA,EACnB,SAAe,EAAE,UAAU,MAAM,SAAS,GAAe;AACvD,UAAM,UAAU,WAAW,kBAAkB,GACvC,QAAQ,SAAS;AAEvB,QAAI,UAAU;AAuBd,WArBI,OAAO,QAAS,aAClB,UAAU,KAAK,EAAE,MAAM,CAAC,KAExB,UAAU,CAAC,UAEP,aAAa,YAAS,UAAU,cAChC,aAAa,aAAU,UAAU,CAAC,QAClC,aAAa,UAAO,UAAU,QAC9B,aAAa,UAAO,UAAU,QAC9B,aAAa,cAAW,UAAU,YAElC,QAAQ,CAAC,MAAM,IAAI,MACrB,UAAU,MAId,0BAA0B,MAAM;AAC9B,MAAK,WACL,SAAS,QAAS,QAAQ,OAAgB;AAAA,IAC5C,GAAG,CAAC,MAAM,SAAS,OAAO,CAAC,GAEtB,UAID,OAAO,YAAa,aACf,SAAS,EAAE,SAAS,MAAM,CAAC,IAG7B,WAPE;AAAA,EAQX;AAAA,EACA;AAAA,IACE,UAAU;AAAA,EACZ;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,5 +1,4 @@
1
- import { isAndroid, isIos, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
2
- import { isTouchable } from "@tamagui/constants";
1
+ import { isAndroid, isIos, isTouchable, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
3
2
  import { useMedia } from "@tamagui/core";
4
3
  import { withStaticProperties } from "@tamagui/helpers";
5
4
  import { createContext, createElement, useContext, useMemo, useState } from "react";
@@ -39,10 +38,15 @@ const useAdaptParent = ({
39
38
  }) {
40
39
  const context = useContext(AdaptParentContext),
41
40
  media = useMedia();
42
- let enabled = !platform;
43
- return platform === "touch" && (enabled = isTouchable), platform === "native" && (enabled = !isWeb), platform === "web" && (enabled = isWeb), platform === "ios" && (enabled = isIos), platform === "android" && (enabled = isAndroid), when && !media[when] && (enabled = !1), useIsomorphicLayoutEffect(() => {
41
+ let enabled = !1;
42
+ return typeof when == "function" ? enabled = when({
43
+ media
44
+ }) : (enabled = !platform, platform === "touch" && (enabled = isTouchable), platform === "native" && (enabled = !isWeb), platform === "web" && (enabled = isWeb), platform === "ios" && (enabled = isIos), platform === "android" && (enabled = isAndroid), when && !media[when] && (enabled = !1)), useIsomorphicLayoutEffect(() => {
44
45
  enabled && context?.setWhen(when || enabled);
45
- }, [when, context, enabled]), enabled ? children : null;
46
+ }, [when, context, enabled]), enabled ? typeof children == "function" ? children({
47
+ enabled,
48
+ media
49
+ }) : children : null;
46
50
  }, {
47
51
  Contents: AdaptContents
48
52
  });
@@ -1 +1 @@
1
- {"version":3,"names":["isAndroid","isIos","isWeb","useIsomorphicLayoutEffect","isTouchable","useMedia","withStaticProperties","createContext","createElement","useContext","useMemo","useState","jsx","AdaptParentContext","AdaptContents","props","context","Contents","Error","process","env","NODE_ENV","shouldForwardSpace","useAdaptParent","when","setWhen","AdaptProvider","AdaptProviderView","Provider","value","children","Adapt","platform","media","enabled"],"sources":["../../src/Adapt.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,KAAA,EAAOC,KAAA,EAAOC,yBAAA,QAAiC;AACnE,SAASC,WAAA,QAAmB;AAE5B,SAASC,QAAA,QAAgB;AACzB,SAASC,oBAAA,QAA4B;AACrC,SACEC,aAAA,EACAC,aAAA,EACAC,UAAA,EACAC,OAAA,EACAC,QAAA,QAEK;AAkDC,SAAAC,GAAA;AAhCD,MAAMC,kBAAA,GAAqBN,aAAA,CAA0C,IAAI;EAGnEO,aAAA,GAAiBC,KAAA,IAAe;IAC3C,MAAMC,OAAA,GAAUP,UAAA,CAAWI,kBAAkB;IAC7C,IAAI,CAACG,OAAA,EAASC,QAAA,EACZ,MAAM,IAAIC,KAAA,CACRC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eACrB,8CACA,0GACN;IAEF,OAAOb,aAAA,CAAcQ,OAAA,CAAQC,QAAA,EAAUF,KAAK;EAC9C;AAEAD,aAAA,CAAcQ,kBAAA,GAAqB;AAE5B,MAAMC,cAAA,GAAiBA,CAAC;IAC7BN;EACF,MAEM;IACJ,MAAM,CAACO,IAAA,EAAMC,OAAO,IAAId,QAAA,CAAe,IAAI;IAmB3C,OAAO;MACLe,aAAA,EAlBoBhB,OAAA,CAAQ,MAAM;QAClC,MAAMM,OAAA,GAA+B;UACnCC,QAAA;UACAQ;QACF;QAEA,SAASE,kBAAkBZ,KAAA,EAA2B;UACpD,OACE,eAAAH,GAAA,CAACC,kBAAA,CAAmBe,QAAA,EAAnB;YAA4BC,KAAA,EAAOb,OAAA;YACjCc,QAAA,EAAAf,KAAA,CAAMe;UAAA,CACT;QAEJ;QAEA,OAAOH,iBAAA;MACT,GAAG,CAACV,QAAQ,CAAC;MAIXO;IACF;EACF;EAEaO,KAAA,GAAQzB,oBAAA,CACnB,UAAe;IAAE0B,QAAA;IAAUR,IAAA;IAAMM;EAAS,GAAe;IACvD,MAAMd,OAAA,GAAUP,UAAA,CAAWI,kBAAkB;MACvCoB,KAAA,GAAQ5B,QAAA,CAAS;IAEvB,IAAI6B,OAAA,GAAU,CAACF,QAAA;IAgBf,OAfIA,QAAA,KAAa,YAASE,OAAA,GAAU9B,WAAA,GAChC4B,QAAA,KAAa,aAAUE,OAAA,GAAU,CAAChC,KAAA,GAClC8B,QAAA,KAAa,UAAOE,OAAA,GAAUhC,KAAA,GAC9B8B,QAAA,KAAa,UAAOE,OAAA,GAAUjC,KAAA,GAC9B+B,QAAA,KAAa,cAAWE,OAAA,GAAUlC,SAAA,GAElCwB,IAAA,IAAQ,CAACS,KAAA,CAAMT,IAAI,MACrBU,OAAA,GAAU,KAGZ/B,yBAAA,CAA0B,MAAM;MACzB+B,OAAA,IACLlB,OAAA,EAASS,OAAA,CAASD,IAAA,IAAQU,OAAgB;IAC5C,GAAG,CAACV,IAAA,EAAMR,OAAA,EAASkB,OAAO,CAAC,GAEtBA,OAAA,GAIEJ,QAAA,GAHE;EAIX,GACA;IACEb,QAAA,EAAUH;EACZ,CACF","ignoreList":[]}
1
+ {"version":3,"names":["isAndroid","isIos","isTouchable","isWeb","useIsomorphicLayoutEffect","useMedia","withStaticProperties","createContext","createElement","useContext","useMemo","useState","jsx","AdaptParentContext","AdaptContents","props","context","Contents","Error","process","env","NODE_ENV","shouldForwardSpace","useAdaptParent","when","setWhen","AdaptProvider","AdaptProviderView","Provider","value","children","Adapt","platform","media","enabled"],"sources":["../../src/Adapt.tsx"],"sourcesContent":[null],"mappings":"AAAA,SACEA,SAAA,EACAC,KAAA,EACAC,WAAA,EACAC,KAAA,EACAC,yBAAA,QACK;AAEP,SAASC,QAAA,QAAgB;AACzB,SAASC,oBAAA,QAA4B;AACrC,SAASC,aAAA,EAAeC,aAAA,EAAeC,UAAA,EAAYC,OAAA,EAASC,QAAA,QAAgB;AAoDpE,SAAAC,GAAA;AAhCD,MAAMC,kBAAA,GAAqBN,aAAA,CAA0C,IAAI;EAGnEO,aAAA,GAAiBC,KAAA,IAAe;IAC3C,MAAMC,OAAA,GAAUP,UAAA,CAAWI,kBAAkB;IAC7C,IAAI,CAACG,OAAA,EAASC,QAAA,EACZ,MAAM,IAAIC,KAAA,CACRC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eACrB,8CACA,0GACN;IAEF,OAAOb,aAAA,CAAcQ,OAAA,CAAQC,QAAA,EAAUF,KAAK;EAC9C;AAEAD,aAAA,CAAcQ,kBAAA,GAAqB;AAE5B,MAAMC,cAAA,GAAiBA,CAAC;IAC7BN;EACF,MAEM;IACJ,MAAM,CAACO,IAAA,EAAMC,OAAO,IAAId,QAAA,CAAe,IAAI;IAmB3C,OAAO;MACLe,aAAA,EAlBoBhB,OAAA,CAAQ,MAAM;QAClC,MAAMM,OAAA,GAA+B;UACnCC,QAAA;UACAQ;QACF;QAEA,SAASE,kBAAkBZ,KAAA,EAA2B;UACpD,OACE,eAAAH,GAAA,CAACC,kBAAA,CAAmBe,QAAA,EAAnB;YAA4BC,KAAA,EAAOb,OAAA;YACjCc,QAAA,EAAAf,KAAA,CAAMe;UAAA,CACT;QAEJ;QAEA,OAAOH,iBAAA;MACT,GAAG,CAACV,QAAQ,CAAC;MAIXO;IACF;EACF;EAEaO,KAAA,GAAQzB,oBAAA,CACnB,UAAe;IAAE0B,QAAA;IAAUR,IAAA;IAAMM;EAAS,GAAe;IACvD,MAAMd,OAAA,GAAUP,UAAA,CAAWI,kBAAkB;MACvCoB,KAAA,GAAQ5B,QAAA,CAAS;IAEvB,IAAI6B,OAAA,GAAU;IAuBd,OArBI,OAAOV,IAAA,IAAS,aAClBU,OAAA,GAAUV,IAAA,CAAK;MAAES;IAAM,CAAC,KAExBC,OAAA,GAAU,CAACF,QAAA,EAEPA,QAAA,KAAa,YAASE,OAAA,GAAUhC,WAAA,GAChC8B,QAAA,KAAa,aAAUE,OAAA,GAAU,CAAC/B,KAAA,GAClC6B,QAAA,KAAa,UAAOE,OAAA,GAAU/B,KAAA,GAC9B6B,QAAA,KAAa,UAAOE,OAAA,GAAUjC,KAAA,GAC9B+B,QAAA,KAAa,cAAWE,OAAA,GAAUlC,SAAA,GAElCwB,IAAA,IAAQ,CAACS,KAAA,CAAMT,IAAI,MACrBU,OAAA,GAAU,MAId9B,yBAAA,CAA0B,MAAM;MACzB8B,OAAA,IACLlB,OAAA,EAASS,OAAA,CAASD,IAAA,IAAQU,OAAgB;IAC5C,GAAG,CAACV,IAAA,EAAMR,OAAA,EAASkB,OAAO,CAAC,GAEtBA,OAAA,GAID,OAAOJ,QAAA,IAAa,aACfA,QAAA,CAAS;MAAEI,OAAA;MAASD;IAAM,CAAC,IAG7BH,QAAA,GAPE;EAQX,GACA;IACEb,QAAA,EAAUH;EACZ,CACF","ignoreList":[]}
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { isAndroid, isIos, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
3
- import { isTouchable } from "@tamagui/constants";
2
+ import { isAndroid, isIos, isTouchable, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
4
3
  import { useMedia } from "@tamagui/core";
5
4
  import { withStaticProperties } from "@tamagui/helpers";
6
5
  import { createContext, createElement, useContext, useMemo, useState } from "react";
@@ -72,14 +71,19 @@ var useAdaptParent = function(param) {
72
71
  when
73
72
  };
74
73
  }, Adapt = withStaticProperties(function(param) {
75
- var platform = param.platform, when = param.when, children = param.children, context = useContext(AdaptParentContext), media = useMedia(), enabled = !platform;
76
- return platform === "touch" && (enabled = isTouchable), platform === "native" && (enabled = !isWeb), platform === "web" && (enabled = isWeb), platform === "ios" && (enabled = isIos), platform === "android" && (enabled = isAndroid), when && !media[when] && (enabled = !1), useIsomorphicLayoutEffect(function() {
74
+ var platform = param.platform, when = param.when, children = param.children, context = useContext(AdaptParentContext), media = useMedia(), enabled = !1;
75
+ return typeof when == "function" ? enabled = when({
76
+ media
77
+ }) : (enabled = !platform, platform === "touch" && (enabled = isTouchable), platform === "native" && (enabled = !isWeb), platform === "web" && (enabled = isWeb), platform === "ios" && (enabled = isIos), platform === "android" && (enabled = isAndroid), when && !media[when] && (enabled = !1)), useIsomorphicLayoutEffect(function() {
77
78
  enabled && (context == null || context.setWhen(when || enabled));
78
79
  }, [
79
80
  when,
80
81
  context,
81
82
  enabled
82
- ]), enabled ? children : null;
83
+ ]), enabled ? typeof children == "function" ? children({
84
+ enabled,
85
+ media
86
+ }) : children : null;
83
87
  }, {
84
88
  Contents: AdaptContents
85
89
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/ui/adapt/src/Adapt.tsx"],
4
- "mappings": ";AAAA,SAASA,WAAWC,OAAOC,OAAOC,iCAAiC;AACnE,SAASC,mBAAmB;AAE5B,SAASC,gBAAgB;AACzB,SAASC,4BAA4B;AACrC,SACEC,eACAC,eACAC,YACAC,SACAC,gBAEK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAMC,qBAAqBL,8BAA0C,IAAA,GAG/DM,gBAAgB,SAACC,OAAAA;AAC5B,MAAMC,UAAUN,WAAWG,kBAAAA;AAC3B,MAAI,EAACG,WAAAA,QAAAA,QAASC;AACZ,UAAM,IAAIC,MACRC,QAAQC,IAAIC,aAAa,eACpB,8CACA,0GAAA;AAGT,SAAOZ,8BAAcO,QAAQC,UAAUF,KAAAA;AACzC;AAEAD,cAAcQ,qBAAqB;AAE5B,IAAMC,iBAAiB,SAAA,OAAA;MAC5BN,WAAAA,MAAAA,UAIwBL,YAAAA,iBAAAA,SAAe,IAAA,GAAA,CAAA,GAAhCY,OAAiBZ,UAAAA,CAAAA,GAAXa,UAAWb,UAAAA,CAAAA,GAElBc,gBAAgBf,QAAQ,WAAA;QAMnBgB,oBAAT,SAA2BZ,OAAyB;AAClD,aACE,qBAACF,mBAAmBe,UAAQ;QAACC,OAAOb;kBACjCD,MAAMe;;IAGb,GAXMd,UAA+B;MACnCC;MACAQ;IACF;AAUA,WAAOE;EACT,GAAG;IAACV;GAAS;AAEb,SAAO;IACLS;IACAF;EACF;AACF,GAEaO,QAAQxB,qBACnB,SAAe,OAAwC;MAAtCyB,WAAF,MAAEA,UAAUR,OAAZ,MAAYA,MAAMM,WAAlB,MAAkBA,UACzBd,UAAUN,WAAWG,kBAAAA,GACrBoB,QAAQ3B,SAAAA,GAEV4B,UAAU,CAACF;AAgBf,SAfIA,aAAa,YAASE,UAAU7B,cAChC2B,aAAa,aAAUE,UAAU,CAAC/B,QAClC6B,aAAa,UAAOE,UAAU/B,QAC9B6B,aAAa,UAAOE,UAAUhC,QAC9B8B,aAAa,cAAWE,UAAUjC,YAElCuB,QAAQ,CAACS,MAAMT,IAAAA,MACjBU,UAAU,KAGZ9B,0BAA0B,WAAA;AACxB,IAAK8B,YACLlB,WAAAA,QAAAA,QAASS,QAASD,QAAQU,OAAAA;EAC5B,GAAG;IAACV;IAAMR;IAASkB;GAAQ,GAEtBA,UAIEJ,WAHE;AAIX,GACA;EACEb,UAAUH;AACZ,CAAA;",
5
- "names": ["isAndroid", "isIos", "isWeb", "useIsomorphicLayoutEffect", "isTouchable", "useMedia", "withStaticProperties", "createContext", "createElement", "useContext", "useMemo", "useState", "AdaptParentContext", "AdaptContents", "props", "context", "Contents", "Error", "process", "env", "NODE_ENV", "shouldForwardSpace", "useAdaptParent", "when", "setWhen", "AdaptProvider", "AdaptProviderView", "Provider", "value", "children", "Adapt", "platform", "media", "enabled"]
4
+ "mappings": ";AAAA,SACEA,WACAC,OACAC,aACAC,OACAC,iCACK;AAEP,SAASC,gBAAgB;AACzB,SAASC,4BAA4B;AACrC,SAASC,eAAeC,eAAeC,YAAYC,SAASC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBrE,IAAMC,qBAAqBL,8BAA0C,IAAA,GAG/DM,gBAAgB,SAACC,OAAAA;AAC5B,MAAMC,UAAUN,WAAWG,kBAAAA;AAC3B,MAAI,EAACG,WAAAA,QAAAA,QAASC;AACZ,UAAM,IAAIC,MACRC,QAAQC,IAAIC,aAAa,eACpB,8CACA,0GAAA;AAGT,SAAOZ,8BAAcO,QAAQC,UAAUF,KAAAA;AACzC;AAEAD,cAAcQ,qBAAqB;AAE5B,IAAMC,iBAAiB,SAAA,OAAA;MAC5BN,WAAAA,MAAAA,UAIwBL,YAAAA,iBAAAA,SAAe,IAAA,GAAA,CAAA,GAAhCY,OAAiBZ,UAAAA,CAAAA,GAAXa,UAAWb,UAAAA,CAAAA,GAElBc,gBAAgBf,QAAQ,WAAA;QAMnBgB,oBAAT,SAA2BZ,OAAyB;AAClD,aACE,qBAACF,mBAAmBe,UAAQ;QAACC,OAAOb;kBACjCD,MAAMe;;IAGb,GAXMd,UAA+B;MACnCC;MACAQ;IACF;AAUA,WAAOE;EACT,GAAG;IAACV;GAAS;AAEb,SAAO;IACLS;IACAF;EACF;AACF,GAEaO,QAAQxB,qBACnB,SAAe,OAAwC;MAAtCyB,WAAF,MAAEA,UAAUR,OAAZ,MAAYA,MAAMM,WAAlB,MAAkBA,UACzBd,UAAUN,WAAWG,kBAAAA,GACrBoB,QAAQ3B,SAAAA,GAEV4B,UAAU;AAuBd,SArBI,OAAOV,QAAS,aAClBU,UAAUV,KAAK;IAAES;EAAM,CAAA,KAEvBC,UAAU,CAACF,UAEPA,aAAa,YAASE,UAAU/B,cAChC6B,aAAa,aAAUE,UAAU,CAAC9B,QAClC4B,aAAa,UAAOE,UAAU9B,QAC9B4B,aAAa,UAAOE,UAAUhC,QAC9B8B,aAAa,cAAWE,UAAUjC,YAElCuB,QAAQ,CAACS,MAAMT,IAAAA,MACjBU,UAAU,MAId7B,0BAA0B,WAAA;AACxB,IAAK6B,YACLlB,WAAAA,QAAAA,QAASS,QAASD,QAAQU,OAAAA;EAC5B,GAAG;IAACV;IAAMR;IAASkB;GAAQ,GAEtBA,UAID,OAAOJ,YAAa,aACfA,SAAS;IAAEI;IAASD;EAAM,CAAA,IAG5BH,WAPE;AAQX,GACA;EACEb,UAAUH;AACZ,CAAA;",
5
+ "names": ["isAndroid", "isIos", "isTouchable", "isWeb", "useIsomorphicLayoutEffect", "useMedia", "withStaticProperties", "createContext", "createElement", "useContext", "useMemo", "useState", "AdaptParentContext", "AdaptContents", "props", "context", "Contents", "Error", "process", "env", "NODE_ENV", "shouldForwardSpace", "useAdaptParent", "when", "setWhen", "AdaptProvider", "AdaptProviderView", "Provider", "value", "children", "Adapt", "platform", "media", "enabled"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/adapt",
3
- "version": "1.106.0",
3
+ "version": "1.108.0",
4
4
  "types": "./types/index.d.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -27,12 +27,12 @@
27
27
  }
28
28
  },
29
29
  "dependencies": {
30
- "@tamagui/constants": "1.106.0",
31
- "@tamagui/core": "1.106.0",
32
- "@tamagui/helpers": "1.106.0"
30
+ "@tamagui/constants": "1.108.0",
31
+ "@tamagui/core": "1.108.0",
32
+ "@tamagui/helpers": "1.108.0"
33
33
  },
34
34
  "devDependencies": {
35
- "@tamagui/build": "1.106.0"
35
+ "@tamagui/build": "1.108.0"
36
36
  },
37
37
  "publishConfig": {
38
38
  "access": "public"
package/src/Adapt.tsx CHANGED
@@ -1,23 +1,23 @@
1
- import { isAndroid, isIos, isWeb, useIsomorphicLayoutEffect } from '@tamagui/constants'
2
- import { isTouchable } from '@tamagui/constants'
3
- import type { MediaQueryKey } from '@tamagui/core'
1
+ import {
2
+ isAndroid,
3
+ isIos,
4
+ isTouchable,
5
+ isWeb,
6
+ useIsomorphicLayoutEffect,
7
+ } from '@tamagui/constants'
8
+ import type { MediaQueryKey, UseMediaState } from '@tamagui/core'
4
9
  import { useMedia } from '@tamagui/core'
5
10
  import { withStaticProperties } from '@tamagui/helpers'
6
- import {
7
- createContext,
8
- createElement,
9
- useContext,
10
- useMemo,
11
- useState,
12
- useRef,
13
- } from 'react'
11
+ import { createContext, createElement, useContext, useMemo, useState } from 'react'
14
12
 
15
13
  type MediaQueryKeyString = MediaQueryKey extends string ? MediaQueryKey : never
16
14
 
17
15
  export type AdaptProps = {
18
- when?: MediaQueryKeyString
16
+ when?: MediaQueryKeyString | ((state: { media: UseMediaState }) => boolean)
19
17
  platform?: 'native' | 'web' | 'touch' | 'ios' | 'android'
20
- children?: any
18
+ children?:
19
+ | React.ReactNode
20
+ | ((state: { enabled: boolean; media: UseMediaState }) => React.ReactNode)
21
21
  }
22
22
 
23
23
  type When = MediaQueryKeyString | boolean | null
@@ -80,15 +80,22 @@ export const Adapt = withStaticProperties(
80
80
  const context = useContext(AdaptParentContext)
81
81
  const media = useMedia()
82
82
 
83
- let enabled = !platform
84
- if (platform === 'touch') enabled = isTouchable
85
- if (platform === 'native') enabled = !isWeb
86
- if (platform === 'web') enabled = isWeb
87
- if (platform === 'ios') enabled = isIos
88
- if (platform === 'android') enabled = isAndroid
83
+ let enabled = false
84
+
85
+ if (typeof when === 'function') {
86
+ enabled = when({ media })
87
+ } else {
88
+ enabled = !platform
89
89
 
90
- if (when && !media[when]) {
91
- enabled = false
90
+ if (platform === 'touch') enabled = isTouchable
91
+ if (platform === 'native') enabled = !isWeb
92
+ if (platform === 'web') enabled = isWeb
93
+ if (platform === 'ios') enabled = isIos
94
+ if (platform === 'android') enabled = isAndroid
95
+
96
+ if (when && !media[when]) {
97
+ enabled = false
98
+ }
92
99
  }
93
100
 
94
101
  useIsomorphicLayoutEffect(() => {
@@ -100,6 +107,10 @@ export const Adapt = withStaticProperties(
100
107
  return null
101
108
  }
102
109
 
110
+ if (typeof children === 'function') {
111
+ return children({ enabled, media })
112
+ }
113
+
103
114
  return children
104
115
  },
105
116
  {
package/types/Adapt.d.ts CHANGED
@@ -1,9 +1,14 @@
1
- import type { MediaQueryKey } from '@tamagui/core';
1
+ import type { MediaQueryKey, UseMediaState } from '@tamagui/core';
2
2
  type MediaQueryKeyString = MediaQueryKey extends string ? MediaQueryKey : never;
3
3
  export type AdaptProps = {
4
- when?: MediaQueryKeyString;
4
+ when?: MediaQueryKeyString | ((state: {
5
+ media: UseMediaState;
6
+ }) => boolean);
5
7
  platform?: 'native' | 'web' | 'touch' | 'ios' | 'android';
6
- children?: any;
8
+ children?: React.ReactNode | ((state: {
9
+ enabled: boolean;
10
+ media: UseMediaState;
11
+ }) => React.ReactNode);
7
12
  };
8
13
  type When = MediaQueryKeyString | boolean | null;
9
14
  type Component = (props: any) => any;
@@ -24,7 +29,7 @@ export declare const useAdaptParent: ({ Contents, }: {
24
29
  }) => import("react/jsx-runtime").JSX.Element;
25
30
  when: When;
26
31
  };
27
- export declare const Adapt: (({ platform, when, children }: AdaptProps) => any) & {
32
+ export declare const Adapt: (({ platform, when, children }: AdaptProps) => import("react").ReactNode) & {
28
33
  Contents: {
29
34
  (props: any): import("react").FunctionComponentElement<any>;
30
35
  shouldForwardSpace: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Adapt.d.ts","sourceRoot":"","sources":["../src/Adapt.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAYlD,KAAK,mBAAmB,GAAG,aAAa,SAAS,MAAM,GAAG,aAAa,GAAG,KAAK,CAAA;AAE/E,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,mBAAmB,CAAA;IAC1B,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,EAAE,GAAG,CAAA;CACf,CAAA;AAED,KAAK,IAAI,GAAG,mBAAmB,GAAG,OAAO,GAAG,IAAI,CAAA;AAEhD,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;AACpC,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,kBAAkB,qDAAkD,CAAA;AAGjF,eAAO,MAAM,aAAa;YAAW,GAAG;;CAUvC,CAAA;AAID,eAAO,MAAM,cAAc,kBAExB;IACD,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;CAC1C;2BASqC;QAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE;;CAevD,CAAA;AAED,eAAO,MAAM,KAAK,kCAC6B,UAAU;;gBA7CpB,GAAG;;;CA0EvC,CAAA"}
1
+ {"version":3,"file":"Adapt.d.ts","sourceRoot":"","sources":["../src/Adapt.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAKjE,KAAK,mBAAmB,GAAG,aAAa,SAAS,MAAM,GAAG,aAAa,GAAG,KAAK,CAAA;AAE/E,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,mBAAmB,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,KAAK,OAAO,CAAC,CAAA;IAC3E,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,EACL,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,aAAa,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAA;CAC7E,CAAA;AAED,KAAK,IAAI,GAAG,mBAAmB,GAAG,OAAO,GAAG,IAAI,CAAA;AAEhD,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;AACpC,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,kBAAkB,qDAAkD,CAAA;AAGjF,eAAO,MAAM,aAAa;YAAW,GAAG;;CAUvC,CAAA;AAID,eAAO,MAAM,cAAc,kBAExB;IACD,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;CAC1C;2BASqC;QAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;KAAE;;CAevD,CAAA;AAED,eAAO,MAAM,KAAK,kCAC6B,UAAU;;gBA7CpB,GAAG;;;CAqFvC,CAAA"}