related-ui-components 2.0.9 → 2.1.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.
- package/lib/module/app.js +10 -7
- package/lib/module/app.js.map +1 -1
- package/lib/module/components/Card/templates/SelaDealCard.js +2 -2
- package/lib/module/components/Card/templates/SelaDealCard.js.map +1 -1
- package/lib/module/contexts/BottomSheetContext.js +13 -0
- package/lib/module/contexts/BottomSheetContext.js.map +1 -0
- package/lib/module/contexts/BottomSheetProvider.js +100 -0
- package/lib/module/contexts/BottomSheetProvider.js.map +1 -0
- package/lib/module/contexts/index.js +5 -0
- package/lib/module/contexts/index.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/app.d.ts.map +1 -1
- package/lib/typescript/src/components/Card/templates/SelaDealCard.d.ts.map +1 -1
- package/lib/typescript/src/contexts/BottomSheetContext.d.ts +10 -0
- package/lib/typescript/src/contexts/BottomSheetContext.d.ts.map +1 -0
- package/lib/typescript/src/contexts/BottomSheetProvider.d.ts +7 -0
- package/lib/typescript/src/contexts/BottomSheetProvider.d.ts.map +1 -0
- package/lib/typescript/src/contexts/index.d.ts +3 -0
- package/lib/typescript/src/contexts/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/app.tsx +12 -6
- package/src/components/Card/templates/SelaDealCard.tsx +2 -15
- package/src/contexts/BottomSheetContext.tsx +27 -0
- package/src/contexts/BottomSheetProvider.tsx +127 -0
- package/src/contexts/index.ts +2 -0
- package/src/index.ts +2 -1
package/lib/module/app.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React from "react";
|
|
4
|
-
import { SafeAreaView } from "react-native";
|
|
3
|
+
import React, { useEffect } from "react";
|
|
4
|
+
import { I18nManager, SafeAreaView } from "react-native";
|
|
5
5
|
import { SelaDealCard } from "./components/index.js";
|
|
6
6
|
import { RelatedProvider } from "./theme/index.js";
|
|
7
7
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
8
8
|
const MyScreen = () => {
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
I18nManager.allowRTL(true);
|
|
11
|
+
I18nManager.forceRTL(true);
|
|
12
|
+
}, []);
|
|
9
13
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
10
14
|
children: /*#__PURE__*/_jsx(RelatedProvider, {
|
|
11
15
|
children: /*#__PURE__*/_jsx(SafeAreaView, {
|
|
@@ -20,17 +24,16 @@ const MyScreen = () => {
|
|
|
20
24
|
uri: "https://picsum.photos/seed/lounge/600/700"
|
|
21
25
|
} // Your image for the horizontal card
|
|
22
26
|
,
|
|
23
|
-
label: "Offer"
|
|
24
|
-
|
|
25
|
-
,
|
|
27
|
+
label: "Offer",
|
|
28
|
+
lockOverlay: true,
|
|
26
29
|
providerName: "Altanfeethi",
|
|
27
30
|
providerNameStyle: {
|
|
28
|
-
color:
|
|
31
|
+
color: "yellow"
|
|
29
32
|
} // Specific style for provider name
|
|
30
33
|
,
|
|
31
34
|
description: "1 Year Membership",
|
|
32
35
|
descriptionStyle: {
|
|
33
|
-
color:
|
|
36
|
+
color: "white"
|
|
34
37
|
},
|
|
35
38
|
price: "20,000 pts",
|
|
36
39
|
onPress: () => console.log("Horizontal Sela Card Pressed"),
|
package/lib/module/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","SafeAreaView","SelaDealCard","RelatedProvider","jsx","_jsx","Fragment","_Fragment","MyScreen","children","style","padding","variant","backgroundImage","uri","label","providerName","providerNameStyle","color","description","descriptionStyle","price","onPress","console","log","width"],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":";;AAAA,OAAOA,KAAK,
|
|
1
|
+
{"version":3,"names":["React","useEffect","I18nManager","SafeAreaView","SelaDealCard","RelatedProvider","jsx","_jsx","Fragment","_Fragment","MyScreen","allowRTL","forceRTL","children","style","padding","variant","backgroundImage","uri","label","lockOverlay","providerName","providerNameStyle","color","description","descriptionStyle","price","onPress","console","log","width"],"sourceRoot":"..\\..\\src","sources":["app.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAkB,OAAO;AAClD,SAASC,WAAW,EAAEC,YAAY,QAAc,cAAc;AAC9D,SAASC,YAAY,QAAQ,uBAAc;AAC3C,SAASC,eAAe,QAAQ,kBAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA;AAE1C,MAAMC,QAAQ,GAAGA,CAAA,KAAM;EACrBT,SAAS,CAAC,MAAM;IACdC,WAAW,CAACS,QAAQ,CAAC,IAAI,CAAC;IAC1BT,WAAW,CAACU,QAAQ,CAAC,IAAI,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EACN,oBACEL,IAAA,CAAAE,SAAA;IAAAI,QAAA,eACEN,IAAA,CAACF,eAAe;MAAAQ,QAAA,eACdN,IAAA,CAACJ,YAAY;QAACW,KAAK,EAAE;UAAEC,OAAO,EAAE;QAAG,CAAE;QAAAF,QAAA,eACnCN,IAAA,CAACH,YAAY;UACXY,OAAO,EAAC;UACR;UAAA;UACAC,eAAe,EAAE;YACfC,GAAG,EAAE;UACP,CAAE,CAAC;UAAA;UACHC,KAAK,EAAC,OAAO;UACbC,WAAW;UACXC,YAAY,EAAC,aAAa;UAC1BC,iBAAiB,EAAE;YAAEC,KAAK,EAAE;UAAS,CAAE,CAAC;UAAA;UACxCC,WAAW,EAAC,mBAAmB;UAC/BC,gBAAgB,EAAE;YAAEF,KAAK,EAAE;UAAQ,CAAE;UACrCG,KAAK,EAAC,YAAY;UAClBC,OAAO,EAAEA,CAAA,KAAMC,OAAO,CAACC,GAAG,CAAC,8BAA8B,CAAE;UAC3DC,KAAK,EAAE,GAAI,CAAC;UACZ;QAAA,CACD;MAAC,CACU;IAAC,CACA;EAAC,CAClB,CAAC;AAEP,CAAC;AAED,eAAepB,QAAQ","ignoreList":[]}
|
|
@@ -84,7 +84,7 @@ const SelaDealCard = ({
|
|
|
84
84
|
}]
|
|
85
85
|
}), /*#__PURE__*/_jsx(LockOverlay, {
|
|
86
86
|
visible: lockOverlay,
|
|
87
|
-
contentPosition:
|
|
87
|
+
contentPosition: isRTL ? "top-left" : "top-right",
|
|
88
88
|
iconSize: 24,
|
|
89
89
|
text: "",
|
|
90
90
|
overlayOpacity: 0.4
|
|
@@ -92,7 +92,7 @@ const SelaDealCard = ({
|
|
|
92
92
|
style: styles.overlayContainer,
|
|
93
93
|
children: [/*#__PURE__*/_jsx(View, {
|
|
94
94
|
style: [styles.topSection, {
|
|
95
|
-
alignItems:
|
|
95
|
+
alignItems: "flex-start"
|
|
96
96
|
}],
|
|
97
97
|
children: label && /*#__PURE__*/_jsx(View, {
|
|
98
98
|
style: finalLabelContainerStyle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useState","View","Text","StyleSheet","Image","Card","useTheme","LockOverlay","jsx","_jsx","jsxs","_jsxs","SelaDealCard","variant","backgroundImage","label","labelStyle","labelContainerStyle","providerName","providerNameStyle","description","descriptionStyle","price","priceStyle","priceContainerStyle","onPress","style","width","height","isRTL","propIsRTL","borderRadius","darkOverlayEnabled","darkOverlayColor","lockOverlay","theme","themeIsRTL","undefined","styles","getStyles","dynamicHeight","setDynamicHeight","uri","getSize","imgWidth","imgHeight","aspectRatio","finalLabelContainerStyle","labelContainerBase","finalLabelStyle","labelTextBase","finalPriceContainerStyle","priceContainerBase","priceContainerHorizontal","priceContainerVertical","finalPriceStyle","priceTextBase","providerTextStyle","providerNameBase","color","onSurface","textAlign","descriptionTextStyle","descriptionBase","cardBase","source","resizeMode","children","absoluteFill","backgroundColor","visible","contentPosition","iconSize","text","overlayOpacity","overlayContainer","topSection","alignItems","bottomContentHorizontal","textBlockHorizontal","bottomContentVertical","textBlockVertical","create","overflow","position","flex","padding","justifyContent","paddingVertical","paddingHorizontal","background","fontWeight","fontSize","onBackground","marginBottom","secondary","helper","primary","onPrimary","flexDirection","marginRight","alignSelf"],"sourceRoot":"..\\..\\..\\..\\..\\src","sources":["components/Card/templates/SelaDealCard.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","View","Text","StyleSheet","Image","Card","useTheme","LockOverlay","jsx","_jsx","jsxs","_jsxs","SelaDealCard","variant","backgroundImage","label","labelStyle","labelContainerStyle","providerName","providerNameStyle","description","descriptionStyle","price","priceStyle","priceContainerStyle","onPress","style","width","height","isRTL","propIsRTL","borderRadius","darkOverlayEnabled","darkOverlayColor","lockOverlay","theme","themeIsRTL","undefined","styles","getStyles","dynamicHeight","setDynamicHeight","uri","getSize","imgWidth","imgHeight","aspectRatio","finalLabelContainerStyle","labelContainerBase","finalLabelStyle","labelTextBase","finalPriceContainerStyle","priceContainerBase","priceContainerHorizontal","priceContainerVertical","finalPriceStyle","priceTextBase","providerTextStyle","providerNameBase","color","onSurface","textAlign","descriptionTextStyle","descriptionBase","cardBase","source","resizeMode","children","absoluteFill","backgroundColor","visible","contentPosition","iconSize","text","overlayOpacity","overlayContainer","topSection","alignItems","bottomContentHorizontal","textBlockHorizontal","bottomContentVertical","textBlockVertical","create","overflow","position","flex","padding","justifyContent","paddingVertical","paddingHorizontal","background","fontWeight","fontSize","onBackground","marginBottom","secondary","helper","primary","onPrimary","flexDirection","marginRight","alignSelf"],"sourceRoot":"..\\..\\..\\..\\..\\src","sources":["components/Card/templates/SelaDealCard.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext } from "react";
|
|
4
|
+
const BottomSheetContext = /*#__PURE__*/createContext(undefined);
|
|
5
|
+
export const useBottomSheet = () => {
|
|
6
|
+
const context = useContext(BottomSheetContext);
|
|
7
|
+
if (!context) {
|
|
8
|
+
throw new Error("useBottomSheet must be used within a BottomSheetProvider");
|
|
9
|
+
}
|
|
10
|
+
return context;
|
|
11
|
+
};
|
|
12
|
+
export default BottomSheetContext;
|
|
13
|
+
//# sourceMappingURL=BottomSheetContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","BottomSheetContext","undefined","useBottomSheet","context","Error"],"sourceRoot":"..\\..\\..\\src","sources":["contexts/BottomSheetContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAmB,OAAO;AAY5D,MAAMC,kBAAkB,gBAAGF,aAAa,CACtCG,SACF,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAMC,OAAO,GAAGJ,UAAU,CAACC,kBAAkB,CAAC;EAC9C,IAAI,CAACG,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,0DACF,CAAC;EACH;EACA,OAAOD,OAAO;AAChB,CAAC;AAED,eAAeH,kBAAkB","ignoreList":[]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useState, useRef, useCallback, useMemo, useEffect } from "react";
|
|
4
|
+
import BottomSheet, { BottomSheetBackdrop } from "@gorhom/bottom-sheet";
|
|
5
|
+
import BottomSheetContext from "./BottomSheetContext.js";
|
|
6
|
+
import { Keyboard, StyleSheet } from "react-native";
|
|
7
|
+
import { useTheme } from "../theme/index.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
export const BottomSheetProvider = ({
|
|
10
|
+
children
|
|
11
|
+
}) => {
|
|
12
|
+
const {
|
|
13
|
+
theme
|
|
14
|
+
} = useTheme(); // Get theme for styling the provider's sheet if needed
|
|
15
|
+
const styles = useMemo(() => providerStyles(theme), [theme]);
|
|
16
|
+
const sheetRef = useRef(null);
|
|
17
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
18
|
+
const [content, setContent] = useState(null);
|
|
19
|
+
const [size, setSize] = useState("small");
|
|
20
|
+
const [onCloseCallback, setOnCloseCallback] = useState(null);
|
|
21
|
+
const openBottomSheet = useCallback((newContent, size, onClose) => {
|
|
22
|
+
setContent(newContent);
|
|
23
|
+
setSize(size);
|
|
24
|
+
setOnCloseCallback(() => onClose);
|
|
25
|
+
setIsOpen(true);
|
|
26
|
+
}, []);
|
|
27
|
+
const closeBottomSheet = useCallback(() => {
|
|
28
|
+
sheetRef.current?.close();
|
|
29
|
+
setIsOpen(false);
|
|
30
|
+
}, []);
|
|
31
|
+
const renderBackdrop = useCallback(props => /*#__PURE__*/_jsx(BottomSheetBackdrop, {
|
|
32
|
+
...props,
|
|
33
|
+
disappearsOnIndex: -1,
|
|
34
|
+
appearsOnIndex: 0,
|
|
35
|
+
opacity: 0.5,
|
|
36
|
+
pressBehavior: "close",
|
|
37
|
+
style: [props.style, {
|
|
38
|
+
backgroundColor: "rgba(0,0,0,0.5)"
|
|
39
|
+
}]
|
|
40
|
+
}), []);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (isOpen && content) {
|
|
43
|
+
sheetRef.current?.snapToIndex(size === "small" ? 0 : 1);
|
|
44
|
+
} else {
|
|
45
|
+
sheetRef.current?.close();
|
|
46
|
+
}
|
|
47
|
+
}, [isOpen, content, size]);
|
|
48
|
+
return /*#__PURE__*/_jsxs(BottomSheetContext.Provider, {
|
|
49
|
+
value: {
|
|
50
|
+
openBottomSheet,
|
|
51
|
+
closeBottomSheet,
|
|
52
|
+
isOpen
|
|
53
|
+
},
|
|
54
|
+
children: [children, /*#__PURE__*/_jsx(BottomSheet, {
|
|
55
|
+
ref: sheetRef,
|
|
56
|
+
index: -1,
|
|
57
|
+
snapPoints: ["30%", "50%", "85%"],
|
|
58
|
+
enablePanDownToClose: true,
|
|
59
|
+
backdropComponent: renderBackdrop,
|
|
60
|
+
android_keyboardInputMode: "adjustResize",
|
|
61
|
+
keyboardBlurBehavior: "restore",
|
|
62
|
+
keyboardBehavior: "extend",
|
|
63
|
+
enableDynamicSizing: false,
|
|
64
|
+
style: styles.bottomSheetContainer,
|
|
65
|
+
onClose: () => {
|
|
66
|
+
setIsOpen(false);
|
|
67
|
+
Keyboard.dismiss();
|
|
68
|
+
},
|
|
69
|
+
handleIndicatorStyle: {
|
|
70
|
+
backgroundColor: theme.onSurface
|
|
71
|
+
},
|
|
72
|
+
children: content
|
|
73
|
+
})]
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
const providerStyles = theme => StyleSheet.create({
|
|
77
|
+
bottomSheetContainer: {
|
|
78
|
+
backgroundColor: theme.surface,
|
|
79
|
+
// Ensure sheet background matches theme
|
|
80
|
+
borderTopLeftRadius: 20,
|
|
81
|
+
borderTopRightRadius: 20,
|
|
82
|
+
overflow: "hidden" // Important for rounded corners with content
|
|
83
|
+
},
|
|
84
|
+
headerContainer: {
|
|
85
|
+
padding: 16,
|
|
86
|
+
borderBottomWidth: 1,
|
|
87
|
+
borderBottomColor: theme.divider,
|
|
88
|
+
// Use theme color for divider
|
|
89
|
+
alignItems: "center"
|
|
90
|
+
},
|
|
91
|
+
headerTitle: {
|
|
92
|
+
fontSize: 18,
|
|
93
|
+
fontWeight: "bold",
|
|
94
|
+
color: theme.onSurface
|
|
95
|
+
},
|
|
96
|
+
contentContainer: {
|
|
97
|
+
flex: 1 // Ensure content can take up available space
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
//# sourceMappingURL=BottomSheetProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useState","useRef","useCallback","useMemo","useEffect","BottomSheet","BottomSheetBackdrop","BottomSheetContext","Keyboard","StyleSheet","useTheme","jsx","_jsx","jsxs","_jsxs","BottomSheetProvider","children","theme","styles","providerStyles","sheetRef","isOpen","setIsOpen","content","setContent","size","setSize","onCloseCallback","setOnCloseCallback","openBottomSheet","newContent","onClose","closeBottomSheet","current","close","renderBackdrop","props","disappearsOnIndex","appearsOnIndex","opacity","pressBehavior","style","backgroundColor","snapToIndex","Provider","value","ref","index","snapPoints","enablePanDownToClose","backdropComponent","android_keyboardInputMode","keyboardBlurBehavior","keyboardBehavior","enableDynamicSizing","bottomSheetContainer","dismiss","handleIndicatorStyle","onSurface","create","surface","borderTopLeftRadius","borderTopRightRadius","overflow","headerContainer","padding","borderBottomWidth","borderBottomColor","divider","alignItems","headerTitle","fontSize","fontWeight","color","contentContainer","flex"],"sourceRoot":"..\\..\\..\\src","sources":["contexts/BottomSheetProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,QAAQ,EACRC,MAAM,EACNC,WAAW,EAEXC,OAAO,EACPC,SAAS,QACJ,OAAO;AACd,OAAOC,WAAW,IAChBC,mBAAmB,QAEd,sBAAsB;AAC7B,OAAOC,kBAAkB,MAAM,yBAAsB;AACrD,SAASC,QAAQ,EAAEC,UAAU,QAAQ,cAAc;AACnD,SAAoBC,QAAQ,QAAQ,mBAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAM/C,OAAO,MAAMC,mBAAuD,GAAGA,CAAC;EACtEC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAM,CAAC,GAAGP,QAAQ,CAAC,CAAC,CAAC,CAAC;EAC9B,MAAMQ,MAAM,GAAGf,OAAO,CAAC,MAAMgB,cAAc,CAACF,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAC5D,MAAMG,QAAQ,GAAGnB,MAAM,CAAc,IAAI,CAAC;EAE1C,MAAM,CAACoB,MAAM,EAAEC,SAAS,CAAC,GAAGtB,QAAQ,CAAC,KAAK,CAAC;EAC3C,MAAM,CAACuB,OAAO,EAAEC,UAAU,CAAC,GAAGxB,QAAQ,CAAY,IAAI,CAAC;EACvD,MAAM,CAACyB,IAAI,EAAEC,OAAO,CAAC,GAAG1B,QAAQ,CAAoB,OAAO,CAAC;EAE5D,MAAM,CAAC2B,eAAe,EAAEC,kBAAkB,CAAC,GAAG5B,QAAQ,CACpD,IACF,CAAC;EAED,MAAM6B,eAAe,GAAG3B,WAAW,CACjC,CACE4B,UAAyC,EACzCL,IAAuB,EACvBM,OAAoB,KACjB;IACHP,UAAU,CAACM,UAAU,CAAC;IACtBJ,OAAO,CAACD,IAAI,CAAC;IACbG,kBAAkB,CAAC,MAAMG,OAAO,CAAC;IACjCT,SAAS,CAAC,IAAI,CAAC;EACjB,CAAC,EACD,EACF,CAAC;EAED,MAAMU,gBAAgB,GAAG9B,WAAW,CAAC,MAAM;IACzCkB,QAAQ,CAACa,OAAO,EAAEC,KAAK,CAAC,CAAC;IACzBZ,SAAS,CAAC,KAAK,CAAC;EAClB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMa,cAAc,GAAGjC,WAAW,CAC/BkC,KAA+B,iBAC9BxB,IAAA,CAACN,mBAAmB;IAAA,GACd8B,KAAK;IACTC,iBAAiB,EAAE,CAAC,CAAE;IACtBC,cAAc,EAAE,CAAE;IAClBC,OAAO,EAAE,GAAI;IACbC,aAAa,EAAC,OAAO;IACrBC,KAAK,EAAE,CAACL,KAAK,CAACK,KAAK,EAAE;MAAEC,eAAe,EAAE;IAAkB,CAAC;EAAE,CAC9D,CACF,EACD,EACF,CAAC;EAEDtC,SAAS,CAAC,MAAM;IACd,IAAIiB,MAAM,IAAIE,OAAO,EAAE;MACrBH,QAAQ,CAACa,OAAO,EAAEU,WAAW,CAAClB,IAAI,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC,MAAM;MACLL,QAAQ,CAACa,OAAO,EAAEC,KAAK,CAAC,CAAC;IAC3B;EACF,CAAC,EAAE,CAACb,MAAM,EAAEE,OAAO,EAAEE,IAAI,CAAC,CAAC;EAE3B,oBACEX,KAAA,CAACP,kBAAkB,CAACqC,QAAQ;IAC1BC,KAAK,EAAE;MAAEhB,eAAe;MAAEG,gBAAgB;MAAEX;IAAO,CAAE;IAAAL,QAAA,GAEpDA,QAAQ,eACTJ,IAAA,CAACP,WAAW;MACVyC,GAAG,EAAE1B,QAAS;MACd2B,KAAK,EAAE,CAAC,CAAE;MACVC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE;MAClCC,oBAAoB;MACpBC,iBAAiB,EAAEf,cAAe;MAClCgB,yBAAyB,EAAC,cAAc;MACxCC,oBAAoB,EAAC,SAAS;MAC9BC,gBAAgB,EAAC,QAAQ;MACzBC,mBAAmB,EAAE,KAAM;MAC3Bb,KAAK,EAAEvB,MAAM,CAACqC,oBAAqB;MACnCxB,OAAO,EAAEA,CAAA,KAAM;QACbT,SAAS,CAAC,KAAK,CAAC;QAChBd,QAAQ,CAACgD,OAAO,CAAC,CAAC;MACpB,CAAE;MACFC,oBAAoB,EAAE;QAAEf,eAAe,EAAEzB,KAAK,CAACyC;MAAU,CAAE;MAAA1C,QAAA,EAE1DO;IAAO,CACG,CAAC;EAAA,CACa,CAAC;AAElC,CAAC;AAED,MAAMJ,cAAc,GAAIF,KAAgB,IACtCR,UAAU,CAACkD,MAAM,CAAC;EAChBJ,oBAAoB,EAAE;IACpBb,eAAe,EAAEzB,KAAK,CAAC2C,OAAO;IAAE;IAChCC,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE,EAAE;IACxBC,QAAQ,EAAE,QAAQ,CAAE;EACtB,CAAC;EACDC,eAAe,EAAE;IACfC,OAAO,EAAE,EAAE;IACXC,iBAAiB,EAAE,CAAC;IACpBC,iBAAiB,EAAElD,KAAK,CAACmD,OAAO;IAAE;IAClCC,UAAU,EAAE;EACd,CAAC;EACDC,WAAW,EAAE;IACXC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAExD,KAAK,CAACyC;EACf,CAAC;EACDgB,gBAAgB,EAAE;IAChBC,IAAI,EAAE,CAAC,CAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["contexts/index.ts"],"mappings":";;AAAA,cAAc,yBAAsB;AACpC,cAAc,0BAAuB","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":";;AAAA;AACA;;AAGA;;AAEA;;AAEA,cAAc,kBAAS;AACvB,cAAc,uBAAc","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":";;AAAA;AACA;;AAGA;;AAEA;;AAEA,cAAc,kBAAS;AACvB,cAAc,uBAAc;AAC5B,cAAc,qBAAY","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,QAAA,MAAM,QAAQ,yBA8Bb,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelaDealCard.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/templates/SelaDealCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAEL,SAAS,EACT,SAAS,EAGT,SAAS,EACT,cAAc,EAGd,cAAc,EACf,MAAM,cAAc,CAAC;AAMtB,UAAU,iBAAiB;IACzB,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC;IACnC,eAAe,EAAE,cAAc,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"SelaDealCard.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Card/templates/SelaDealCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAC;AACnD,OAAO,EAEL,SAAS,EACT,SAAS,EAGT,SAAS,EACT,cAAc,EAGd,cAAc,EACf,MAAM,cAAc,CAAC;AAMtB,UAAU,iBAAiB;IACzB,OAAO,EAAE,YAAY,GAAG,UAAU,CAAC;IACnC,eAAe,EAAE,cAAc,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAqK7C,CAAC;AAkEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
interface BottomSheetContextProps {
|
|
3
|
+
openBottomSheet: (content: ReactNode | (() => ReactNode), size: "small" | "large", onClose?: () => void) => void;
|
|
4
|
+
closeBottomSheet: () => void;
|
|
5
|
+
isOpen: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const BottomSheetContext: import("react").Context<BottomSheetContextProps | undefined>;
|
|
8
|
+
export declare const useBottomSheet: () => BottomSheetContextProps;
|
|
9
|
+
export default BottomSheetContext;
|
|
10
|
+
//# sourceMappingURL=BottomSheetContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheetContext.d.ts","sourceRoot":"","sources":["../../../../src/contexts/BottomSheetContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D,UAAU,uBAAuB;IAC/B,eAAe,EAAE,CACf,OAAO,EAAE,SAAS,GAAG,CAAC,MAAM,SAAS,CAAC,EACtC,IAAI,EAAE,OAAO,GAAG,OAAO,EACvB,OAAO,CAAC,EAAE,MAAM,IAAI,KACjB,IAAI,CAAC;IACV,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,kBAAkB,8DAEvB,CAAC;AAEF,eAAO,MAAM,cAAc,+BAQ1B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheetProvider.d.ts","sourceRoot":"","sources":["../../../../src/contexts/BottomSheetProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAIZ,SAAS,EAGV,MAAM,OAAO,CAAC;AASf,UAAU,wBAAwB;IAChC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAkFlE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAQA,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
package/package.json
CHANGED
package/src/app.tsx
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
import { SafeAreaView, Text } from "react-native";
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
2
|
+
import { I18nManager, SafeAreaView, Text } from "react-native";
|
|
3
3
|
import { SelaDealCard } from "./components";
|
|
4
4
|
import { RelatedProvider } from "./theme";
|
|
5
5
|
|
|
6
6
|
const MyScreen = () => {
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
I18nManager.allowRTL(true);
|
|
9
|
+
I18nManager.forceRTL(true);
|
|
10
|
+
}, []);
|
|
7
11
|
return (
|
|
8
12
|
<>
|
|
9
13
|
<RelatedProvider>
|
|
@@ -11,13 +15,15 @@ const MyScreen = () => {
|
|
|
11
15
|
<SelaDealCard
|
|
12
16
|
variant="vertical"
|
|
13
17
|
// isRTL
|
|
14
|
-
backgroundImage={{
|
|
18
|
+
backgroundImage={{
|
|
19
|
+
uri: "https://picsum.photos/seed/lounge/600/700",
|
|
20
|
+
}} // Your image for the horizontal card
|
|
15
21
|
label="Offer"
|
|
16
|
-
|
|
22
|
+
lockOverlay
|
|
17
23
|
providerName="Altanfeethi"
|
|
18
|
-
providerNameStyle={{ color:
|
|
24
|
+
providerNameStyle={{ color: "yellow" }} // Specific style for provider name
|
|
19
25
|
description="1 Year Membership"
|
|
20
|
-
descriptionStyle={{ color:
|
|
26
|
+
descriptionStyle={{ color: "white" }}
|
|
21
27
|
price="20,000 pts"
|
|
22
28
|
onPress={() => console.log("Horizontal Sela Card Pressed")}
|
|
23
29
|
width={177} // Example width
|
|
@@ -152,13 +152,7 @@ const SelaDealCard: React.FC<SelaDealCardProps> = ({
|
|
|
152
152
|
<LockOverlay
|
|
153
153
|
visible={lockOverlay}
|
|
154
154
|
contentPosition={
|
|
155
|
-
|
|
156
|
-
? isRTL
|
|
157
|
-
? "top-left"
|
|
158
|
-
: "top-right"
|
|
159
|
-
: isRTL
|
|
160
|
-
? "top-right"
|
|
161
|
-
: "top-left"
|
|
155
|
+
isRTL ? "top-left" : "top-right"
|
|
162
156
|
}
|
|
163
157
|
iconSize={24}
|
|
164
158
|
text={""}
|
|
@@ -170,14 +164,7 @@ const SelaDealCard: React.FC<SelaDealCardProps> = ({
|
|
|
170
164
|
style={[
|
|
171
165
|
styles.topSection,
|
|
172
166
|
{
|
|
173
|
-
alignItems:
|
|
174
|
-
variant === "horizontal"
|
|
175
|
-
? isRTL
|
|
176
|
-
? "flex-end"
|
|
177
|
-
: "flex-start"
|
|
178
|
-
: isRTL
|
|
179
|
-
? "flex-start"
|
|
180
|
-
: "flex-end",
|
|
167
|
+
alignItems: "flex-start"
|
|
181
168
|
},
|
|
182
169
|
]}
|
|
183
170
|
>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { createContext, useContext, ReactNode } from "react";
|
|
2
|
+
|
|
3
|
+
interface BottomSheetContextProps {
|
|
4
|
+
openBottomSheet: (
|
|
5
|
+
content: ReactNode | (() => ReactNode),
|
|
6
|
+
size: "small" | "large",
|
|
7
|
+
onClose?: () => void,
|
|
8
|
+
) => void;
|
|
9
|
+
closeBottomSheet: () => void;
|
|
10
|
+
isOpen: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const BottomSheetContext = createContext<BottomSheetContextProps | undefined>(
|
|
14
|
+
undefined
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
export const useBottomSheet = () => {
|
|
18
|
+
const context = useContext(BottomSheetContext);
|
|
19
|
+
if (!context) {
|
|
20
|
+
throw new Error(
|
|
21
|
+
"useBottomSheet must be used within a BottomSheetProvider"
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
return context;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default BottomSheetContext;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import React, {
|
|
2
|
+
useState,
|
|
3
|
+
useRef,
|
|
4
|
+
useCallback,
|
|
5
|
+
ReactNode,
|
|
6
|
+
useMemo,
|
|
7
|
+
useEffect,
|
|
8
|
+
} from "react";
|
|
9
|
+
import BottomSheet, {
|
|
10
|
+
BottomSheetBackdrop,
|
|
11
|
+
BottomSheetBackdropProps,
|
|
12
|
+
} from "@gorhom/bottom-sheet";
|
|
13
|
+
import BottomSheetContext from "./BottomSheetContext";
|
|
14
|
+
import { Keyboard, StyleSheet } from "react-native";
|
|
15
|
+
import { ThemeType, useTheme } from "../theme";
|
|
16
|
+
|
|
17
|
+
interface BottomSheetProviderProps {
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const BottomSheetProvider: React.FC<BottomSheetProviderProps> = ({
|
|
22
|
+
children,
|
|
23
|
+
}) => {
|
|
24
|
+
const { theme } = useTheme(); // Get theme for styling the provider's sheet if needed
|
|
25
|
+
const styles = useMemo(() => providerStyles(theme), [theme]);
|
|
26
|
+
const sheetRef = useRef<BottomSheet>(null);
|
|
27
|
+
|
|
28
|
+
const [isOpen, setIsOpen] = useState(false);
|
|
29
|
+
const [content, setContent] = useState<ReactNode>(null);
|
|
30
|
+
const [size, setSize] = useState<"small" | "large">("small");
|
|
31
|
+
|
|
32
|
+
const [onCloseCallback, setOnCloseCallback] = useState<(() => void) | null>(
|
|
33
|
+
null
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
const openBottomSheet = useCallback(
|
|
37
|
+
(
|
|
38
|
+
newContent: ReactNode | (() => ReactNode),
|
|
39
|
+
size: "small" | "large",
|
|
40
|
+
onClose?: () => void
|
|
41
|
+
) => {
|
|
42
|
+
setContent(newContent);
|
|
43
|
+
setSize(size);
|
|
44
|
+
setOnCloseCallback(() => onClose);
|
|
45
|
+
setIsOpen(true);
|
|
46
|
+
},
|
|
47
|
+
[]
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
const closeBottomSheet = useCallback(() => {
|
|
51
|
+
sheetRef.current?.close();
|
|
52
|
+
setIsOpen(false);
|
|
53
|
+
}, []);
|
|
54
|
+
|
|
55
|
+
const renderBackdrop = useCallback(
|
|
56
|
+
(props: BottomSheetBackdropProps) => (
|
|
57
|
+
<BottomSheetBackdrop
|
|
58
|
+
{...props}
|
|
59
|
+
disappearsOnIndex={-1}
|
|
60
|
+
appearsOnIndex={0}
|
|
61
|
+
opacity={0.5}
|
|
62
|
+
pressBehavior="close"
|
|
63
|
+
style={[props.style, { backgroundColor: "rgba(0,0,0,0.5)" }]}
|
|
64
|
+
/>
|
|
65
|
+
),
|
|
66
|
+
[]
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
if (isOpen && content) {
|
|
71
|
+
sheetRef.current?.snapToIndex(size === "small" ? 0 : 1);
|
|
72
|
+
} else {
|
|
73
|
+
sheetRef.current?.close();
|
|
74
|
+
}
|
|
75
|
+
}, [isOpen, content, size]);
|
|
76
|
+
|
|
77
|
+
return (
|
|
78
|
+
<BottomSheetContext.Provider
|
|
79
|
+
value={{ openBottomSheet, closeBottomSheet, isOpen }}
|
|
80
|
+
>
|
|
81
|
+
{children}
|
|
82
|
+
<BottomSheet
|
|
83
|
+
ref={sheetRef}
|
|
84
|
+
index={-1}
|
|
85
|
+
snapPoints={["30%", "50%", "85%"]}
|
|
86
|
+
enablePanDownToClose
|
|
87
|
+
backdropComponent={renderBackdrop}
|
|
88
|
+
android_keyboardInputMode="adjustResize"
|
|
89
|
+
keyboardBlurBehavior="restore"
|
|
90
|
+
keyboardBehavior="extend"
|
|
91
|
+
enableDynamicSizing={false}
|
|
92
|
+
style={styles.bottomSheetContainer}
|
|
93
|
+
onClose={() => {
|
|
94
|
+
setIsOpen(false);
|
|
95
|
+
Keyboard.dismiss();
|
|
96
|
+
}}
|
|
97
|
+
handleIndicatorStyle={{ backgroundColor: theme.onSurface }}
|
|
98
|
+
>
|
|
99
|
+
{content}
|
|
100
|
+
</BottomSheet>
|
|
101
|
+
</BottomSheetContext.Provider>
|
|
102
|
+
);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
const providerStyles = (theme: ThemeType) =>
|
|
106
|
+
StyleSheet.create({
|
|
107
|
+
bottomSheetContainer: {
|
|
108
|
+
backgroundColor: theme.surface, // Ensure sheet background matches theme
|
|
109
|
+
borderTopLeftRadius: 20,
|
|
110
|
+
borderTopRightRadius: 20,
|
|
111
|
+
overflow: "hidden", // Important for rounded corners with content
|
|
112
|
+
},
|
|
113
|
+
headerContainer: {
|
|
114
|
+
padding: 16,
|
|
115
|
+
borderBottomWidth: 1,
|
|
116
|
+
borderBottomColor: theme.divider, // Use theme color for divider
|
|
117
|
+
alignItems: "center",
|
|
118
|
+
},
|
|
119
|
+
headerTitle: {
|
|
120
|
+
fontSize: 18,
|
|
121
|
+
fontWeight: "bold",
|
|
122
|
+
color: theme.onSurface,
|
|
123
|
+
},
|
|
124
|
+
contentContainer: {
|
|
125
|
+
flex: 1, // Ensure content can take up available space
|
|
126
|
+
},
|
|
127
|
+
});
|
package/src/index.ts
CHANGED