@core_super_app/ui 0.0.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/LICENSE +20 -0
- package/README.md +37 -0
- package/Ui.podspec +20 -0
- package/android/build.gradle +67 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/core/ui/UiModule.kt +15 -0
- package/android/src/main/java/com/core/ui/UiPackage.kt +31 -0
- package/ios/Ui.h +5 -0
- package/ios/Ui.mm +21 -0
- package/lib/module/assets/images/icons/remove.png +0 -0
- package/lib/module/components/BaseView.js +45 -0
- package/lib/module/components/BaseView.js.map +1 -0
- package/lib/module/components/BasicButton.js +57 -0
- package/lib/module/components/BasicButton.js.map +1 -0
- package/lib/module/components/Header.js +140 -0
- package/lib/module/components/Header.js.map +1 -0
- package/lib/module/components/LoadingOverlay.js +32 -0
- package/lib/module/components/LoadingOverlay.js.map +1 -0
- package/lib/module/components/TextWrapper.js +34 -0
- package/lib/module/components/TextWrapper.js.map +1 -0
- package/lib/module/components/index.js +9 -0
- package/lib/module/components/index.js.map +1 -0
- package/lib/module/components/input/BasicInput.js +237 -0
- package/lib/module/components/input/BasicInput.js.map +1 -0
- package/lib/module/components/input/index.js +4 -0
- package/lib/module/components/input/index.js.map +1 -0
- package/lib/module/constants/image.js +6 -0
- package/lib/module/constants/image.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/components/BaseView.d.ts +11 -0
- package/lib/typescript/src/components/BaseView.d.ts.map +1 -0
- package/lib/typescript/src/components/BasicButton.d.ts +16 -0
- package/lib/typescript/src/components/BasicButton.d.ts.map +1 -0
- package/lib/typescript/src/components/Header.d.ts +18 -0
- package/lib/typescript/src/components/Header.d.ts.map +1 -0
- package/lib/typescript/src/components/LoadingOverlay.d.ts +7 -0
- package/lib/typescript/src/components/LoadingOverlay.d.ts.map +1 -0
- package/lib/typescript/src/components/TextWrapper.d.ts +14 -0
- package/lib/typescript/src/components/TextWrapper.d.ts.map +1 -0
- package/lib/typescript/src/components/index.d.ts +7 -0
- package/lib/typescript/src/components/index.d.ts.map +1 -0
- package/lib/typescript/src/components/input/BasicInput.d.ts +49 -0
- package/lib/typescript/src/components/input/BasicInput.d.ts.map +1 -0
- package/lib/typescript/src/components/input/index.d.ts +2 -0
- package/lib/typescript/src/components/input/index.d.ts.map +1 -0
- package/lib/typescript/src/constants/image.d.ts +3 -0
- package/lib/typescript/src/constants/image.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +170 -0
- package/src/assets/images/icons/remove.png +0 -0
- package/src/components/BaseView.tsx +56 -0
- package/src/components/BasicButton.tsx +70 -0
- package/src/components/Header.tsx +171 -0
- package/src/components/LoadingOverlay.tsx +32 -0
- package/src/components/TextWrapper.tsx +49 -0
- package/src/components/index.ts +6 -0
- package/src/components/input/BasicInput.tsx +360 -0
- package/src/components/input/index.ts +1 -0
- package/src/constants/image.ts +5 -0
- package/src/index.tsx +2 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 HienNC2
|
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
6
|
+
in the Software without restriction, including without limitation the rights
|
|
7
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
9
|
+
furnished to do so, subject to the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all
|
|
12
|
+
copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
20
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# @core/ui
|
|
2
|
+
|
|
3
|
+
Define common components for project
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
```sh
|
|
9
|
+
npm install @core/ui
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
```js
|
|
17
|
+
import { multiply } from '@core/ui';
|
|
18
|
+
|
|
19
|
+
// ...
|
|
20
|
+
|
|
21
|
+
const result = multiply(3, 7);
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## Contributing
|
|
26
|
+
|
|
27
|
+
- [Development workflow](CONTRIBUTING.md#development-workflow)
|
|
28
|
+
- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request)
|
|
29
|
+
- [Code of conduct](CODE_OF_CONDUCT.md)
|
|
30
|
+
|
|
31
|
+
## License
|
|
32
|
+
|
|
33
|
+
MIT
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
|
package/Ui.podspec
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
|
|
5
|
+
Pod::Spec.new do |s|
|
|
6
|
+
s.name = "Ui"
|
|
7
|
+
s.version = package["version"]
|
|
8
|
+
s.summary = package["description"]
|
|
9
|
+
s.homepage = package["homepage"]
|
|
10
|
+
s.license = package["license"]
|
|
11
|
+
s.authors = package["author"]
|
|
12
|
+
|
|
13
|
+
s.platforms = { :ios => min_ios_version_supported }
|
|
14
|
+
s.source = { :git => "https://github.com/HienNguyen0205/core-ui.git", :tag => "#{s.version}" }
|
|
15
|
+
|
|
16
|
+
s.source_files = "ios/**/*.{h,m,mm,swift,cpp}"
|
|
17
|
+
s.private_header_files = "ios/**/*.h"
|
|
18
|
+
|
|
19
|
+
install_modules_dependencies(s)
|
|
20
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
buildscript {
|
|
2
|
+
ext.Ui = [
|
|
3
|
+
kotlinVersion: "2.0.21",
|
|
4
|
+
minSdkVersion: 24,
|
|
5
|
+
compileSdkVersion: 36,
|
|
6
|
+
targetSdkVersion: 36
|
|
7
|
+
]
|
|
8
|
+
|
|
9
|
+
ext.getExtOrDefault = { prop ->
|
|
10
|
+
if (rootProject.ext.has(prop)) {
|
|
11
|
+
return rootProject.ext.get(prop)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return Ui[prop]
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
repositories {
|
|
18
|
+
google()
|
|
19
|
+
mavenCentral()
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
dependencies {
|
|
23
|
+
classpath "com.android.tools.build:gradle:8.7.2"
|
|
24
|
+
// noinspection DifferentKotlinGradleVersion
|
|
25
|
+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
apply plugin: "com.android.library"
|
|
31
|
+
apply plugin: "kotlin-android"
|
|
32
|
+
|
|
33
|
+
apply plugin: "com.facebook.react"
|
|
34
|
+
|
|
35
|
+
android {
|
|
36
|
+
namespace "com.core.ui"
|
|
37
|
+
|
|
38
|
+
compileSdkVersion getExtOrDefault("compileSdkVersion")
|
|
39
|
+
|
|
40
|
+
defaultConfig {
|
|
41
|
+
minSdkVersion getExtOrDefault("minSdkVersion")
|
|
42
|
+
targetSdkVersion getExtOrDefault("targetSdkVersion")
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
buildFeatures {
|
|
46
|
+
buildConfig true
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
buildTypes {
|
|
50
|
+
release {
|
|
51
|
+
minifyEnabled false
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
lint {
|
|
56
|
+
disable "GradleCompatible"
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
compileOptions {
|
|
60
|
+
sourceCompatibility JavaVersion.VERSION_1_8
|
|
61
|
+
targetCompatibility JavaVersion.VERSION_1_8
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
dependencies {
|
|
66
|
+
implementation "com.facebook.react:react-android"
|
|
67
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
package com.core.ui
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
|
|
5
|
+
class UiModule(reactContext: ReactApplicationContext) :
|
|
6
|
+
NativeUiSpec(reactContext) {
|
|
7
|
+
|
|
8
|
+
override fun multiply(a: Double, b: Double): Double {
|
|
9
|
+
return a * b
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
companion object {
|
|
13
|
+
const val NAME = NativeUiSpec.NAME
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
package com.core.ui
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.BaseReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.module.model.ReactModuleInfo
|
|
7
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
8
|
+
import java.util.HashMap
|
|
9
|
+
|
|
10
|
+
class UiPackage : BaseReactPackage() {
|
|
11
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
12
|
+
return if (name == UiModule.NAME) {
|
|
13
|
+
UiModule(reactContext)
|
|
14
|
+
} else {
|
|
15
|
+
null
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
override fun getReactModuleInfoProvider() = ReactModuleInfoProvider {
|
|
20
|
+
mapOf(
|
|
21
|
+
UiModule.NAME to ReactModuleInfo(
|
|
22
|
+
name = UiModule.NAME,
|
|
23
|
+
className = UiModule.NAME,
|
|
24
|
+
canOverrideExistingModule = false,
|
|
25
|
+
needsEagerInit = false,
|
|
26
|
+
isCxxModule = false,
|
|
27
|
+
isTurboModule = true
|
|
28
|
+
)
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
}
|
package/ios/Ui.h
ADDED
package/ios/Ui.mm
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#import "Ui.h"
|
|
2
|
+
|
|
3
|
+
@implementation Ui
|
|
4
|
+
- (NSNumber *)multiply:(double)a b:(double)b {
|
|
5
|
+
NSNumber *result = @(a * b);
|
|
6
|
+
|
|
7
|
+
return result;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
11
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
12
|
+
{
|
|
13
|
+
return std::make_shared<facebook::react::NativeUiSpecJSI>(params);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
+ (NSString *)moduleName
|
|
17
|
+
{
|
|
18
|
+
return @"Ui";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@end
|
|
Binary file
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { ImageBackground, KeyboardAvoidingView, StyleSheet, View } from 'react-native';
|
|
4
|
+
import LoadingOverlay from "./LoadingOverlay.js";
|
|
5
|
+
import Header from "./Header.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const BaseView = props => {
|
|
8
|
+
const {
|
|
9
|
+
background,
|
|
10
|
+
children
|
|
11
|
+
} = props;
|
|
12
|
+
if (background) {
|
|
13
|
+
return /*#__PURE__*/_jsxs(ImageBackground, {
|
|
14
|
+
style: styles.container,
|
|
15
|
+
source: background,
|
|
16
|
+
resizeMode: "cover",
|
|
17
|
+
children: [/*#__PURE__*/_jsx(LoadingOverlay, {
|
|
18
|
+
...props
|
|
19
|
+
}), /*#__PURE__*/_jsx(Header, {
|
|
20
|
+
...props
|
|
21
|
+
}), /*#__PURE__*/_jsx(KeyboardAvoidingView, {
|
|
22
|
+
style: styles.container,
|
|
23
|
+
children: children
|
|
24
|
+
})]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
28
|
+
style: styles.container,
|
|
29
|
+
children: [/*#__PURE__*/_jsx(LoadingOverlay, {
|
|
30
|
+
...props
|
|
31
|
+
}), /*#__PURE__*/_jsx(Header, {
|
|
32
|
+
...props
|
|
33
|
+
}), /*#__PURE__*/_jsx(KeyboardAvoidingView, {
|
|
34
|
+
style: styles.container,
|
|
35
|
+
children: children
|
|
36
|
+
})]
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
export default BaseView;
|
|
40
|
+
const styles = StyleSheet.create({
|
|
41
|
+
container: {
|
|
42
|
+
flex: 1
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=BaseView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ImageBackground","KeyboardAvoidingView","StyleSheet","View","LoadingOverlay","Header","jsx","_jsx","jsxs","_jsxs","BaseView","props","background","children","style","styles","container","source","resizeMode","create","flex"],"sourceRoot":"..\\..\\..\\src","sources":["components/BaseView.tsx"],"mappings":";;AAAA,SACEA,eAAe,EACfC,oBAAoB,EACpBC,UAAU,EACVC,IAAI,QACC,cAAc;AACrB,OAAOC,cAAc,MAAM,qBAAkB;AAC7C,OAAOC,MAAM,MAAM,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAY9B,MAAMC,QAAQ,GAAIC,KAAoB,IAAK;EACzC,MAAM;IAAEC,UAAU;IAAEC;EAAS,CAAC,GAAGF,KAAK;EAEtC,IAAIC,UAAU,EAAE;IACd,oBACEH,KAAA,CAACT,eAAe;MACdc,KAAK,EAAEC,MAAM,CAACC,SAAU;MACxBC,MAAM,EAAEL,UAAW;MACnBM,UAAU,EAAC,OAAO;MAAAL,QAAA,gBAElBN,IAAA,CAACH,cAAc;QAAA,GAAKO;MAAK,CAAG,CAAC,eAC7BJ,IAAA,CAACF,MAAM;QAAA,GAAKM;MAAK,CAAG,CAAC,eACrBJ,IAAA,CAACN,oBAAoB;QAACa,KAAK,EAAEC,MAAM,CAACC,SAAU;QAAAH,QAAA,EAC3CA;MAAQ,CACW,CAAC;IAAA,CACR,CAAC;EAEtB;EAEA,oBACEJ,KAAA,CAACN,IAAI;IAACW,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAH,QAAA,gBAC5BN,IAAA,CAACH,cAAc;MAAA,GAAKO;IAAK,CAAG,CAAC,eAC7BJ,IAAA,CAACF,MAAM;MAAA,GAAKM;IAAK,CAAG,CAAC,eACrBJ,IAAA,CAACN,oBAAoB;MAACa,KAAK,EAAEC,MAAM,CAACC,SAAU;MAAAH,QAAA,EAC3CA;IAAQ,CACW,CAAC;EAAA,CACnB,CAAC;AAEX,CAAC;AAED,eAAeH,QAAQ;AAEvB,MAAMK,MAAM,GAAGb,UAAU,CAACiB,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { TouchableOpacity, StyleSheet } from 'react-native';
|
|
4
|
+
import LinearGradient from 'react-native-linear-gradient';
|
|
5
|
+
import TextWrapper from "./TextWrapper.js";
|
|
6
|
+
import { scaleFont } from '@core_super_app/utils/dimension';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const BasicButton = ({
|
|
9
|
+
children,
|
|
10
|
+
onPress,
|
|
11
|
+
disabled = false,
|
|
12
|
+
colors = ['#A18CD1', '#7B5CFF', '#5A3DFF'],
|
|
13
|
+
style,
|
|
14
|
+
textStyle
|
|
15
|
+
}) => {
|
|
16
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
17
|
+
activeOpacity: 0.6,
|
|
18
|
+
onPress: onPress,
|
|
19
|
+
disabled: disabled,
|
|
20
|
+
style: [styles.container, style],
|
|
21
|
+
children: /*#__PURE__*/_jsx(LinearGradient, {
|
|
22
|
+
colors: disabled ? ['#ccc', '#ccc'] : colors,
|
|
23
|
+
start: {
|
|
24
|
+
x: 0,
|
|
25
|
+
y: 0
|
|
26
|
+
},
|
|
27
|
+
end: {
|
|
28
|
+
x: 1,
|
|
29
|
+
y: 1
|
|
30
|
+
},
|
|
31
|
+
style: styles.gradient,
|
|
32
|
+
children: /*#__PURE__*/_jsx(TextWrapper, {
|
|
33
|
+
style: [styles.text, textStyle],
|
|
34
|
+
children: children
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
export default BasicButton;
|
|
40
|
+
const styles = StyleSheet.create({
|
|
41
|
+
container: {
|
|
42
|
+
width: '100%',
|
|
43
|
+
borderRadius: 12,
|
|
44
|
+
overflow: 'hidden'
|
|
45
|
+
},
|
|
46
|
+
gradient: {
|
|
47
|
+
paddingVertical: 14,
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
justifyContent: 'center'
|
|
50
|
+
},
|
|
51
|
+
text: {
|
|
52
|
+
color: '#fff',
|
|
53
|
+
fontWeight: '600',
|
|
54
|
+
fontSize: scaleFont(16)
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=BasicButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TouchableOpacity","StyleSheet","LinearGradient","TextWrapper","scaleFont","jsx","_jsx","BasicButton","children","onPress","disabled","colors","style","textStyle","activeOpacity","styles","container","start","x","y","end","gradient","text","create","width","borderRadius","overflow","paddingVertical","alignItems","justifyContent","color","fontWeight","fontSize"],"sourceRoot":"..\\..\\..\\src","sources":["components/BasicButton.tsx"],"mappings":";;AAAA,SACEA,gBAAgB,EAChBC,UAAU,QAGL,cAAc;AACrB,OAAOC,cAAc,MAAM,8BAA8B;AACzD,OAAOC,WAAW,MAAiC,kBAAe;AAGlE,SAASC,SAAS,QAAQ,iCAAiC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAY5D,MAAMC,WAAW,GAAGA,CAAC;EACnBC,QAAQ;EACRC,OAAO;EACPC,QAAQ,GAAG,KAAK;EAChBC,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;EAC1CC,KAAK;EACLC;AACK,CAAC,KAAK;EACX,oBACEP,IAAA,CAACN,gBAAgB;IACfc,aAAa,EAAE,GAAI;IACnBL,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEA,QAAS;IACnBE,KAAK,EAAE,CAACG,MAAM,CAACC,SAAS,EAAEJ,KAAK,CAAE;IAAAJ,QAAA,eAEjCF,IAAA,CAACJ,cAAc;MACbS,MAAM,EAAED,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAGC,MAAO;MAC7CM,KAAK,EAAE;QAAEC,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAE;MACtBC,GAAG,EAAE;QAAEF,CAAC,EAAE,CAAC;QAAEC,CAAC,EAAE;MAAE,CAAE;MACpBP,KAAK,EAAEG,MAAM,CAACM,QAAS;MAAAb,QAAA,eAEvBF,IAAA,CAACH,WAAW;QAACS,KAAK,EAAE,CAACG,MAAM,CAACO,IAAI,EAAET,SAAS,CAAE;QAAAL,QAAA,EAC1CA;MAAQ,CACE;IAAC,CACA;EAAC,CACD,CAAC;AAEvB,CAAC;AAED,eAAeD,WAAW;AAE1B,MAAMQ,MAAM,GAAGd,UAAU,CAACsB,MAAM,CAAC;EAC/BP,SAAS,EAAE;IACTQ,KAAK,EAAE,MAAM;IACbC,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ,CAAC;EACDL,QAAQ,EAAE;IACRM,eAAe,EAAE,EAAE;IACnBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDP,IAAI,EAAE;IACJQ,KAAK,EAAE,MAAM;IACbC,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAE5B,SAAS,CAAC,EAAE;EACxB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useNavigation } from '@react-navigation/native';
|
|
4
|
+
import { useEffect } from 'react';
|
|
5
|
+
import { BackHandler, Image, Keyboard, StyleSheet, TouchableOpacity, View } from 'react-native';
|
|
6
|
+
import { getStatusBarHeight } from '@core_super_app/utils/status-bar';
|
|
7
|
+
import TextWrapper from "./TextWrapper.js";
|
|
8
|
+
import { Icon } from "../constants/image.js";
|
|
9
|
+
import { scaleFont, scaleHeight, scaleWidth } from '@core_super_app/utils/dimension';
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
export const Header = props => {
|
|
12
|
+
const {
|
|
13
|
+
disabledBackHandler,
|
|
14
|
+
leftIcon,
|
|
15
|
+
back,
|
|
16
|
+
onPressLeftIcon,
|
|
17
|
+
title,
|
|
18
|
+
rightView,
|
|
19
|
+
isNotBackAfterPressLeft,
|
|
20
|
+
subTitle,
|
|
21
|
+
titleMaxLines,
|
|
22
|
+
titleStyle,
|
|
23
|
+
backColor
|
|
24
|
+
} = props;
|
|
25
|
+
const navigation = useNavigation();
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
let subscription = null;
|
|
28
|
+
if (!disabledBackHandler) {
|
|
29
|
+
subscription = BackHandler.addEventListener('hardwareBackPress', () => {
|
|
30
|
+
handleLeftIconPress();
|
|
31
|
+
return true;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return () => {
|
|
35
|
+
if (!disabledBackHandler && subscription) {
|
|
36
|
+
subscription.remove();
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
40
|
+
}, [disabledBackHandler]);
|
|
41
|
+
const handleLeftIconPress = () => {
|
|
42
|
+
Keyboard.dismiss();
|
|
43
|
+
if (onPressLeftIcon) {
|
|
44
|
+
onPressLeftIcon();
|
|
45
|
+
}
|
|
46
|
+
if (back) {
|
|
47
|
+
if (!isNotBackAfterPressLeft) {
|
|
48
|
+
navigation.goBack();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
53
|
+
style: {
|
|
54
|
+
...styles.headerView,
|
|
55
|
+
minHeight: subTitle ? scaleHeight(8.8) : scaleHeight(6.2)
|
|
56
|
+
},
|
|
57
|
+
children: [back && /*#__PURE__*/_jsx(View, {
|
|
58
|
+
style: styles.leftView,
|
|
59
|
+
children: /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
60
|
+
style: styles.leftView,
|
|
61
|
+
onPress: handleLeftIconPress,
|
|
62
|
+
children: /*#__PURE__*/_jsx(Image, {
|
|
63
|
+
source: leftIcon || Icon.back,
|
|
64
|
+
style: {
|
|
65
|
+
...styles.icon
|
|
66
|
+
},
|
|
67
|
+
tintColor: backColor
|
|
68
|
+
})
|
|
69
|
+
})
|
|
70
|
+
}), title && /*#__PURE__*/_jsxs(View, {
|
|
71
|
+
style: styles.titleContainer,
|
|
72
|
+
children: [/*#__PURE__*/_jsx(TextWrapper, {
|
|
73
|
+
numberOfLines: titleMaxLines,
|
|
74
|
+
style: {
|
|
75
|
+
...styles.title,
|
|
76
|
+
...titleStyle
|
|
77
|
+
},
|
|
78
|
+
children: title
|
|
79
|
+
}), subTitle && /*#__PURE__*/_jsx(TextWrapper, {
|
|
80
|
+
style: {
|
|
81
|
+
...styles.subTitle
|
|
82
|
+
},
|
|
83
|
+
children: subTitle
|
|
84
|
+
})]
|
|
85
|
+
}), rightView && /*#__PURE__*/_jsx(View, {
|
|
86
|
+
style: styles.rightViewContainer,
|
|
87
|
+
children: rightView
|
|
88
|
+
})]
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
export default Header;
|
|
92
|
+
const styles = StyleSheet.create({
|
|
93
|
+
headerView: {
|
|
94
|
+
flexDirection: 'row',
|
|
95
|
+
width: scaleWidth(100),
|
|
96
|
+
paddingHorizontal: scaleWidth(4),
|
|
97
|
+
marginTop: getStatusBarHeight(),
|
|
98
|
+
backgroundColor: 'transparent',
|
|
99
|
+
position: 'relative',
|
|
100
|
+
alignItems: 'center'
|
|
101
|
+
},
|
|
102
|
+
leftView: {
|
|
103
|
+
flexDirection: 'row',
|
|
104
|
+
flex: 0.24,
|
|
105
|
+
width: scaleWidth(12),
|
|
106
|
+
justifyContent: 'flex-start',
|
|
107
|
+
alignItems: 'center'
|
|
108
|
+
},
|
|
109
|
+
rightIconView: {
|
|
110
|
+
justifyContent: 'center',
|
|
111
|
+
alignItems: 'center'
|
|
112
|
+
},
|
|
113
|
+
icon: {
|
|
114
|
+
width: scaleFont(24),
|
|
115
|
+
height: scaleFont(24)
|
|
116
|
+
},
|
|
117
|
+
titleContainer: {
|
|
118
|
+
position: 'absolute',
|
|
119
|
+
top: 0,
|
|
120
|
+
left: scaleWidth(22),
|
|
121
|
+
width: scaleWidth(56),
|
|
122
|
+
height: '100%',
|
|
123
|
+
justifyContent: 'center',
|
|
124
|
+
alignItems: 'center'
|
|
125
|
+
},
|
|
126
|
+
rightViewContainer: {
|
|
127
|
+
flexDirection: 'row',
|
|
128
|
+
justifyContent: 'flex-end'
|
|
129
|
+
},
|
|
130
|
+
subTitle: {
|
|
131
|
+
fontSize: scaleFont(11),
|
|
132
|
+
textAlign: 'center',
|
|
133
|
+
marginTop: scaleFont(3)
|
|
134
|
+
},
|
|
135
|
+
title: {
|
|
136
|
+
textAlign: 'center',
|
|
137
|
+
fontSize: scaleFont(16)
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useNavigation","useEffect","BackHandler","Image","Keyboard","StyleSheet","TouchableOpacity","View","getStatusBarHeight","TextWrapper","Icon","scaleFont","scaleHeight","scaleWidth","jsx","_jsx","jsxs","_jsxs","Header","props","disabledBackHandler","leftIcon","back","onPressLeftIcon","title","rightView","isNotBackAfterPressLeft","subTitle","titleMaxLines","titleStyle","backColor","navigation","subscription","addEventListener","handleLeftIconPress","remove","dismiss","goBack","style","styles","headerView","minHeight","children","leftView","onPress","source","icon","tintColor","titleContainer","numberOfLines","rightViewContainer","create","flexDirection","width","paddingHorizontal","marginTop","backgroundColor","position","alignItems","flex","justifyContent","rightIconView","height","top","left","fontSize","textAlign"],"sourceRoot":"..\\..\\..\\src","sources":["components/Header.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet, ActivityIndicator, View } from "react-native";
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
const LoadingOverlay = ({
|
|
6
|
+
indicatorColor,
|
|
7
|
+
isLoading = false
|
|
8
|
+
}) => {
|
|
9
|
+
if (!isLoading) return null;
|
|
10
|
+
return /*#__PURE__*/_jsx(View, {
|
|
11
|
+
style: styles.viewLoading,
|
|
12
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
13
|
+
size: "large",
|
|
14
|
+
color: indicatorColor || "#FFF"
|
|
15
|
+
})
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
export default LoadingOverlay;
|
|
19
|
+
const styles = StyleSheet.create({
|
|
20
|
+
viewLoading: {
|
|
21
|
+
position: "absolute",
|
|
22
|
+
top: 0,
|
|
23
|
+
left: 0,
|
|
24
|
+
right: 0,
|
|
25
|
+
bottom: 0,
|
|
26
|
+
backgroundColor: "rgba(0,0,0,0.3)",
|
|
27
|
+
justifyContent: "center",
|
|
28
|
+
alignItems: "center",
|
|
29
|
+
zIndex: 999
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=LoadingOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","ActivityIndicator","View","jsx","_jsx","LoadingOverlay","indicatorColor","isLoading","style","styles","viewLoading","children","size","color","create","position","top","left","right","bottom","backgroundColor","justifyContent","alignItems","zIndex"],"sourceRoot":"..\\..\\..\\src","sources":["components/LoadingOverlay.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,iBAAiB,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOnE,MAAMC,cAAc,GAAGA,CAAC;EAAEC,cAAc;EAAEC,SAAS,GAAG;AAA2B,CAAC,KAAK;EACrF,IAAI,CAACA,SAAS,EAAE,OAAO,IAAI;EAE3B,oBACEH,IAAA,CAACF,IAAI;IAACM,KAAK,EAAEC,MAAM,CAACC,WAAY;IAAAC,QAAA,eAC9BP,IAAA,CAACH,iBAAiB;MAACW,IAAI,EAAC,OAAO;MAACC,KAAK,EAAEP,cAAc,IAAI;IAAO,CAAE;EAAC,CAC/D,CAAC;AAEX,CAAC;AAED,eAAeD,cAAc;AAE7B,MAAMI,MAAM,GAAGT,UAAU,CAACc,MAAM,CAAC;EAC/BJ,WAAW,EAAE;IACXK,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,eAAe,EAAE,iBAAiB;IAClCC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet, Text } from 'react-native';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
const TextWrapper = props => {
|
|
6
|
+
const {
|
|
7
|
+
testID,
|
|
8
|
+
accessibilityLabel,
|
|
9
|
+
onPress,
|
|
10
|
+
numberOfLines,
|
|
11
|
+
ellipsizeMode,
|
|
12
|
+
style,
|
|
13
|
+
children
|
|
14
|
+
} = props;
|
|
15
|
+
return /*#__PURE__*/_jsx(Text, {
|
|
16
|
+
accessible: true,
|
|
17
|
+
testID: testID,
|
|
18
|
+
accessibilityLabel: accessibilityLabel,
|
|
19
|
+
onPress: onPress,
|
|
20
|
+
numberOfLines: numberOfLines,
|
|
21
|
+
ellipsizeMode: ellipsizeMode,
|
|
22
|
+
allowFontScaling: false,
|
|
23
|
+
style: [styles.defaultStyle, style],
|
|
24
|
+
children: children
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
export default TextWrapper;
|
|
28
|
+
const styles = StyleSheet.create({
|
|
29
|
+
defaultStyle: {
|
|
30
|
+
color: '#212B36',
|
|
31
|
+
includeFontPadding: false
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=TextWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","Text","jsx","_jsx","TextWrapper","props","testID","accessibilityLabel","onPress","numberOfLines","ellipsizeMode","style","children","accessible","allowFontScaling","styles","defaultStyle","create","color","includeFontPadding"],"sourceRoot":"..\\..\\..\\src","sources":["components/TextWrapper.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAchD,MAAMC,WAAW,GAAIC,KAAuB,IAAK;EAC/C,MAAM;IACJC,MAAM;IACNC,kBAAkB;IAClBC,OAAO;IACPC,aAAa;IACbC,aAAa;IACbC,KAAK;IACLC;EACF,CAAC,GAAGP,KAAK;EAET,oBACEF,IAAA,CAACF,IAAI;IACHY,UAAU;IACVP,MAAM,EAAEA,MAAO;IACfC,kBAAkB,EAAEA,kBAAmB;IACvCC,OAAO,EAAEA,OAAQ;IACjBC,aAAa,EAAEA,aAAc;IAC7BC,aAAa,EAAEA,aAAc;IAC7BI,gBAAgB,EAAE,KAAM;IACxBH,KAAK,EAAE,CAACI,MAAM,CAACC,YAAY,EAAEL,KAAK,CAAE;IAAAC,QAAA,EAEnCA;EAAQ,CACL,CAAC;AAEX,CAAC;AAED,eAAeR,WAAW;AAE1B,MAAMW,MAAM,GAAGf,UAAU,CAACiB,MAAM,CAAC;EAC/BD,YAAY,EAAE;IACZE,KAAK,EAAE,SAAS;IAChBC,kBAAkB,EAAE;EACtB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"..\\..\\..\\src","sources":["components/index.ts"],"mappings":";;AAAA,cAAc,eAAY;AAC1B,cAAc,aAAU;AACxB,cAAc,qBAAkB;AAChC,cAAc,kBAAe;AAC7B,cAAc,kBAAS;AACvB,cAAc,kBAAe","ignoreList":[]}
|