related-ui-components 1.1.7 → 1.1.9
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/commonjs/app.js +70 -0
- package/lib/commonjs/app.js.map +1 -0
- package/lib/commonjs/components/Card/Card.js +2 -2
- package/lib/commonjs/components/Card/Card.js.map +1 -1
- package/lib/commonjs/components/Card/templates/DealCardWithBackgroundImage.js +5 -3
- package/lib/commonjs/components/Card/templates/DealCardWithBackgroundImage.js.map +1 -1
- package/lib/commonjs/index.js +5 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/app.js +64 -0
- package/lib/module/app.js.map +1 -0
- package/lib/module/components/Card/Card.js +2 -2
- package/lib/module/components/Card/Card.js.map +1 -1
- package/lib/module/components/Card/templates/DealCardWithBackgroundImage.js +5 -3
- package/lib/module/components/Card/templates/DealCardWithBackgroundImage.js.map +1 -1
- package/lib/module/index.js +4 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/app.d.ts +3 -0
- package/lib/typescript/commonjs/app.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/Card/templates/DealCardWithBackgroundImage.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/module/app.d.ts +3 -0
- package/lib/typescript/module/app.d.ts.map +1 -0
- package/lib/typescript/module/components/Card/templates/DealCardWithBackgroundImage.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/app.tsx +68 -0
- package/src/components/Card/Card.tsx +2 -2
- package/src/components/Card/templates/DealCardWithBackgroundImage.tsx +4 -2
- package/src/index.ts +9 -1
- package/lib/commonjs/app/_layout.js +0 -39
- package/lib/commonjs/app/_layout.js.map +0 -1
- package/lib/commonjs/app/index.js +0 -153
- package/lib/commonjs/app/index.js.map +0 -1
- package/lib/module/app/_layout.js +0 -39
- package/lib/module/app/_layout.js.map +0 -1
- package/lib/module/app/index.js +0 -143
- package/lib/module/app/index.js.map +0 -1
- package/lib/typescript/commonjs/app/_layout.d.ts +0 -1
- package/lib/typescript/commonjs/app/_layout.d.ts.map +0 -1
- package/lib/typescript/commonjs/app/index.d.ts +0 -3
- package/lib/typescript/commonjs/app/index.d.ts.map +0 -1
- package/lib/typescript/module/app/_layout.d.ts +0 -1
- package/lib/typescript/module/app/_layout.d.ts.map +0 -1
- package/lib/typescript/module/app/index.d.ts +0 -3
- package/lib/typescript/module/app/index.d.ts.map +0 -1
- package/src/app/_layout.tsx +0 -38
- package/src/app/index.tsx +0 -115
package/src/index.ts
CHANGED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// import { DarkTheme, DefaultTheme, ThemeProvider as Custom } from '@react-navigation/native';
|
|
2
|
-
// import { useFonts } from 'expo-font';
|
|
3
|
-
// import { Stack } from 'expo-router';
|
|
4
|
-
// import * as SplashScreen from 'expo-splash-screen';
|
|
5
|
-
// import { StatusBar } from 'expo-status-bar';
|
|
6
|
-
// import { useEffect } from 'react';
|
|
7
|
-
// import 'react-native-reanimated';
|
|
8
|
-
// import {ThemeProvider} from '@/theme/ThemeContext';
|
|
9
|
-
|
|
10
|
-
// // Prevent the splash screen from auto-hiding before asset loading is complete.
|
|
11
|
-
// SplashScreen.preventAutoHideAsync();
|
|
12
|
-
|
|
13
|
-
// export default function RootLayout() {
|
|
14
|
-
// const [loaded] = useFonts({
|
|
15
|
-
// SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),
|
|
16
|
-
// });
|
|
17
|
-
|
|
18
|
-
// useEffect(() => {
|
|
19
|
-
// if (loaded) {
|
|
20
|
-
// SplashScreen.hideAsync();
|
|
21
|
-
// }
|
|
22
|
-
// }, [loaded]);
|
|
23
|
-
|
|
24
|
-
// if (!loaded) {
|
|
25
|
-
// return null;
|
|
26
|
-
// }
|
|
27
|
-
|
|
28
|
-
// return (
|
|
29
|
-
// <ThemeProvider>
|
|
30
|
-
// <Stack>
|
|
31
|
-
// {/* <Stack.Screen name="(tabs)" options={{ headerShown: false }} /> */}
|
|
32
|
-
// <Stack.Screen name="+not-found" />
|
|
33
|
-
// </Stack>
|
|
34
|
-
// <StatusBar style="auto" />
|
|
35
|
-
// </ThemeProvider>
|
|
36
|
-
// );
|
|
37
|
-
// }
|
|
38
|
-
"use strict";
|
|
39
|
-
//# sourceMappingURL=_layout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["app/_layout.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA","ignoreList":[]}
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = RewardsScreen;
|
|
7
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _reactNative = require("react-native");
|
|
9
|
-
var _vectorIcons = require("@expo/vector-icons");
|
|
10
|
-
var _UnlockRewards = _interopRequireDefault(require("@/components/UnlockRewards/UnlockRewards"));
|
|
11
|
-
var _theme = require("@/theme");
|
|
12
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
-
// Added TouchableOpacity
|
|
17
|
-
|
|
18
|
-
// Adjust path if needed
|
|
19
|
-
|
|
20
|
-
function RewardsScreen() {
|
|
21
|
-
const [showRewards, setShowRewards] = (0, _react.useState)(false);
|
|
22
|
-
|
|
23
|
-
// --- Define a NEW "Cosmic Explorer" theme ---
|
|
24
|
-
const cosmicActiveIconStyle = {
|
|
25
|
-
backgroundColor: "#2a2a4e",
|
|
26
|
-
// Dark blue-purple base
|
|
27
|
-
borderColor: "#7DF9FF",
|
|
28
|
-
// Bright cyan border
|
|
29
|
-
borderWidth: 1.5,
|
|
30
|
-
borderRadius: 25,
|
|
31
|
-
// Circular
|
|
32
|
-
padding: 10
|
|
33
|
-
};
|
|
34
|
-
const cosmicInactiveIconStyle = {
|
|
35
|
-
backgroundColor: "#4a4a6e",
|
|
36
|
-
// Muted purple-grey
|
|
37
|
-
borderRadius: 25,
|
|
38
|
-
// Circular
|
|
39
|
-
padding: 10,
|
|
40
|
-
opacity: 0.7 // Slightly faded
|
|
41
|
-
};
|
|
42
|
-
const theme = (0, _theme.useTheme)();
|
|
43
|
-
|
|
44
|
-
// --- New "Cosmic Explorer" Rewards Data ---
|
|
45
|
-
const rewardsData = [{
|
|
46
|
-
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
|
|
47
|
-
name: "water-outline",
|
|
48
|
-
size: 24,
|
|
49
|
-
color: theme.onSecondary
|
|
50
|
-
}),
|
|
51
|
-
activeIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
|
|
52
|
-
name: "water",
|
|
53
|
-
size: 24,
|
|
54
|
-
color: theme.primary
|
|
55
|
-
}),
|
|
56
|
-
title: "Aqua Guardian",
|
|
57
|
-
description: "Maintain water usage below the community average for a month.",
|
|
58
|
-
isActive: false,
|
|
59
|
-
status: "0/1",
|
|
60
|
-
statusBackgroundColor: theme.disabled,
|
|
61
|
-
statusTextColor: theme.text
|
|
62
|
-
}, {
|
|
63
|
-
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
|
|
64
|
-
name: "build-outline",
|
|
65
|
-
size: 24,
|
|
66
|
-
color: theme.helper
|
|
67
|
-
}),
|
|
68
|
-
activeIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
|
|
69
|
-
name: "build-outline",
|
|
70
|
-
size: 24,
|
|
71
|
-
color: theme.onPrimary
|
|
72
|
-
}),
|
|
73
|
-
title: "Leak Detective",
|
|
74
|
-
description: "Successfully report and fix a water leak on your property.",
|
|
75
|
-
isActive: true,
|
|
76
|
-
status: "1/1",
|
|
77
|
-
statusBackgroundColor: theme.primary,
|
|
78
|
-
statusTextColor: theme.onPrimary
|
|
79
|
-
}, {
|
|
80
|
-
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
|
|
81
|
-
name: "leaf-outline",
|
|
82
|
-
size: 24,
|
|
83
|
-
color: theme.onSecondary
|
|
84
|
-
}),
|
|
85
|
-
activeIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
|
|
86
|
-
name: "leaf",
|
|
87
|
-
size: 24,
|
|
88
|
-
color: theme.primary
|
|
89
|
-
}),
|
|
90
|
-
title: "Eco-Warrior",
|
|
91
|
-
description: "Implement a rainwater harvesting system or greywater recycling.",
|
|
92
|
-
isActive: false,
|
|
93
|
-
status: "0/1",
|
|
94
|
-
statusBackgroundColor: theme.disabled,
|
|
95
|
-
statusTextColor: theme.text
|
|
96
|
-
}];
|
|
97
|
-
const handleOpenRewards = () => {
|
|
98
|
-
setShowRewards(true);
|
|
99
|
-
};
|
|
100
|
-
const handleCloseRewards = () => {
|
|
101
|
-
setShowRewards(false);
|
|
102
|
-
};
|
|
103
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
104
|
-
style: styles.container,
|
|
105
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_UnlockRewards.default, {
|
|
106
|
-
title: "Your Rewards",
|
|
107
|
-
description: "Complete tasks to unlock special benefits",
|
|
108
|
-
rewards: rewardsData
|
|
109
|
-
// onClose={handleClose}
|
|
110
|
-
,
|
|
111
|
-
showCloseIcon: true,
|
|
112
|
-
closeIconVariant: "nested",
|
|
113
|
-
topBackgroundHeight: 200,
|
|
114
|
-
customCloseIcon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.Ionicons, {
|
|
115
|
-
name: "close-circle",
|
|
116
|
-
size: 28,
|
|
117
|
-
color: theme.primary
|
|
118
|
-
})
|
|
119
|
-
})
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
const styles = _reactNative.StyleSheet.create({
|
|
123
|
-
container: {
|
|
124
|
-
flex: 1,
|
|
125
|
-
justifyContent: "center",
|
|
126
|
-
alignItems: "center",
|
|
127
|
-
padding: 20
|
|
128
|
-
// backgroundColor: "#0a0a1e", // Very dark background for the screen
|
|
129
|
-
},
|
|
130
|
-
// Custom button style
|
|
131
|
-
button: {
|
|
132
|
-
backgroundColor: "#302b63",
|
|
133
|
-
// Use a gradient color
|
|
134
|
-
paddingVertical: 12,
|
|
135
|
-
paddingHorizontal: 30,
|
|
136
|
-
borderRadius: 25,
|
|
137
|
-
shadowColor: "#7DF9FF",
|
|
138
|
-
shadowOffset: {
|
|
139
|
-
width: 0,
|
|
140
|
-
height: 4
|
|
141
|
-
},
|
|
142
|
-
shadowOpacity: 0.3,
|
|
143
|
-
shadowRadius: 5,
|
|
144
|
-
elevation: 6
|
|
145
|
-
},
|
|
146
|
-
buttonText: {
|
|
147
|
-
color: "#E0E0FF",
|
|
148
|
-
fontSize: 16,
|
|
149
|
-
fontWeight: "bold",
|
|
150
|
-
textAlign: "center"
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_vectorIcons","_UnlockRewards","_interopRequireDefault","_theme","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","RewardsScreen","showRewards","setShowRewards","useState","cosmicActiveIconStyle","backgroundColor","borderColor","borderWidth","borderRadius","padding","cosmicInactiveIconStyle","opacity","theme","useTheme","rewardsData","icon","jsx","Ionicons","name","size","color","onSecondary","activeIcon","primary","title","description","isActive","status","statusBackgroundColor","disabled","statusTextColor","text","helper","onPrimary","handleOpenRewards","handleCloseRewards","View","style","styles","container","children","rewards","showCloseIcon","closeIconVariant","topBackgroundHeight","customCloseIcon","StyleSheet","create","flex","justifyContent","alignItems","button","paddingVertical","paddingHorizontal","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","buttonText","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["app/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAGA,IAAAK,MAAA,GAAAL,OAAA;AAAmC,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAI,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAL8C;;AAEX;;AAKvD,SAASW,aAAaA,CAAA,EAAG;EACtC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;;EAErD;EACA,MAAMC,qBAAqB,GAAG;IAC5BC,eAAe,EAAE,SAAS;IAAE;IAC5BC,WAAW,EAAE,SAAS;IAAE;IACxBC,WAAW,EAAE,GAAG;IAChBC,YAAY,EAAE,EAAE;IAAE;IAClBC,OAAO,EAAE;EACX,CAAC;EAED,MAAMC,uBAAuB,GAAG;IAC9BL,eAAe,EAAE,SAAS;IAAE;IAC5BG,YAAY,EAAE,EAAE;IAAE;IAClBC,OAAO,EAAE,EAAE;IACXE,OAAO,EAAE,GAAG,CAAE;EAChB,CAAC;EACD,MAAMC,KAAK,GAAG,IAAAC,eAAQ,EAAC,CAAC;;EAExB;EACA,MAAMC,WAAW,GAAG,CAClB;IACEC,IAAI,eAAE,IAAApC,WAAA,CAAAqC,GAAA,EAACzC,YAAA,CAAA0C,QAAQ;MAACC,IAAI,EAAC,eAAe;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAER,KAAK,CAACS;IAAY,CAAE,CAAC;IAC3EC,UAAU,eAAE,IAAA3C,WAAA,CAAAqC,GAAA,EAACzC,YAAA,CAAA0C,QAAQ;MAACC,IAAI,EAAC,OAAO;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAER,KAAK,CAACW;IAAQ,CAAE,CAAC;IACrEC,KAAK,EAAE,eAAe;IACtBC,WAAW,EACT,+DAA+D;IACjEC,QAAQ,EAAE,KAAK;IACfC,MAAM,EAAE,KAAK;IACbC,qBAAqB,EAAEhB,KAAK,CAACiB,QAAQ;IACrCC,eAAe,EAAElB,KAAK,CAACmB;EACzB,CAAC,EACD;IACEhB,IAAI,eAAE,IAAApC,WAAA,CAAAqC,GAAA,EAACzC,YAAA,CAAA0C,QAAQ;MAACC,IAAI,EAAC,eAAe;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAER,KAAK,CAACoB;IAAO,CAAE,CAAC;IACtEV,UAAU,eAAE,IAAA3C,WAAA,CAAAqC,GAAA,EAACzC,YAAA,CAAA0C,QAAQ;MAACC,IAAI,EAAC,eAAe;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAER,KAAK,CAACqB;IAAU,CAAE,CAAC;IAC/ET,KAAK,EAAE,gBAAgB;IACvBC,WAAW,EAAE,4DAA4D;IACzEC,QAAQ,EAAE,IAAI;IACdC,MAAM,EAAE,KAAK;IACbC,qBAAqB,EAAEhB,KAAK,CAACW,OAAO;IACpCO,eAAe,EAAElB,KAAK,CAACqB;EACzB,CAAC,EACD;IACElB,IAAI,eAAE,IAAApC,WAAA,CAAAqC,GAAA,EAACzC,YAAA,CAAA0C,QAAQ;MAACC,IAAI,EAAC,cAAc;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAER,KAAK,CAACS;IAAY,CAAE,CAAC;IAC1EC,UAAU,eAAE,IAAA3C,WAAA,CAAAqC,GAAA,EAACzC,YAAA,CAAA0C,QAAQ;MAACC,IAAI,EAAC,MAAM;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAER,KAAK,CAACW;IAAQ,CAAE,CAAC;IACpEC,KAAK,EAAE,aAAa;IACpBC,WAAW,EACT,iEAAiE;IACnEC,QAAQ,EAAE,KAAK;IACfC,MAAM,EAAE,KAAK;IACbC,qBAAqB,EAAEhB,KAAK,CAACiB,QAAQ;IACrCC,eAAe,EAAElB,KAAK,CAACmB;EACzB,CAAC,CACF;EACD,MAAMG,iBAAiB,GAAGA,CAAA,KAAM;IAC9BhC,cAAc,CAAC,IAAI,CAAC;EACtB,CAAC;EAED,MAAMiC,kBAAkB,GAAGA,CAAA,KAAM;IAC/BjC,cAAc,CAAC,KAAK,CAAC;EACvB,CAAC;EAGD,oBACE,IAAAvB,WAAA,CAAAqC,GAAA,EAAC1C,YAAA,CAAA8D,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC9B,IAAA7D,WAAA,CAAAqC,GAAA,EAACxC,cAAA,CAAAM,OAAa;MACZ0C,KAAK,EAAC,cAAc;MACpBC,WAAW,EAAC,2CAA2C;MACvDgB,OAAO,EAAE3B;MACT;MAAA;MACA4B,aAAa,EAAE,IAAK;MACpBC,gBAAgB,EAAC,QAAQ;MACzBC,mBAAmB,EAAE,GAAI;MACzBC,eAAe,eAAE,IAAAlE,WAAA,CAAAqC,GAAA,EAACzC,YAAA,CAAA0C,QAAQ;QAACC,IAAI,EAAC,cAAc;QAACC,IAAI,EAAE,EAAG;QAACC,KAAK,EAAER,KAAK,CAACW;MAAQ,CAAE;IAAE,CACnF;EAAC,CACI,CAAC;AAEX;AAEA,MAAMe,MAAM,GAAGQ,uBAAU,CAACC,MAAM,CAAC;EAC/BR,SAAS,EAAE;IACTS,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBzC,OAAO,EAAE;IACT;EACF,CAAC;EACD;EACA0C,MAAM,EAAE;IACN9C,eAAe,EAAE,SAAS;IAAE;IAC5B+C,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrB7C,YAAY,EAAE,EAAE;IAChB8C,WAAW,EAAE,SAAS;IACtBC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE,GAAG;IAClBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDC,UAAU,EAAE;IACVzC,KAAK,EAAE,SAAS;IAChB0C,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// import { DarkTheme, DefaultTheme, ThemeProvider as Custom } from '@react-navigation/native';
|
|
2
|
-
// import { useFonts } from 'expo-font';
|
|
3
|
-
// import { Stack } from 'expo-router';
|
|
4
|
-
// import * as SplashScreen from 'expo-splash-screen';
|
|
5
|
-
// import { StatusBar } from 'expo-status-bar';
|
|
6
|
-
// import { useEffect } from 'react';
|
|
7
|
-
// import 'react-native-reanimated';
|
|
8
|
-
// import {ThemeProvider} from '@/theme/ThemeContext';
|
|
9
|
-
|
|
10
|
-
// // Prevent the splash screen from auto-hiding before asset loading is complete.
|
|
11
|
-
// SplashScreen.preventAutoHideAsync();
|
|
12
|
-
|
|
13
|
-
// export default function RootLayout() {
|
|
14
|
-
// const [loaded] = useFonts({
|
|
15
|
-
// SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),
|
|
16
|
-
// });
|
|
17
|
-
|
|
18
|
-
// useEffect(() => {
|
|
19
|
-
// if (loaded) {
|
|
20
|
-
// SplashScreen.hideAsync();
|
|
21
|
-
// }
|
|
22
|
-
// }, [loaded]);
|
|
23
|
-
|
|
24
|
-
// if (!loaded) {
|
|
25
|
-
// return null;
|
|
26
|
-
// }
|
|
27
|
-
|
|
28
|
-
// return (
|
|
29
|
-
// <ThemeProvider>
|
|
30
|
-
// <Stack>
|
|
31
|
-
// {/* <Stack.Screen name="(tabs)" options={{ headerShown: false }} /> */}
|
|
32
|
-
// <Stack.Screen name="+not-found" />
|
|
33
|
-
// </Stack>
|
|
34
|
-
// <StatusBar style="auto" />
|
|
35
|
-
// </ThemeProvider>
|
|
36
|
-
// );
|
|
37
|
-
// }
|
|
38
|
-
"use strict";
|
|
39
|
-
//# sourceMappingURL=_layout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["app/_layout.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA","ignoreList":[]}
|
package/lib/module/app/index.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import React, { useState } from "react";
|
|
4
|
-
import { View, StyleSheet } from "react-native"; // Added TouchableOpacity
|
|
5
|
-
import { Ionicons } from "@expo/vector-icons";
|
|
6
|
-
import UnlockRewards from "@/components/UnlockRewards/UnlockRewards"; // Adjust path if needed
|
|
7
|
-
|
|
8
|
-
import { useTheme } from "@/theme";
|
|
9
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
-
export default function RewardsScreen() {
|
|
11
|
-
const [showRewards, setShowRewards] = useState(false);
|
|
12
|
-
|
|
13
|
-
// --- Define a NEW "Cosmic Explorer" theme ---
|
|
14
|
-
const cosmicActiveIconStyle = {
|
|
15
|
-
backgroundColor: "#2a2a4e",
|
|
16
|
-
// Dark blue-purple base
|
|
17
|
-
borderColor: "#7DF9FF",
|
|
18
|
-
// Bright cyan border
|
|
19
|
-
borderWidth: 1.5,
|
|
20
|
-
borderRadius: 25,
|
|
21
|
-
// Circular
|
|
22
|
-
padding: 10
|
|
23
|
-
};
|
|
24
|
-
const cosmicInactiveIconStyle = {
|
|
25
|
-
backgroundColor: "#4a4a6e",
|
|
26
|
-
// Muted purple-grey
|
|
27
|
-
borderRadius: 25,
|
|
28
|
-
// Circular
|
|
29
|
-
padding: 10,
|
|
30
|
-
opacity: 0.7 // Slightly faded
|
|
31
|
-
};
|
|
32
|
-
const theme = useTheme();
|
|
33
|
-
|
|
34
|
-
// --- New "Cosmic Explorer" Rewards Data ---
|
|
35
|
-
const rewardsData = [{
|
|
36
|
-
icon: /*#__PURE__*/_jsx(Ionicons, {
|
|
37
|
-
name: "water-outline",
|
|
38
|
-
size: 24,
|
|
39
|
-
color: theme.onSecondary
|
|
40
|
-
}),
|
|
41
|
-
activeIcon: /*#__PURE__*/_jsx(Ionicons, {
|
|
42
|
-
name: "water",
|
|
43
|
-
size: 24,
|
|
44
|
-
color: theme.primary
|
|
45
|
-
}),
|
|
46
|
-
title: "Aqua Guardian",
|
|
47
|
-
description: "Maintain water usage below the community average for a month.",
|
|
48
|
-
isActive: false,
|
|
49
|
-
status: "0/1",
|
|
50
|
-
statusBackgroundColor: theme.disabled,
|
|
51
|
-
statusTextColor: theme.text
|
|
52
|
-
}, {
|
|
53
|
-
icon: /*#__PURE__*/_jsx(Ionicons, {
|
|
54
|
-
name: "build-outline",
|
|
55
|
-
size: 24,
|
|
56
|
-
color: theme.helper
|
|
57
|
-
}),
|
|
58
|
-
activeIcon: /*#__PURE__*/_jsx(Ionicons, {
|
|
59
|
-
name: "build-outline",
|
|
60
|
-
size: 24,
|
|
61
|
-
color: theme.onPrimary
|
|
62
|
-
}),
|
|
63
|
-
title: "Leak Detective",
|
|
64
|
-
description: "Successfully report and fix a water leak on your property.",
|
|
65
|
-
isActive: true,
|
|
66
|
-
status: "1/1",
|
|
67
|
-
statusBackgroundColor: theme.primary,
|
|
68
|
-
statusTextColor: theme.onPrimary
|
|
69
|
-
}, {
|
|
70
|
-
icon: /*#__PURE__*/_jsx(Ionicons, {
|
|
71
|
-
name: "leaf-outline",
|
|
72
|
-
size: 24,
|
|
73
|
-
color: theme.onSecondary
|
|
74
|
-
}),
|
|
75
|
-
activeIcon: /*#__PURE__*/_jsx(Ionicons, {
|
|
76
|
-
name: "leaf",
|
|
77
|
-
size: 24,
|
|
78
|
-
color: theme.primary
|
|
79
|
-
}),
|
|
80
|
-
title: "Eco-Warrior",
|
|
81
|
-
description: "Implement a rainwater harvesting system or greywater recycling.",
|
|
82
|
-
isActive: false,
|
|
83
|
-
status: "0/1",
|
|
84
|
-
statusBackgroundColor: theme.disabled,
|
|
85
|
-
statusTextColor: theme.text
|
|
86
|
-
}];
|
|
87
|
-
const handleOpenRewards = () => {
|
|
88
|
-
setShowRewards(true);
|
|
89
|
-
};
|
|
90
|
-
const handleCloseRewards = () => {
|
|
91
|
-
setShowRewards(false);
|
|
92
|
-
};
|
|
93
|
-
return /*#__PURE__*/_jsx(View, {
|
|
94
|
-
style: styles.container,
|
|
95
|
-
children: /*#__PURE__*/_jsx(UnlockRewards, {
|
|
96
|
-
title: "Your Rewards",
|
|
97
|
-
description: "Complete tasks to unlock special benefits",
|
|
98
|
-
rewards: rewardsData
|
|
99
|
-
// onClose={handleClose}
|
|
100
|
-
,
|
|
101
|
-
showCloseIcon: true,
|
|
102
|
-
closeIconVariant: "nested",
|
|
103
|
-
topBackgroundHeight: 200,
|
|
104
|
-
customCloseIcon: /*#__PURE__*/_jsx(Ionicons, {
|
|
105
|
-
name: "close-circle",
|
|
106
|
-
size: 28,
|
|
107
|
-
color: theme.primary
|
|
108
|
-
})
|
|
109
|
-
})
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
const styles = StyleSheet.create({
|
|
113
|
-
container: {
|
|
114
|
-
flex: 1,
|
|
115
|
-
justifyContent: "center",
|
|
116
|
-
alignItems: "center",
|
|
117
|
-
padding: 20
|
|
118
|
-
// backgroundColor: "#0a0a1e", // Very dark background for the screen
|
|
119
|
-
},
|
|
120
|
-
// Custom button style
|
|
121
|
-
button: {
|
|
122
|
-
backgroundColor: "#302b63",
|
|
123
|
-
// Use a gradient color
|
|
124
|
-
paddingVertical: 12,
|
|
125
|
-
paddingHorizontal: 30,
|
|
126
|
-
borderRadius: 25,
|
|
127
|
-
shadowColor: "#7DF9FF",
|
|
128
|
-
shadowOffset: {
|
|
129
|
-
width: 0,
|
|
130
|
-
height: 4
|
|
131
|
-
},
|
|
132
|
-
shadowOpacity: 0.3,
|
|
133
|
-
shadowRadius: 5,
|
|
134
|
-
elevation: 6
|
|
135
|
-
},
|
|
136
|
-
buttonText: {
|
|
137
|
-
color: "#E0E0FF",
|
|
138
|
-
fontSize: 16,
|
|
139
|
-
fontWeight: "bold",
|
|
140
|
-
textAlign: "center"
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","View","StyleSheet","Ionicons","UnlockRewards","useTheme","jsx","_jsx","RewardsScreen","showRewards","setShowRewards","cosmicActiveIconStyle","backgroundColor","borderColor","borderWidth","borderRadius","padding","cosmicInactiveIconStyle","opacity","theme","rewardsData","icon","name","size","color","onSecondary","activeIcon","primary","title","description","isActive","status","statusBackgroundColor","disabled","statusTextColor","text","helper","onPrimary","handleOpenRewards","handleCloseRewards","style","styles","container","children","rewards","showCloseIcon","closeIconVariant","topBackgroundHeight","customCloseIcon","create","flex","justifyContent","alignItems","button","paddingVertical","paddingHorizontal","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","buttonText","fontSize","fontWeight","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["app/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=_layout.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_layout.d.ts","sourceRoot":"","sources":["../../../../src/app/_layout.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAQxC,MAAM,CAAC,OAAO,UAAU,aAAa,sBA8EpC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=_layout.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_layout.d.ts","sourceRoot":"","sources":["../../../../src/app/_layout.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAQxC,MAAM,CAAC,OAAO,UAAU,aAAa,sBA8EpC"}
|
package/src/app/_layout.tsx
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// import { DarkTheme, DefaultTheme, ThemeProvider as Custom } from '@react-navigation/native';
|
|
2
|
-
// import { useFonts } from 'expo-font';
|
|
3
|
-
// import { Stack } from 'expo-router';
|
|
4
|
-
// import * as SplashScreen from 'expo-splash-screen';
|
|
5
|
-
// import { StatusBar } from 'expo-status-bar';
|
|
6
|
-
// import { useEffect } from 'react';
|
|
7
|
-
// import 'react-native-reanimated';
|
|
8
|
-
// import {ThemeProvider} from '@/theme/ThemeContext';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
// // Prevent the splash screen from auto-hiding before asset loading is complete.
|
|
12
|
-
// SplashScreen.preventAutoHideAsync();
|
|
13
|
-
|
|
14
|
-
// export default function RootLayout() {
|
|
15
|
-
// const [loaded] = useFonts({
|
|
16
|
-
// SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),
|
|
17
|
-
// });
|
|
18
|
-
|
|
19
|
-
// useEffect(() => {
|
|
20
|
-
// if (loaded) {
|
|
21
|
-
// SplashScreen.hideAsync();
|
|
22
|
-
// }
|
|
23
|
-
// }, [loaded]);
|
|
24
|
-
|
|
25
|
-
// if (!loaded) {
|
|
26
|
-
// return null;
|
|
27
|
-
// }
|
|
28
|
-
|
|
29
|
-
// return (
|
|
30
|
-
// <ThemeProvider>
|
|
31
|
-
// <Stack>
|
|
32
|
-
// {/* <Stack.Screen name="(tabs)" options={{ headerShown: false }} /> */}
|
|
33
|
-
// <Stack.Screen name="+not-found" />
|
|
34
|
-
// </Stack>
|
|
35
|
-
// <StatusBar style="auto" />
|
|
36
|
-
// </ThemeProvider>
|
|
37
|
-
// );
|
|
38
|
-
// }
|
package/src/app/index.tsx
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
2
|
-
import { View, StyleSheet, Button, Text, TouchableOpacity } from "react-native"; // Added TouchableOpacity
|
|
3
|
-
import { Ionicons } from "@expo/vector-icons";
|
|
4
|
-
import UnlockRewards from "@/components/UnlockRewards/UnlockRewards"; // Adjust path if needed
|
|
5
|
-
import {Popup} from "@/components/Popup";
|
|
6
|
-
import { DealCardWithBackgroundImage } from "@/components";
|
|
7
|
-
import { useTheme } from "@/theme";
|
|
8
|
-
|
|
9
|
-
export default function RewardsScreen() {
|
|
10
|
-
const [showRewards, setShowRewards] = useState(false);
|
|
11
|
-
|
|
12
|
-
// --- Define a NEW "Cosmic Explorer" theme ---
|
|
13
|
-
const cosmicActiveIconStyle = {
|
|
14
|
-
backgroundColor: "#2a2a4e", // Dark blue-purple base
|
|
15
|
-
borderColor: "#7DF9FF", // Bright cyan border
|
|
16
|
-
borderWidth: 1.5,
|
|
17
|
-
borderRadius: 25, // Circular
|
|
18
|
-
padding: 10,
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const cosmicInactiveIconStyle = {
|
|
22
|
-
backgroundColor: "#4a4a6e", // Muted purple-grey
|
|
23
|
-
borderRadius: 25, // Circular
|
|
24
|
-
padding: 10,
|
|
25
|
-
opacity: 0.7, // Slightly faded
|
|
26
|
-
};
|
|
27
|
-
const theme = useTheme();
|
|
28
|
-
|
|
29
|
-
// --- New "Cosmic Explorer" Rewards Data ---
|
|
30
|
-
const rewardsData = [
|
|
31
|
-
{
|
|
32
|
-
icon: <Ionicons name="water-outline" size={24} color={theme.onSecondary} />,
|
|
33
|
-
activeIcon: <Ionicons name="water" size={24} color={theme.primary} />,
|
|
34
|
-
title: "Aqua Guardian",
|
|
35
|
-
description:
|
|
36
|
-
"Maintain water usage below the community average for a month.",
|
|
37
|
-
isActive: false,
|
|
38
|
-
status: "0/1",
|
|
39
|
-
statusBackgroundColor: theme.disabled,
|
|
40
|
-
statusTextColor: theme.text,
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
icon: <Ionicons name="build-outline" size={24} color={theme.helper} />,
|
|
44
|
-
activeIcon: <Ionicons name="build-outline" size={24} color={theme.onPrimary} />,
|
|
45
|
-
title: "Leak Detective",
|
|
46
|
-
description: "Successfully report and fix a water leak on your property.",
|
|
47
|
-
isActive: true,
|
|
48
|
-
status: "1/1",
|
|
49
|
-
statusBackgroundColor: theme.primary,
|
|
50
|
-
statusTextColor: theme.onPrimary,
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
icon: <Ionicons name="leaf-outline" size={24} color={theme.onSecondary} />,
|
|
54
|
-
activeIcon: <Ionicons name="leaf" size={24} color={theme.primary} />,
|
|
55
|
-
title: "Eco-Warrior",
|
|
56
|
-
description:
|
|
57
|
-
"Implement a rainwater harvesting system or greywater recycling.",
|
|
58
|
-
isActive: false,
|
|
59
|
-
status: "0/1",
|
|
60
|
-
statusBackgroundColor: theme.disabled,
|
|
61
|
-
statusTextColor: theme.text,
|
|
62
|
-
},
|
|
63
|
-
];
|
|
64
|
-
const handleOpenRewards = () => {
|
|
65
|
-
setShowRewards(true);
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
const handleCloseRewards = () => {
|
|
69
|
-
setShowRewards(false);
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
return (
|
|
74
|
-
<View style={styles.container}>
|
|
75
|
-
<UnlockRewards
|
|
76
|
-
title="Your Rewards"
|
|
77
|
-
description="Complete tasks to unlock special benefits"
|
|
78
|
-
rewards={rewardsData}
|
|
79
|
-
// onClose={handleClose}
|
|
80
|
-
showCloseIcon={true}
|
|
81
|
-
closeIconVariant="nested"
|
|
82
|
-
topBackgroundHeight={200}
|
|
83
|
-
customCloseIcon={<Ionicons name="close-circle" size={28} color={theme.primary} />}
|
|
84
|
-
/>
|
|
85
|
-
</View>
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const styles = StyleSheet.create({
|
|
90
|
-
container: {
|
|
91
|
-
flex: 1,
|
|
92
|
-
justifyContent: "center",
|
|
93
|
-
alignItems: "center",
|
|
94
|
-
padding: 20,
|
|
95
|
-
// backgroundColor: "#0a0a1e", // Very dark background for the screen
|
|
96
|
-
},
|
|
97
|
-
// Custom button style
|
|
98
|
-
button: {
|
|
99
|
-
backgroundColor: "#302b63", // Use a gradient color
|
|
100
|
-
paddingVertical: 12,
|
|
101
|
-
paddingHorizontal: 30,
|
|
102
|
-
borderRadius: 25,
|
|
103
|
-
shadowColor: "#7DF9FF",
|
|
104
|
-
shadowOffset: { width: 0, height: 4 },
|
|
105
|
-
shadowOpacity: 0.3,
|
|
106
|
-
shadowRadius: 5,
|
|
107
|
-
elevation: 6,
|
|
108
|
-
},
|
|
109
|
-
buttonText: {
|
|
110
|
-
color: "#E0E0FF",
|
|
111
|
-
fontSize: 16,
|
|
112
|
-
fontWeight: "bold",
|
|
113
|
-
textAlign: "center",
|
|
114
|
-
},
|
|
115
|
-
});
|