rn-vs-lb 1.0.22 → 1.0.23

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 (73) hide show
  1. package/dist/components/bottomsheet/PostOptionSheet copy.js +78 -0
  2. package/dist/components/bottomsheet/PostOptionSheet.js +116 -0
  3. package/dist/components/buttons/Button.js +61 -0
  4. package/dist/components/buttons/PostButton.js +36 -0
  5. package/dist/components/buttons/index.js +10 -0
  6. package/dist/components/eventCard/Tag.js +36 -0
  7. package/dist/components/eventCard/index.js +12 -0
  8. package/dist/components/eventCard/vsCard/EventCard.js +76 -0
  9. package/dist/components/eventCard/vsCard/Footer.js +77 -0
  10. package/dist/components/eventCard/vsCard/OrganizerContainer.js +51 -0
  11. package/dist/components/footer/Footer.js +121 -0
  12. package/dist/components/footer/index.js +5 -0
  13. package/dist/components/header/homeHeader.js +25 -0
  14. package/dist/components/header/index.js +5 -0
  15. package/dist/components/index.js +22 -0
  16. package/dist/components/listItem/index.js +8 -0
  17. package/dist/components/listItem/listItem.js +50 -0
  18. package/dist/components/profile/ProfileCard.js +58 -0
  19. package/dist/components/profile/index.js +10 -0
  20. package/dist/components/profile/meetProfileCard.js +78 -0
  21. package/dist/constants/styleSheet.js +256 -0
  22. package/dist/constants/theme.js +216 -0
  23. package/dist/constants/themeContext.js +5 -0
  24. package/dist/form/AutoComplete.js +159 -0
  25. package/dist/form/DatePicker.js +86 -0
  26. package/dist/form/ImageUploader.js +181 -0
  27. package/dist/form/MultiSelect.js +85 -0
  28. package/dist/form/PasswordInput.js +61 -0
  29. package/dist/form/Select.js +53 -0
  30. package/dist/form/TextArea.js +56 -0
  31. package/dist/form/TextInput.js +38 -0
  32. package/dist/form/commonFormStyles.js +30 -0
  33. package/dist/form/index.js +20 -0
  34. package/dist/index.js +18 -0
  35. package/dist/types/components/bottomsheet/PostOptionSheet copy.d.ts +8 -0
  36. package/dist/types/components/bottomsheet/PostOptionSheet.d.ts +8 -0
  37. package/dist/types/components/buttons/Button.d.ts +10 -0
  38. package/dist/types/components/buttons/PostButton.d.ts +10 -0
  39. package/dist/types/components/buttons/index.d.ts +2 -0
  40. package/dist/types/components/eventCard/Tag.d.ts +8 -0
  41. package/dist/types/components/eventCard/index.d.ts +3 -0
  42. package/dist/types/components/eventCard/vsCard/EventCard.d.ts +20 -0
  43. package/dist/types/components/eventCard/vsCard/Footer.d.ts +9 -0
  44. package/dist/types/components/eventCard/vsCard/OrganizerContainer.d.ts +8 -0
  45. package/dist/types/components/footer/Footer.d.ts +2 -0
  46. package/dist/types/components/footer/index.d.ts +1 -0
  47. package/dist/types/components/header/homeHeader.d.ts +6 -0
  48. package/dist/types/components/header/index.d.ts +1 -0
  49. package/dist/types/components/index.d.ts +6 -0
  50. package/dist/types/components/listItem/index.d.ts +1 -0
  51. package/dist/types/components/listItem/listItem.d.ts +10 -0
  52. package/dist/types/components/profile/ProfileCard.d.ts +10 -0
  53. package/dist/types/components/profile/index.d.ts +2 -0
  54. package/dist/types/components/profile/meetProfileCard.d.ts +12 -0
  55. package/dist/types/constants/styleSheet.d.ts +309 -0
  56. package/dist/types/constants/theme.d.ts +481 -0
  57. package/dist/types/constants/themeContext.d.ts +3 -0
  58. package/dist/types/form/AutoComplete.d.ts +13 -0
  59. package/dist/types/form/DatePicker.d.ts +14 -0
  60. package/dist/types/form/ImageUploader.d.ts +14 -0
  61. package/dist/types/form/MultiSelect.d.ts +18 -0
  62. package/dist/types/form/PasswordInput.d.ts +10 -0
  63. package/dist/types/form/Select.d.ts +19 -0
  64. package/dist/types/form/TextArea.d.ts +17 -0
  65. package/dist/types/form/TextInput.d.ts +17 -0
  66. package/dist/types/form/commonFormStyles.d.ts +26 -0
  67. package/dist/types/form/index.d.ts +8 -0
  68. package/dist/types/index.d.ts +2 -0
  69. package/dist/types/utils/formatDate.d.ts +1 -0
  70. package/dist/types/utils/index.d.ts +2 -0
  71. package/dist/utils/formatDate.js +15 -0
  72. package/dist/utils/index.js +5 -0
  73. package/package.json +1 -1
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ var react_1 = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var bottom_sheet_1 = __importStar(require("@gorhom/bottom-sheet"));
40
+ var styleSheet_1 = require("../../constants/styleSheet");
41
+ var theme_1 = require("../../constants/theme");
42
+ var PostOptionSheet = function (_a) {
43
+ var sheetRef = _a.sheetRef, onClose = _a.onClose;
44
+ var screenHeight = react_native_1.Dimensions.get("window").height;
45
+ // Вычисляем snapPoints с минимальным значением 10% для первого рендера
46
+ var snapPoints = (0, react_1.useMemo)(function () {
47
+ var percentage = (180 / screenHeight) * 100;
48
+ // const percentage = 100;
49
+ return ["".concat(Math.max(percentage, 10), "%")];
50
+ }, [screenHeight]);
51
+ return (
52
+ // <GestureHandlerRootView style={styles.container}>
53
+ react_1.default.createElement(bottom_sheet_1.default, { ref: sheetRef, index: -1, snapPoints: snapPoints, enableDynamicSizing: false, enablePanDownToClose: true, onClose: onClose, handleStyle: { top: 0 }, handleIndicatorStyle: { backgroundColor: theme_1.COLORS.border, width: 92 }, backgroundStyle: { backgroundColor: theme_1.COLORS.card }, backdropComponent: function (props) { return (react_1.default.createElement(bottom_sheet_1.BottomSheetBackdrop, __assign({}, props, { disappearsOnIndex: -1, onPress: onClose }))); } },
54
+ react_1.default.createElement(react_native_1.View, { style: styleSheet_1.GlobalStyleSheet.container },
55
+ react_1.default.createElement(react_native_1.TouchableOpacity, { style: styleSheet_1.GlobalStyleSheet.TouchableOpacity },
56
+ react_1.default.createElement(react_native_1.Image, { style: styleSheet_1.GlobalStyleSheet.image, source: theme_1.IMAGES.info }),
57
+ react_1.default.createElement(react_native_1.Text, { style: styleSheet_1.GlobalStyleSheet.text }, "Report")),
58
+ react_1.default.createElement(react_native_1.TouchableOpacity, { style: styleSheet_1.GlobalStyleSheet.TouchableOpacity },
59
+ react_1.default.createElement(react_native_1.Image, { style: [styleSheet_1.GlobalStyleSheet.image, { tintColor: theme_1.COLORS.title }], source: theme_1.IMAGES.share2 }),
60
+ react_1.default.createElement(react_native_1.Text, { style: [styleSheet_1.GlobalStyleSheet.text, { color: theme_1.COLORS.title }] }, "Share")),
61
+ react_1.default.createElement(react_native_1.TouchableOpacity, { style: styleSheet_1.GlobalStyleSheet.TouchableOpacity },
62
+ react_1.default.createElement(react_native_1.Image, { style: [styleSheet_1.GlobalStyleSheet.image, { tintColor: theme_1.COLORS.title }], source: theme_1.IMAGES.copylink }),
63
+ react_1.default.createElement(react_native_1.Text, { style: [styleSheet_1.GlobalStyleSheet.text, { color: theme_1.COLORS.title }] }, "Copy link")),
64
+ react_1.default.createElement(react_native_1.TouchableOpacity, { style: styleSheet_1.GlobalStyleSheet.TouchableOpacity },
65
+ react_1.default.createElement(react_native_1.Image, { style: [styleSheet_1.GlobalStyleSheet.image, { tintColor: theme_1.COLORS.title }], source: theme_1.IMAGES.close }),
66
+ react_1.default.createElement(react_native_1.Text, { style: [styleSheet_1.GlobalStyleSheet.text, { color: theme_1.COLORS.title }] }, "Hide post"))))
67
+ // </GestureHandlerRootView>
68
+ );
69
+ };
70
+ var styles = react_native_1.StyleSheet.create({
71
+ container: {
72
+ flex: 1,
73
+ },
74
+ bottomSheetBack: {
75
+ top: -1000,
76
+ }
77
+ });
78
+ exports.default = PostOptionSheet;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ var react_1 = __importDefault(require("react"));
41
+ var react_native_1 = require("react-native");
42
+ var bottom_sheet_1 = __importStar(require("@gorhom/bottom-sheet"));
43
+ var theme_1 = require("../../constants/theme");
44
+ var listItem_1 = require("../listItem");
45
+ var PostOptionSheet = function (_a) {
46
+ var sheetRef = _a.sheetRef, onClose = _a.onClose;
47
+ var menuItems = [
48
+ { icon: 'exclamation-circle', label: 'Manage VK ID', subLabel: 'Account protection recommendations' },
49
+ { icon: 'bookmark', label: 'Bookmarks' },
50
+ { icon: 'folder-o', label: 'Files' },
51
+ { icon: 'money', label: 'VK Pay' },
52
+ { icon: 'crosshairs', label: 'Ads' },
53
+ { icon: 'support', label: 'Support' },
54
+ { icon: 'cog', label: 'Settings' },
55
+ { icon: 'plus-square', label: 'Add account' },
56
+ { icon: 'sign-in', label: 'Sign in with QR code' },
57
+ ];
58
+ return (react_1.default.createElement(bottom_sheet_1.default, { ref: sheetRef, index: -1, snapPoints: ['70%'], enableDynamicSizing: false, enablePanDownToClose: true, onClose: onClose, handleStyle: { top: 0 }, handleIndicatorStyle: { backgroundColor: theme_1.COLORS.border, width: 92 }, backgroundStyle: { backgroundColor: theme_1.COLORS.card }, backdropComponent: function (props) { return (react_1.default.createElement(bottom_sheet_1.BottomSheetBackdrop, __assign({}, props, { disappearsOnIndex: -1, onPress: onClose }))); } },
59
+ react_1.default.createElement(bottom_sheet_1.BottomSheetScrollView, { contentContainerStyle: styles.container }, menuItems.map(function (item, index) { return (react_1.default.createElement(listItem_1.ListItem, __assign({ key: index }, item, { hideArrow: true, hideBottomLine: true }))); }))));
60
+ };
61
+ var styles = react_native_1.StyleSheet.create({
62
+ container: {
63
+ padding: 16,
64
+ backgroundColor: '#fff',
65
+ },
66
+ header: {
67
+ flexDirection: 'row',
68
+ alignItems: 'center',
69
+ marginBottom: 16,
70
+ },
71
+ headerTitle: {
72
+ fontSize: 24,
73
+ fontWeight: 'bold',
74
+ flex: 1,
75
+ },
76
+ profileImage: {
77
+ width: 40,
78
+ height: 40,
79
+ borderRadius: 20,
80
+ },
81
+ gridContainer: {
82
+ flexDirection: 'row',
83
+ flexWrap: 'wrap',
84
+ justifyContent: 'space-around',
85
+ marginBottom: 20,
86
+ },
87
+ menuItem: {
88
+ flexDirection: 'row',
89
+ alignItems: 'center',
90
+ paddingVertical: 16,
91
+ borderBottomWidth: 1,
92
+ borderBottomColor: theme_1.COLORS.background,
93
+ },
94
+ menuItemLast: {
95
+ flexDirection: 'row',
96
+ alignItems: 'center',
97
+ paddingVertical: 16,
98
+ },
99
+ iconContainer: {
100
+ width: 40,
101
+ alignItems: 'center',
102
+ },
103
+ textContainer: {
104
+ flex: 1,
105
+ paddingLeft: 8,
106
+ },
107
+ label: {
108
+ fontSize: 16,
109
+ fontWeight: '500',
110
+ },
111
+ subLabel: {
112
+ fontSize: 12,
113
+ color: theme_1.COLORS.greyText,
114
+ },
115
+ });
116
+ exports.default = PostOptionSheet;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var react_native_1 = require("react-native");
8
+ var theme_1 = require("../../constants/theme");
9
+ var Button = function (_a) {
10
+ var title = _a.title, onPress = _a.onPress, _b = _a.type, type = _b === void 0 ? 'primary' : _b, style = _a.style, textStyle = _a.textStyle;
11
+ var buttonStyles = [
12
+ styles.button,
13
+ type === 'primary' && styles.primaryButton,
14
+ type === 'gray' && styles.grayButton,
15
+ type === 'primary-outline' && styles.primaryOutlineButton,
16
+ style,
17
+ ];
18
+ var textStyles = [
19
+ styles.buttonText,
20
+ type === 'primary' && styles.primaryButtonText,
21
+ type === 'gray' && styles.grayButtonText,
22
+ type === 'primary-outline' && styles.primaryOutlineButtonText,
23
+ textStyle,
24
+ ];
25
+ return (react_1.default.createElement(react_native_1.TouchableOpacity, { style: buttonStyles, onPress: onPress },
26
+ react_1.default.createElement(react_native_1.Text, { style: textStyles }, title)));
27
+ };
28
+ var styles = react_native_1.StyleSheet.create({
29
+ button: {
30
+ height: 50,
31
+ justifyContent: 'center',
32
+ alignItems: 'center',
33
+ borderRadius: 6,
34
+ paddingHorizontal: 16,
35
+ },
36
+ primaryButton: {
37
+ backgroundColor: theme_1.COLORS.primary,
38
+ },
39
+ primaryOutlineButton: {
40
+ backgroundColor: theme_1.COLORS.white,
41
+ borderWidth: 1,
42
+ borderColor: theme_1.COLORS.primary,
43
+ },
44
+ grayButton: {
45
+ backgroundColor: '#f5f5f5',
46
+ },
47
+ buttonText: {
48
+ fontSize: 16,
49
+ fontWeight: 'bold',
50
+ },
51
+ primaryButtonText: {
52
+ color: theme_1.COLORS.white,
53
+ },
54
+ primaryOutlineButtonText: {
55
+ color: theme_1.COLORS.primary,
56
+ },
57
+ grayButtonText: {
58
+ color: '#333',
59
+ },
60
+ });
61
+ exports.default = Button;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var react_native_1 = require("react-native");
8
+ var MaterialIcons_1 = __importDefault(require("react-native-vector-icons/MaterialIcons"));
9
+ var PostButton = function (_a) {
10
+ var title = _a.title, onPress = _a.onPress, buttonStyle = _a.buttonStyle, textStyle = _a.textStyle;
11
+ return (react_1.default.createElement(react_native_1.TouchableOpacity, { style: [styles.button, buttonStyle], onPress: onPress },
12
+ react_1.default.createElement(MaterialIcons_1.default, { name: "add-circle-outline", size: 20, color: "#007AFF" }),
13
+ react_1.default.createElement(react_native_1.Text, { style: [styles.buttonText, textStyle] }, title)));
14
+ };
15
+ var styles = react_native_1.StyleSheet.create({
16
+ button: {
17
+ backgroundColor: '#f2f2f2', // light grey background
18
+ paddingVertical: 10,
19
+ paddingHorizontal: 20,
20
+ borderRadius: 8,
21
+ width: "100%",
22
+ alignItems: 'center',
23
+ marginVertical: 10,
24
+ marginTop: 24,
25
+ display: "flex",
26
+ flexDirection: "row",
27
+ justifyContent: "center",
28
+ gap: 6,
29
+ },
30
+ buttonText: {
31
+ color: '#007AFF', // iOS blue color
32
+ fontSize: 16,
33
+ fontWeight: '600',
34
+ },
35
+ });
36
+ exports.default = PostButton;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PostButton = exports.Button = void 0;
7
+ var Button_1 = require("./Button");
8
+ Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return __importDefault(Button_1).default; } });
9
+ var PostButton_1 = require("./PostButton");
10
+ Object.defineProperty(exports, "PostButton", { enumerable: true, get: function () { return __importDefault(PostButton_1).default; } });
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var react_1 = __importDefault(require("react"));
18
+ var react_native_1 = require("react-native");
19
+ var theme_1 = require("../../constants/theme");
20
+ //@ts-ignore
21
+ var Tag = function (_a) {
22
+ var label = _a.label, backgroundColor = _a.backgroundColor, textColor = _a.textColor, borderColor = _a.borderColor;
23
+ return (react_1.default.createElement(react_native_1.View, { style: [styles.tagContainer, { backgroundColor: backgroundColor, borderColor: borderColor }] },
24
+ react_1.default.createElement(react_native_1.Text, { style: [styles.tagText, { color: textColor }] }, label)));
25
+ };
26
+ var styles = react_native_1.StyleSheet.create({
27
+ tagContainer: {
28
+ paddingHorizontal: theme_1.SIZES.xs,
29
+ paddingVertical: theme_1.SIZES.xxs,
30
+ borderRadius: theme_1.SIZES.xs,
31
+ borderWidth: 1,
32
+ marginLeft: theme_1.SIZES.xxs,
33
+ },
34
+ tagText: __assign(__assign({}, theme_1.FONTS.font), { fontWeight: 600 }),
35
+ });
36
+ exports.default = Tag;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SocialStats = exports.Organizer = exports.EventCard = void 0;
7
+ var EventCard_1 = require("./vsCard/EventCard");
8
+ Object.defineProperty(exports, "EventCard", { enumerable: true, get: function () { return __importDefault(EventCard_1).default; } });
9
+ var OrganizerContainer_1 = require("./vsCard/OrganizerContainer");
10
+ Object.defineProperty(exports, "Organizer", { enumerable: true, get: function () { return __importDefault(OrganizerContainer_1).default; } });
11
+ var Footer_1 = require("./vsCard/Footer");
12
+ Object.defineProperty(exports, "SocialStats", { enumerable: true, get: function () { return __importDefault(Footer_1).default; } });
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var react_1 = __importDefault(require("react"));
18
+ var react_native_1 = require("react-native");
19
+ var Tag_1 = __importDefault(require("../Tag"));
20
+ var OrganizerContainer_1 = __importDefault(require("./OrganizerContainer"));
21
+ var Footer_1 = __importDefault(require("./Footer"));
22
+ var theme_1 = require("../../../constants/theme");
23
+ var EventCard = function (_a) {
24
+ var imageUri = _a.imageUri, date = _a.date, tags = _a.tags, title = _a.title, description = _a.description, organizerAvatarUri = _a.organizerAvatarUri, organizerName = _a.organizerName, organizerLink = _a.organizerLink, likes = _a.likes, views = _a.views;
25
+ return (react_1.default.createElement(react_native_1.View, { style: styles.container },
26
+ react_1.default.createElement(react_native_1.View, { style: styles.imageContainer },
27
+ react_1.default.createElement(react_native_1.Image, { source: { uri: imageUri }, style: styles.image, resizeMode: "cover" })),
28
+ react_1.default.createElement(react_native_1.View, { style: styles.content },
29
+ react_1.default.createElement(react_native_1.View, { style: styles.dateAndTags },
30
+ react_1.default.createElement(react_native_1.Text, { style: styles.date }, date),
31
+ tags.map(function (tag, index) { return (react_1.default.createElement(Tag_1.default, { key: index, label: tag.label, backgroundColor: tag.backgroundColor, textColor: tag.textColor, borderColor: tag.borderColor })); })),
32
+ react_1.default.createElement(react_native_1.Text, { style: styles.title, numberOfLines: 1, ellipsizeMode: "tail" }, title),
33
+ react_1.default.createElement(react_native_1.Text, { style: styles.description, numberOfLines: 2, ellipsizeMode: "tail" }, description),
34
+ react_1.default.createElement(react_native_1.View, { style: styles.organizerContainer },
35
+ react_1.default.createElement(OrganizerContainer_1.default, { avatarUri: organizerAvatarUri, organizerName: organizerName, organizerLink: organizerLink })),
36
+ react_1.default.createElement(Footer_1.default, { likes: likes, views: views }))));
37
+ };
38
+ var styles = react_native_1.StyleSheet.create({
39
+ container: {
40
+ backgroundColor: theme_1.COLORS.white,
41
+ overflow: 'hidden',
42
+ marginBottom: theme_1.SIZES.xs,
43
+ marginTop: theme_1.SIZES.xs,
44
+ elevation: 3, // For Android shadow
45
+ shadowColor: theme_1.COLORS.dark,
46
+ shadowOffset: { width: 0, height: 2 },
47
+ shadowOpacity: 0.3,
48
+ shadowRadius: 3,
49
+ },
50
+ imageContainer: {
51
+ width: '100%',
52
+ height: 270,
53
+ justifyContent: 'center',
54
+ alignItems: 'center',
55
+ },
56
+ image: {
57
+ width: '100%',
58
+ height: '100%',
59
+ },
60
+ content: {
61
+ padding: theme_1.SIZES.sm,
62
+ },
63
+ dateAndTags: {
64
+ flexDirection: 'row',
65
+ alignItems: 'center',
66
+ marginBottom: theme_1.SIZES.xxs,
67
+ },
68
+ date: __assign(__assign({}, theme_1.FONTS.font), { color: theme_1.COLORS.greyText, marginRight: theme_1.SIZES.sm }),
69
+ title: __assign({}, theme_1.FONTS.h4),
70
+ description: __assign(__assign({}, theme_1.FONTS.font), { marginTop: theme_1.SIZES.xxs }),
71
+ organizerContainer: {
72
+ marginTop: theme_1.SIZES.md,
73
+ marginBottom: theme_1.SIZES.md,
74
+ }
75
+ });
76
+ exports.default = EventCard;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ var react_1 = __importStar(require("react"));
41
+ var react_native_1 = require("react-native");
42
+ var Ionicons_1 = __importDefault(require("react-native-vector-icons/Ionicons"));
43
+ var theme_1 = require("../../../constants/theme");
44
+ var Footer = function (_a) {
45
+ var likes = _a.likes, views = _a.views, _b = _a.position, position = _b === void 0 ? "space-between" : _b;
46
+ var _c = (0, react_1.useState)(false), isLiked = _c[0], setIsLiked = _c[1];
47
+ var handleLikePress = function () {
48
+ setIsLiked(!isLiked);
49
+ };
50
+ return (react_1.default.createElement(react_native_1.View, { style: [styles.container, { justifyContent: position }] },
51
+ react_1.default.createElement(react_native_1.TouchableOpacity, { onPress: handleLikePress, style: styles.item },
52
+ react_1.default.createElement(Ionicons_1.default, { name: isLiked ? "heart" : "heart-outline", size: 20, color: isLiked ? theme_1.COLORS.red : theme_1.COLORS.greyText }),
53
+ react_1.default.createElement(react_native_1.Text, { style: styles.text },
54
+ isLiked ? likes + 1 : likes,
55
+ " ",
56
+ likes + (isLiked ? 1 : 0) === 1 ? 'Like' : 'Likes')),
57
+ react_1.default.createElement(react_native_1.View, { style: styles.item },
58
+ react_1.default.createElement(Ionicons_1.default, { name: "eye-outline", size: 20, color: theme_1.COLORS.greyText }),
59
+ react_1.default.createElement(react_native_1.Text, { style: styles.text },
60
+ views,
61
+ " Views"))));
62
+ };
63
+ var styles = react_native_1.StyleSheet.create({
64
+ container: {
65
+ flexDirection: 'row',
66
+ borderTopWidth: 1,
67
+ borderTopColor: theme_1.COLORS.border,
68
+ paddingTop: theme_1.SIZES.sm,
69
+ gap: theme_1.SIZES.md,
70
+ },
71
+ item: {
72
+ flexDirection: 'row',
73
+ alignItems: 'center',
74
+ },
75
+ text: __assign(__assign({}, theme_1.FONTS.font), { color: theme_1.COLORS.greyText, marginLeft: theme_1.SIZES.xxs }),
76
+ });
77
+ exports.default = Footer;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var react_1 = __importDefault(require("react"));
18
+ var react_native_1 = require("react-native");
19
+ var theme_1 = require("../../../constants/theme");
20
+ var OrganizerContainer = function (_a) {
21
+ var avatarUri = _a.avatarUri, organizerName = _a.organizerName, organizerLink = _a.organizerLink;
22
+ var handlePress = function () {
23
+ if (organizerLink) {
24
+ react_native_1.Linking.openURL(organizerLink).catch(function (err) { return console.error("Couldn't load page", err); });
25
+ }
26
+ };
27
+ return (react_1.default.createElement(react_native_1.TouchableOpacity, { onPress: handlePress, style: styles.container },
28
+ react_1.default.createElement(react_native_1.Image, { source: { uri: avatarUri }, style: styles.avatar }),
29
+ react_1.default.createElement(react_native_1.View, { style: styles.organizerTextContainer },
30
+ react_1.default.createElement(react_native_1.Text, { style: styles.organizerTitle }, "Organizer"),
31
+ react_1.default.createElement(react_native_1.Text, { style: styles.organizerText, numberOfLines: 1, ellipsizeMode: "tail" }, organizerName))));
32
+ };
33
+ var styles = react_native_1.StyleSheet.create({
34
+ container: {
35
+ flexDirection: 'row',
36
+ alignItems: 'center',
37
+ },
38
+ avatar: {
39
+ width: 40,
40
+ height: 40,
41
+ borderRadius: 20,
42
+ marginRight: theme_1.SIZES.sm,
43
+ },
44
+ organizerTextContainer: {
45
+ flex: 1,
46
+ paddingRight: theme_1.SIZES.sm,
47
+ },
48
+ organizerTitle: __assign(__assign({}, theme_1.FONTS.font), { color: theme_1.COLORS.dark }),
49
+ organizerText: __assign({}, theme_1.FONTS.h6),
50
+ });
51
+ exports.default = OrganizerContainer;