@draftbit/core 43.4.4 → 43.4.5-c7a710.1

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 (54) hide show
  1. package/lib/commonjs/components/CardInline.js.map +1 -1
  2. package/lib/commonjs/components/DatePicker/DatePickerComponent.js.map +1 -1
  3. package/lib/commonjs/components/FieldSearchBarFull.js.map +1 -1
  4. package/lib/commonjs/components/FormRow.js +5 -18
  5. package/lib/commonjs/components/FormRow.js.map +1 -1
  6. package/lib/commonjs/components/NumberInput.js +4 -13
  7. package/lib/commonjs/components/NumberInput.js.map +1 -1
  8. package/lib/commonjs/components/Picker/PickerComponent.android.js +6 -20
  9. package/lib/commonjs/components/Picker/PickerComponent.android.js.map +1 -1
  10. package/lib/commonjs/components/Portal/PortalManager.js.map +1 -1
  11. package/lib/commonjs/components/RadioButton/RadioButton.js +9 -8
  12. package/lib/commonjs/components/RadioButton/RadioButton.js.map +1 -1
  13. package/lib/commonjs/components/RadioButton/RadioButtonGroup.js +14 -13
  14. package/lib/commonjs/components/RadioButton/RadioButtonGroup.js.map +1 -1
  15. package/lib/commonjs/components/RadioButton/RadioButtonRow.js +13 -10
  16. package/lib/commonjs/components/RadioButton/RadioButtonRow.js.map +1 -1
  17. package/lib/commonjs/components/RadioButton/index.js.map +1 -1
  18. package/lib/commonjs/components/ResizeMode.js +1 -2
  19. package/lib/commonjs/components/Swiper/Swiper.js.map +1 -1
  20. package/lib/commonjs/components/Touchable.js +3 -16
  21. package/lib/commonjs/components/Touchable.js.map +1 -1
  22. package/lib/commonjs/mappings/SafeAreaView.js.map +1 -1
  23. package/lib/commonjs/mappings/StarRating.js +2 -6
  24. package/lib/commonjs/mappings/StarRating.js.map +1 -1
  25. package/lib/commonjs/mappings/Surface.js.map +1 -1
  26. package/lib/commonjs/mappings/WebView.js.map +1 -1
  27. package/lib/commonjs/utilities.js +13 -0
  28. package/lib/commonjs/utilities.js.map +1 -1
  29. package/lib/module/components/Header.js.map +1 -1
  30. package/lib/module/components/Picker/PickerComponent.web.js +17 -3
  31. package/lib/module/components/Picker/PickerComponent.web.js.map +1 -1
  32. package/lib/module/components/RadioButton/RadioButton.js +8 -8
  33. package/lib/module/components/RadioButton/RadioButton.js.map +1 -1
  34. package/lib/module/components/RadioButton/RadioButtonGroup.js +13 -13
  35. package/lib/module/components/RadioButton/RadioButtonGroup.js.map +1 -1
  36. package/lib/module/components/RadioButton/RadioButtonRow.js +14 -11
  37. package/lib/module/components/RadioButton/RadioButtonRow.js.map +1 -1
  38. package/lib/module/mappings/BlurView.js.map +1 -1
  39. package/lib/module/mappings/CardContainerShortImage.js.map +1 -1
  40. package/lib/module/utilities.js +10 -0
  41. package/lib/module/utilities.js.map +1 -1
  42. package/lib/typescript/src/components/RadioButton/RadioButton.d.ts +2 -2
  43. package/lib/typescript/src/components/RadioButton/RadioButtonGroup.d.ts +2 -2
  44. package/lib/typescript/src/components/RadioButton/RadioButtonRow.d.ts +1 -1
  45. package/lib/typescript/src/utilities.d.ts +1 -0
  46. package/package.json +2 -2
  47. package/src/components/RadioButton/RadioButton.js +7 -6
  48. package/src/components/RadioButton/RadioButton.tsx +11 -12
  49. package/src/components/RadioButton/RadioButtonGroup.js +11 -11
  50. package/src/components/RadioButton/RadioButtonGroup.tsx +19 -18
  51. package/src/components/RadioButton/RadioButtonRow.js +12 -9
  52. package/src/components/RadioButton/RadioButtonRow.tsx +16 -14
  53. package/src/utilities.js +12 -0
  54. package/src/utilities.ts +11 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["BlurView.ts"],"names":["COMPONENT_TYPES","FORM_TYPES","PROP_TYPES","GROUPS","SEED_DATA","name","tag","description","doc_link","code_link","category","layout","flexGrow","flexShrink","flexBasis","props","tint","label","editable","required","defaultValue","formType","flatArray","propType","STRING","options","group","basic","intensity","number","NUMBER","min","max","step","precision"],"mappings":"AAAA,SACEA,eADF,EAEEC,UAFF,EAGEC,UAHF,EAIEC,MAJF,QAKO,iBALP;AAOA,OAAO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,WADiB;AAEvBC,EAAAA,GAAG,EAAE,UAFkB;AAGvBC,EAAAA,WAAW,EAAE,gBAHU;AAIvBC,EAAAA,QAAQ,EAAE,qDAJa;AAKvBC,EAAAA,SAAS,EACP,kFANqB;AAOvBC,EAAAA,QAAQ,EAAEV,eAAe,CAACW,MAPH;AAQvBA,EAAAA,MAAM,EAAE;AACNC,IAAAA,QAAQ,EAAE,CADJ;AAENC,IAAAA,UAAU,EAAE,CAFN;AAGNC,IAAAA,SAAS,EAAE;AAHL,GARe;AAavBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE;AACJC,MAAAA,KAAK,EAAE,MADH;AAEJV,MAAAA,WAAW,EAAE,2BAFT;AAGJW,MAAAA,QAAQ,EAAE,IAHN;AAIJC,MAAAA,QAAQ,EAAE,IAJN;AAKJC,MAAAA,YAAY,EAAE,SALV;AAMJC,MAAAA,QAAQ,EAAEpB,UAAU,CAACqB,SANjB;AAOJC,MAAAA,QAAQ,EAAErB,UAAU,CAACsB,MAPjB;AAQJC,MAAAA,OAAO,EAAE,CAAC,SAAD,EAAY,OAAZ,EAAqB,MAArB,CARL;AASJC,MAAAA,KAAK,EAAEvB,MAAM,CAACwB;AATV,KADD;AAYLC,IAAAA,SAAS,EAAE;AACTX,MAAAA,KAAK,EAAE,WADE;AAETV,MAAAA,WAAW,EACT,uEAHO;AAITW,MAAAA,QAAQ,EAAE,IAJD;AAKTC,MAAAA,QAAQ,EAAE,IALD;AAMTC,MAAAA,YAAY,EAAE,EANL;AAOTC,MAAAA,QAAQ,EAAEpB,UAAU,CAAC4B,MAPZ;AAQTN,MAAAA,QAAQ,EAAErB,UAAU,CAAC4B,MARZ;AASTC,MAAAA,GAAG,EAAE,CATI;AAUTC,MAAAA,GAAG,EAAE,GAVI;AAWTC,MAAAA,IAAI,EAAE,CAXG;AAYTC,MAAAA,SAAS,EAAE,CAZF;AAaTR,MAAAA,KAAK,EAAEvB,MAAM,CAACwB;AAbL;AAZN;AAbgB,CAAlB","sourcesContent":["import {\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n GROUPS,\n} from \"@draftbit/types\";\n\nexport const SEED_DATA = {\n name: \"Blur View\",\n tag: \"BlurView\",\n description: \"Expo Blur View\",\n doc_link: \"https://docs.expo.io/versions/latest/sdk/blur-view/\",\n code_link:\n \"https://github.com/expo/expo/blob/master/packages/expo/src/effects/BlurView.d.ts\",\n category: COMPONENT_TYPES.layout,\n layout: {\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: 0,\n },\n props: {\n tint: {\n label: \"Tint\",\n description: \"The tint of the blur view\",\n editable: true,\n required: true,\n defaultValue: \"default\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n options: [\"default\", \"light\", \"dark\"],\n group: GROUPS.basic,\n },\n intensity: {\n label: \"Intensity\",\n description:\n \"A number from 1 to 100 that controls the intensity of the blur effect\",\n editable: true,\n required: true,\n defaultValue: 50,\n formType: FORM_TYPES.number,\n propType: PROP_TYPES.NUMBER,\n min: 0,\n max: 100,\n step: 1,\n precision: 0,\n group: GROUPS.basic,\n },\n },\n};\n"]}
1
+ {"version":3,"sources":["BlurView.js"],"names":["COMPONENT_TYPES","FORM_TYPES","PROP_TYPES","GROUPS","SEED_DATA","name","tag","description","doc_link","code_link","category","layout","flexGrow","flexShrink","flexBasis","props","tint","label","editable","required","defaultValue","formType","flatArray","propType","STRING","options","group","basic","intensity","number","NUMBER","min","max","step","precision"],"mappings":"AAAA,SAASA,eAAT,EAA0BC,UAA1B,EAAsCC,UAAtC,EAAkDC,MAAlD,QAAiE,iBAAjE;AACA,OAAO,MAAMC,SAAS,GAAG;AACrBC,EAAAA,IAAI,EAAE,WADe;AAErBC,EAAAA,GAAG,EAAE,UAFgB;AAGrBC,EAAAA,WAAW,EAAE,gBAHQ;AAIrBC,EAAAA,QAAQ,EAAE,qDAJW;AAKrBC,EAAAA,SAAS,EAAE,kFALU;AAMrBC,EAAAA,QAAQ,EAAEV,eAAe,CAACW,MANL;AAOrBA,EAAAA,MAAM,EAAE;AACJC,IAAAA,QAAQ,EAAE,CADN;AAEJC,IAAAA,UAAU,EAAE,CAFR;AAGJC,IAAAA,SAAS,EAAE;AAHP,GAPa;AAYrBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,IAAI,EAAE;AACFC,MAAAA,KAAK,EAAE,MADL;AAEFV,MAAAA,WAAW,EAAE,2BAFX;AAGFW,MAAAA,QAAQ,EAAE,IAHR;AAIFC,MAAAA,QAAQ,EAAE,IAJR;AAKFC,MAAAA,YAAY,EAAE,SALZ;AAMFC,MAAAA,QAAQ,EAAEpB,UAAU,CAACqB,SANnB;AAOFC,MAAAA,QAAQ,EAAErB,UAAU,CAACsB,MAPnB;AAQFC,MAAAA,OAAO,EAAE,CAAC,SAAD,EAAY,OAAZ,EAAqB,MAArB,CARP;AASFC,MAAAA,KAAK,EAAEvB,MAAM,CAACwB;AATZ,KADH;AAYHC,IAAAA,SAAS,EAAE;AACPX,MAAAA,KAAK,EAAE,WADA;AAEPV,MAAAA,WAAW,EAAE,uEAFN;AAGPW,MAAAA,QAAQ,EAAE,IAHH;AAIPC,MAAAA,QAAQ,EAAE,IAJH;AAKPC,MAAAA,YAAY,EAAE,EALP;AAMPC,MAAAA,QAAQ,EAAEpB,UAAU,CAAC4B,MANd;AAOPN,MAAAA,QAAQ,EAAErB,UAAU,CAAC4B,MAPd;AAQPC,MAAAA,GAAG,EAAE,CARE;AASPC,MAAAA,GAAG,EAAE,GATE;AAUPC,MAAAA,IAAI,EAAE,CAVC;AAWPC,MAAAA,SAAS,EAAE,CAXJ;AAYPR,MAAAA,KAAK,EAAEvB,MAAM,CAACwB;AAZP;AAZR;AAZc,CAAlB","sourcesContent":["import { COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, GROUPS, } from \"@draftbit/types\";\nexport const SEED_DATA = {\n name: \"Blur View\",\n tag: \"BlurView\",\n description: \"Expo Blur View\",\n doc_link: \"https://docs.expo.io/versions/latest/sdk/blur-view/\",\n code_link: \"https://github.com/expo/expo/blob/master/packages/expo/src/effects/BlurView.d.ts\",\n category: COMPONENT_TYPES.layout,\n layout: {\n flexGrow: 1,\n flexShrink: 1,\n flexBasis: 0,\n },\n props: {\n tint: {\n label: \"Tint\",\n description: \"The tint of the blur view\",\n editable: true,\n required: true,\n defaultValue: \"default\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n options: [\"default\", \"light\", \"dark\"],\n group: GROUPS.basic,\n },\n intensity: {\n label: \"Intensity\",\n description: \"A number from 1 to 100 that controls the intensity of the blur effect\",\n editable: true,\n required: true,\n defaultValue: 50,\n formType: FORM_TYPES.number,\n propType: PROP_TYPES.NUMBER,\n min: 0,\n max: 100,\n step: 1,\n precision: 0,\n group: GROUPS.basic,\n },\n },\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["CardContainerShortImage.ts"],"names":["GROUPS","COMPONENT_TYPES","FORM_TYPES","PROP_TYPES","createElevationType","SEED_DATA","name","tag","description","category","card","preview_image_url","supports_list_render","props","image","group","data","label","formType","propType","ASSET","defaultValue","editable","required","title","string","STRING","subtitle","aspectRatio","basic","elevation","mode","uncategorized","flatArray","options","layout"],"mappings":"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","sourcesContent":["import {\n GROUPS,\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n createElevationType,\n} from \"@draftbit/types\";\n\nexport const SEED_DATA = [\n {\n name: \"Short Card (Left)\",\n tag: \"CardContainerShortImage\",\n description:\n \"An elevated card with a left aligned image and a title and subtitle\",\n category: COMPONENT_TYPES.card,\n preview_image_url: \"{CLOUDINARY_URL}/Card_ContainerShortLeftImage.png\",\n supports_list_render: true,\n props: {\n image: {\n group: GROUPS.data,\n label: \"Image\",\n description: \"Image\",\n formType: FORM_TYPES.image,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n title: {\n group: GROUPS.data,\n label: \"Title\",\n description: \"Title to display\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"Beautiful West Coast Villa\",\n editable: true,\n required: false,\n },\n subtitle: {\n group: GROUPS.data,\n label: \"Subtitle\",\n description: \"Subtitle to display\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"San Diego\",\n editable: true,\n required: false,\n },\n aspectRatio: {\n group: GROUPS.basic,\n label: \"Aspect ratio\",\n description: \"Aspect ratio of the image\",\n formType: FORM_TYPES.aspectRatio,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: false,\n },\n elevation: createElevationType(2),\n mode: {\n group: GROUPS.uncategorized,\n label: \"Image Side\",\n description: \"The side on which the image is on (left or right)\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n defaultValue: \"left\",\n options: [\"left\", \"right\"],\n editable: false,\n required: false,\n },\n },\n layout: {},\n },\n {\n name: \"Short Card (Right)\",\n tag: \"CardContainerShortImage\",\n description:\n \"An elevated card with a right aligned image and a title and subtitle\",\n category: COMPONENT_TYPES.card,\n preview_image_url: \"{CLOUDINARY_URL}/Card_ContainerShortRightImage.png\",\n supports_list_render: true,\n props: {\n image: {\n group: GROUPS.data,\n label: \"Image\",\n description: \"Image\",\n formType: FORM_TYPES.image,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n title: {\n group: GROUPS.data,\n label: \"Title\",\n description: \"Title to display\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"Beautiful West Coast Villa\",\n editable: true,\n required: false,\n },\n subtitle: {\n group: GROUPS.data,\n label: \"Subtitle\",\n description: \"Subtitle to display\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"San Diego\",\n editable: true,\n required: false,\n },\n elevation: createElevationType(2),\n mode: {\n label: \"Mode\",\n description: \"Mode\",\n group: GROUPS.uncategorized,\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"right\",\n editable: false,\n required: false,\n },\n },\n layout: {},\n },\n];\n"]}
1
+ {"version":3,"sources":["CardContainerShortImage.js"],"names":["GROUPS","COMPONENT_TYPES","FORM_TYPES","PROP_TYPES","createElevationType","SEED_DATA","name","tag","description","category","card","preview_image_url","supports_list_render","props","image","group","data","label","formType","propType","ASSET","defaultValue","editable","required","title","string","STRING","subtitle","aspectRatio","basic","elevation","mode","uncategorized","flatArray","options","layout"],"mappings":"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","sourcesContent":["import { GROUPS, COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, createElevationType, } from \"@draftbit/types\";\nexport const SEED_DATA = [\n {\n name: \"Short Card (Left)\",\n tag: \"CardContainerShortImage\",\n description: \"An elevated card with a left aligned image and a title and subtitle\",\n category: COMPONENT_TYPES.card,\n preview_image_url: \"{CLOUDINARY_URL}/Card_ContainerShortLeftImage.png\",\n supports_list_render: true,\n props: {\n image: {\n group: GROUPS.data,\n label: \"Image\",\n description: \"Image\",\n formType: FORM_TYPES.image,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n title: {\n group: GROUPS.data,\n label: \"Title\",\n description: \"Title to display\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"Beautiful West Coast Villa\",\n editable: true,\n required: false,\n },\n subtitle: {\n group: GROUPS.data,\n label: \"Subtitle\",\n description: \"Subtitle to display\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"San Diego\",\n editable: true,\n required: false,\n },\n aspectRatio: {\n group: GROUPS.basic,\n label: \"Aspect ratio\",\n description: \"Aspect ratio of the image\",\n formType: FORM_TYPES.aspectRatio,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: false,\n },\n elevation: createElevationType(2),\n mode: {\n group: GROUPS.uncategorized,\n label: \"Image Side\",\n description: \"The side on which the image is on (left or right)\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n defaultValue: \"left\",\n options: [\"left\", \"right\"],\n editable: false,\n required: false,\n },\n },\n layout: {},\n },\n {\n name: \"Short Card (Right)\",\n tag: \"CardContainerShortImage\",\n description: \"An elevated card with a right aligned image and a title and subtitle\",\n category: COMPONENT_TYPES.card,\n preview_image_url: \"{CLOUDINARY_URL}/Card_ContainerShortRightImage.png\",\n supports_list_render: true,\n props: {\n image: {\n group: GROUPS.data,\n label: \"Image\",\n description: \"Image\",\n formType: FORM_TYPES.image,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n title: {\n group: GROUPS.data,\n label: \"Title\",\n description: \"Title to display\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"Beautiful West Coast Villa\",\n editable: true,\n required: false,\n },\n subtitle: {\n group: GROUPS.data,\n label: \"Subtitle\",\n description: \"Subtitle to display\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"San Diego\",\n editable: true,\n required: false,\n },\n elevation: createElevationType(2),\n mode: {\n label: \"Mode\",\n description: \"Mode\",\n group: GROUPS.uncategorized,\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"right\",\n editable: false,\n required: false,\n },\n },\n layout: {},\n },\n];\n"]}
@@ -1,4 +1,5 @@
1
1
  import { StyleSheet } from "react-native";
2
+ import { isString, isNumber } from "lodash";
2
3
  export function extractStyles(style) {
3
4
  const {
4
5
  color,
@@ -60,4 +61,13 @@ export function applyStyles(baseStyles, stylesToApply) {
60
61
 
61
62
  return flattenedStyles;
62
63
  }
64
+ export function getValueForRadioButton(value) {
65
+ if (isString(value)) {
66
+ return value;
67
+ } else if (isNumber(value)) {
68
+ return String(value);
69
+ } else {
70
+ throw new Error(`Invalid value: ${value}`);
71
+ }
72
+ }
63
73
  //# sourceMappingURL=utilities.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utilities.ts"],"names":["StyleSheet","extractStyles","style","color","fontFamily","fontWeight","fontSize","lineHeight","letterSpacing","textTransform","textAlign","textDecorationLine","textDecorationColor","textDecorationStyle","viewStyles","flatten","textStyles","applyStyles","baseStyles","stylesToApply","flattenedStyles","key","value","Object","entries"],"mappings":"AAAA,SAASA,UAAT,QAAiD,cAAjD;AAEA,OAAO,SAASC,aAAT,CAAuBC,KAAvB,EAA8C;AACnD,QAAM;AACJC,IAAAA,KADI;AAEJC,IAAAA,UAFI;AAGJC,IAAAA,UAHI;AAIJC,IAAAA,QAJI;AAKJC,IAAAA,UALI;AAMJC,IAAAA,aANI;AAOJC,IAAAA,aAPI;AAQJC,IAAAA,SARI;AASJC,IAAAA,kBATI;AAUJC,IAAAA,mBAVI;AAWJC,IAAAA,mBAXI;AAYJ,OAAGC;AAZC,MAaFd,UAAU,CAACe,OAAX,CAAmBb,KAAK,IAAI,EAA5B,CAbJ;AAeA,QAAMc,UAAqB,GAAG;AAC5Bb,IAAAA,KAD4B;AAE5BC,IAAAA,UAF4B;AAG5BC,IAAAA,UAH4B;AAI5BC,IAAAA,QAJ4B;AAK5BC,IAAAA,UAL4B;AAM5BC,IAAAA,aAN4B;AAO5BC,IAAAA,aAP4B;AAQ5BC,IAAAA,SAR4B;AAS5BC,IAAAA,kBAT4B;AAU5BC,IAAAA,mBAV4B;AAW5BC,IAAAA;AAX4B,GAA9B;AAcA,SAAO;AAAEC,IAAAA,UAAF;AAAcE,IAAAA;AAAd,GAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,WAAT,CACLC,UADK,EAELC,aAFK,EAGL;AACA,MAAI,CAACA,aAAL,EAAoB;AAClB;AACD;;AAED,QAAMC,eAAe,GAAGpB,UAAU,CAACe,OAAX,CAAmBG,UAAnB,CAAxB;;AAEA,OAAK,MAAM,CAACG,GAAD,EAAMC,KAAN,CAAX,IAA2BC,MAAM,CAACC,OAAP,CAAeL,aAAf,CAA3B,EAA0D;AACxD,QAAIG,KAAK,IAAI,IAAb,EAAmB;AACjBF,MAAAA,eAAe,CAACC,GAAD,CAAf,GAAuBC,KAAvB;AACD;AACF;;AAED,SAAOF,eAAP;AACD","sourcesContent":["import { StyleSheet, StyleProp, TextStyle } from \"react-native\";\n\nexport function extractStyles(style: StyleProp<any>) {\n const {\n color,\n fontFamily,\n fontWeight,\n fontSize,\n lineHeight,\n letterSpacing,\n textTransform,\n textAlign,\n textDecorationLine,\n textDecorationColor,\n textDecorationStyle,\n ...viewStyles\n } = StyleSheet.flatten(style || {});\n\n const textStyles: TextStyle = {\n color,\n fontFamily,\n fontWeight,\n fontSize,\n lineHeight,\n letterSpacing,\n textTransform,\n textAlign,\n textDecorationLine,\n textDecorationColor,\n textDecorationStyle,\n };\n\n return { viewStyles, textStyles };\n}\n\n/**\n * Merges a style object on top of another style object. In React Native,\n * keys with undefined values in a style object will still override styles\n * that appear earlier in a sequence. This avoids that problem.\n *\n * This lets us avoid the `...(something ? { something } : {})` pattern.\n * There doesn't seem to be a better way to do this. These all seem to not\n * work (i.e. they all result in `{ color: undefined }`:\n * `const mergedStyles = [{ color: \"red\" }, { color: undefined }]`\n * `const mergedStyles = StyleSheet.compose({ color: \"red\" }, { color: undefined })`\n * `const mergedStyles = StyleSheet.flatten([{ color: \"red\" }, { color: undefined }])`\n */\nexport function applyStyles(\n baseStyles: Array<StyleProp<any>>,\n stylesToApply: StyleProp<any> | undefined\n) {\n if (!stylesToApply) {\n return;\n }\n\n const flattenedStyles = StyleSheet.flatten(baseStyles);\n\n for (const [key, value] of Object.entries(stylesToApply)) {\n if (value != null) {\n flattenedStyles[key] = value;\n }\n }\n\n return flattenedStyles;\n}\n"]}
1
+ {"version":3,"sources":["utilities.ts"],"names":["StyleSheet","isString","isNumber","extractStyles","style","color","fontFamily","fontWeight","fontSize","lineHeight","letterSpacing","textTransform","textAlign","textDecorationLine","textDecorationColor","textDecorationStyle","viewStyles","flatten","textStyles","applyStyles","baseStyles","stylesToApply","flattenedStyles","key","value","Object","entries","getValueForRadioButton","String","Error"],"mappings":"AAAA,SAASA,UAAT,QAAiD,cAAjD;AACA,SAASC,QAAT,EAAmBC,QAAnB,QAAmC,QAAnC;AAEA,OAAO,SAASC,aAAT,CAAuBC,KAAvB,EAA8C;AACnD,QAAM;AACJC,IAAAA,KADI;AAEJC,IAAAA,UAFI;AAGJC,IAAAA,UAHI;AAIJC,IAAAA,QAJI;AAKJC,IAAAA,UALI;AAMJC,IAAAA,aANI;AAOJC,IAAAA,aAPI;AAQJC,IAAAA,SARI;AASJC,IAAAA,kBATI;AAUJC,IAAAA,mBAVI;AAWJC,IAAAA,mBAXI;AAYJ,OAAGC;AAZC,MAaFhB,UAAU,CAACiB,OAAX,CAAmBb,KAAK,IAAI,EAA5B,CAbJ;AAeA,QAAMc,UAAqB,GAAG;AAC5Bb,IAAAA,KAD4B;AAE5BC,IAAAA,UAF4B;AAG5BC,IAAAA,UAH4B;AAI5BC,IAAAA,QAJ4B;AAK5BC,IAAAA,UAL4B;AAM5BC,IAAAA,aAN4B;AAO5BC,IAAAA,aAP4B;AAQ5BC,IAAAA,SAR4B;AAS5BC,IAAAA,kBAT4B;AAU5BC,IAAAA,mBAV4B;AAW5BC,IAAAA;AAX4B,GAA9B;AAcA,SAAO;AAAEC,IAAAA,UAAF;AAAcE,IAAAA;AAAd,GAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,WAAT,CACLC,UADK,EAELC,aAFK,EAGL;AACA,MAAI,CAACA,aAAL,EAAoB;AAClB;AACD;;AAED,QAAMC,eAAe,GAAGtB,UAAU,CAACiB,OAAX,CAAmBG,UAAnB,CAAxB;;AAEA,OAAK,MAAM,CAACG,GAAD,EAAMC,KAAN,CAAX,IAA2BC,MAAM,CAACC,OAAP,CAAeL,aAAf,CAA3B,EAA0D;AACxD,QAAIG,KAAK,IAAI,IAAb,EAAmB;AACjBF,MAAAA,eAAe,CAACC,GAAD,CAAf,GAAuBC,KAAvB;AACD;AACF;;AAED,SAAOF,eAAP;AACD;AAED,OAAO,SAASK,sBAAT,CAAgCH,KAAhC,EAAwD;AAC7D,MAAIvB,QAAQ,CAACuB,KAAD,CAAZ,EAAqB;AACnB,WAAOA,KAAP;AACD,GAFD,MAEO,IAAItB,QAAQ,CAACsB,KAAD,CAAZ,EAAqB;AAC1B,WAAOI,MAAM,CAACJ,KAAD,CAAb;AACD,GAFM,MAEA;AACL,UAAM,IAAIK,KAAJ,CAAW,kBAAiBL,KAAM,EAAlC,CAAN;AACD;AACF","sourcesContent":["import { StyleSheet, StyleProp, TextStyle } from \"react-native\";\nimport { isString, isNumber } from \"lodash\";\n\nexport function extractStyles(style: StyleProp<any>) {\n const {\n color,\n fontFamily,\n fontWeight,\n fontSize,\n lineHeight,\n letterSpacing,\n textTransform,\n textAlign,\n textDecorationLine,\n textDecorationColor,\n textDecorationStyle,\n ...viewStyles\n } = StyleSheet.flatten(style || {});\n\n const textStyles: TextStyle = {\n color,\n fontFamily,\n fontWeight,\n fontSize,\n lineHeight,\n letterSpacing,\n textTransform,\n textAlign,\n textDecorationLine,\n textDecorationColor,\n textDecorationStyle,\n };\n\n return { viewStyles, textStyles };\n}\n\n/**\n * Merges a style object on top of another style object. In React Native,\n * keys with undefined values in a style object will still override styles\n * that appear earlier in a sequence. This avoids that problem.\n *\n * This lets us avoid the `...(something ? { something } : {})` pattern.\n * There doesn't seem to be a better way to do this. These all seem to not\n * work (i.e. they all result in `{ color: undefined }`:\n * `const mergedStyles = [{ color: \"red\" }, { color: undefined }]`\n * `const mergedStyles = StyleSheet.compose({ color: \"red\" }, { color: undefined })`\n * `const mergedStyles = StyleSheet.flatten([{ color: \"red\" }, { color: undefined }])`\n */\nexport function applyStyles(\n baseStyles: Array<StyleProp<any>>,\n stylesToApply: StyleProp<any> | undefined\n) {\n if (!stylesToApply) {\n return;\n }\n\n const flattenedStyles = StyleSheet.flatten(baseStyles);\n\n for (const [key, value] of Object.entries(stylesToApply)) {\n if (value != null) {\n flattenedStyles[key] = value;\n }\n }\n\n return flattenedStyles;\n}\n\nexport function getValueForRadioButton(value: string | number) {\n if (isString(value)) {\n return value;\n } else if (isNumber(value)) {\n return String(value);\n } else {\n throw new Error(`Invalid value: ${value}`);\n }\n}\n"]}
@@ -5,9 +5,9 @@ export declare type RadioButtonProps = {
5
5
  selected?: boolean;
6
6
  disabled?: boolean;
7
7
  color?: string;
8
- value?: string;
8
+ value: string | number;
9
9
  unselectedColor?: string;
10
- onPress?: () => void;
10
+ onPress?: (value: string) => void;
11
11
  style?: StyleProp<ViewStyle>;
12
12
  size?: number;
13
13
  selectedIcon?: string;
@@ -5,9 +5,9 @@ import { Direction } from "./context";
5
5
  export interface RadioButtonGroupProps {
6
6
  direction?: Direction;
7
7
  style?: StyleProp<ViewStyle>;
8
- value?: string;
8
+ value: string;
9
9
  onValueChange?: (value: string) => void;
10
- defaultValue?: string;
10
+ defaultValue?: string | number;
11
11
  theme: Theme;
12
12
  children: React.ReactNode;
13
13
  }
@@ -8,7 +8,7 @@ export declare enum Direction {
8
8
  }
9
9
  export interface RadioButtonRowProps extends Omit<RadioButtonProps, "onPress"> {
10
10
  label: string | React.ReactNode;
11
- value: string;
11
+ value: string | number;
12
12
  color?: string;
13
13
  unselectedColor?: string;
14
14
  labelContainerStyle: StyleProp<ViewStyle>;
@@ -16,3 +16,4 @@ export declare function extractStyles(style: StyleProp<any>): {
16
16
  * `const mergedStyles = StyleSheet.flatten([{ color: "red" }, { color: undefined }])`
17
17
  */
18
18
  export declare function applyStyles(baseStyles: Array<StyleProp<any>>, stylesToApply: StyleProp<any> | undefined): any;
19
+ export declare function getValueForRadioButton(value: string | number): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "43.4.4",
3
+ "version": "43.4.5-c7a710.1+c7a710d9",
4
4
  "description": "Core (non-native) Components",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -80,5 +80,5 @@
80
80
  ]
81
81
  ]
82
82
  },
83
- "gitHead": "39c758981f54b268cc4c58202f077287c99a2e91"
83
+ "gitHead": "c7a710d9ceb3958fdbb1d59cc5a64a43e44f0a47"
84
84
  }
@@ -1,16 +1,17 @@
1
1
  import * as React from "react";
2
2
  import Config from "../Config";
3
3
  import IconButton from "../IconButton";
4
+ import { getValueForRadioButton } from "../../utilities";
4
5
  import { useRadioButtonGroupContext } from "./context";
5
- const RadioButton = ({ Icon, disabled = false, color, value, selected, unselectedColor, onPress = () => { }, size = Config.radioButtonSize, selectedIcon = "MaterialIcons/radio-button-checked", unselectedIcon = "MaterialIcons/radio-button-unchecked", style, ...rest }) => {
6
+ const RadioButton = ({ Icon, disabled = false, color, value = "", selected, unselectedColor, onPress, size = Config.radioButtonSize, selectedIcon = "MaterialIcons/radio-button-checked", unselectedIcon = "MaterialIcons/radio-button-unchecked", style, ...rest }) => {
6
7
  const { value: contextValue, onValueChange } = useRadioButtonGroupContext();
8
+ const realValue = getValueForRadioButton(value);
9
+ const realContextValue = getValueForRadioButton(contextValue);
10
+ const isSelected = selected ?? realContextValue === realValue;
7
11
  const handlePress = () => {
8
- onPress && onPress();
9
- if (onValueChange && value) {
10
- onValueChange(value);
11
- }
12
+ onPress?.(realValue);
13
+ onValueChange?.(realValue);
12
14
  };
13
- const isSelected = selected || (contextValue != null && contextValue === value);
14
15
  return (React.createElement(IconButton, { Icon: Icon, icon: isSelected ? selectedIcon : unselectedIcon, color: isSelected ? color : unselectedColor, disabled: disabled, onPress: handlePress, size: size, style: style, ...rest }));
15
16
  };
16
17
  export default RadioButton;
@@ -3,6 +3,7 @@ import { StyleProp, ViewStyle } from "react-native";
3
3
 
4
4
  import Config from "../Config";
5
5
  import IconButton from "../IconButton";
6
+ import { getValueForRadioButton } from "../../utilities";
6
7
  import { useRadioButtonGroupContext } from "./context";
7
8
 
8
9
  import type { IconSlot } from "../../interfaces/Icon";
@@ -11,9 +12,9 @@ export type RadioButtonProps = {
11
12
  selected?: boolean;
12
13
  disabled?: boolean;
13
14
  color?: string;
14
- value?: string;
15
+ value: string | number;
15
16
  unselectedColor?: string;
16
- onPress?: () => void;
17
+ onPress?: (value: string) => void;
17
18
  style?: StyleProp<ViewStyle>;
18
19
  size?: number;
19
20
  selectedIcon?: string;
@@ -24,10 +25,10 @@ const RadioButton: React.FC<RadioButtonProps> = ({
24
25
  Icon,
25
26
  disabled = false,
26
27
  color,
27
- value,
28
+ value = "",
28
29
  selected,
29
30
  unselectedColor,
30
- onPress = () => {},
31
+ onPress,
31
32
  size = Config.radioButtonSize,
32
33
  selectedIcon = "MaterialIcons/radio-button-checked",
33
34
  unselectedIcon = "MaterialIcons/radio-button-unchecked",
@@ -36,17 +37,15 @@ const RadioButton: React.FC<RadioButtonProps> = ({
36
37
  }) => {
37
38
  const { value: contextValue, onValueChange } = useRadioButtonGroupContext();
38
39
 
39
- const handlePress = () => {
40
- onPress && onPress();
40
+ const realValue = getValueForRadioButton(value);
41
+ const realContextValue = getValueForRadioButton(contextValue);
42
+ const isSelected = selected ?? realContextValue === realValue;
41
43
 
42
- if (onValueChange && value) {
43
- onValueChange(value);
44
- }
44
+ const handlePress = () => {
45
+ onPress?.(realValue);
46
+ onValueChange?.(realValue);
45
47
  };
46
48
 
47
- const isSelected =
48
- selected || (contextValue != null && contextValue === value);
49
-
50
49
  return (
51
50
  <IconButton
52
51
  Icon={Icon}
@@ -1,22 +1,22 @@
1
1
  import * as React from "react";
2
2
  import { View } from "react-native";
3
+ import { getValueForRadioButton } from "../../utilities";
3
4
  import { radioButtonGroupContext, Direction } from "./context";
4
5
  const { Provider } = radioButtonGroupContext;
5
- const RadioButtonGroup = ({ direction = Direction.Vertical, value, onValueChange = () => { }, defaultValue, style, children, ...rest }) => {
6
- const [internalValue, setInternalValue] = React.useState(value || defaultValue);
6
+ const RadioButtonGroup = ({ direction = Direction.Vertical, value = "", onValueChange, defaultValue = "", style, children, ...rest }) => {
7
+ const [internalValue, setInternalValue] = React.useState("");
7
8
  React.useEffect(() => {
8
- if (value != null) {
9
- setInternalValue(value);
10
- }
9
+ const realValue = getValueForRadioButton(value);
10
+ setInternalValue(realValue);
11
11
  }, [value]);
12
12
  React.useEffect(() => {
13
- if (defaultValue != null) {
14
- setInternalValue(defaultValue);
15
- }
13
+ const realDefaultValue = getValueForRadioButton(defaultValue);
14
+ setInternalValue(realDefaultValue);
16
15
  }, [defaultValue]);
17
16
  const handleValueChange = (newValue) => {
18
- setInternalValue(newValue);
19
- onValueChange(newValue);
17
+ const realNewValue = getValueForRadioButton(newValue);
18
+ setInternalValue(realNewValue);
19
+ onValueChange?.(realNewValue);
20
20
  };
21
21
  const _containerStyle = [
22
22
  {
@@ -30,7 +30,7 @@ const RadioButtonGroup = ({ direction = Direction.Vertical, value, onValueChange
30
30
  }
31
31
  return (React.createElement(View, { style: [{ minHeight: 40 }, style], ...rest },
32
32
  React.createElement(Provider, { value: {
33
- value: internalValue || "",
33
+ value: internalValue ?? "",
34
34
  onValueChange: handleValueChange,
35
35
  direction,
36
36
  } },
@@ -1,13 +1,14 @@
1
1
  import * as React from "react";
2
2
  import { View, StyleProp, ViewStyle } from "react-native";
3
3
  import type { Theme } from "../../styles/DefaultTheme";
4
+ import { getValueForRadioButton } from "../../utilities";
4
5
  import { radioButtonGroupContext, Direction } from "./context";
5
6
  export interface RadioButtonGroupProps {
6
7
  direction?: Direction;
7
8
  style?: StyleProp<ViewStyle>;
8
- value?: string;
9
+ value: string;
9
10
  onValueChange?: (value: string) => void;
10
- defaultValue?: string;
11
+ defaultValue?: string | number;
11
12
  theme: Theme;
12
13
  children: React.ReactNode;
13
14
  }
@@ -16,32 +17,32 @@ const { Provider } = radioButtonGroupContext;
16
17
 
17
18
  const RadioButtonGroup: React.FC<RadioButtonGroupProps> = ({
18
19
  direction = Direction.Vertical,
19
- value,
20
- onValueChange = () => {},
21
- defaultValue,
20
+ value = "",
21
+ onValueChange,
22
+ defaultValue = "",
22
23
  style,
23
24
  children,
24
25
  ...rest
25
26
  }) => {
26
- const [internalValue, setInternalValue] = React.useState<string | undefined>(
27
- value || defaultValue
28
- );
27
+ const [internalValue, setInternalValue] = React.useState<string>("");
29
28
 
30
29
  React.useEffect(() => {
31
- if (value != null) {
32
- setInternalValue(value);
33
- }
30
+ const realValue = getValueForRadioButton(value);
31
+
32
+ setInternalValue(realValue);
34
33
  }, [value]);
35
34
 
36
35
  React.useEffect(() => {
37
- if (defaultValue != null) {
38
- setInternalValue(defaultValue);
39
- }
36
+ const realDefaultValue = getValueForRadioButton(defaultValue);
37
+
38
+ setInternalValue(realDefaultValue);
40
39
  }, [defaultValue]);
41
40
 
42
- const handleValueChange = (newValue: string) => {
43
- setInternalValue(newValue);
44
- onValueChange(newValue);
41
+ const handleValueChange = (newValue: string | number) => {
42
+ const realNewValue = getValueForRadioButton(newValue);
43
+
44
+ setInternalValue(realNewValue);
45
+ onValueChange?.(realNewValue);
45
46
  };
46
47
 
47
48
  const _containerStyle: StyleProp<ViewStyle> = [
@@ -60,7 +61,7 @@ const RadioButtonGroup: React.FC<RadioButtonGroupProps> = ({
60
61
  <View style={[{ minHeight: 40 }, style]} {...rest}>
61
62
  <Provider
62
63
  value={{
63
- value: internalValue || "",
64
+ value: internalValue ?? "",
64
65
  onValueChange: handleValueChange,
65
66
  direction,
66
67
  }}
@@ -5,7 +5,7 @@ import Text from "../Text";
5
5
  import { useRadioButtonGroupContext } from "./context";
6
6
  import { Direction as GroupDirection } from "./context";
7
7
  import Touchable from "../Touchable";
8
- import { extractStyles } from "../../utilities";
8
+ import { extractStyles, getValueForRadioButton } from "../../utilities";
9
9
  export var Direction;
10
10
  (function (Direction) {
11
11
  Direction["Row"] = "row";
@@ -22,19 +22,22 @@ const getRadioButtonAlignment = (parentDirection, direction) => {
22
22
  return "flex-end";
23
23
  }
24
24
  };
25
- const renderLabel = (value, labelStyle, textStyle) => {
26
- if (typeof value === "string") {
27
- return React.createElement(Text, { style: [labelStyle, textStyle] }, value);
25
+ const renderLabel = (label, labelStyle, textStyle) => {
26
+ if (typeof label === "string") {
27
+ return React.createElement(Text, { style: [labelStyle, textStyle] }, label);
28
28
  }
29
29
  else {
30
- return React.createElement(React.Fragment, null, value);
30
+ return React.createElement(React.Fragment, null, label);
31
31
  }
32
32
  };
33
- const RadioButtonRow = ({ Icon, label, value, color, unselectedColor, onPress = () => { }, labelContainerStyle, labelStyle, radioButtonStyle, direction = Direction.Row, selected, disabled, style, ...rest }) => {
33
+ const RadioButtonRow = ({ Icon, label, value = "", color, unselectedColor, onPress, labelContainerStyle, labelStyle, radioButtonStyle, direction = Direction.Row, selected, disabled, style, ...rest }) => {
34
34
  const { value: contextValue, onValueChange, direction: parentDirection, } = useRadioButtonGroupContext();
35
+ const realValue = getValueForRadioButton(value);
36
+ const realContextValue = getValueForRadioButton(contextValue);
37
+ const isSelected = selected ?? realContextValue === realValue;
35
38
  const handlePress = () => {
36
- onPress(value);
37
- onValueChange && onValueChange(value);
39
+ onPress?.(realValue);
40
+ onValueChange?.(realValue);
38
41
  };
39
42
  const { textStyles, viewStyles } = extractStyles(style);
40
43
  return (React.createElement(Touchable, { onPress: handlePress, style: [styles.mainParent, { flexDirection: direction }, viewStyles], disabled: disabled, ...rest },
@@ -49,7 +52,7 @@ const RadioButtonRow = ({ Icon, label, value, color, unselectedColor, onPress =
49
52
  flex: 1,
50
53
  alignItems: getRadioButtonAlignment(parentDirection, direction),
51
54
  } },
52
- React.createElement(RadioButton, { Icon: Icon, selected: selected || (contextValue != null && contextValue === value), color: color, unselectedColor: unselectedColor, onPress: handlePress, style: radioButtonStyle }))));
55
+ React.createElement(RadioButton, { Icon: Icon, selected: isSelected ? true : false, value: realValue, color: color, unselectedColor: unselectedColor, style: radioButtonStyle }))));
53
56
  };
54
57
  const styles = StyleSheet.create({
55
58
  mainParent: {
@@ -13,7 +13,7 @@ import { useRadioButtonGroupContext } from "./context";
13
13
  import type { IconSlot } from "../../interfaces/Icon";
14
14
  import { Direction as GroupDirection } from "./context";
15
15
  import Touchable from "../Touchable";
16
- import { extractStyles } from "../../utilities";
16
+ import { extractStyles, getValueForRadioButton } from "../../utilities";
17
17
 
18
18
  export enum Direction {
19
19
  Row = "row",
@@ -22,7 +22,7 @@ export enum Direction {
22
22
 
23
23
  export interface RadioButtonRowProps extends Omit<RadioButtonProps, "onPress"> {
24
24
  label: string | React.ReactNode;
25
- value: string; // A string that this radio button row represents when selected
25
+ value: string | number; // A string (or number that will be parsed String(number)) that this radio button row represents when selected
26
26
  color?: string;
27
27
  unselectedColor?: string;
28
28
  labelContainerStyle: StyleProp<ViewStyle>;
@@ -46,24 +46,24 @@ const getRadioButtonAlignment = (
46
46
  };
47
47
 
48
48
  const renderLabel = (
49
- value: string | React.ReactNode,
49
+ label: string | React.ReactNode,
50
50
  labelStyle: StyleProp<TextStyle>,
51
51
  textStyle: StyleProp<TextStyle>
52
52
  ) => {
53
- if (typeof value === "string") {
54
- return <Text style={[labelStyle, textStyle]}>{value}</Text>;
53
+ if (typeof label === "string") {
54
+ return <Text style={[labelStyle, textStyle]}>{label}</Text>;
55
55
  } else {
56
- return <>{value}</>;
56
+ return <>{label}</>;
57
57
  }
58
58
  };
59
59
 
60
60
  const RadioButtonRow: React.FC<RadioButtonRowProps & IconSlot> = ({
61
61
  Icon,
62
62
  label,
63
- value,
63
+ value = "",
64
64
  color,
65
65
  unselectedColor,
66
- onPress = () => {},
66
+ onPress,
67
67
  labelContainerStyle,
68
68
  labelStyle,
69
69
  radioButtonStyle,
@@ -79,9 +79,13 @@ const RadioButtonRow: React.FC<RadioButtonRowProps & IconSlot> = ({
79
79
  direction: parentDirection,
80
80
  } = useRadioButtonGroupContext();
81
81
 
82
+ const realValue = getValueForRadioButton(value);
83
+ const realContextValue = getValueForRadioButton(contextValue);
84
+ const isSelected = selected ?? realContextValue === realValue;
85
+
82
86
  const handlePress = () => {
83
- onPress(value);
84
- onValueChange && onValueChange(value);
87
+ onPress?.(realValue);
88
+ onValueChange?.(realValue);
85
89
  };
86
90
 
87
91
  const { textStyles, viewStyles } = extractStyles(style);
@@ -112,12 +116,10 @@ const RadioButtonRow: React.FC<RadioButtonRowProps & IconSlot> = ({
112
116
  >
113
117
  <RadioButton
114
118
  Icon={Icon}
115
- selected={
116
- selected || (contextValue != null && contextValue === value)
117
- }
119
+ selected={isSelected ? true : false}
120
+ value={realValue}
118
121
  color={color}
119
122
  unselectedColor={unselectedColor}
120
- onPress={handlePress}
121
123
  style={radioButtonStyle}
122
124
  />
123
125
  </View>
package/src/utilities.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { StyleSheet } from "react-native";
2
+ import { isString, isNumber } from "lodash";
2
3
  export function extractStyles(style) {
3
4
  const { color, fontFamily, fontWeight, fontSize, lineHeight, letterSpacing, textTransform, textAlign, textDecorationLine, textDecorationColor, textDecorationStyle, ...viewStyles } = StyleSheet.flatten(style || {});
4
5
  const textStyles = {
@@ -40,3 +41,14 @@ export function applyStyles(baseStyles, stylesToApply) {
40
41
  }
41
42
  return flattenedStyles;
42
43
  }
44
+ export function getValueForRadioButton(value) {
45
+ if (isString(value)) {
46
+ return value;
47
+ }
48
+ else if (isNumber(value)) {
49
+ return String(value);
50
+ }
51
+ else {
52
+ throw new Error(`Invalid value: ${value}`);
53
+ }
54
+ }
package/src/utilities.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { StyleSheet, StyleProp, TextStyle } from "react-native";
2
+ import { isString, isNumber } from "lodash";
2
3
 
3
4
  export function extractStyles(style: StyleProp<any>) {
4
5
  const {
@@ -63,3 +64,13 @@ export function applyStyles(
63
64
 
64
65
  return flattenedStyles;
65
66
  }
67
+
68
+ export function getValueForRadioButton(value: string | number) {
69
+ if (isString(value)) {
70
+ return value;
71
+ } else if (isNumber(value)) {
72
+ return String(value);
73
+ } else {
74
+ throw new Error(`Invalid value: ${value}`);
75
+ }
76
+ }