@draftbit/core 50.0.3-c6a8a2.2 → 50.1.1-1cea51.2

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.
Files changed (34) hide show
  1. package/lib/commonjs/components/Markdown.js +1 -1
  2. package/lib/commonjs/components/Picker/index.js +1 -1
  3. package/lib/commonjs/components/Picker/modal/ModalPicker.js +1 -0
  4. package/lib/commonjs/components/ScreenContainer.js +1 -1
  5. package/lib/typescript/src/components/Markdown.d.ts +2 -2
  6. package/lib/typescript/src/components/Markdown.js +11 -2
  7. package/lib/typescript/src/components/Markdown.js.map +1 -1
  8. package/lib/typescript/src/components/Picker/PickerCommon.d.ts +3 -0
  9. package/lib/typescript/src/components/Picker/PickerCommon.js.map +1 -1
  10. package/lib/typescript/src/components/Picker/index.d.ts +3 -3
  11. package/lib/typescript/src/components/Picker/index.js +4 -0
  12. package/lib/typescript/src/components/Picker/index.js.map +1 -1
  13. package/lib/typescript/src/components/Picker/modal/ModalPicker.d.ts +6 -0
  14. package/lib/typescript/src/components/Picker/modal/ModalPicker.js +88 -0
  15. package/lib/typescript/src/components/Picker/modal/ModalPicker.js.map +1 -0
  16. package/lib/typescript/src/components/ScreenContainer.d.ts +3 -1
  17. package/lib/typescript/src/components/ScreenContainer.js +8 -2
  18. package/lib/typescript/src/components/ScreenContainer.js.map +1 -1
  19. package/lib/typescript/tsconfig.tsbuildinfo +1 -1
  20. package/package.json +4 -3
  21. package/src/components/Markdown.js +11 -2
  22. package/src/components/Markdown.js.map +1 -1
  23. package/src/components/Markdown.tsx +29 -3
  24. package/src/components/Picker/PickerCommon.js.map +1 -1
  25. package/src/components/Picker/PickerCommon.ts +4 -0
  26. package/src/components/Picker/index.js +4 -0
  27. package/src/components/Picker/index.js.map +1 -1
  28. package/src/components/Picker/index.tsx +14 -3
  29. package/src/components/Picker/modal/ModalPicker.js +88 -0
  30. package/src/components/Picker/modal/ModalPicker.js.map +1 -0
  31. package/src/components/Picker/modal/ModalPicker.tsx +179 -0
  32. package/src/components/ScreenContainer.js +8 -2
  33. package/src/components/ScreenContainer.js.map +1 -1
  34. package/src/components/ScreenContainer.tsx +13 -1
@@ -1 +1 @@
1
- var _this=this,_jsxFileName="/home/runner/work/react-native-jigsaw/react-native-jigsaw/packages/core/src/components/Markdown.tsx";import*as React from"react";import{StyleSheet}from"react-native";import MarkdownComponent from"react-native-markdown-display";import{jsx as _jsx}from"react/jsx-runtime";var childToString=function childToString(child){if(typeof child==="undefined"||child===null||typeof child==="boolean"){return"";}if(JSON.stringify(child)==="{}"){return"";}return child.toString();};var Markdown=function Markdown(_ref){var childrenProp=_ref.children,style=_ref.style;var children=React.Children.toArray(childrenProp);var text=children.map(childToString).join("");return _jsx(MarkdownComponent,{style:{body:StyleSheet.flatten(style)},children:text});};export default Markdown;
1
+ var _this=this,_jsxFileName="/home/runner/work/react-native-jigsaw/react-native-jigsaw/packages/core/src/components/Markdown.tsx";import*as React from"react";import{Text,StyleSheet}from"react-native";import MarkdownComponent from"react-native-markdown-display";import{extractStyles}from"../utilities";import{jsx as _jsx}from"react/jsx-runtime";var childToString=function childToString(child){if(typeof child==="undefined"||child===null||typeof child==="boolean"){return"";}if(JSON.stringify(child)==="{}"){return"";}return child.toString();};var Markdown=function Markdown(_ref){var childrenProp=_ref.children,style=_ref.style;var children=React.Children.toArray(childrenProp);var text=children.map(childToString).join("");var bodyStyle=StyleSheet.flatten(style);var _extractStyles=extractStyles(bodyStyle),textStyles=_extractStyles.textStyles;return _jsx(MarkdownComponent,{style:{body:bodyStyle},rules:{strong:function strong(node){return _jsx(Text,{style:Object.assign({},textStyles,{fontWeight:"bold"}),children:node.children[0].content},node.key);}},children:text});};export default Markdown;
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["mode"];var _this=this,_jsxFileName="/home/runner/work/react-native-jigsaw/react-native-jigsaw/packages/core/src/components/Picker/index.tsx";import React from"react";import NativePicker from"./NativePicker";import DropDownPicker from"./dropdown/DropDownPicker";import{withTheme}from"../../theming";import{jsx as _jsx}from"react/jsx-runtime";var SinglePicker=function SinglePicker(_ref){var _ref$mode=_ref.mode,mode=_ref$mode===void 0?"native":_ref$mode,rest=_objectWithoutProperties(_ref,_excluded);switch(mode){case"native":return _jsx(NativePicker,Object.assign({},rest));case"dropdown":return _jsx(DropDownPicker,Object.assign({},rest));}};export var Picker=withTheme(SinglePicker);export{default as MultiSelectPicker}from"./dropdown/MultiSelectPicker";export{default as PickerItem}from"./dropdown/PickerItem";
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["mode"];var _this=this,_jsxFileName="/home/runner/work/react-native-jigsaw/react-native-jigsaw/packages/core/src/components/Picker/index.tsx";import React from"react";import NativePicker from"./NativePicker";import DropDownPicker from"./dropdown/DropDownPicker";import ModalPicker from"./modal/ModalPicker";import{withTheme}from"../../theming";import{jsx as _jsx}from"react/jsx-runtime";var SinglePicker=function SinglePicker(_ref){var _ref$mode=_ref.mode,mode=_ref$mode===void 0?"native":_ref$mode,rest=_objectWithoutProperties(_ref,_excluded);switch(mode){case"native":return _jsx(NativePicker,Object.assign({},rest));case"dropdown":return _jsx(DropDownPicker,Object.assign({},rest));case"modal":return _jsx(ModalPicker,Object.assign({},rest));}};export var Picker=withTheme(SinglePicker);export{default as MultiSelectPicker}from"./dropdown/MultiSelectPicker";export{default as PickerItem}from"./dropdown/PickerItem";
@@ -0,0 +1 @@
1
+ import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["theme","options","onValueChange","Icon","placeholder","value","autoDismissKeyboard","selectedIconName","selectedIconColor","selectedIconSize","dropDownBackgroundColor","dropDownBorderColor","dropDownTextColor","dropDownBorderWidth","dropDownBorderRadius","children","disabled","dropdownOverlayColor"];var _this=this,_jsxFileName="/home/runner/work/react-native-jigsaw/react-native-jigsaw/packages/core/src/components/Picker/modal/ModalPicker.tsx";import*as React from"react";import{View,Text,Keyboard}from"react-native";import{extractStyles,flattenReactFragments,useDeepCompareMemo}from"../../../utilities";import{normalizeToPickerOptions}from"../PickerCommon";import PickerInputContainer from"../PickerInputContainer";import ModalPickerComponent from"react-native-select-dropdown";import{withTheme}from"../../../theming";import PickerItem from"../dropdown/PickerItem";import{useOnUpdate}from"../../../hooks";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";var ModalPicker=function ModalPicker(_ref){var theme=_ref.theme,_ref$options=_ref.options,optionsProp=_ref$options===void 0?[]:_ref$options,onValueChange=_ref.onValueChange,Icon=_ref.Icon,placeholder=_ref.placeholder,value=_ref.value,_ref$autoDismissKeybo=_ref.autoDismissKeyboard,autoDismissKeyboard=_ref$autoDismissKeybo===void 0?true:_ref$autoDismissKeybo,_ref$selectedIconName=_ref.selectedIconName,selectedIconName=_ref$selectedIconName===void 0?"Feather/check":_ref$selectedIconName,_ref$selectedIconColo=_ref.selectedIconColor,selectedIconColor=_ref$selectedIconColo===void 0?theme.colors.strong:_ref$selectedIconColo,_ref$selectedIconSize=_ref.selectedIconSize,selectedIconSize=_ref$selectedIconSize===void 0?20:_ref$selectedIconSize,_ref$dropDownBackgrou=_ref.dropDownBackgroundColor,dropDownBackgroundColor=_ref$dropDownBackgrou===void 0?theme.colors.background:_ref$dropDownBackgrou,_ref$dropDownBorderCo=_ref.dropDownBorderColor,dropDownBorderColor=_ref$dropDownBorderCo===void 0?theme.colors.divider:_ref$dropDownBorderCo,_ref$dropDownTextColo=_ref.dropDownTextColor,dropDownTextColor=_ref$dropDownTextColo===void 0?theme.colors.strong:_ref$dropDownTextColo,_ref$dropDownBorderWi=_ref.dropDownBorderWidth,dropDownBorderWidth=_ref$dropDownBorderWi===void 0?1:_ref$dropDownBorderWi,_ref$dropDownBorderRa=_ref.dropDownBorderRadius,dropDownBorderRadius=_ref$dropDownBorderRa===void 0?8:_ref$dropDownBorderRa,childrenProp=_ref.children,disabled=_ref.disabled,dropdownOverlayColor=_ref.dropdownOverlayColor,rest=_objectWithoutProperties(_ref,_excluded);var dropdownRef=React.useRef();var _React$useState=React.useState(false),_React$useState2=_slicedToArray(_React$useState,2),pickerVisible=_React$useState2[0],setPickerVisible=_React$useState2[1];var _React$useState3=React.useState(value),_React$useState4=_slicedToArray(_React$useState3,2),internalValue=_React$useState4[0],setInternalValue=_React$useState4[1];var isMultiSelect=Array.isArray(value);var pickerItemProps=React.useMemo(function(){var children=flattenReactFragments(React.Children.toArray(childrenProp));var firstPickerItem=children.find(function(child){return child.type===PickerItem;});return(firstPickerItem==null?void 0:firstPickerItem.props)||{};},[childrenProp]);var _extractStyles=extractStyles(pickerItemProps.style),pickerItemViewStyles=_extractStyles.viewStyles,pickerItemTextStyles=_extractStyles.textStyles;var options=useDeepCompareMemo(function(){return normalizeToPickerOptions(optionsProp).map(function(option){return{label:option.label.toString(),value:option.value};});},[optionsProp]);useOnUpdate(function(){onValueChange==null?void 0:onValueChange(isMultiSelect?internalValue!=null?internalValue:[]:internalValue!=null?internalValue:"");},[internalValue]);React.useEffect(function(){if(pickerVisible&&autoDismissKeyboard){Keyboard.dismiss();}},[pickerVisible,autoDismissKeyboard]);React.useEffect(function(){if(disabled){setPickerVisible(false);}},[disabled]);var defaultValue=options.find(function(item){return item.value===value;});return _jsx(PickerInputContainer,Object.assign({testID:"dropdown-picker",Icon:Icon,placeholder:placeholder,selectedValue:value,options:options,onPress:function onPress(){setPickerVisible(!pickerVisible);dropdownRef.current.openDropdown();},zIndex:pickerVisible?100:undefined,disabled:disabled},rest,{children:_jsx(ModalPickerComponent,{ref:dropdownRef,data:options,defaultValue:defaultValue,onSelect:function onSelect(selectedItem,index){console.log(selectedItem,index);setInternalValue(selectedItem.value);},renderButton:function renderButton(){return _jsx(View,{});},renderItem:function renderItem(item,_index,isSelected){var selectedBackgroundColor=isSelected?pickerItemProps.selectedBackgroundColor:pickerItemViewStyles.backgroundColor;var selectedTextColor=isSelected?pickerItemProps.selectedTextColor||dropDownTextColor:dropDownTextColor;var selectedTextSize=isSelected?pickerItemProps.selectedTextSize||14:14;var iconColor=isSelected?selectedIconColor:"transparent";return _jsxs(View,{style:{padding:10,flexDirection:"row",alignItems:"center",backgroundColor:selectedBackgroundColor},children:[_jsx(Text,{style:Object.assign({color:selectedTextColor,fontSize:selectedTextSize,flex:1},pickerItemTextStyles),children:item.label}),_jsx(Icon,{name:selectedIconName,size:selectedIconSize,color:iconColor})]});},showsVerticalScrollIndicator:false,dropdownOverlayColor:dropdownOverlayColor,dropdownStyle:{borderColor:dropDownBorderColor,borderWidth:dropDownBorderWidth,borderRadius:dropDownBorderRadius,backgroundColor:dropDownBackgroundColor},disableAutoScroll:true})}));};export default withTheme(ModalPicker);
@@ -1 +1 @@
1
- import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/home/runner/work/react-native-jigsaw/react-native-jigsaw/packages/core/src/components/ScreenContainer.tsx";var _excluded=["scrollable","hasSafeArea","hasBottomSafeArea","hasTopSafeArea","theme","style","children"];import*as React from"react";import{StyleSheet,ScrollView,View}from"react-native";import{SafeAreaView}from"react-native-safe-area-context";import{withTheme}from"../theming";import{jsx as _jsx}from"react/jsx-runtime";function ScreenContainer(_ref){var _StyleSheet$flatten;var _ref$scrollable=_ref.scrollable,scrollable=_ref$scrollable===void 0?false:_ref$scrollable,_ref$hasSafeArea=_ref.hasSafeArea,hasSafeArea=_ref$hasSafeArea===void 0?false:_ref$hasSafeArea,_ref$hasBottomSafeAre=_ref.hasBottomSafeArea,hasBottomSafeArea=_ref$hasBottomSafeAre===void 0?false:_ref$hasBottomSafeAre,_ref$hasTopSafeArea=_ref.hasTopSafeArea,hasTopSafeArea=_ref$hasTopSafeArea===void 0?false:_ref$hasTopSafeArea,theme=_ref.theme,style=_ref.style,children=_ref.children,rest=_objectWithoutProperties(_ref,_excluded);var backgroundColor=((_StyleSheet$flatten=StyleSheet.flatten(style))==null?void 0:_StyleSheet$flatten.backgroundColor)||theme.colors.background;var edges=["left","right"];if(hasSafeArea||hasTopSafeArea){edges.push("top");}if(hasSafeArea||hasBottomSafeArea){edges.push("bottom");}return _jsx(SafeAreaView,Object.assign({edges:edges,style:[styles.container,{backgroundColor:backgroundColor}]},rest,{children:scrollable?_jsx(ScrollView,{contentContainerStyle:[styles.scrollViewContainer,{backgroundColor:backgroundColor},style],children:children}):_jsx(View,{style:[styles.container,{backgroundColor:backgroundColor},style],children:children})}));}var styles=StyleSheet.create({container:{flex:1},scrollViewContainer:{flexGrow:1,flex:undefined}});export default withTheme(ScreenContainer);
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _jsxFileName="/home/runner/work/react-native-jigsaw/react-native-jigsaw/packages/core/src/components/ScreenContainer.tsx";var _excluded=["scrollable","hasSafeArea","hasBottomSafeArea","hasTopSafeArea","hasLeftSafeArea","hasRightSafeArea","theme","style","children"];import*as React from"react";import{StyleSheet,ScrollView,View}from"react-native";import{SafeAreaView}from"react-native-safe-area-context";import{withTheme}from"../theming";import{jsx as _jsx}from"react/jsx-runtime";function ScreenContainer(_ref){var _StyleSheet$flatten;var _ref$scrollable=_ref.scrollable,scrollable=_ref$scrollable===void 0?false:_ref$scrollable,_ref$hasSafeArea=_ref.hasSafeArea,hasSafeArea=_ref$hasSafeArea===void 0?false:_ref$hasSafeArea,_ref$hasBottomSafeAre=_ref.hasBottomSafeArea,hasBottomSafeArea=_ref$hasBottomSafeAre===void 0?false:_ref$hasBottomSafeAre,_ref$hasTopSafeArea=_ref.hasTopSafeArea,hasTopSafeArea=_ref$hasTopSafeArea===void 0?false:_ref$hasTopSafeArea,_ref$hasLeftSafeArea=_ref.hasLeftSafeArea,hasLeftSafeArea=_ref$hasLeftSafeArea===void 0?true:_ref$hasLeftSafeArea,_ref$hasRightSafeArea=_ref.hasRightSafeArea,hasRightSafeArea=_ref$hasRightSafeArea===void 0?true:_ref$hasRightSafeArea,theme=_ref.theme,style=_ref.style,children=_ref.children,rest=_objectWithoutProperties(_ref,_excluded);var backgroundColor=((_StyleSheet$flatten=StyleSheet.flatten(style))==null?void 0:_StyleSheet$flatten.backgroundColor)||theme.colors.background;var edges=[];if(hasSafeArea||hasTopSafeArea){edges.push("top");}if(hasSafeArea||hasBottomSafeArea){edges.push("bottom");}if(hasSafeArea||hasLeftSafeArea){edges.push("left");}if(hasSafeArea||hasRightSafeArea){edges.push("right");}return _jsx(SafeAreaView,Object.assign({edges:edges,style:[styles.container,{backgroundColor:backgroundColor}]},rest,{children:scrollable?_jsx(ScrollView,{contentContainerStyle:[styles.scrollViewContainer,{backgroundColor:backgroundColor},style],children:children}):_jsx(View,{style:[styles.container,{backgroundColor:backgroundColor},style],children:children})}));}var styles=StyleSheet.create({container:{flex:1},scrollViewContainer:{flexGrow:1,flex:undefined}});export default withTheme(ScreenContainer);
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
- import { StyleProp, ViewStyle } from "react-native";
2
+ import { StyleProp, ViewStyle, TextStyle } from "react-native";
3
3
  declare type MarkdownProps = {
4
- style?: StyleProp<ViewStyle>;
4
+ style?: StyleProp<ViewStyle & TextStyle>;
5
5
  };
6
6
  declare const Markdown: React.FC<React.PropsWithChildren<MarkdownProps>>;
7
7
  export default Markdown;
@@ -1,6 +1,7 @@
1
1
  import * as React from "react";
2
- import { StyleSheet } from "react-native";
2
+ import { Text, StyleSheet, } from "react-native";
3
3
  import MarkdownComponent from "react-native-markdown-display";
4
+ import { extractStyles } from "../utilities";
4
5
  const childToString = (child) => {
5
6
  if (typeof child === "undefined" ||
6
7
  child === null ||
@@ -15,10 +16,18 @@ const childToString = (child) => {
15
16
  const Markdown = ({ children: childrenProp, style, }) => {
16
17
  const children = React.Children.toArray(childrenProp);
17
18
  const text = children.map(childToString).join("");
19
+ const bodyStyle = StyleSheet.flatten(style);
20
+ const { textStyles } = extractStyles(bodyStyle);
18
21
  return (
19
22
  //'body' style applies to all markdown components
20
23
  //@ts-ignore TS does not like the type of this named style for some reason
21
- React.createElement(MarkdownComponent, { style: { body: StyleSheet.flatten(style) } }, text));
24
+ React.createElement(MarkdownComponent, { style: { body: bodyStyle }, rules: {
25
+ // By default, strong does not work with custom fonts on iOS. This addresses the issue
26
+ strong: (node) => (React.createElement(Text, { key: node.key, style: {
27
+ ...textStyles,
28
+ fontWeight: "bold",
29
+ } }, node.children[0].content)),
30
+ } }, text));
22
31
  };
23
32
  export default Markdown;
24
33
  //# sourceMappingURL=Markdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../../src/components/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAwB,UAAU,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAM9D,MAAM,aAAa,GAAG,CAAC,KAAuB,EAAU,EAAE;IACxD,IACE,OAAO,KAAK,KAAK,WAAW;QAC5B,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,SAAS,EAC1B;QACA,OAAO,EAAE,CAAC;KACX;IAED,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QAClC,OAAO,EAAE,CAAC;KACX;IAED,OAAQ,KAAyB,CAAC,QAAQ,EAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAqD,CAAC,EAClE,QAAQ,EAAE,YAAY,EACtB,KAAK,GACN,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElD,OAAO;IACL,iDAAiD;IACjD,0EAA0E;IAC1E,oBAAC,iBAAiB,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAC1D,IAAI,CACa,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../../src/components/Markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,IAAI,EAIJ,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,iBAAiB,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAM7C,MAAM,aAAa,GAAG,CAAC,KAAuB,EAAU,EAAE;IACxD,IACE,OAAO,KAAK,KAAK,WAAW;QAC5B,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,SAAS,EAC1B;QACA,OAAO,EAAE,CAAC;KACX;IAED,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QAClC,OAAO,EAAE,CAAC;KACX;IAED,OAAQ,KAAyB,CAAC,QAAQ,EAAE,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAqD,CAAC,EAClE,QAAQ,EAAE,YAAY,EACtB,KAAK,GACN,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAEhD,OAAO;IACL,iDAAiD;IACjD,0EAA0E;IAC1E,oBAAC,iBAAiB,IAChB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAC1B,KAAK,EAAE;YACL,sFAAsF;YACtF,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAChB,oBAAC,IAAI,IACH,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,KAAK,EAAE;oBACL,GAAG,UAAU;oBACb,UAAU,EAAE,MAAM;iBACnB,IAEA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CACpB,CACR;SACF,IAEA,IAAI,CACa,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -33,6 +33,9 @@ export interface MultiSelectPickerProps {
33
33
  value?: (string | number)[];
34
34
  onValueChange: (value: (string | number)[]) => void;
35
35
  }
36
+ export interface ModalPickerProps {
37
+ dropdownOverlayColor?: string;
38
+ }
36
39
  export interface CommonDropDownPickerProps extends CommonPickerProps {
37
40
  selectedIconName?: string;
38
41
  selectedIconColor?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PickerCommon.js","sourceRoot":"","sources":["../../../../../src/components/Picker/PickerCommon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAmDlC,MAAM,UAAU,wBAAwB,CACtC,OAA6C;IAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,EAAE,CAAC;KACX;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QACtE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9B,KAAK,EAAE,MAAyB;YAChC,KAAK,EAAE,MAAyB;SACjC,CAAC,CAAC,CAAC;KACL;IAED,IACE,QAAQ,CAAC,WAAW,CAAC;QACrB,WAAW,CAAC,KAAK,KAAK,SAAS;QAC/B,WAAW,CAAC,KAAK,KAAK,SAAS,EAC/B;QACA,OAAQ,OAA0B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAChD,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IAED,MAAM,IAAI,KAAK,CACb,6IAA6I,CAC9I,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"PickerCommon.js","sourceRoot":"","sources":["../../../../../src/components/Picker/PickerCommon.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAuDlC,MAAM,UAAU,wBAAwB,CACtC,OAA6C;IAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACxB,OAAO,EAAE,CAAC;KACX;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QACtE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC9B,KAAK,EAAE,MAAyB;YAChC,KAAK,EAAE,MAAyB;SACjC,CAAC,CAAC,CAAC;KACL;IAED,IACE,QAAQ,CAAC,WAAW,CAAC;QACrB,WAAW,CAAC,KAAK,KAAK,SAAS;QAC/B,WAAW,CAAC,KAAK,KAAK,SAAS,EAC/B;QACA,OAAQ,OAA0B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YAChD,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IAED,MAAM,IAAI,KAAK,CACb,6IAA6I,CAC9I,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import { CommonDropDownPickerProps, SinglePickerProps } from "./PickerCommon";
3
- interface PickerProps extends CommonDropDownPickerProps, SinglePickerProps {
4
- mode?: "native" | "dropdown";
2
+ import { CommonDropDownPickerProps, ModalPickerProps, SinglePickerProps } from "./PickerCommon";
3
+ interface PickerProps extends CommonDropDownPickerProps, SinglePickerProps, ModalPickerProps {
4
+ mode?: "native" | "dropdown" | "modal";
5
5
  }
6
6
  export declare const Picker: React.ComponentType<import("@draftbit/react-theme-provider").$Without<React.PropsWithChildren<PickerProps>, "theme"> & {
7
7
  theme?: import("@draftbit/react-theme-provider").$DeepPartial<any> | undefined;
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import NativePicker from "./NativePicker";
3
3
  import DropDownPicker from "./dropdown/DropDownPicker";
4
+ import ModalPicker from "./modal/ModalPicker";
4
5
  import { withTheme } from "../../theming";
5
6
  const SinglePicker = ({ mode = "native", ...rest }) => {
6
7
  switch (mode) {
@@ -10,6 +11,9 @@ const SinglePicker = ({ mode = "native", ...rest }) => {
10
11
  case "dropdown":
11
12
  //@ts-ignore
12
13
  return React.createElement(DropDownPicker, { ...rest });
14
+ case "modal":
15
+ //@ts-ignore Ignore theme type issues
16
+ return React.createElement(ModalPicker, { ...rest });
13
17
  }
14
18
  };
15
19
  export const Picker = withTheme(SinglePicker);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Picker/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAM1C,MAAM,YAAY,GAAmD,CAAC,EACpE,IAAI,GAAG,QAAQ,EACf,GAAG,IAAI,EACR,EAAE,EAAE;IACH,QAAQ,IAAI,EAAE;QACZ,KAAK,QAAQ;YACX,qCAAqC;YACrC,OAAO,oBAAC,YAAY,OAAK,IAAI,GAAI,CAAC;QACpC,KAAK,UAAU;YACb,YAAY;YACZ,OAAO,oBAAC,cAAc,OAAK,IAAI,GAAI,CAAC;KACvC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/Picker/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAS1C,MAAM,YAAY,GAAmD,CAAC,EACpE,IAAI,GAAG,QAAQ,EACf,GAAG,IAAI,EACR,EAAE,EAAE;IACH,QAAQ,IAAI,EAAE;QACZ,KAAK,QAAQ;YACX,qCAAqC;YACrC,OAAO,oBAAC,YAAY,OAAK,IAAI,GAAI,CAAC;QACpC,KAAK,UAAU;YACb,YAAY;YACZ,OAAO,oBAAC,cAAc,OAAK,IAAI,GAAI,CAAC;QACtC,KAAK,OAAO;YACV,qCAAqC;YACrC,OAAO,oBAAC,WAAW,OAAK,IAAI,GAAI,CAAC;KACpC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import { CommonDropDownPickerProps, ModalPickerProps, SinglePickerProps } from "../PickerCommon";
3
+ declare const _default: React.ComponentType<import("@draftbit/react-theme-provider").$Without<React.PropsWithChildren<CommonDropDownPickerProps & SinglePickerProps & ModalPickerProps>, "theme"> & {
4
+ theme?: import("@draftbit/react-theme-provider").$DeepPartial<any> | undefined;
5
+ }> & import("@draftbit/react-theme-provider/typings/hoist-non-react-statics").NonReactStatics<React.ComponentType<React.PropsWithChildren<CommonDropDownPickerProps & SinglePickerProps & ModalPickerProps>> & React.FC<React.PropsWithChildren<CommonDropDownPickerProps & SinglePickerProps & ModalPickerProps>>, {}>;
6
+ export default _default;
@@ -0,0 +1,88 @@
1
+ import * as React from "react";
2
+ import { View, Text, Keyboard } from "react-native";
3
+ import { extractStyles, flattenReactFragments, useDeepCompareMemo, } from "../../../utilities";
4
+ import { normalizeToPickerOptions, } from "../PickerCommon";
5
+ import PickerInputContainer from "../PickerInputContainer";
6
+ import ModalPickerComponent from "react-native-select-dropdown";
7
+ import { withTheme } from "../../../theming";
8
+ import PickerItem from "../dropdown/PickerItem";
9
+ import { useOnUpdate } from "../../../hooks";
10
+ const ModalPicker = ({ theme, options: optionsProp = [], onValueChange, Icon, placeholder, value, autoDismissKeyboard = true, selectedIconName = "Feather/check", selectedIconColor = theme.colors.strong, selectedIconSize = 20, dropDownBackgroundColor = theme.colors.background, dropDownBorderColor = theme.colors.divider, dropDownTextColor = theme.colors.strong, dropDownBorderWidth = 1, dropDownBorderRadius = 8, children: childrenProp, disabled, dropdownOverlayColor, ...rest }) => {
11
+ const dropdownRef = React.useRef();
12
+ const [pickerVisible, setPickerVisible] = React.useState(false);
13
+ const [internalValue, setInternalValue] = React.useState(value);
14
+ const isMultiSelect = Array.isArray(value);
15
+ const pickerItemProps = React.useMemo(() => {
16
+ const children = flattenReactFragments(React.Children.toArray(childrenProp));
17
+ // Only the props of the first PickerItem are used, any others are ignored
18
+ const firstPickerItem = children.find((child) => child.type === PickerItem);
19
+ return (firstPickerItem === null || firstPickerItem === void 0 ? void 0 : firstPickerItem.props) || {};
20
+ }, [childrenProp]);
21
+ const { viewStyles: pickerItemViewStyles, textStyles: pickerItemTextStyles } = extractStyles(pickerItemProps.style);
22
+ const options = useDeepCompareMemo(() => normalizeToPickerOptions(optionsProp).map((option) => ({
23
+ label: option.label.toString(),
24
+ value: option.value,
25
+ })), [optionsProp]);
26
+ useOnUpdate(() => {
27
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange((isMultiSelect ? internalValue !== null && internalValue !== void 0 ? internalValue : [] : internalValue !== null && internalValue !== void 0 ? internalValue : "") // cannot determine if multiselect or not on compile time
28
+ );
29
+ // onValueChange excluded to prevent running on every re-render when using an anoymous function, which is the common case
30
+ }, [internalValue]);
31
+ React.useEffect(() => {
32
+ if (pickerVisible && autoDismissKeyboard) {
33
+ Keyboard.dismiss();
34
+ }
35
+ }, [pickerVisible, autoDismissKeyboard]);
36
+ React.useEffect(() => {
37
+ if (disabled) {
38
+ setPickerVisible(false);
39
+ }
40
+ }, [disabled]);
41
+ const defaultValue = options.find((item) => item.value === value);
42
+ return (React.createElement(PickerInputContainer, { testID: "dropdown-picker", Icon: Icon, placeholder: placeholder, selectedValue: value, options: options, onPress: () => {
43
+ setPickerVisible(!pickerVisible);
44
+ // @ts-ignore
45
+ dropdownRef.current.openDropdown();
46
+ }, zIndex: pickerVisible ? 100 : undefined, disabled: disabled, ...rest },
47
+ React.createElement(ModalPickerComponent
48
+ // @ts-ignore
49
+ , {
50
+ // @ts-ignore
51
+ ref: dropdownRef, data: options, defaultValue: defaultValue, onSelect: (selectedItem, index) => {
52
+ console.log(selectedItem, index);
53
+ setInternalValue(selectedItem.value);
54
+ }, renderButton: () => {
55
+ return React.createElement(View, null);
56
+ }, renderItem: (item, _index, isSelected) => {
57
+ const selectedBackgroundColor = isSelected
58
+ ? pickerItemProps.selectedBackgroundColor
59
+ : pickerItemViewStyles.backgroundColor;
60
+ const selectedTextColor = isSelected
61
+ ? pickerItemProps.selectedTextColor || dropDownTextColor
62
+ : dropDownTextColor;
63
+ const selectedTextSize = isSelected
64
+ ? pickerItemProps.selectedTextSize || 14
65
+ : 14;
66
+ const iconColor = isSelected ? selectedIconColor : "transparent";
67
+ return (React.createElement(View, { style: {
68
+ padding: 10,
69
+ flexDirection: "row",
70
+ alignItems: "center",
71
+ backgroundColor: selectedBackgroundColor,
72
+ } },
73
+ React.createElement(Text, { style: {
74
+ color: selectedTextColor,
75
+ fontSize: selectedTextSize,
76
+ flex: 1,
77
+ ...pickerItemTextStyles,
78
+ } }, item.label),
79
+ React.createElement(Icon, { name: selectedIconName, size: selectedIconSize, color: iconColor })));
80
+ }, showsVerticalScrollIndicator: false, dropdownOverlayColor: dropdownOverlayColor, dropdownStyle: {
81
+ borderColor: dropDownBorderColor,
82
+ borderWidth: dropDownBorderWidth,
83
+ borderRadius: dropDownBorderRadius,
84
+ backgroundColor: dropDownBackgroundColor,
85
+ }, disableAutoScroll: true })));
86
+ };
87
+ export default withTheme(ModalPicker);
88
+ //# sourceMappingURL=ModalPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalPicker.js","sourceRoot":"","sources":["../../../../../../src/components/Picker/modal/ModalPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,oBAAoB,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,UAA+B,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,GAIb,CAAC,EACH,KAAK,EACL,OAAO,EAAE,WAAW,GAAG,EAAE,EACzB,aAAa,EACb,IAAI,EACJ,WAAW,EACX,KAAK,EACL,mBAAmB,GAAG,IAAI,EAC1B,gBAAgB,GAAG,eAAe,EAClC,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EACvC,gBAAgB,GAAG,EAAE,EACrB,uBAAuB,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EACjD,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,EAC1C,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EACvC,mBAAmB,GAAG,CAAC,EACvB,oBAAoB,GAAG,CAAC,EACxB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EACR,oBAAoB,EACpB,GAAG,IAAI,EACR,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAEnC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAEtD,KAAK,CAAC,CAAC;IAET,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE3C,MAAM,eAAe,GAAoB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1D,MAAM,QAAQ,GAAG,qBAAqB,CACpC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAyB,CAC7D,CAAC;QAEF,0EAA0E;QAC1E,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAE5E,OAAO,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,KAAI,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAC1E,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,kBAAkB,CAChC,GAAG,EAAE,CACH,wBAAwB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;QAC9B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC,EACL,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,WAAW,CAAC,GAAG,EAAE;QACf,aAAa,aAAb,aAAa,uBAAb,aAAa,CACX,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC,CAAC,CAAC,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAQ,CAAC,yDAAyD;SAC7H,CAAC;QACF,yHAAyH;IAC3H,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,aAAa,IAAI,mBAAmB,EAAE;YACxC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACpB;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEzC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,QAAQ,EAAE;YACZ,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAElE,OAAO,CACL,oBAAC,oBAAoB,IACnB,MAAM,EAAC,iBAAiB,EACxB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,KAAK,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,EAAE;YACZ,gBAAgB,CAAC,CAAC,aAAa,CAAC,CAAC;YACjC,aAAa;YACb,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC,EACD,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EACvC,QAAQ,EAAE,QAAQ,KACd,IAAI;QAER,oBAAC,oBAAoB;QACnB,aAAa;;YAAb,aAAa;YACb,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,OAAO,EACb,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;gBAChC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACjC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC,EACD,YAAY,EAAE,GAAG,EAAE;gBACjB,OAAO,oBAAC,IAAI,OAAG,CAAC;YAClB,CAAC,EACD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;gBACvC,MAAM,uBAAuB,GAAG,UAAU;oBACxC,CAAC,CAAC,eAAe,CAAC,uBAAuB;oBACzC,CAAC,CAAC,oBAAoB,CAAC,eAAe,CAAC;gBACzC,MAAM,iBAAiB,GAAG,UAAU;oBAClC,CAAC,CAAC,eAAe,CAAC,iBAAiB,IAAI,iBAAiB;oBACxD,CAAC,CAAC,iBAAiB,CAAC;gBACtB,MAAM,gBAAgB,GAAG,UAAU;oBACjC,CAAC,CAAC,eAAe,CAAC,gBAAgB,IAAI,EAAE;oBACxC,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC;gBAEjE,OAAO,CACL,oBAAC,IAAI,IACH,KAAK,EAAE;wBACL,OAAO,EAAE,EAAE;wBACX,aAAa,EAAE,KAAK;wBACpB,UAAU,EAAE,QAAQ;wBACpB,eAAe,EAAE,uBAAuB;qBACzC;oBAED,oBAAC,IAAI,IACH,KAAK,EAAE;4BACL,KAAK,EAAE,iBAAiB;4BACxB,QAAQ,EAAE,gBAAgB;4BAC1B,IAAI,EAAE,CAAC;4BACP,GAAG,oBAAoB;yBACxB,IAEA,IAAI,CAAC,KAAK,CACN;oBACP,oBAAC,IAAI,IACH,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,SAAS,GAChB,CACG,CACR,CAAC;YACJ,CAAC,EACD,4BAA4B,EAAE,KAAK,EACnC,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE;gBACb,WAAW,EAAE,mBAAmB;gBAChC,WAAW,EAAE,mBAAmB;gBAChC,YAAY,EAAE,oBAAoB;gBAClC,eAAe,EAAE,uBAAuB;aACzC,EACD,iBAAiB,EAAE,IAAI,GACvB,CACmB,CACxB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC,WAAW,CAAC,CAAC"}
@@ -6,11 +6,13 @@ declare type ScreenContainerProps = {
6
6
  hasSafeArea?: boolean;
7
7
  hasTopSafeArea?: boolean;
8
8
  hasBottomSafeArea?: boolean;
9
+ hasLeftSafeArea?: boolean;
10
+ hasRightSafeArea?: boolean;
9
11
  theme: Theme;
10
12
  style?: StyleProp<ViewStyle>;
11
13
  children?: React.ReactNode;
12
14
  };
13
- declare function ScreenContainer({ scrollable, hasSafeArea, hasBottomSafeArea, hasTopSafeArea, theme, style, children, ...rest }: ScreenContainerProps): React.JSX.Element;
15
+ declare function ScreenContainer({ scrollable, hasSafeArea, hasBottomSafeArea, hasTopSafeArea, hasLeftSafeArea, hasRightSafeArea, theme, style, children, ...rest }: ScreenContainerProps): React.JSX.Element;
14
16
  declare const _default: React.ComponentType<import("@draftbit/react-theme-provider").$Without<ScreenContainerProps, "theme"> & {
15
17
  theme?: import("@draftbit/react-theme-provider").$DeepPartial<any> | undefined;
16
18
  }> & import("@draftbit/react-theme-provider/typings/hoist-non-react-statics").NonReactStatics<React.ComponentType<ScreenContainerProps> & typeof ScreenContainer, {}>;
@@ -2,16 +2,22 @@ import * as React from "react";
2
2
  import { StyleSheet, ScrollView, View, } from "react-native";
3
3
  import { SafeAreaView } from "react-native-safe-area-context";
4
4
  import { withTheme } from "../theming";
5
- function ScreenContainer({ scrollable = false, hasSafeArea = false, hasBottomSafeArea = false, hasTopSafeArea = false, theme, style, children, ...rest }) {
5
+ function ScreenContainer({ scrollable = false, hasSafeArea = false, hasBottomSafeArea = false, hasTopSafeArea = false, hasLeftSafeArea = true, hasRightSafeArea = true, theme, style, children, ...rest }) {
6
6
  var _a;
7
7
  const backgroundColor = ((_a = StyleSheet.flatten(style)) === null || _a === void 0 ? void 0 : _a.backgroundColor) || theme.colors.background;
8
- const edges = ["left", "right"];
8
+ const edges = [];
9
9
  if (hasSafeArea || hasTopSafeArea) {
10
10
  edges.push("top");
11
11
  }
12
12
  if (hasSafeArea || hasBottomSafeArea) {
13
13
  edges.push("bottom");
14
14
  }
15
+ if (hasSafeArea || hasLeftSafeArea) {
16
+ edges.push("left");
17
+ }
18
+ if (hasSafeArea || hasRightSafeArea) {
19
+ edges.push("right");
20
+ }
15
21
  return (React.createElement(SafeAreaView, { edges: edges, style: [
16
22
  styles.container,
17
23
  {
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenContainer.js","sourceRoot":"","sources":["../../../../src/components/ScreenContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,UAAU,EAGV,IAAI,GACL,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAavC,SAAS,eAAe,CAAC,EACvB,UAAU,GAAG,KAAK,EAClB,WAAW,GAAG,KAAK,EACnB,iBAAiB,GAAG,KAAK,EACzB,cAAc,GAAG,KAAK,EACtB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACc;;IACrB,MAAM,eAAe,GACnB,CAAA,MAAA,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,0CAAE,eAAe,KAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;IAExE,MAAM,KAAK,GAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,WAAW,IAAI,cAAc,EAAE;QACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnB;IAED,IAAI,WAAW,IAAI,iBAAiB,EAAE;QACpC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtB;IAED,OAAO,CACL,oBAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;YACL,MAAM,CAAC,SAAS;YAChB;gBACE,eAAe;aAChB;SACF,KACG,IAAI,IAEP,UAAU,CAAC,CAAC,CAAC,CACZ,oBAAC,UAAU,IACT,qBAAqB,EAAE;YACrB,MAAM,CAAC,mBAAmB;YAC1B,EAAE,eAAe,EAAE;YACnB,KAAK;SACN,IAEA,QAAQ,CACE,CACd,CAAC,CAAC,CAAC,CACF,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,eAAe,EAAE,EAAE,KAAK,CAAC,IACxD,QAAQ,CACJ,CACR,CACY,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;KACR;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,SAAS;KAChB;CACF,CAAC,CAAC;AAEH,eAAe,SAAS,CAAC,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"ScreenContainer.js","sourceRoot":"","sources":["../../../../src/components/ScreenContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,UAAU,EAGV,IAAI,GACL,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAevC,SAAS,eAAe,CAAC,EACvB,UAAU,GAAG,KAAK,EAClB,WAAW,GAAG,KAAK,EACnB,iBAAiB,GAAG,KAAK,EACzB,cAAc,GAAG,KAAK,EACtB,eAAe,GAAG,IAAI,EACtB,gBAAgB,GAAG,IAAI,EACvB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACc;;IACrB,MAAM,eAAe,GACnB,CAAA,MAAA,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,0CAAE,eAAe,KAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;IAExE,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,WAAW,IAAI,cAAc,EAAE;QACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnB;IAED,IAAI,WAAW,IAAI,iBAAiB,EAAE;QACpC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtB;IAED,IAAI,WAAW,IAAI,eAAe,EAAE;QAClC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACpB;IAED,IAAI,WAAW,IAAI,gBAAgB,EAAE;QACnC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACrB;IAED,OAAO,CACL,oBAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;YACL,MAAM,CAAC,SAAS;YAChB;gBACE,eAAe;aAChB;SACF,KACG,IAAI,IAEP,UAAU,CAAC,CAAC,CAAC,CACZ,oBAAC,UAAU,IACT,qBAAqB,EAAE;YACrB,MAAM,CAAC,mBAAmB;YAC1B,EAAE,eAAe,EAAE;YACnB,KAAK;SACN,IAEA,QAAQ,CACE,CACd,CAAC,CAAC,CAAC,CACF,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,eAAe,EAAE,EAAE,KAAK,CAAC,IACxD,QAAQ,CACJ,CACR,CACY,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,IAAI,EAAE,CAAC;KACR;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,SAAS;KAChB;CACF,CAAC,CAAC;AAEH,eAAe,SAAS,CAAC,eAAe,CAAC,CAAC"}