diff --git a/assets/images/acc-icon1.png b/assets/images/acc-icon1.png
new file mode 100644
index 0000000..61764bf
Binary files /dev/null and b/assets/images/acc-icon1.png differ
diff --git a/assets/images/acc-icon2.png b/assets/images/acc-icon2.png
new file mode 100644
index 0000000..76eb964
Binary files /dev/null and b/assets/images/acc-icon2.png differ
diff --git a/assets/images/acc-icon3.png b/assets/images/acc-icon3.png
new file mode 100644
index 0000000..ccfb3d1
Binary files /dev/null and b/assets/images/acc-icon3.png differ
diff --git a/assets/images/acc-icon4.png b/assets/images/acc-icon4.png
new file mode 100644
index 0000000..23d959c
Binary files /dev/null and b/assets/images/acc-icon4.png differ
diff --git a/assets/images/acc-icon5.png b/assets/images/acc-icon5.png
new file mode 100644
index 0000000..7d386bf
Binary files /dev/null and b/assets/images/acc-icon5.png differ
diff --git a/assets/images/acc-icon6.png b/assets/images/acc-icon6.png
new file mode 100644
index 0000000..c71cf9f
Binary files /dev/null and b/assets/images/acc-icon6.png differ
diff --git a/assets/images/acc-icon7.png b/assets/images/acc-icon7.png
new file mode 100644
index 0000000..ba40412
Binary files /dev/null and b/assets/images/acc-icon7.png differ
diff --git a/assets/images/acc-icon8.png b/assets/images/acc-icon8.png
new file mode 100644
index 0000000..0cbae82
Binary files /dev/null and b/assets/images/acc-icon8.png differ
diff --git a/assets/images/bg-account.png b/assets/images/bg-account.png
new file mode 100644
index 0000000..a094670
Binary files /dev/null and b/assets/images/bg-account.png differ
diff --git a/assets/images/bg-coin.png b/assets/images/bg-coin.png
new file mode 100644
index 0000000..3ad35f4
Binary files /dev/null and b/assets/images/bg-coin.png differ
diff --git a/assets/images/check.png b/assets/images/check.png
deleted file mode 100644
index 1ef5f92..0000000
Binary files a/assets/images/check.png and /dev/null differ
diff --git a/assets/images/check@2x.png b/assets/images/check@2x.png
deleted file mode 100644
index af07eb6..0000000
Binary files a/assets/images/check@2x.png and /dev/null differ
diff --git a/assets/images/coin.png b/assets/images/coin.png
new file mode 100644
index 0000000..29ee5f2
Binary files /dev/null and b/assets/images/coin.png differ
diff --git a/assets/images/cus-img-account.png b/assets/images/cus-img-account.png
new file mode 100644
index 0000000..922a046
Binary files /dev/null and b/assets/images/cus-img-account.png differ
diff --git a/assets/images/facebook.png b/assets/images/facebook.png
new file mode 100644
index 0000000..614128c
Binary files /dev/null and b/assets/images/facebook.png differ
diff --git a/assets/images/naga-xu.png b/assets/images/naga-xu.png
new file mode 100644
index 0000000..9260108
Binary files /dev/null and b/assets/images/naga-xu.png differ
diff --git a/assets/images/payinstall-bank.png b/assets/images/payinstall-bank.png
new file mode 100644
index 0000000..dc4f6ce
Binary files /dev/null and b/assets/images/payinstall-bank.png differ
diff --git a/assets/images/zalo-login.png b/assets/images/zalo-login.png
new file mode 100644
index 0000000..5d880e4
Binary files /dev/null and b/assets/images/zalo-login.png differ
diff --git a/components/header/HeaderAllPage.tsx b/components/header/HeaderAllPage.tsx
index 896bff7..5195d5e 100644
--- a/components/header/HeaderAllPage.tsx
+++ b/components/header/HeaderAllPage.tsx
@@ -110,8 +110,26 @@ const HeaderAllOtherPage = (props : {headerTitle: string}) => {
)
}
+const HeaderLogin = (props : {headerTitle: string}) => {
+ const {headerTitle} = props
+ const navigation = useNavigation();
+ return (
+
+ navigation.goBack()} style={styles.boxHeaderProductDetailGoBack}>
+
+
+ {headerTitle}
+
+
+ Trợ giúp
+
+
+
+ )
+}
-export { HeaderHome, HeaderCategory, HeaderProductDetail, HeaderAllOtherPage };
+
+export { HeaderHome, HeaderCategory, HeaderProductDetail, HeaderAllOtherPage, HeaderLogin };
const styles = StyleSheet.create({
container: {
@@ -318,4 +336,8 @@ const styles = StyleSheet.create({
fontWeight: 'bold',
fontSize: 16,
},
+ headerLoginSp: {
+ fontWeight: '300',
+ color: '#777'
+ },
})
\ No newline at end of file
diff --git a/navigation/BottomTabNavigator.tsx b/navigation/BottomTabNavigator.tsx
index 994b7ac..1fbd2ea 100644
--- a/navigation/BottomTabNavigator.tsx
+++ b/navigation/BottomTabNavigator.tsx
@@ -9,6 +9,7 @@ import Colors from '../constants/Colors';
import useColorScheme from '../hooks/useColorScheme';
import HomePage from '../screens/HomePage';
import ProductList from '../screens/ProductList';
+import ProductHotList from '../screens/ProductHotList';
import MenuCategory from '../screens/MenuCategory';
import ProductDetail from '../screens/ProductDetail';
import Cart from '../screens/Cart';
@@ -19,7 +20,20 @@ import ArticleHome from '../screens/ArticleHome';
import ArticleList from '../screens/ArticleList';
import ArticleDetail from '../screens/ArticleDetail';
import AccountHome from '../screens/AccountHome';
-import { HeaderHome, HeaderCategory, HeaderProductDetail, HeaderAllOtherPage } from '../components/header/HeaderAllPage'
+import ForgotPassword from '../screens/ForgotPassword';
+import CartStep from '../screens/CartStep';
+import CartPayInstallment from '../screens/CartPayInstallment';
+import AccountIndex from '../screens/AccountIndex';
+import SettingAccount from '../screens/SettingAccount';
+import AccountOrderList from '../screens/AccountOrderList';
+import AccountOrderDetail from '../screens/AccountOrderDetail';
+import AccountProductBought from '../screens/AccountProductBought';
+import AccountProductViewHistory from '../screens/AccountProductViewHistory';
+import AccountProductFavorite from '../screens/AccountProductFavorite';
+import AccountProductSave from '../screens/AccountProductSave';
+import AccountCoin from '../screens/AccountCoin';
+import CustomerInfo from '../screens/CustomerInfo';
+import { HeaderHome, HeaderCategory, HeaderProductDetail, HeaderAllOtherPage, HeaderLogin } from '../components/header/HeaderAllPage'
const BottomTab = createBottomTabNavigator();
@@ -59,7 +73,7 @@ export default function BottomTabNavigator() {
/>
,
}}
@@ -174,10 +188,58 @@ function CartNavigation() {
+
+ );
+}
+
+const CartStepStack = createStackNavigator();
+
+function CartStepNavigation() {
+ return (
+
+
+
+ );
+}
+
+const CartPayInstallmentStack = createStackNavigator();
+
+function CartPayInstallmentNavigation() {
+ return (
+
+
+
+ );
+}
+
+const AccountIndexStack = createStackNavigator();
+
+function AccountIndexNavigation() {
+ return (
+
+ (
-
+
),
headerStyle: {
backgroundColor: '#fff',
@@ -185,7 +247,7 @@ function CartNavigation() {
}
}}
/>
-
+
);
}
@@ -200,7 +262,7 @@ function LoginNavigation() {
options={{
headerTitle: '',
headerLeft: () => (
-
+
),
headerStyle: {
backgroundColor: '#fff',
@@ -223,7 +285,7 @@ function RegisterNavigation() {
options={{
headerTitle: '',
headerLeft: () => (
-
+
),
headerStyle: {
backgroundColor: '#fff',
@@ -351,6 +413,197 @@ function AccountHomeNavigation() {
);
}
+const ProductHotListStack = createStackNavigator();
+
+function ProductHotListNavigation() {
+ return (
+
+ (
+
+ ),
+ headerStyle: {
+ backgroundColor: '#fff',
+ height: 80,
+ }
+ }}
+ />
+
+ );
+}
+
+const ForgotPasswordStack = createStackNavigator();
+
+function ForgotPasswordNavigation() {
+ return (
+
+ (
+
+ ),
+ headerStyle: {
+ backgroundColor: '#fff',
+ height: 80,
+ }
+ }}
+ />
+
+ );
+}
+
+const SettingAccountStack = createStackNavigator();
+
+function SettingAccountNavigation() {
+ return (
+
+
+
+ );
+}
+
+const AccountOrderListStack = createStackNavigator();
+
+function AccountOrderListNavigation() {
+ return (
+
+
+
+ );
+}
+
+const AccountOrderDetailStack = createStackNavigator();
+
+function AccountOrderDetailNavigation() {
+ return (
+
+
+
+ );
+}
+
+const AccountProductBoughtStack = createStackNavigator();
+
+function AccountProductBoughtNavigation() {
+ return (
+
+
+
+ );
+}
+
+const AccountProductViewHistoryStack = createStackNavigator();
+
+function AccountProductViewHistoryNavigation() {
+ return (
+
+
+
+ );
+}
+
+const AccountProductFavoriteStack = createStackNavigator();
+
+function AccountProductFavoriteNavigation() {
+ return (
+
+
+
+ );
+}
+
+const AccountProductSaveStack = createStackNavigator();
+
+function AccountProductSaveNavigation() {
+ return (
+
+
+
+ );
+}
+
+const AccountCoinStack = createStackNavigator();
+
+function AccountCoinNavigation() {
+ return (
+
+
+
+ );
+}
+
+const CustomerInfoStack = createStackNavigator();
+
+function CustomerInfoNavigation() {
+ return (
+
+
+
+ );
+}
+
+
const AllStack = createStackNavigator();
function AllStackNavigation() {
@@ -381,6 +634,16 @@ function AllStackNavigation() {
component={CartNavigation}
options={{ headerShown: false }}
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
);
}
diff --git a/package-lock.json b/package-lock.json
index 0bed90c..79bbad4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -21,8 +21,10 @@
"expo-status-bar": "~1.0.3",
"expo-web-browser": "~8.6.0",
"react": "16.13.1",
+ "react-bootstrap-icons": "^1.4.0",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
+ "react-native-bootstrap-icons": "^1.0.0-rc.1",
"react-native-gesture-handler": "~1.8.0",
"react-native-paper": "^4.7.2",
"react-native-safe-area-context": "3.1.9",
@@ -4840,6 +4842,12 @@
"resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz",
"integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM="
},
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "peer": true
+ },
"node_modules/bplist-creator": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz",
@@ -5621,6 +5629,52 @@
"isobject": "^3.0.1"
}
},
+ "node_modules/css-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+ "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "peer": true,
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^3.2.1",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
+ "node_modules/css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "peer": true,
+ "dependencies": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/css-tree/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
+ "peer": true,
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
"node_modules/cssom": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
@@ -5839,11 +5893,39 @@
"node": ">= 8.3"
}
},
+ "node_modules/dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "peer": true,
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/domelementtype": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
+ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "peer": true
+ },
"node_modules/dom-walk": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
},
+ "node_modules/domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "peer": true
+ },
"node_modules/domexception": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
@@ -5853,6 +5935,16 @@
"webidl-conversions": "^4.0.2"
}
},
+ "node_modules/domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "peer": true,
+ "dependencies": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
"node_modules/ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -5913,6 +6005,15 @@
"once": "^1.4.0"
}
},
+ "node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "peer": true,
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/envinfo": {
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz",
@@ -10560,6 +10661,12 @@
"node": ">=0.10"
}
},
+ "node_modules/mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "peer": true
+ },
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -12478,6 +12585,15 @@
"node": ">=8"
}
},
+ "node_modules/nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "peer": true,
+ "dependencies": {
+ "boolbase": "~1.0.0"
+ }
+ },
"node_modules/nullthrows": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
@@ -13496,6 +13612,17 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-bootstrap-icons": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/react-bootstrap-icons/-/react-bootstrap-icons-1.4.0.tgz",
+ "integrity": "sha512-rxT8IxIU3Cnnj4y+rDJvlj5qITNfQP0jdw0e1gGCuyNDQDxvRvrA6QEFSLmWBgMqC/hig3CnZ+Snx2GwXbPxmQ==",
+ "dependencies": {
+ "prop-types": "^15.7.2"
+ },
+ "peerDependencies": {
+ "react": "^16.8.6 || ^17"
+ }
+ },
"node_modules/react-devtools-core": {
"version": "4.10.1",
"resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.10.1.tgz",
@@ -13568,6 +13695,15 @@
"react": "16.13.1"
}
},
+ "node_modules/react-native-bootstrap-icons": {
+ "version": "1.0.0-rc.1",
+ "resolved": "https://registry.npmjs.org/react-native-bootstrap-icons/-/react-native-bootstrap-icons-1.0.0-rc.1.tgz",
+ "integrity": "sha512-V+LQbhzEegsrbnsMxLVDmOIyyTbK6iqDHQCypFkx3IUSR74a35n4s51Jam3cQW96PB/Y8BxP0TM1b/jPOY04Iw==",
+ "peerDependencies": {
+ "react": "*",
+ "react-native-svg": "*"
+ }
+ },
"node_modules/react-native-gesture-handler": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.8.0.tgz",
@@ -13620,6 +13756,20 @@
"react-native": "*"
}
},
+ "node_modules/react-native-svg": {
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-12.1.1.tgz",
+ "integrity": "sha512-NIAJ8jCnXGCqGWXkkJ1GTzO4a3Md5at5sagYV8Vh4MXYnL4z5Rh428Wahjhh+LIjx40EE5xM5YtwyJBqOIba2Q==",
+ "peer": true,
+ "dependencies": {
+ "css-select": "^2.1.0",
+ "css-tree": "^1.0.0-alpha.39"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": ">=0.50.0"
+ }
+ },
"node_modules/react-native-swiper": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/react-native-swiper/-/react-native-swiper-1.6.0.tgz",
@@ -20667,6 +20817,12 @@
"resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz",
"integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM="
},
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "peer": true
+ },
"bplist-creator": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz",
@@ -21298,6 +21454,42 @@
"isobject": "^3.0.1"
}
},
+ "css-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+ "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "peer": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^3.2.1",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
+ "css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "peer": true,
+ "requires": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "peer": true
+ }
+ }
+ },
+ "css-what": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
+ "peer": true
+ },
"cssom": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
@@ -21470,11 +21662,35 @@
"integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==",
"dev": true
},
+ "dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "peer": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
+ "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
+ "peer": true
+ }
+ }
+ },
"dom-walk": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
},
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "peer": true
+ },
"domexception": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
@@ -21484,6 +21700,16 @@
"webidl-conversions": "^4.0.2"
}
},
+ "domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "peer": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -21540,6 +21766,12 @@
"once": "^1.4.0"
}
},
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "peer": true
+ },
"envinfo": {
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz",
@@ -25132,6 +25364,12 @@
"buffer-alloc": "^1.1.0"
}
},
+ "mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "peer": true
+ },
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -26698,6 +26936,15 @@
}
}
},
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "peer": true,
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
"nullthrows": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz",
@@ -27463,6 +27710,14 @@
"prop-types": "^15.6.2"
}
},
+ "react-bootstrap-icons": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/react-bootstrap-icons/-/react-bootstrap-icons-1.4.0.tgz",
+ "integrity": "sha512-rxT8IxIU3Cnnj4y+rDJvlj5qITNfQP0jdw0e1gGCuyNDQDxvRvrA6QEFSLmWBgMqC/hig3CnZ+Snx2GwXbPxmQ==",
+ "requires": {
+ "prop-types": "^15.7.2"
+ }
+ },
"react-devtools-core": {
"version": "4.10.1",
"resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.10.1.tgz",
@@ -27565,6 +27820,12 @@
}
}
},
+ "react-native-bootstrap-icons": {
+ "version": "1.0.0-rc.1",
+ "resolved": "https://registry.npmjs.org/react-native-bootstrap-icons/-/react-native-bootstrap-icons-1.0.0-rc.1.tgz",
+ "integrity": "sha512-V+LQbhzEegsrbnsMxLVDmOIyyTbK6iqDHQCypFkx3IUSR74a35n4s51Jam3cQW96PB/Y8BxP0TM1b/jPOY04Iw==",
+ "requires": {}
+ },
"react-native-gesture-handler": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.8.0.tgz",
@@ -27604,6 +27865,16 @@
"integrity": "sha512-CagNf2APXkVoRlF3Mugr264FbKbrBg9eXUkqhIPVeZB8EsdS8XPrnt99yj/pzmT+yJMBY0dGrjXT8+68WYh6YQ==",
"requires": {}
},
+ "react-native-svg": {
+ "version": "12.1.1",
+ "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-12.1.1.tgz",
+ "integrity": "sha512-NIAJ8jCnXGCqGWXkkJ1GTzO4a3Md5at5sagYV8Vh4MXYnL4z5Rh428Wahjhh+LIjx40EE5xM5YtwyJBqOIba2Q==",
+ "peer": true,
+ "requires": {
+ "css-select": "^2.1.0",
+ "css-tree": "^1.0.0-alpha.39"
+ }
+ },
"react-native-swiper": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/react-native-swiper/-/react-native-swiper-1.6.0.tgz",
diff --git a/package.json b/package.json
index 357a36b..182363b 100644
--- a/package.json
+++ b/package.json
@@ -28,8 +28,10 @@
"expo-status-bar": "~1.0.3",
"expo-web-browser": "~8.6.0",
"react": "16.13.1",
+ "react-bootstrap-icons": "^1.4.0",
"react-dom": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz",
+ "react-native-bootstrap-icons": "^1.0.0-rc.1",
"react-native-gesture-handler": "~1.8.0",
"react-native-paper": "^4.7.2",
"react-native-safe-area-context": "3.1.9",
diff --git a/screens/AccountChagePassword.tsx b/screens/AccountChagePassword.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/screens/AccountCoin.tsx b/screens/AccountCoin.tsx
new file mode 100644
index 0000000..d1b37e3
--- /dev/null
+++ b/screens/AccountCoin.tsx
@@ -0,0 +1,177 @@
+import 'react-native-gesture-handler';
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, Modal, Pressable, Share } from 'react-native';
+import Constants from 'expo-constants';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useNavigation } from '@react-navigation/native';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View, } from '../components/Themed';
+import useColorScheme from '../hooks/useColorScheme';
+import { TextInput } from 'react-native-gesture-handler';
+import { RadioButton, Checkbox } from 'react-native-paper';
+import { Picker } from '@react-native-picker/picker';
+
+export default function AccountCoin() {
+ return (
+
+
+
+
+
+
+
+ )
+}
+
+function formatCurrency(price: string | number) {
+ let priceConvert = parseFloat(`${price}`).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1.").toString();
+ let len = priceConvert.length;
+ return priceConvert.substring(0, len - 3);
+}
+
+const HeaderAccountOrderList = () => {
+ const navigation = useNavigation();
+ return (
+
+
+
+ navigation.goBack()} style={styles.headerAOLBack}>
+
+
+ Naga Xu
+
+
+
+
+ 10
+
+ Bạn có 10 xu trong tài khoản
+
+
+ )
+}
+
+const NoteCoin = () => {
+ return(
+
+ Giới thiệu về Naga xu
+ - Naga Xu là hệ thống tích điểm dành cho Khách hàng của Nagakawa Shop.
+ - 10 Naga Xu = 1.000 đồng.
+ - Thời gian sử dụng Naga Xu là 01 năm từ khi bắt đầu đăng ký tài khoản tại website
+ - Khách hàng nhận Naga Xu khi mua hàng hoặc tương tác comment tại website Nagakawa
+
+ )
+}
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+const winWidthP10 = winWidth - 20;
+const halfWinWidth = winWidth / 2;
+const ratio = winWidthP10 / 850; //541 is actual image width
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: '#fff',
+ },
+ headerAOL: {
+ width: winWidth,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ position: 'absolute',
+ top: 50,
+ left: 0,
+ paddingHorizontal: 10,
+ backgroundColor: 'rgba(0,0,0,0)'
+ },
+ headerAOLBack: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLBackIcon: {
+ fontSize: 24,
+ color: '#fff',
+ },
+ headerAOLSearch: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLSearchIcon: {
+ fontSize: 24,
+ },
+ headerAOLTitle: {
+ width: winWidth - 60,
+ textAlign: 'center',
+ fontWeight: '700',
+ color: '#fff',
+ },
+ GreenColor: {
+ color: '#008445',
+ },
+ OrangeColor: {
+ color: '#FE9923',
+ },
+ RedColor: {
+ color: '#D8262F',
+ },
+ headerCoin: {
+ width: winWidth,
+ position: 'relative',
+ },
+ headerCoinBg: {
+ width: winWidth,
+ },
+ headerCoinCtBot: {
+ width: winWidth,
+ paddingHorizontal: 10,
+ position: 'absolute',
+ bottom: 20,
+ left: 0,
+ backgroundColor: 'rgba(0,0,0,0)'
+ },
+ headerCoinCount: {
+ width: '100%',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: 'rgba(0,0,0,0)'
+ },
+ headerCoinCountImg: {
+ width: 105,
+ height: 105,
+ marginRight: 10,
+ },
+ headerCoinCountText: {
+ fontSize: 50,
+ fontWeight: '700',
+ marginLeft: 10,
+ color: '#fff'
+ },
+ headerCoinText: {
+ width: '100%',
+ textAlign: 'center',
+ color: '#fff'
+ },
+ textBold: {
+ fontWeight: '700',
+ color: '#fff',
+ },
+ noteCoin: {
+ width: winWidth,
+ padding: 10,
+ },
+ noteCoinText: {
+ width: '100%',
+ marginBottom: 6,
+ fontWeight: '300',
+ },
+})
\ No newline at end of file
diff --git a/screens/AccountHome.tsx b/screens/AccountHome.tsx
index 9caebb6..fa99745 100644
--- a/screens/AccountHome.tsx
+++ b/screens/AccountHome.tsx
@@ -5,7 +5,7 @@ import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView,
import Constants from 'expo-constants';
import { Ionicons, FontAwesome } from '@expo/vector-icons';
import { LinearGradient } from 'expo-linear-gradient';
-
+import { useNavigation } from '@react-navigation/native';
import EditScreenInfo from '../components/EditScreenInfo';
import { Text, View, } from '../components/Themed';
import useColorScheme from '../hooks/useColorScheme';
@@ -17,91 +17,136 @@ export default function AccountHome() {
return (
-
- Trang chủ
-
- Tài khoản của bạn
-
+
+
+
-
-
-
-
-
-
- Tài khoản
- Hurasoft test
-
-
-
-
-
-
- Bạn đang ở trang tài khoản. Vui lòng chọn XEM THÔNG TIN để xem các mục.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
)
}
-const MenuAccount = () => {
- const [showMenuAccount, setShowMenuAccount] = useState(true)
+const HeaderAccountHome = () => {
+ const navigation = useNavigation();
return (
-
- setShowMenuAccount(!showMenuAccount)}>
- Xem thông tin
-
-
-
-
-
- Thông tin tài khoản
-
-
-
- Quản lý đơn hàng
-
-
-
- Sản phẩm đã xem
-
-
-
- Sản phẩm đã lưu
-
-
-
- Sản phẩm bạn đã đánh giá
-
-
-
- Sản phẩm bạn đã thích
-
-
-
- Thay đổi mật khẩu
-
-
-
- Logout
-
+
+
+
+
+
+
+ Nguyễn Quỳnh
+ Xu 10
+
+
+
+ navigation.navigate('SettingAccount')} style={styles.headerAccountHomeCtSetting}>
+
+
+
+
+
+ )
+}
+
+const ListContentAccount = () => {
+ const navigation = useNavigation();
+ return (
+
+
+
+ navigation.navigate('AccountOrderList')} style={styles.boxListItemAccBt}>
+
+
+ Đơn hàng của tôi
+
+
+ Xem tất cả
+
+
+
+
+
+ navigation.navigate('AccountProductBought')} style={styles.boxListItemAccBt}>
+
+
+ Sản phẩm bạn đã mua
+
+
+
+
+
+
+
+
+
+ navigation.navigate('AccountProductViewHistory')} style={styles.boxListItemAccBt}>
+
+
+ Sản phẩm bạn đã xem
+
+
+
+
+
+
+
+ navigation.navigate('AccountProductFavorite')} style={styles.boxListItemAccBt}>
+
+
+ Sản phẩm yêu thích
+
+
+
+
+
+
+
+ navigation.navigate('AccountProductSave')} style={styles.boxListItemAccBt}>
+
+
+ Sản phẩm mua sau
+
+
+
+
+
+
+
+ navigation.navigate('AccountCoin')} style={styles.boxListItemAccBt}>
+
+
+ Quản lý Xu của tôi
+
+
+
+
+
+
+
+
+
+ navigation.navigate('CustomerInfo')} style={styles.boxListItemAccBt}>
+
+
+ Tài khoản
+
+
+
+
+
+
+
+
+
+
+ Trung tậm trợ giúp
+
+
+
+
+
+
)
@@ -214,109 +259,6 @@ function formatCurrency(price: string | number) {
return priceConvert.substring(0, len - 3);
}
-const ShowProductItemSave = (props: { id: number, productName: string, productSKU: string, summary: string, productImage: { small: string, medium: string, large: string, original: string }, price: number, marketPrice: number, quantity: number, privateStyle: object }) => {
-
- const { id, productName, productSKU, summary, productImage, price, marketPrice, quantity, privateStyle } = props;
- const discount = Math.ceil(100 - (price / marketPrice * 100));
-
-
- return (
-
-
-
-
-
- {productSKU}
- -{discount}%
-
-
-
-
-
- {productName}
-
- {summary}
- {formatCurrency(price)} đ
- {formatCurrency(marketPrice)} đ
-
- );
-}
-
-const productData = [
- {
- id: 1,
- productName: 'Máy làm mát Nagakawa NFC452 (110W) - Hàng chính hãng',
- productSKU: 'TESTSKU',
- productImage: {
- small: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
- medium: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
- large: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
- original: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
- },
- price: 30000000,
- marketPrice: 50000000,
- quantity: 1,
- summary: 'CPU: Intel Core i5 1035G1\nRAM: 8GB\nỔ cứng: 256GB SSD\nMàn hình: 15.6 inch FHD\nHĐH: Win 10\nMàu: Đen'
- },
- {
- id: 2,
- productName: 'Máy làm mát Nagakawa NFC452 (110W) - Hàng chính hãng',
- productSKU: 'TESTSKU',
- productImage: {
- small: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
- medium: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
- large: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
- original: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
- },
- price: 25000000,
- marketPrice: 50000000,
- quantity: 0,
- summary: 'CPU: Intel Core i5 1035G1\nRAM: 8GB\nỔ cứng: 256GB SSD\nMàn hình: 15.6 inch FHD\nHĐH: Win 10\nMàu: Đen'
- },
-]
-
-const ProductSave = () => {
- const itemProductStyle = {
- width: '100%',
- borderBottomWidth: 1,
- borderBottomColor: '#e8e8e8',
- position: 'relative',
- }
- return (
-
- Sản phẩm mua sau
-
- {
- productData.map(item => )
- }
-
-
- )
-}
-
-const ProductFavorite = () => {
- const itemProductStyle = {
- width: '100%',
- borderBottomWidth: 1,
- borderBottomColor: '#e8e8e8',
- position: 'relative',
- }
- return (
-
- Sản phẩm Bạn đã thích
-
- {
- productData.map(item => )
- }
-
-
- )
-}
-
const ChangePassword = () => {
return (
@@ -350,154 +292,6 @@ const ChangePassword = () => {
)
}
-const ListOrder = () => {
- return (
-
- Danh Sách đơn hàng
-
-
- Số đơn hàng
- Giá trị
- Thời gian
- Thông tin
-
-
-
- #123456
-
- Xem chi tiết
-
-
- 100.000.000 đ
- 13-03-2021
- Đã hoàn thành
-
-
-
- #123457
-
- Xem chi tiết
-
-
- 100.000.000 đ
- 13-03-2021
- Hủy bỏ
-
-
-
- )
-}
-
-const OrderDetail = () => {
- return (
-
- Đơn hàng số #123456
- Thời gian đặt mua: 13-3-2021, 5:00 pm
-
- Thông tin người mua
-
- Họ và tên:
- Hurasoft Test
-
-
- Email:
- test@mail.com
-
-
- Số điện thoại:
- 0912345678
-
-
- Địa chỉ:
- 30 Nguyên Hồng - Láng Hạ - Đống Đa - HN
-
-
-
-
-
-
- STT
-
-
- 1
-
-
-
-
- Ảnh
-
-
-
-
-
-
-
-
-
- Tên Sản phẩm
-
-
-
- Bàn Game K-Deck ( Khung Kim Loại , Mặt Gỗ Tự Nhiên Phủ PU Bóng )
-
-
-
-
-
- Giá bán
-
-
- 30.000.000 đ
-
-
-
-
- Số lượng
-
-
- 1
-
-
-
-
- Tổng
-
-
- 30.000.000 đ
-
-
-
-
-
-
- Giá trị
-
-
- 30.000.000 đ
-
-
-
-
- Phí vận chuyển
-
-
- 30.000 đ
-
-
-
-
- Tổng giá trị đơn hàng
-
-
- 30.030.000 đ
-
-
-
-
-
- )
-}
-
const winWidth = Dimensions.get('window').width; //full width
const winHeight = Dimensions.get('window').height; //full height
const winWidthP10 = winWidth - 20;
@@ -511,30 +305,110 @@ const styles = StyleSheet.create({
justifyContent: 'center',
backgroundColor: '#fff',
},
- brecrumb: {
- display: 'flex',
+ headerAccountHome: {
width: winWidth,
- paddingLeft: 10,
- paddingRight: 10,
+ position: 'relative',
+ },
+ headerAccountHomeImg: {
+ width: '100%',
+ height: 122,
+ },
+ headerAccountHomeCt: {
+ width: '100%',
+ position: 'absolute',
+ left: 0,
+ bottom: 18,
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ backgroundColor: 'rgba(0,0,0,0)',
+ paddingHorizontal: 10,
+ },
+ headerAccountHomeCtLeft: {
flexDirection: 'row',
- height: 18,
alignItems: 'center',
- marginTop: 10,
+ backgroundColor: 'rgba(0,0,0,0)',
+ },
+ headerAccountHomeCtCusImg: {
+ width: 56,
+ height: 56,
+ marginRight: 10,
+ borderRadius: 28,
+ overflow: 'hidden'
+ },
+ headerAccountHomeCtCusInfo: {
+ backgroundColor: 'rgba(0,0,0,0)',
+ },
+ headerAccountHomeCtCusName: {
+ fontSize: 16,
+ fontWeight: '700',
+ color: '#fff',
+ marginBottom: 5,
+ },
+ headerAccountHomeCtCusXu: {
+ fontSize: 13,
+ fontWeight: '300',
+ color: '#fff'
+ },
+ headerAccountHomeCtRight: {
+ backgroundColor: 'rgba(0,0,0,0)',
+ },
+ headerAccountHomeCtSetting: {
+ width: 30,
+ height: 30,
+ borderRadius: 15,
+ backgroundColor: '#fff',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ headerAccountHomeCtSettingIcon: {
+ fontSize: 18,
+ },
+ boxListItemAcc: {
+ width: winWidth,
+ backgroundColor: '#f2f2f2',
+ },
+ boxListItemAccList: {
+ width: '100%',
+ backgroundColor: '#fff',
marginBottom: 10,
},
- brecrumbText: {
- fontSize: 13,
- color: '#222',
+ borderBot: {
+ borderBottomColor: '#e1e1e1',
+ borderBottomWidth: 1,
},
- brecrumbTextLast: {
- fontSize: 13,
- color: '#b7b7b7',
+ boxListItemAccItem: {
+ width: '100%',
+ paddingHorizontal: 10,
},
- brecrumbIcon: {
- fontSize: 13,
- color: '#222',
- marginLeft: 6,
- marginRight: 6
+ boxListItemAccBt: {
+ width: '100%',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ height: 48,
+ },
+ boxListItemAccItemLeft: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ boxListItemAccItemImg: {
+ width: 20,
+ marginRight: 10,
+ },
+ boxListItemAccItemLeftText: {
+ fontWeight: '500',
+ },
+ boxListItemAccItemRight: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ boxListItemAccItemRightText: {
+ marginRight: 10,
+ },
+ boxListItemAccItemIcon: {
+ fontSize: 24,
+ color: '#777'
},
accountBox: {
marginBottom: 20,
@@ -574,47 +448,6 @@ const styles = StyleSheet.create({
textTransform: 'uppercase',
fontWeight: 'bold'
},
- accountBoxSelec: {
- marginBottom: 20,
- },
- accountBoxSelecBox: {
- borderRadius: 3,
- borderWidth: 1,
- borderColor: '#999',
- paddingHorizontal: 10,
- height: 40,
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- },
- accountBoxSelecBoxText: {
- textTransform: 'uppercase',
- fontWeight: 'bold',
- },
- accountBoxSelecBoxIcon: {},
- accountBoxSelecList: {
- width: '100%',
- borderRadius: 3,
- borderWidth: 1,
- borderColor: '#999',
- display: 'none',
- },
- active: {
- display: 'flex',
- },
- accountNameTab: {
- padding: 10,
- flexDirection: 'row',
- alignItems: 'center',
- },
- accountNameTabIcon: {
- fontSize: 24,
- color: '#7b7b7b',
- marginRight: 8,
- },
- accountNameTabText: {},
- accountBoxContent: {},
- accountBoxTextHome: {},
custommerInfo: {
},
custommerInfoItemHeader: {
@@ -700,287 +533,4 @@ const styles = StyleSheet.create({
boxCustommerInfoChangeSubmitText: {
color: '#fff'
},
- boxProductSave: {},
- boxProductSaveTitle: {
- fontSize: 16,
- fontWeight: 'bold',
- marginBottom: 15,
- },
- listProductSave: {},
- ListOrder: {},
- ListOrderList: {
- width: '100%',
- borderColor: '#e1e1e1',
- borderWidth: 1,
- borderRadius: 5,
- padding: 5
- },
- ListOrderListHeader: {
- flexDirection: 'row',
- alignItems: 'center',
- borderBottomColor: '#e1e1e1',
- borderBottomWidth: 1,
- height: 40,
- },
- ListOrderListHeaderSt: {
- fontWeight: 'bold',
- width: winWidthP10 - 260,
- fontSize: 12,
- },
- ListOrderListHeaderNd: {
- fontWeight: 'bold',
- width: 90,
- fontSize: 12,
- },
- ListOrderListHeaderRd: {
- fontWeight: 'bold',
- width: 75,
- fontSize: 12,
- },
- ListOrderListHeaderInfo: {
- fontWeight: 'bold',
- width: 90,
- fontSize: 12,
- },
- ListOrderItem: {
- flexDirection: 'row',
- alignItems: 'center',
- borderBottomColor: '#e1e1e1',
- borderBottomWidth: 1,
- paddingVertical: 10,
- },
- ListOrderItemLast: {
- borderBottomWidth: 0,
- },
- ListOrderItemSt: {
- width: winWidthP10 - 260,
- flexDirection: 'row',
- flexWrap: 'wrap',
- alignItems: 'center',
- },
- ListOrderItemStText: {
- fontSize: 12,
- marginRight: 6,
- },
- ListOrderItemStButton: {},
- ListOrderItemStButtonText: {
- fontSize: 12,
- color: '#f78d1c'
- },
- ListOrderItemNd: {
- width: 90,
- fontSize: 12,
- },
- ListOrderItemRd: {
- width: 75,
- fontSize: 12,
- },
- ListOrderItemInfo: {
- width: 90,
- fontSize: 12,
- },
- boxOrderDetail: {},
- boxOrderDetailNum: {
- width: '100%',
- marginBottom: 15,
- fontSize: 21,
- fontWeight: 'bold',
- textAlign: 'center'
- },
- boxOrderDetailTime: {
- marginBottom: 15,
- },
- boxOrderDetailInfo: {
- borderWidth: 1,
- borderRadius: 5,
- borderColor: '#e1e1e1',
- marginBottom: 20,
- padding: 8,
- },
- boxOrderDetailInfoTitle: {
- fontWeight: 'bold',
- color: '#f60',
- marginBottom: 10,
- },
- boxOrderDetailInfoItem: {
- flexDirection: 'row',
- alignItems: 'center',
- marginBottom: 10,
- },
- boxOrderDetailInfoItemTextSt: {
- width: 100,
- },
- boxOrderDetailInfoItemTextNd: {
- width: winWidthP10 - 120,
- },
- boxOrderDetailList: {
- borderWidth: 1,
- borderRadius: 5,
- borderColor: '#e1e1e1',
- width: '100%',
- flexDirection: 'column',
- },
- bold: {
- fontWeight: 'bold',
- },
- boxOrderDetailListItem: {
- width: '100%',
- flexDirection: 'column',
- },
- boxOrderDetailListItemLine: {
- flexDirection: 'row',
- borderBottomWidth: 1,
- borderBottomColor: '#e1e1e1',
- width: '100%',
- },
- boxOrderDetailListItemLineTotal: {
- width: '100%',
- flexDirection: 'row',
- borderBottomWidth: 1,
- borderBottomColor: '#e1e1e1',
- alignItems: 'center',
- },
- boxOrderDetailListItemLeft: {
- width: 100,
- padding: 10,
- },
- boxOrderDetailListItemText: {},
- boxOrderDetailListItemRight: {
- width: winWidthP10 - 120,
- borderLeftColor: '#e1e1e1',
- borderLeftWidth: 1,
- padding: 10,
- },
- boxOrderDetailListItemImage: {
- width: 75,
- height: 75,
- position: 'relative',
- },
- boxOrderDetailListItemImageCt: {
- width: '100%',
- position: 'absolute',
- left: 0,
- right: 0,
- top: 0,
- bottom: 0,
- },
- boxOrderTotalItemLeft: {
- width: '50%',
- flexDirection: 'row',
- justifyContent: 'flex-end',
- padding: 10,
- },
- boxOrderTotalItemRight: {
- width: '50%',
- flexDirection: 'row',
- justifyContent: 'flex-start',
- borderLeftColor: '#e1e1e1',
- borderLeftWidth: 1,
- padding: 10,
- },
- boxOrderDetailTotal: {
- width: '100%',
- flexDirection: 'column',
- },
- itemProduct: {
- padding: 10,
- },
- pBloxImgProduct: {
- position: 'relative',
- marginBottom: 10,
- },
- pSkuProduct: {
- position: 'absolute',
- fontSize: 12,
- color: '#e00',
- top: 0,
- left: 0,
- lineHeight: 36,
- zIndex: 10,
- },
- pDiscountProduct: {
- width: 36,
- height: 36,
- backgroundColor: '#e00',
- position: 'absolute',
- top: 0,
- right: 0,
- color: '#fff',
- textAlign: 'center',
- lineHeight: 36,
- borderRadius: 18,
- overflow: 'hidden',
- fontSize: 12,
- zIndex: 10,
- },
- pBloxImgProductBao: {
- position: 'relative',
- paddingTop: '100%',
- overflow: 'hidden',
- display: 'flex',
- alignItems: 'center',
- justifyContent: 'center',
- flexDirection: 'row',
- },
- pImgProduct: {
- position: 'absolute',
- top: 0,
- left: '5%',
- right: 0,
- bottom: 0,
- maxHeight: 500,
- width: '90%',
- },
- pNameProduct: {
- height: 40,
- lineHeight: 20,
- overflow: 'hidden',
- fontSize: 14,
- color: '#111',
- marginBottom: 5,
- },
- priceProduct: {
- fontSize: 16,
- fontWeight: 'bold',
- color: '#f10000',
- marginBottom: 5,
- },
- oldPriceProduct: {
- fontSize: 14,
- color: '#b7b7b7',
- marginBottom: 5,
- height: 24,
- lineHeight: 24,
- overflow: 'hidden',
- textDecorationLine: 'line-through',
- },
- pBottonProduct: {
- display: 'flex',
- justifyContent: 'space-between',
- alignItems: 'center',
- flexDirection: 'row',
- marginTop: 5,
- },
- pStatusProduct: {
- fontSize: 13,
- color: '#00a706',
- },
- pCartProduct: {
- fontSize: 13,
- color: '#333',
- },
- pStatusProductIcon: {
- fontSize: 15,
- },
- pCartProductIcon: {
- fontSize: 15
- },
- pProductDelete: {},
- pProductDeleteIcon: {
- fontSize: 18,
- },
- pSummaryProduct: {
- marginBottom: 10,
- lineHeight: 20,
- },
})
\ No newline at end of file
diff --git a/screens/AccountIndex.tsx b/screens/AccountIndex.tsx
new file mode 100644
index 0000000..2d9e244
--- /dev/null
+++ b/screens/AccountIndex.tsx
@@ -0,0 +1,259 @@
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, ImageBackground, Modal, Pressable } from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View } from '../components/Themed';
+import { TextInput } from 'react-native-gesture-handler';
+import { useNavigation } from '@react-navigation/native';
+
+export default function AccountIndex() {
+ const navigation = useNavigation();
+ return (
+
+
+
+
+
+
+
+ );
+}
+
+const HeaderAccountIndex = () => {
+ const navigation = useNavigation();
+ return (
+
+
+ Chào mừng đến với Nagakawa, Đăng nhập ngay!
+
+ navigation.navigate('Login')} style={styles.headerAccountIndexLogin}>
+ Đăng nhập
+
+ navigation.navigate('Register')} style={styles.headerAccountIndexRegis}>
+ Đăng ký
+
+
+
+ )
+}
+
+const ListContentAccount = () => {
+ return (
+
+
+
+
+
+
+ Đơn hàng của tôi
+
+
+ Xem tất cả
+
+
+
+
+
+
+
+
+ Sản phẩm bạn đã mua
+
+
+
+
+
+
+
+
+
+
+
+
+ Sản phẩm bạn đã xem
+
+
+ Xem tất cả
+
+
+
+
+
+
+
+
+ Sản phẩm yêu thích
+
+
+
+
+
+
+
+
+
+
+ Sản phẩm mua sau
+
+
+
+
+
+
+
+
+
+
+ Quản lý Xu của tôi
+
+
+
+
+
+
+
+
+
+
+
+
+ Tài khoản
+
+
+
+
+
+
+
+
+
+
+ Trung tậm trợ giúp
+
+
+
+
+
+
+
+
+ )
+}
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ headerAccountIndex: {
+ width: winWidth,
+ position: 'relative',
+ },
+ headerAccountIndexImg: {
+ width: '100%',
+ height: 122,
+ },
+ headerAccountIndexTitle: {
+ width: '100%',
+ textAlign: 'center',
+ fontSize: 12,
+ color: '#fff',
+ position: 'absolute',
+ top: 45,
+ left: 0,
+ },
+ headerAccountIndexBt: {
+ width: '100%',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ position: 'absolute',
+ left: 0,
+ bottom: 16,
+ backgroundColor: 'rgba(0,0,0,0)',
+ },
+ headerAccountIndexLogin: {
+ width: 84,
+ height: 32,
+ backgroundColor: '#fff',
+ borderColor: '#fff',
+ borderWidth: 1,
+ borderRadius: 3,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ marginRight: 5,
+ },
+ headerAccountIndexLoginText: {
+ fontWeight: '700',
+ color: '#D8262F'
+ },
+ headerAccountIndexRegis: {
+ width: 84,
+ height: 32,
+ backgroundColor: 'rgba(0,0,0,0)',
+ borderColor: '#fff',
+ borderWidth: 1,
+ borderRadius: 3,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ marginLeft: 5,
+ },
+ headerAccountIndexRegisText: {
+ fontWeight: '700',
+ color: '#fff'
+ },
+ boxListItemAcc: {
+ width: winWidth,
+ backgroundColor: '#f2f2f2',
+ },
+ boxListItemAccList: {
+ width: '100%',
+ backgroundColor: '#fff',
+ marginBottom: 10,
+ },
+ borderBot: {
+ borderBottomColor: '#e1e1e1',
+ borderBottomWidth: 1,
+ },
+ boxListItemAccItem: {
+ width: '100%',
+ paddingHorizontal: 10,
+ },
+ boxListItemAccBt: {
+ width: '100%',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ height: 48,
+ },
+ boxListItemAccItemLeft: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ boxListItemAccItemImg: {
+ width: 20,
+ marginRight: 10,
+ },
+ boxListItemAccItemLeftText: {
+ fontWeight: '500',
+ },
+ boxListItemAccItemRight: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ boxListItemAccItemRightText: {
+ marginRight: 10,
+ },
+ boxListItemAccItemIcon: {
+ fontSize: 24,
+ color: '#777'
+ },
+});
diff --git a/screens/AccountOrderDetail.tsx b/screens/AccountOrderDetail.tsx
new file mode 100644
index 0000000..e28ad35
--- /dev/null
+++ b/screens/AccountOrderDetail.tsx
@@ -0,0 +1,316 @@
+import 'react-native-gesture-handler';
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, Modal, Pressable, Share } from 'react-native';
+import Constants from 'expo-constants';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useNavigation } from '@react-navigation/native';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View, } from '../components/Themed';
+import useColorScheme from '../hooks/useColorScheme';
+import { TextInput } from 'react-native-gesture-handler';
+import { RadioButton, Checkbox } from 'react-native-paper';
+import { Picker } from '@react-native-picker/picker';
+
+export default function AccountOrderDetail() {
+ return (
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+function formatCurrency(price: string | number) {
+ let priceConvert = parseFloat(`${price}`).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1.").toString();
+ let len = priceConvert.length;
+ return priceConvert.substring(0, len - 3);
+}
+
+const HeaderAccountOrderList = () => {
+ const navigation = useNavigation();
+ return (
+
+ navigation.goBack()} style={styles.headerAOLBack}>
+
+
+ Đơn hàng 88899999
+
+
+
+
+ )
+}
+
+const AccountOrderDetailContent = () => {
+ return (
+
+
+ Thời gian đặt mua:
+ 06-05-2021, 4:01 pm
+
+
+ Tình trạng:
+ Giao hàng thành công
+
+
+
+ 1
+ Thông tin khách hàng
+
+
+
+ Họ tên:
+ Nguyễn Quỳnh
+
+
+ Email:
+ Quynhqt@gmail.com
+
+
+ Số điện thoại:
+ 0932108199
+
+
+ Địa chỉ:
+ 100 Láng Hạ
+
+
+
+
+
+ 1
+ Thông tin đơn hàng
+
+
+
+
+
+ ĐIỀU HÒA 1 CHIỀU 9000 BTU/H NAGAKAWA NS-C09R1M05 - MADE IN MALAYSIA - BẢO HÀNH 2 NĂM()
+ 15.000.000đ
+ Số lượng: 1
+
+
+
+
+
+ )
+}
+
+const AccountOrderDetailBottom = () => {
+ return (
+
+
+ Giá trị
+ 10.500.000đ
+
+
+ Phí vận chuyển
+ 0đ
+
+
+ Tổng giá trị đơn hàng
+ 10.500.000đ
+
+
+ Đặt lại
+
+
+ )
+}
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+const winWidthP10 = winWidth - 20;
+const halfWinWidth = winWidth / 2;
+const ratio = winWidthP10 / 850; //541 is actual image width
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: '#fff',
+ },
+ headerAOL: {
+ width: winWidth,
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ headerAOLBack: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLBackIcon: {
+ fontSize: 24,
+ },
+ headerAOLSearch: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLSearchIcon: {
+ fontSize: 24,
+ },
+ headerAOLTitle: {
+ width: winWidth - 100,
+ textAlign: 'center',
+ fontWeight: '700',
+ },
+ headerAOLChat: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ },
+ headerAOLChatIcon: {
+ fontSize: 24,
+ },
+ GreenColor: {
+ color: '#008445',
+ },
+ OrangeColor: {
+ color: '#FE9923',
+ },
+ RedColor: {
+ color: '#D8262F',
+ },
+ boxAccOrDt: {
+ width: winWidth,
+ padding: 10,
+ },
+ boxAccOrDtCtTop: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ flexWrap: 'wrap',
+ marginBottom: 10,
+ },
+ boxAccOrDtCtTopTextLeft: {
+ fontWeight: '700',
+ },
+ boxAccOrDtCtTopTextRight: {},
+ boxAccOrDtCus: {
+ marginBottom: 10,
+ marginTop: 10,
+ },
+ boxAccOrDtTitle: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ paddingBottom: 5,
+ marginBottom: 10,
+ borderBottomColor: '#ababab',
+ borderBottomWidth: 1,
+ },
+ boxAccOrDtTitleNum: {
+ width: 20,
+ height: 20,
+ fontSize: 16,
+ fontWeight: '700',
+ color: '#008445',
+ textAlign: 'center',
+ lineHeight: 20,
+ borderColor: '#008445',
+ borderWidth: 1,
+ marginRight: 5,
+ borderRadius: 10,
+ },
+ boxAccOrDtTitleText: {
+ fontSize: 16,
+ fontWeight: '700',
+ color: '#008445',
+ textTransform: 'uppercase',
+ },
+ boxAccOrDtCusInfo: {},
+ boxAccOrDtCusInfoItem: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 10,
+ },
+ boxAccOrDtCusInfoItemLeft: {
+ width: 100,
+ fontWeight: '300',
+ },
+ boxAccOrDtCusInfoItemRight: {
+ width: winWidth - 120,
+ fontWeight: '300',
+ },
+ boxAccOrDtList: {},
+ boxAccOrDtListItem: {
+ width: '100%',
+ marginBottom: 10,
+ flexDirection: 'row',
+ },
+ boxAccOrDtListItemImg: {
+ width: 48,
+ height: 48,
+ marginRight: 10,
+ },
+ boxAccOrDtListItemInfo: {
+ width: winWidth - 78,
+ },
+ boxAccOrDtListItemName: {
+ fontWeight: '700',
+ fontSize: 16,
+ marginBottom: 10,
+ },
+ boxAccOrDtListItemPrice: {
+ fontSize: 18,
+ fontWeight: '700',
+ color: '#D8262F',
+ marginBottom: 10,
+ },
+ boxAccOrDtListItemQuan: {},
+ accDtBt: {
+ width: winWidth,
+ padding: 10,
+ shadowColor: "#000",
+ shadowOffset: {
+ width: 0,
+ height: 1,
+ },
+ shadowOpacity: 0.20,
+ shadowRadius: 1.41,
+ elevation: 2,
+ },
+ accDtBtItem: {
+ marginBottom: 5,
+ flexDirection: 'row',
+ justifyContent: 'flex-end',
+ alignItems: 'center',
+ },
+ accDtBtItemTextLeft: {
+ fontSize: 12,
+ marginRight: 10,
+ },
+ accDtBtItemTextRight: {
+ fontWeight: '700',
+ width: 150,
+ },
+ accDtBtButton: {
+ width: '100%',
+ height: 40,
+ backgroundColor: '#D8262F',
+ borderRadius: 5,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ accDtBtButtonText: {
+ textTransform: 'uppercase',
+ fontWeight: '700',
+ color: '#fff'
+ },
+})
\ No newline at end of file
diff --git a/screens/AccountOrderList.tsx b/screens/AccountOrderList.tsx
new file mode 100644
index 0000000..22a9011
--- /dev/null
+++ b/screens/AccountOrderList.tsx
@@ -0,0 +1,255 @@
+import 'react-native-gesture-handler';
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, Modal, Pressable, Share } from 'react-native';
+import Constants from 'expo-constants';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useNavigation } from '@react-navigation/native';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View, } from '../components/Themed';
+import useColorScheme from '../hooks/useColorScheme';
+import { TextInput } from 'react-native-gesture-handler';
+import { RadioButton, Checkbox } from 'react-native-paper';
+import { Picker } from '@react-native-picker/picker';
+
+export default function AccountOrderList() {
+ return (
+
+
+
+
+
+
+
+ )
+}
+
+function formatCurrency(price: string | number) {
+ let priceConvert = parseFloat(`${price}`).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1.").toString();
+ let len = priceConvert.length;
+ return priceConvert.substring(0, len - 3);
+}
+
+const HeaderAccountOrderList = () => {
+ const navigation = useNavigation();
+ return (
+
+ navigation.goBack()} style={styles.headerAOLBack}>
+
+
+
+
+
+ Đơn hàng của tôi
+
+
+
+
+ )
+}
+
+const ListOrder = () => {
+ const navigation = useNavigation();
+ return (
+
+
+
+
+ Mã đơn hàng
+ 09888888
+
+
+ Ngày mua
+ 15/5/2021
+
+
+ Tổng tiền
+ 5.000.000đ
+
+
+ Trạng thái
+ Giao hàng thành công
+
+
+ Đặt lại
+
+
+ navigation.navigate('AccountOrderDetail')} style={styles.ListOrderItemBtDetail}>
+
+
+
+
+
+
+ Mã đơn hàng
+ 09888888
+
+
+ Ngày mua
+ 15/5/2021
+
+
+ Tổng tiền
+ 5.000.000đ
+
+
+ Trạng thái
+ Giao hàng thành công
+
+
+ Đặt lại
+
+
+ navigation.navigate('AccountOrderDetail')} style={styles.ListOrderItemBtDetail}>
+
+
+
+
+
+
+ Mã đơn hàng
+ 09888888
+
+
+ Ngày mua
+ 15/5/2021
+
+
+ Tổng tiền
+ 5.000.000đ
+
+
+ Trạng thái
+ Đã hủy
+
+
+ Đặt lại
+
+
+ navigation.navigate('AccountOrderDetail')} style={styles.ListOrderItemBtDetail}>
+
+
+
+
+
+ )
+}
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+const winWidthP10 = winWidth - 20;
+const halfWinWidth = winWidth / 2;
+const ratio = winWidthP10 / 850; //541 is actual image width
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: '#fff',
+ },
+ headerAOL: {
+ width: winWidth,
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ headerAOLBack: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLBackIcon: {
+ fontSize: 24,
+ },
+ headerAOLSearch: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLSearchIcon: {
+ fontSize: 24,
+ },
+ headerAOLTitle: {
+ width: winWidth - 140,
+ textAlign: 'center',
+ fontWeight: '700',
+ },
+ headerAOLChat: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ },
+ headerAOLChatIcon: {
+ fontSize: 24,
+ },
+ ListOrder: {
+ width: winWidth,
+ backgroundColor: '#f2f2f2',
+ },
+ ListOrderItem: {
+ width: winWidth,
+ padding: 10,
+ marginTop: 10,
+ position: 'relative',
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ ListOrderItemLine: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 10,
+ },
+ ListOrderItemTextLeft: {
+ width: 100,
+ fontSize: 14,
+ fontWeight: '300',
+ color: '#777777',
+ },
+ ListOrderItemLineTextRight: {
+ width: winWidth - 170,
+ },
+ GreenColor: {
+ color: '#008445',
+ },
+ OrangeColor: {
+ color: '#FE9923',
+ },
+ RedColor: {
+ color: '#D8262F',
+ },
+ ListOrderItemBt: {
+ width: 104,
+ height: 40,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderColor: '#D8262F',
+ borderWidth: 1,
+ borderRadius: 5,
+ },
+ ListOrderItemBtText: {
+ fontWeight: '700',
+ textTransform: 'uppercase',
+ color: '#D8262F',
+ },
+ ListOrderItemLeft: {
+ width: winWidth - 70,
+ },
+ ListOrderItemBtDetail: {
+ width: 50,
+ height: 150,
+ flexDirection: 'row',
+ justifyContent: 'flex-end',
+ alignItems: 'center',
+ },
+ ListOrderItemBtDetailIcon: {
+ fontSize: 26,
+ },
+})
\ No newline at end of file
diff --git a/screens/AccountProductBought.tsx b/screens/AccountProductBought.tsx
new file mode 100644
index 0000000..9090ab7
--- /dev/null
+++ b/screens/AccountProductBought.tsx
@@ -0,0 +1,257 @@
+import 'react-native-gesture-handler';
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, Modal, Pressable, Share } from 'react-native';
+import Constants from 'expo-constants';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useNavigation } from '@react-navigation/native';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View, } from '../components/Themed';
+import useColorScheme from '../hooks/useColorScheme';
+import { TextInput } from 'react-native-gesture-handler';
+import { RadioButton, Checkbox } from 'react-native-paper';
+import { Picker } from '@react-native-picker/picker';
+
+export default function AccountProductBought() {
+ return (
+
+
+
+
+
+
+
+ )
+}
+
+function formatCurrency(price: string | number) {
+ let priceConvert = parseFloat(`${price}`).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1.").toString();
+ let len = priceConvert.length;
+ return priceConvert.substring(0, len - 3);
+}
+
+const HeaderAccountOrderList = () => {
+ const navigation = useNavigation();
+ return (
+
+ navigation.goBack()} style={styles.headerAOLBack}>
+
+
+ Sản phẩm bạn đã mua
+
+ )
+}
+
+const ShowProductItemBought = (props: { id: number, productName: string, productSKU: string, summary: string, productImage: { small: string, medium: string, large: string, original: string }, price: number, marketPrice: number, quantity: number }) => {
+
+ const { id, productName, productSKU, summary, productImage, price, marketPrice, quantity } = props;
+ const discount = Math.ceil(100 - (price / marketPrice * 100));
+
+
+ return (
+
+
+
+
+
+
+
+
+
+ {productName}
+
+ {formatCurrency(price)} đ
+
+
+
+ Viết nhận xét
+
+
+ );
+}
+
+const productData = [
+ {
+ id: 1,
+ productName: 'Máy làm mát Nagakawa NFC452 (110W) - Hàng chính hãng',
+ productSKU: 'TESTSKU',
+ productImage: {
+ small: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ medium: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ large: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ original: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ },
+ price: 30000000,
+ marketPrice: 50000000,
+ quantity: 1,
+ summary: 'CPU: Intel Core i5 1035G1\nRAM: 8GB\nỔ cứng: 256GB SSD\nMàn hình: 15.6 inch FHD\nHĐH: Win 10\nMàu: Đen'
+ },
+ {
+ id: 2,
+ productName: 'Máy làm mát Nagakawa NFC452 (110W) - Hàng chính hãng',
+ productSKU: 'TESTSKU',
+ productImage: {
+ small: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ medium: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ large: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ original: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ },
+ price: 25000000,
+ marketPrice: 50000000,
+ quantity: 0,
+ summary: 'CPU: Intel Core i5 1035G1\nRAM: 8GB\nỔ cứng: 256GB SSD\nMàn hình: 15.6 inch FHD\nHĐH: Win 10\nMàu: Đen'
+ },
+]
+
+const ProductBought = () => {
+ return (
+
+
+ {
+ productData.map(item => )
+ }
+
+
+ )
+}
+
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+const winWidthP10 = winWidth - 20;
+const halfWinWidth = winWidth / 2;
+const ratio = winWidthP10 / 850; //541 is actual image width
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: '#fff',
+ },
+ headerAOL: {
+ width: winWidth,
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ headerAOLBack: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLBackIcon: {
+ fontSize: 24,
+ },
+ headerAOLSearch: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLSearchIcon: {
+ fontSize: 24,
+ },
+ headerAOLTitle: {
+ width: winWidth - 60,
+ textAlign: 'center',
+ fontWeight: '700',
+ },
+ headerAOLChat: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ },
+ headerAOLChatIcon: {
+ fontSize: 24,
+ },
+ GreenColor: {
+ color: '#008445',
+ },
+ OrangeColor: {
+ color: '#FE9923',
+ },
+ RedColor: {
+ color: '#D8262F',
+ },
+ boxAccOrDt: {
+ width: winWidth,
+ padding: 10,
+ },
+ boxProductSave: {
+ backgroundColor: '#f2f2f2'
+ },
+ listProductSave: {
+ backgroundColor: '#f2f2f2'
+ },
+ itemProduct: {
+ padding: 10,
+ marginBottom: 10,
+ },
+ itemProducCt: {
+ width: '100%',
+ flexDirection: 'row',
+ marginBottom: 10,
+ },
+ pBloxImgProduct: {
+ position: 'relative',
+ width: 96,
+ height: 96,
+ marginRight: 10,
+ },
+ pBloxImgProductBao: {
+ position: 'relative',
+ paddingTop: '100%',
+ overflow: 'hidden',
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexDirection: 'row',
+ },
+ pImgProduct: {
+ position: 'absolute',
+ top: 0,
+ left: '5%',
+ right: 0,
+ bottom: 0,
+ maxHeight: 500,
+ width: '90%',
+ },
+ pBloxImgProductInfo: {
+ width: winWidth - 136,
+ },
+ pNameProduct: {
+ fontSize: 16,
+ color: '#111',
+ marginBottom: 10,
+ fontWeight: '700',
+ textTransform: 'uppercase'
+ },
+ priceProduct: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: '#f10000',
+ marginBottom: 5,
+ },
+ proReview: {
+ width: '100%',
+ height: 40,
+ backgroundColor: '#D8262F',
+ borderRadius: 5,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ proReviewText: {
+ textTransform: 'uppercase',
+ fontWeight: '700',
+ color: '#fff'
+ },
+})
\ No newline at end of file
diff --git a/screens/AccountProductFavorite.tsx b/screens/AccountProductFavorite.tsx
new file mode 100644
index 0000000..f524607
--- /dev/null
+++ b/screens/AccountProductFavorite.tsx
@@ -0,0 +1,308 @@
+import 'react-native-gesture-handler';
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, Modal, Pressable, Share } from 'react-native';
+import Constants from 'expo-constants';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useNavigation } from '@react-navigation/native';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View, } from '../components/Themed';
+import useColorScheme from '../hooks/useColorScheme';
+import { TextInput } from 'react-native-gesture-handler';
+import { RadioButton, Checkbox } from 'react-native-paper';
+import { Picker } from '@react-native-picker/picker';
+
+export default function AccountProductFavorite() {
+ return (
+
+
+
+
+
+
+
+ )
+}
+
+function formatCurrency(price: string | number) {
+ let priceConvert = parseFloat(`${price}`).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1.").toString();
+ let len = priceConvert.length;
+ return priceConvert.substring(0, len - 3);
+}
+
+const HeaderAccountOrderList = () => {
+ const navigation = useNavigation();
+ return (
+
+ navigation.goBack()} style={styles.headerAOLBack}>
+
+
+ Sản phẩm yêu thích
+
+ )
+}
+
+const ShowProductItemBought = (props: { id: number, productName: string, productSKU: string, summary: string, productImage: { small: string, medium: string, large: string, original: string }, price: number, marketPrice: number, quantity: number }) => {
+
+ const { id, productName, productSKU, summary, productImage, price, marketPrice, quantity } = props;
+ const discount = Math.ceil(100 - (price / marketPrice * 100));
+
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ {productName}
+
+
+ {formatCurrency(price)} đ
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+const productData = [
+ {
+ id: 1,
+ productName: 'Máy làm mát Nagakawa NFC452 (110W) - Hàng chính hãng',
+ productSKU: 'TESTSKU',
+ productImage: {
+ small: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ medium: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ large: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ original: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ },
+ price: 30000000,
+ marketPrice: 50000000,
+ quantity: 1,
+ summary: 'CPU: Intel Core i5 1035G1\nRAM: 8GB\nỔ cứng: 256GB SSD\nMàn hình: 15.6 inch FHD\nHĐH: Win 10\nMàu: Đen'
+ },
+ {
+ id: 2,
+ productName: 'Máy làm mát Nagakawa NFC452 (110W) - Hàng chính hãng',
+ productSKU: 'TESTSKU',
+ productImage: {
+ small: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ medium: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ large: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ original: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ },
+ price: 25000000,
+ marketPrice: 50000000,
+ quantity: 0,
+ summary: 'CPU: Intel Core i5 1035G1\nRAM: 8GB\nỔ cứng: 256GB SSD\nMàn hình: 15.6 inch FHD\nHĐH: Win 10\nMàu: Đen'
+ },
+]
+
+const ProductBought = () => {
+ return (
+
+
+ {
+ productData.map(item => )
+ }
+
+
+ )
+}
+
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+const winWidthP10 = winWidth - 20;
+const halfWinWidth = winWidth / 2;
+const ratio = winWidthP10 / 850; //541 is actual image width
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: '#fff',
+ },
+ headerAOL: {
+ width: winWidth,
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ headerAOLBack: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLBackIcon: {
+ fontSize: 24,
+ },
+ headerAOLSearch: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLSearchIcon: {
+ fontSize: 24,
+ },
+ headerAOLTitle: {
+ width: winWidth - 60,
+ textAlign: 'center',
+ fontWeight: '700',
+ },
+ headerAOLChat: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ },
+ headerAOLChatIcon: {
+ fontSize: 24,
+ },
+ GreenColor: {
+ color: '#008445',
+ },
+ OrangeColor: {
+ color: '#FE9923',
+ },
+ RedColor: {
+ color: '#D8262F',
+ },
+ boxAccOrDt: {
+ width: winWidth,
+ padding: 10,
+ },
+ boxProductSave: {
+ backgroundColor: '#f2f2f2'
+ },
+ listProductSave: {
+ backgroundColor: '#f2f2f2'
+ },
+ itemProduct: {
+ padding: 10,
+ marginBottom: 10,
+ },
+ itemProducCt: {
+ width: '100%',
+ flexDirection: 'row',
+ marginBottom: 10,
+ },
+ pBloxImgProduct: {
+ width: 96,
+ marginRight: 10,
+ flexDirection: 'column',
+ alignItems: 'center',
+ },
+ pBloxImgProductBao: {
+ width: 96,
+ position: 'relative',
+ paddingTop: 96,
+ overflow: 'hidden',
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexDirection: 'row',
+ },
+ pImgProduct: {
+ position: 'absolute',
+ top: 0,
+ left: '5%',
+ right: 0,
+ bottom: 0,
+ maxHeight: 500,
+ width: '90%',
+ },
+ pBloxImgProductInfo: {
+ width: winWidth - 136,
+ },
+ pNameProduct: {
+ fontSize: 16,
+ color: '#111',
+ marginBottom: 10,
+ fontWeight: '700',
+ textTransform: 'uppercase'
+ },
+ priceProduct: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: '#f10000',
+ marginBottom: 5,
+ },
+ proReview: {
+ width: '100%',
+ height: 40,
+ backgroundColor: '#D8262F',
+ borderRadius: 5,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ proReviewText: {
+ textTransform: 'uppercase',
+ fontWeight: '700',
+ color: '#fff'
+ },
+ pNameProductFavo: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ pNameProductFavoBt: {
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ pNameProductFavoHeart: {
+ marginRight: 10,
+ },
+ pNameProductFavoHeartIcon: {
+ fontSize: 24,
+ color: '#D8262F',
+ },
+ pNameProductFavoCart: {
+ width: 32,
+ height: 32,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: '#D8262F',
+ borderRadius: 3,
+ },
+ pNameProductFavoCartIcon: {
+ fontSize: 18,
+ color: '#fff',
+ },
+ pBloxImgProductDelete: {
+ marginTop: 10,
+ padding: 5,
+ borderRadius: 3,
+ borderWidth: 1,
+ borderColor: '#ababab',
+ },
+ pBloxImgProductDeleteIcon: {
+ fontSize: 16,
+ color: '#ababab',
+ },
+})
\ No newline at end of file
diff --git a/screens/AccountProductSave.tsx b/screens/AccountProductSave.tsx
new file mode 100644
index 0000000..d5013bd
--- /dev/null
+++ b/screens/AccountProductSave.tsx
@@ -0,0 +1,305 @@
+import 'react-native-gesture-handler';
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, Modal, Pressable, Share } from 'react-native';
+import Constants from 'expo-constants';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useNavigation } from '@react-navigation/native';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View, } from '../components/Themed';
+import useColorScheme from '../hooks/useColorScheme';
+import { TextInput } from 'react-native-gesture-handler';
+import { RadioButton, Checkbox } from 'react-native-paper';
+import { Picker } from '@react-native-picker/picker';
+
+export default function AccountProductSave() {
+ return (
+
+
+
+
+
+
+
+ )
+}
+
+function formatCurrency(price: string | number) {
+ let priceConvert = parseFloat(`${price}`).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1.").toString();
+ let len = priceConvert.length;
+ return priceConvert.substring(0, len - 3);
+}
+
+const HeaderAccountOrderList = () => {
+ const navigation = useNavigation();
+ return (
+
+ navigation.goBack()} style={styles.headerAOLBack}>
+
+
+ Sản phẩm mua sau
+
+ )
+}
+
+const ShowProductItemBought = (props: { id: number, productName: string, productSKU: string, summary: string, productImage: { small: string, medium: string, large: string, original: string }, price: number, marketPrice: number, quantity: number }) => {
+
+ const { id, productName, productSKU, summary, productImage, price, marketPrice, quantity } = props;
+ const discount = Math.ceil(100 - (price / marketPrice * 100));
+
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ {productName}
+
+
+ {formatCurrency(price)} đ
+
+
+
+
+
+
+
+
+
+ );
+}
+
+const productData = [
+ {
+ id: 1,
+ productName: 'Máy làm mát Nagakawa NFC452 (110W) - Hàng chính hãng',
+ productSKU: 'TESTSKU',
+ productImage: {
+ small: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ medium: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ large: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ original: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ },
+ price: 30000000,
+ marketPrice: 50000000,
+ quantity: 1,
+ summary: 'CPU: Intel Core i5 1035G1\nRAM: 8GB\nỔ cứng: 256GB SSD\nMàn hình: 15.6 inch FHD\nHĐH: Win 10\nMàu: Đen'
+ },
+ {
+ id: 2,
+ productName: 'Máy làm mát Nagakawa NFC452 (110W) - Hàng chính hãng',
+ productSKU: 'TESTSKU',
+ productImage: {
+ small: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ medium: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ large: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ original: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ },
+ price: 25000000,
+ marketPrice: 50000000,
+ quantity: 0,
+ summary: 'CPU: Intel Core i5 1035G1\nRAM: 8GB\nỔ cứng: 256GB SSD\nMàn hình: 15.6 inch FHD\nHĐH: Win 10\nMàu: Đen'
+ },
+]
+
+const ProductBought = () => {
+ return (
+
+
+ {
+ productData.map(item => )
+ }
+
+
+ )
+}
+
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+const winWidthP10 = winWidth - 20;
+const halfWinWidth = winWidth / 2;
+const ratio = winWidthP10 / 850; //541 is actual image width
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: '#fff',
+ },
+ headerAOL: {
+ width: winWidth,
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ headerAOLBack: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLBackIcon: {
+ fontSize: 24,
+ },
+ headerAOLSearch: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLSearchIcon: {
+ fontSize: 24,
+ },
+ headerAOLTitle: {
+ width: winWidth - 60,
+ textAlign: 'center',
+ fontWeight: '700',
+ },
+ headerAOLChat: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ },
+ headerAOLChatIcon: {
+ fontSize: 24,
+ },
+ GreenColor: {
+ color: '#008445',
+ },
+ OrangeColor: {
+ color: '#FE9923',
+ },
+ RedColor: {
+ color: '#D8262F',
+ },
+ boxAccOrDt: {
+ width: winWidth,
+ padding: 10,
+ },
+ boxProductSave: {
+ backgroundColor: '#f2f2f2'
+ },
+ listProductSave: {
+ backgroundColor: '#f2f2f2'
+ },
+ itemProduct: {
+ padding: 10,
+ marginBottom: 10,
+ },
+ itemProducCt: {
+ width: '100%',
+ flexDirection: 'row',
+ marginBottom: 10,
+ },
+ pBloxImgProduct: {
+ width: 96,
+ marginRight: 10,
+ flexDirection: 'column',
+ alignItems: 'center',
+ },
+ pBloxImgProductBao: {
+ width: 96,
+ position: 'relative',
+ paddingTop: 96,
+ overflow: 'hidden',
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexDirection: 'row',
+ },
+ pImgProduct: {
+ position: 'absolute',
+ top: 0,
+ left: '5%',
+ right: 0,
+ bottom: 0,
+ maxHeight: 500,
+ width: '90%',
+ },
+ pBloxImgProductInfo: {
+ width: winWidth - 136,
+ },
+ pNameProduct: {
+ fontSize: 16,
+ color: '#111',
+ marginBottom: 10,
+ fontWeight: '700',
+ textTransform: 'uppercase'
+ },
+ priceProduct: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ color: '#f10000',
+ marginBottom: 5,
+ },
+ proReview: {
+ width: '100%',
+ height: 40,
+ backgroundColor: '#D8262F',
+ borderRadius: 5,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ proReviewText: {
+ textTransform: 'uppercase',
+ fontWeight: '700',
+ color: '#fff'
+ },
+ pNameProductFavo: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ pNameProductFavoBt: {
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ pNameProductFavoHeart: {
+ marginRight: 10,
+ },
+ pNameProductFavoHeartIcon: {
+ fontSize: 24,
+ color: '#D8262F',
+ },
+ pNameProductFavoCart: {
+ width: 32,
+ height: 32,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: '#D8262F',
+ borderRadius: 3,
+ },
+ pNameProductFavoCartIcon: {
+ fontSize: 18,
+ color: '#fff',
+ },
+ pBloxImgProductDelete: {
+ marginTop: 10,
+ padding: 5,
+ borderRadius: 3,
+ borderWidth: 1,
+ borderColor: '#ababab',
+ },
+ pBloxImgProductDeleteIcon: {
+ fontSize: 16,
+ color: '#ababab',
+ },
+})
\ No newline at end of file
diff --git a/screens/AccountProductViewHistory.tsx b/screens/AccountProductViewHistory.tsx
new file mode 100644
index 0000000..478bfee
--- /dev/null
+++ b/screens/AccountProductViewHistory.tsx
@@ -0,0 +1,346 @@
+import 'react-native-gesture-handler';
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, Modal, Pressable, Share } from 'react-native';
+import Constants from 'expo-constants';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useNavigation } from '@react-navigation/native';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View, } from '../components/Themed';
+import useColorScheme from '../hooks/useColorScheme';
+import { TextInput } from 'react-native-gesture-handler';
+import { RadioButton, Checkbox } from 'react-native-paper';
+import { Picker } from '@react-native-picker/picker';
+
+export default function AccountProductViewHistory() {
+ return (
+
+
+
+
+
+
+
+ )
+}
+
+function formatCurrency(price: string | number) {
+ let priceConvert = parseFloat(`${price}`).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1.").toString();
+ let len = priceConvert.length;
+ return priceConvert.substring(0, len - 3);
+}
+
+const HeaderAccountOrderList = () => {
+ const navigation = useNavigation();
+ return (
+
+ navigation.goBack()} style={styles.headerAOLBack}>
+
+
+ Sản phẩm đã xem
+
+ )
+}
+
+const ProductCategory = () => {
+ const navigation = useNavigation();
+ return (
+
+
+
+
+
+
+
+
+
+ navigation.navigate('ProductDetail')}>
+ Nồi áp suất inox 304 cao cấp Nagakawa NAG1452 (5L)
+
+ 1.292.000đ
+
+ 1.634.000đ
+ -30%
+
+
+ *3 khuyến mãi trị giá
+ 500.000đ
+
+
+
+
+
+
+
+
+
+
+
+
+ Nồi áp suất inox 304 cao cấp Nagakawa NAG1452 (5L)
+ 1.292.000đ
+
+ 1.634.000đ
+ -30%
+
+
+ *3 khuyến mãi trị giá
+ 500.000đ
+
+
+
+
+
+
+
+
+
+
+
+
+ Nồi áp suất inox 304 cao cấp Nagakawa NAG1452 (5L)
+ 1.292.000đ
+
+ 1.634.000đ
+ -30%
+
+
+ *3 khuyến mãi trị giá
+ 500.000đ
+
+
+
+
+
+
+
+
+
+
+
+
+ Nồi áp suất inox 304 cao cấp Nagakawa NAG1452 (5L)
+ 1.292.000đ
+
+ 1.634.000đ
+ -30%
+
+
+ *3 khuyến mãi trị giá
+ 500.000đ
+
+
+
+
+
+ )
+}
+
+const productData = [
+ {
+ id: 1,
+ productName: 'Máy làm mát Nagakawa NFC452 (110W) - Hàng chính hãng',
+ productSKU: 'TESTSKU',
+ productImage: {
+ small: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ medium: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ large: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ original: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ },
+ price: 30000000,
+ marketPrice: 50000000,
+ quantity: 1,
+ summary: 'CPU: Intel Core i5 1035G1\nRAM: 8GB\nỔ cứng: 256GB SSD\nMàn hình: 15.6 inch FHD\nHĐH: Win 10\nMàu: Đen'
+ },
+ {
+ id: 2,
+ productName: 'Máy làm mát Nagakawa NFC452 (110W) - Hàng chính hãng',
+ productSKU: 'TESTSKU',
+ productImage: {
+ small: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ medium: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ large: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ original: 'https://shop.nagakawa.com.vn/media/product/137_nfc452.jpg',
+ },
+ price: 25000000,
+ marketPrice: 50000000,
+ quantity: 0,
+ summary: 'CPU: Intel Core i5 1035G1\nRAM: 8GB\nỔ cứng: 256GB SSD\nMàn hình: 15.6 inch FHD\nHĐH: Win 10\nMàu: Đen'
+ },
+]
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+const winWidthP10 = winWidth - 20;
+const halfWinWidth = winWidth / 2;
+const ratio = winWidthP10 / 850; //541 is actual image width
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: '#fff',
+ },
+ headerAOL: {
+ width: winWidth,
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ headerAOLBack: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLBackIcon: {
+ fontSize: 24,
+ },
+ headerAOLSearch: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLSearchIcon: {
+ fontSize: 24,
+ },
+ headerAOLTitle: {
+ width: winWidth - 60,
+ textAlign: 'center',
+ fontWeight: '700',
+ },
+ headerAOLChat: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ },
+ headerAOLChatIcon: {
+ fontSize: 24,
+ },
+ GreenColor: {
+ color: '#008445',
+ },
+ OrangeColor: {
+ color: '#FE9923',
+ },
+ RedColor: {
+ color: '#D8262F',
+ },
+ boxAccOrDt: {
+ width: winWidth,
+ padding: 10,
+ },
+ pContainer: {
+ width: '100%',
+ padding: 10,
+ },
+ pImgContent: {
+ width: '100%',
+ position: 'relative',
+ paddingTop: '100%',
+ marginBottom: 10,
+ },
+ pNew: {
+ width: 24,
+ height: 18,
+ position: 'absolute',
+ zIndex: 6,
+ top: 0,
+ left: 0,
+ },
+ pImg: {
+ width: '100%',
+ position: 'absolute',
+ zIndex: 5,
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ },
+ pTraGop: {
+ width: 68,
+ height: 16,
+ position: 'absolute',
+ zIndex: 6,
+ bottom: 0,
+ left: '50%',
+ transform: [{ translateX: -34 }],
+ },
+ pInfo: {
+ width: '100%',
+ },
+ pName: {
+ width: '100%',
+ fontSize: 14,
+ marginBottom: 10,
+ },
+ pPrice: {
+ width: '100%',
+ fontSize: 18,
+ marginBottom: 10,
+ color: '#D8262F',
+ fontWeight: 'bold',
+ },
+ pAllSale: {
+ width: '100%',
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 10,
+ },
+ pOldPrice: {
+ color: '#A1A1A1',
+ fontSize: 14,
+ textDecorationLine: 'line-through',
+ },
+ pDiscount: {
+ paddingVertical: 5,
+ backgroundColor: '#D8262F',
+ width: 50,
+ textAlign: 'center',
+ color: '#fff',
+ borderRadius: 5,
+ overflow: 'hidden',
+ marginLeft: 5,
+ },
+ pOffer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ pOfferText: {
+ fontSize: 10,
+ color: '#A1A1A1',
+ },
+ pOfferPrice: {
+ fontSize: 10,
+ color: '#D8262F',
+ },
+ pItem: {
+ width: winWidth / 2 - 15,
+ marginBottom: 10,
+ borderRadius: 5,
+ overflow: 'hidden',
+ shadowColor: "#000",
+ shadowOffset: {
+ width: 0,
+ height: 3,
+ },
+ shadowOpacity: 0.27,
+ shadowRadius: 4.65,
+ elevation: 6,
+ },
+ boxProductCategoryList: {
+ width: winWidth,
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ flexWrap: 'wrap',
+ backgroundColor: '#f2f2f2',
+ },
+})
\ No newline at end of file
diff --git a/screens/Cart.tsx b/screens/Cart.tsx
index bb90ade..2b85322 100644
--- a/screens/Cart.tsx
+++ b/screens/Cart.tsx
@@ -10,6 +10,7 @@ import Swiper from 'react-native-swiper';
import { Asset } from 'expo-asset';
import { RadioButton, Checkbox } from 'react-native-paper';
import { Picker } from '@react-native-picker/picker';
+import { useNavigation } from '@react-navigation/core';
export default function Cart() {
return (
@@ -22,308 +23,109 @@ export default function Cart() {
}
const CustommerInfo = () => {
- const [selecTab, setSelecTab] = React.useState('cus')
return (
-
- setSelecTab('login')}>
- Đăng nhập
- Đã là thành viên của Nagakawa
-
- setSelecTab('cus')}>
- Mua hàng nhanh
- Dành cho khách hàng mới
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
)
}
-const LoginCart = () => {
+const HeaderCart = () => {
return (
-
- Thanh toán đơn hàng chỉ trong 1 bước với
-
-
-
-
-
- Facebook
+
+
+ Giỏ hàng
+ (0)
+
+
+
+
-
-
-
-
- Google
-
-
-
-
-
- Facebook
-
-
-
-
- Email đăng nhập
-
-
-
- Mật khẩu
-
-
-
-
- Quên mật khẩu? Khôi phục mật khẩu
-
- Tại đây
-
-
-
- Đăng nhập
-
-
- )
-}
-
-const CustommerInfoCart = () => {
- const [selecSex, setSelecSex] = React.useState('male');
- const [checkedInfo, setCheckedInfo] = React.useState(false);
- const [selectedProvince, setSelectedProvince] = React.useState();
- const [selectedDistrict, setSelectedDistrict] = React.useState();
- return (
-
- Thông tin khách hàng
-
- Thông tin người mua
- (*) Thông tin bắt buộc
-
-
-
-
- setSelecSex('male')} />
-
- Anh
-
-
-
- setSelecSex('female')} />
-
- Chị
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Thông tin người nhận
- (*) Thông tin bắt buộc
-
-
-
- setCheckedInfo(!checkedInfo)} />
-
- Lấy thông tin người mua
-
-
-
-
-
-
-
-
-
-
-
-
-
- setSelectedProvince(itemValue)
- }
- >
-
-
-
-
-
-
-
-
-
- setSelectedDistrict(itemValue)
- }
- >
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-}
-
-const SelecPayOption = () => {
- const [checkedPayment, setCheckedPayment] = React.useState('pay1');
- const listPayment = [
- {
- id: 1,
- name: 'COD - Thanh toán khi nhận hàng',
- description: '',
- image: require('../assets/images/pay_1.png'),
- },
- {
- id: 2,
- name: 'Thanh toán trực tuyến (bằng thẻ ATM, VISA, MASTER) ',
- description: '',
- image: require('../assets/images/pay_2.png'),
- },
- {
- id: 3,
- name: 'Trả góp qua Alepay (Ngân Lượng)',
- description: '',
- image: require('../assets/images/pay_2.png'),
- },
- ]
- return (
-
- Phương thức thanh toán
- Chọn phương thức thanh toán
-
- {
- listPayment.map(item => {
- let idpay = 'pay' + item.id;
- return (
-
-
-
-
- {item.name}
-
- setCheckedPayment(idpay)} />
-
-
- )
- })
- }
-
-
- )
-}
-
-const Bill = () => {
- const [checkedBill, setCheckedBill] = React.useState(false);
- return (
-
-
-
- setCheckedBill(!checkedBill)} />
-
- Yêu cầu xuất hóa đơn GTGT cho đơn hàng này
-
-
-
-
-
-
-
-
-
-
-
)
}
const CartItem = () => {
+ const [selectCartItem, setSelectedCartItem] = React.useState(false);
return (
-
-
- Quay lại mua thêm sản phẩm khác
-
- Giỏ hàng của bạn
+
+ setSelectedCartItem(!selectCartItem)} />
+
-
-
- Xóa
+
+
+
+ Khẩu trang vải kháng khuẩn Nagakawa 2 lớp - Công nghệ Nhật Bản Hộp 10 chiếc (Hộp 10 chiếc - L)
+
+
+
+ 121.000.000 đ
+
+
+ +
+
+
+
+ -
+
+
+
+ Để dành mua sau
+
+
+
+
+
+
+
+
+ setSelectedCartItem(!selectCartItem)} />
+
+
+
+
+
+
Khẩu trang vải kháng khuẩn Nagakawa 2 lớp - Công nghệ Nhật Bản Hộp 10 chiếc (Hộp 10 chiếc - L)
-
- Để dành mua sau
-
-
-
- 121.000.000 đ
-
-
- +
-
-
-
- -
-
+
+
+ 121.000.000 đ
+
+
+ +
+
+
+
+ -
+
+
+
+ Để dành mua sau
+
+
@@ -333,27 +135,78 @@ const CartItem = () => {
)
}
+const VoucherList = () => {
+ return (
+
+
+
+
+ Voucher 1.000.000đ dành riêng cho điều hòa NS-C09R1M05
+
+
+
+ Đăng ký tài khoản nhận ngay 500 NagaXu = 50.000đ
+
+
+
+ Bộ 3 nồi inox 4 đáy Nagakawa NAG1306 (16cm, 20cm, 24cm) - Quai mạ vàng - Dùng trên mọi loại bếp- Hàng Chính Hãng
+
+
+
+ Lưu ý: Mã giảm giá không áp dụng kèm với chương trình trả góp 0%, sản phẩm Flash sale.
+ - Các mã giảm giá được áp dụng đồng thời nếu đủ điều kiện.
+ - Tài khoản đăng ký chưa được xác thực dùng NagaXu hệ thống sẽ tự động hủy đơn hàng
+
+
+ )
+}
+
+const TotalPriceCatStepSt = () => {
+ const [selecAllItemCart, setSelecAllItemCart] = useState(false);
+ const navigation = useNavigation();
+ return(
+
+
+
+ setSelecAllItemCart(!selecAllItemCart)} />
+
+ Tất cả
+
+
+
+ Tổng cộng:
+ 10.500.000đ
+
+
+ Phí vận chuyển:
+ 0đ
+
+
+ navigation.navigate('CartStep')} style={styles.stepStTotalGoStepNd}>
+ Thanh toán
+
+
+ )
+}
+
const Voucher = () => {
const [openPopVoucher, setOpenPopVoucher] = useState(false);
const [checkedVoucher, setCheckedVoucher,] = useState('');
return (
-
-
-
- Áp dụng
-
-
setOpenPopVoucher(true)}>
-
- Chọn mã voucher
+
+
+ Chọn mã voucher
+
+
+
+
+
+ Bạn chưa có naga xu
+
-
-
- Lưu ý: Mã giảm giá không áp dụng kèm với chương trình trả góp 0%, sản phẩm Flash sale.
- - Các mã giảm giá được áp dụng đồng thời nếu đủ điều kiện.
- - Tài khoản đăng ký chưa được xác thực dùng NagaXu hệ thống sẽ tự động hủy đơn hàng
{ setOpenPopVoucher(!openPopVoucher); }}>
@@ -361,7 +214,12 @@ const Voucher = () => {
- Chọn Nagakawa Voucher
+
+ setOpenPopVoucher(false)} style={styles.contentPopVoucherBack}>
+
+
+ Chọn Nagakawa Voucher
+
Mã Voucher
@@ -373,8 +231,8 @@ const Voucher = () => {
Voucher có thể áp dụng
-
-
+
+
Nhập
NAG9CVFGZ
@@ -433,13 +291,50 @@ const Voucher = () => {
setCheckedVoucher('vc5')} />
+
+
+ Nhập
+ NAG9CVFGZ
+
+
+ Mã giảm giá trị giá 150.000đ áp dụng cho Đơn hàng từ 4.000.000đ
+
+
+ setCheckedVoucher('vc5')} />
+
+
+
+
+ Nhập
+ NAG9CVFGZ
+
+
+ Mã giảm giá trị giá 150.000đ áp dụng cho Đơn hàng từ 4.000.000đ
+
+
+ setCheckedVoucher('vc5')} />
+
+
+
+
+ Nhập
+ NAG9CVFGZ
+
+
+ Mã giảm giá trị giá 150.000đ áp dụng cho Đơn hàng từ 4.000.000đ
+
+
+ setCheckedVoucher('vc5')} />
+
+
- setOpenPopVoucher(false)}>
- Trở lại
-
+
+ 1 Voucher đã được chọn.
+ Đã chọn mã NAGAA200
+
setOpenPopVoucher(false)}>
Ok
@@ -450,42 +345,6 @@ const Voucher = () => {
)
}
-const TotalCart = () => {
- return (
-
-
-
-
- Bạn chưa có Naga Xu
-
-
-
-
- Tổng cộng
- 5.000.000đ
-
-
- Giảm giá
- 00đ
-
-
- Phí giao hàng
- 00đ
-
-
- Thanh toán
- 5.000.000đ
-
-
-
-
- Thanh toán
-
-
-
- )
-}
-
const winWidth = Dimensions.get('window').width; //full width
const winHeight = Dimensions.get('window').height; //full height
@@ -496,147 +355,154 @@ const styles = StyleSheet.create({
flex: 1,
alignItems: 'center',
justifyContent: 'center',
- backgroundColor: '#f2f2f2',
+ backgroundColor: '#fff',
+ },
+ headerCart: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ padding: 10,
+ },
+ headerCartLeft: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerCartTextSt: {
+ fontSize: 17,
+ fontWeight: '700',
+ },
+ headerCartCount: {},
+ headerCartRight: {},
+ headerCartDelete: {
+ padding: 5,
+ borderWidth: 1,
+ borderColor: '#ABABAB',
+ borderRadius: 3,
+ },
+ headerCartDeleteIcon: {
+ fontSize: 16,
+ color: '#ABABAB'
},
boxCustommerInfoCart: {
width: winWidth,
+ backgroundColor: '#fff',
+ },
+ boxCartItemContent: {
+ width: '100%',
+ },
+ boxCartItemList: {},
+ boxCartItemItem: {
+ width: '100%',
padding: 10,
- backgroundColor: '#f2f2f2',
- },
- boxCustommerInfoCartHeader: {
- width: '100%',
flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'space-between',
- backgroundColor: 'rgba(0,0,0,0)',
- marginBottom: 10,
- },
- boxCustommerInfoCartTab: {
- width: winWidth / 2 - 15,
- padding: 10,
- borderWidth: 1,
- borderColor: '#ddd',
- borderRadius: 5,
- flexDirection: 'column',
- alignItems: 'center',
- },
- boxCustommerInfoCartTextSt: {
- fontSize: 13,
- textTransform: 'uppercase',
- fontWeight: 'bold',
- },
- boxCustommerInfoCartTextNd: {
- fontSize: 10,
- },
- boxCustommerInfoCartTabActive: {
- borderColor: '#008445',
- },
- green: {
- color: '#008445',
- },
- boxCustommerInfoCartLoginContent: {
- width: '100%',
- padding: 5,
- display: 'none',
- },
- loginCartTitle: {
- width: '100%',
- textAlign: 'center',
- paddingVertical: 10,
- },
- loginCartSocial: {
- width: '100%',
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'space-between',
- marginBottom: 10,
- paddingBottom: 10,
borderBottomColor: '#e1e1e1',
borderBottomWidth: 1,
},
- loginCartSocialButtonFace: {
- width: 110,
- height: 30,
+ boxCartItemItemCheck: {
+ width: 36,
+ height: 36,
+ borderColor: '#777',
+ borderWidth: 1,
+ marginRight: 10,
+ },
+ boxCartItemItemImage: {
+ width: 90,
+ },
+ boxCartItemItemImageCt: {
+ width: 90,
+ height: 90,
+ position: 'relative',
+ marginBottom: 10,
+ },
+ boxCartItemItemImageCtImg: {
+ width: 90,
+ height: 90,
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ },
+ boxCartItemItemDelete: {
flexDirection: 'row',
alignItems: 'center',
- backgroundColor: '#3b5998',
- borderRadius: 3,
+ justifyContent: 'center',
},
- loginCartSocialIcCt: {
+ boxCartItemItemDeleteIcon: {
+ fontSize: 18,
+ color: '#999',
+ },
+ boxCartItemItemDeleteText: {
+ fontSize: 18,
+ color: '#999',
+ },
+ boxCartItemItemContent: {
+ width: winWidth - 156,
+ paddingHorizontal: 10,
+ },
+ boxCartItemItemImageName: {
+ marginBottom: 10,
+ fontWeight: '500',
+ },
+ boxCartItemItemImageBuyAfter: {
+ color: '#00a456',
+ },
+ boxCartItemItemPriceAll: {
+ width: '100%',
+ },
+ boxCartItemItemPriceAllLeft: {
+ width: '100%'
+ },
+ boxCartItemItemPrice: {
+ fontSize: 16,
+ fontWeight: '500',
+ color: '#d9282f',
+ marginBottom: 10,
+ textAlign: 'left',
+ },
+ selecCountContent: {
+ width: 100,
+ flexDirection: 'row',
+ justifyContent: 'flex-end',
+ alignItems: 'center',
+ marginBottom: 10,
+ marginLeft: 10,
+ },
+ selecCountButton: {
width: 30,
height: 30,
- borderRightWidth: 1,
- borderRightColor: '#fff',
flexDirection: 'row',
- alignItems: 'center',
justifyContent: 'center',
- backgroundColor: 'rgba(0,0,0,0)',
+ alignItems: 'center',
+ backgroundColor: '#DFDFDF',
},
- loginCartSocialButtonIcon: {
+ selecCountButtonText: {
fontSize: 24,
- color: '#fff'
},
- loginCartSocialButtonText: {
- width: 80,
+ selecCountInput: {
+ width: 50,
+ height: 30,
textAlign: 'center',
- color: '#fff',
+ backgroundColor: '#f2f2f2',
+ fontSize: 22,
},
- loginCartSocialButtonGoogle: {
- width: 110,
- height: 30,
- flexDirection: 'row',
- alignItems: 'center',
- backgroundColor: '#df4a32',
- borderRadius: 3,
+ boxVoucherList: {
+ padding: 10,
},
- loginCartSocialButtonImg: {
- width: 24,
- height: 24,
- },
- loginCartSocialButtonZalo: {
- width: 110,
- height: 30,
- flexDirection: 'row',
- alignItems: 'center',
- backgroundColor: '#0f8edd',
- borderRadius: 3,
- },
- loginCartSocialForm: {
- marginBottom: 10,
- },
- loginCartSocialFormItem: {
- width: '100%',
- marginBottom: 10,
- },
- loginCartSocialFormItemText: {
- marginBottom: 5,
- },
- loginCartSocialFormItemInput: {
- width: '100%',
- height: 40,
- borderWidth: 1,
- borderColor: '#e1e1e1',
- borderRadius: 5,
- },
- loginCartSocialFormNote: {
+ boxVoucherListItem: {
marginBottom: 10,
flexDirection: 'row',
},
- loginCartSocialFormNoteText: {},
- loginCartSocialFormNoteButton: {},
- loginCartSocialFormButton: {
- width: '100%',
- height: 40,
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'center',
- borderRadius: 5,
- overflow: 'hidden',
- backgroundColor: '#d9282f',
+ boxVoucherListItemImg: {
+ width: 26,
+ maxHeight: 26,
+ marginRight: 10,
},
- loginCartSocialFormButtonText: {
- fontWeight: 'bold',
- color: '#fff'
+ boxVoucherListItemText: {
+ width: winWidth - 56,
+ },
+ green: {
+ color: '#008445',
},
boxInfoCusCart: {
width: '100%',
@@ -750,70 +616,6 @@ const styles = StyleSheet.create({
width: '100%',
backgroundColor: 'rgba(0,0,0,0)'
},
- boxPayment: {
- width: '100%',
- marginBottom: 20,
- backgroundColor: 'rgba(0,0,0,0)'
- },
- boxPaymentHead: {
- width: '100%',
- marginBottom: 10,
- backgroundColor: '#008445',
- lineHeight: 40,
- paddingHorizontal: 10,
- fontSize: 18,
- fontWeight: 'bold',
- textTransform: 'uppercase',
- color: '#fff',
- },
- boxPaymentTitle: {
- marginBottom: 10,
- fontSize: 16,
- fontWeight: 'bold',
- },
- boxPaymentList: {},
- paymentItem: {
- width: '100%',
- padding: 10,
- borderBottomWidth: 1,
- borderBottomColor: '#e1e1e1',
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'center',
- },
- paymentItemImage: {
- width: 31,
- height: 31,
- borderRadius: 15.5,
- overflow: 'hidden',
- marginRight: 10,
- },
- paymentItemImageCt: {
- width: 31,
- height: 31,
- },
- paymentItemText: {
- width: winWidth - 130,
- },
- paymentItemRadio: {
- width: 36,
- height: 36,
- borderRadius: 18,
- borderWidth: 1,
- borderColor: '#e1e1e1',
- marginLeft: 10,
- },
- boxBill: {
- width: '100%',
- padding: 10,
- marginBottom: 20,
- },
- boxBillList: {
- display: 'none',
- },
- boxBillText: {
- fontSize: 12,
- },
boxCartItem: {
width: '100%',
marginBottom: 20,
@@ -835,99 +637,6 @@ const styles = StyleSheet.create({
marginRight: 5,
textTransform: 'uppercase'
},
- boxCartItemContent: {
- width: '100%',
- padding: 5,
- },
- boxCartItemContentTitle: {
- fontSize: 18,
- fontWeight: 'bold',
- lineHeight: 40,
- },
- boxCartItemList: {},
- boxCartItemItem: {
- width: '100%',
- paddingVertical: 10,
- flexDirection: 'row',
- borderTopColor: '#e1e1e1',
- borderTopWidth: 1,
- },
- boxCartItemItemImage: {
- width: 90,
- },
- boxCartItemItemImageCt: {
- width: 90,
- height: 90,
- position: 'relative',
- marginBottom: 10,
- },
- boxCartItemItemImageCtImg: {
- width: 90,
- height: 90,
- position: 'absolute',
- top: 0,
- left: 0,
- right: 0,
- bottom: 0,
- },
- boxCartItemItemDelete: {
- flexDirection: 'row',
- alignItems: 'center',
- justifyContent: 'center',
- },
- boxCartItemItemDeleteIcon: {
- fontSize: 18,
- color: '#999',
- },
- boxCartItemItemDeleteText: {
- fontSize: 18,
- color: '#999',
- },
- boxCartItemItemContent: {
- width: winWidth - 230,
- paddingHorizontal: 10,
- },
- boxCartItemItemImageName: {
- marginBottom: 10,
- fontWeight: '500',
- },
- boxCartItemItemImageBuyAfter: {
- color: '#00a456',
- },
- boxCartItemItemPriceAll: {
- width: 110,
- },
- boxCartItemItemPrice: {
- fontSize: 16,
- fontWeight: '500',
- color: '#d9282f',
- marginBottom: 10,
- textAlign: 'left',
- },
- selecCountContent: {
- width: 100,
- flexDirection: 'row',
- justifyContent: 'flex-end',
- alignItems: 'center',
- },
- selecCountButton: {
- width: 30,
- height: 30,
- flexDirection: 'row',
- justifyContent: 'center',
- alignItems: 'center',
- backgroundColor: '#DFDFDF',
- },
- selecCountButtonText: {
- fontSize: 24,
- },
- selecCountInput: {
- width: 50,
- height: 30,
- textAlign: 'center',
- backgroundColor: '#f2f2f2',
- fontSize: 22,
- },
boxVoucher: {
width: '100%',
marginBottom: 20,
@@ -968,7 +677,14 @@ const styles = StyleSheet.create({
boxVoucherShowPopButton: {
flexDirection: 'row',
alignItems: 'center',
- marginBottom: 15,
+ justifyContent: 'space-between',
+ padding: 10,
+ borderBottomWidth: 1,
+ borderBottomColor: '#e1e1e1'
+ },
+ boxVoucherShowPopButtonCt: {
+ flexDirection: 'row',
+ alignItems: 'center',
},
boxVoucherShowPopImg: {
marginRight: 10,
@@ -976,34 +692,66 @@ const styles = StyleSheet.create({
boxVoucherShowPopText: {
color: '#d9282f',
},
+ boxVoucherShowPopIcon: {},
+ boxXuShowPopButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 10,
+ borderBottomWidth: 1,
+ borderBottomColor: '#e1e1e1'
+ },
+ boxXuShowPopButtonImg: {
+ marginRight: 10,
+ },
+ boxXuShowPopButtonText: {
+ marginRight: 10,
+ },
+ boxXuShowPopButtonIcon: {},
boxVoucherNote: {
- backgroundColor: 'rgba(0,0,0,0)'
+ backgroundColor: '#f2f2f2',
+ padding: 10,
},
boxVoucherNoteText: {
marginBottom: 10,
+ fontStyle: 'italic',
},
TextBold: {
fontWeight: 'bold',
},
boxCloseModalVoucher: {
width: winWidth,
- height: 100,
backgroundColor: 'rgba(0,0,0,0.5)'
},
boxCloseModalVoucherPress: {
width: '100%',
- height: 100,
},
contentPopVoucher: {
width: winWidth,
padding: 10,
- height: winHeight - 100,
+ height: winHeight,
+ paddingTop: 50,
+ },
+ contentPopVoucherHeader: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 10,
+ },
+ contentPopVoucherBack: {
+ width: 50,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ contentPopVoucherBackIcon: {
+ fontSize: 24,
+ height: 24,
},
contentPopVoucherTitle: {
- width: '100%',
+ width: winWidth - 70,
fontSize: 18,
lineHeight: 25,
- marginBottom: 10,
+ textAlign: 'center',
+ fontWeight: '700'
},
contentPopVoucherForm: {
width: '100%',
@@ -1011,44 +759,47 @@ const styles = StyleSheet.create({
borderRadius: 5,
backgroundColor: '#f5f5f5',
marginBottom: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
},
contentPopVoucherFormText: {
- marginBottom: 5,
+ width: 78,
},
contentPopVoucherFormInput: {
- width: '100%',
+ width: winWidth - 205,
height: 40,
borderRadius: 5,
paddingHorizontal: 10,
backgroundColor: '#fff',
- marginBottom: 10,
+ borderWidth: 1,
+ borderColor: '#ababab'
},
contentPopVoucherFormButton: {
- width: '100%',
+ width: 72,
height: 40,
borderRadius: 5,
- paddingHorizontal: 10,
backgroundColor: '#d9282f',
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'center',
},
contentPopVoucherFormButtonText: {
- fontSize: 18,
+ fontSize: 12,
textTransform: 'uppercase',
color: '#fff',
fontWeight: 'bold'
},
contentPopVoucherPop: {
width: '100%',
- height: winHeight - 350,
+ height: winHeight - 260,
},
contentPopVoucherPopTitle: {
marginBottom: 10,
},
contentPopVoucherPopList: {
width: '100%',
- height: winHeight - 370,
+ height: winHeight - 290,
},
contentPopVoucherPopItem: {
width: '100%',
@@ -1068,6 +819,12 @@ const styles = StyleSheet.create({
flexDirection: 'column',
alignItems: 'center',
},
+ contentPopVoucherPopItemHasUse: {
+ borderColor: '#008445',
+ },
+ contentPopVoucherPopItemLeftHasUse: {
+ backgroundColor: '#008445'
+ },
contentPopVoucherPopItemLeftSt: {
color: '#fff',
marginBottom: 5,
@@ -1096,26 +853,11 @@ const styles = StyleSheet.create({
},
contentPopVoucherPopBot: {
width: '100%',
- height: 60,
- flexDirection: 'row',
- justifyContent: 'space-between',
- alignItems: 'center',
- },
- contentPopVoucherPopBotBack: {
- width: winWidth / 2 - 15,
- backgroundColor: '#ebebeb',
- flexDirection: 'row',
- justifyContent: 'center',
- alignItems: 'center',
- borderRadius: 5,
- height: 40,
- },
- contentPopVoucherPopBotBackText: {
- fontSize: 18,
- textTransform: 'uppercase',
+ height: 90,
+ paddingVertical: 10,
},
contentPopVoucherPopBotOk: {
- width: winWidth / 2 - 15,
+ width: '100%',
backgroundColor: '#d9282f',
flexDirection: 'row',
justifyContent: 'center',
@@ -1192,4 +934,73 @@ const styles = StyleSheet.create({
textTransform: 'uppercase',
fontWeight: 'bold',
},
+ stepStTotal: {
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ stepStTotalSelect: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ width: 78,
+ flexWrap: 'wrap'
+ },
+ stepStTotalSetectItem: {
+ width: 36,
+ height: 35,
+ borderColor: '#ababab',
+ borderWidth: 1,
+ marginRight: 10,
+ marginBottom: 5,
+ },
+ stepStTotalSelectText: {
+ fontSize: 13,
+ },
+ stepStTotalPrice: {},
+ stepStTotalPriceCt: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ width: winWidth - 204,
+ flexWrap: 'wrap'
+ },
+ stepStTotalPriceText: {
+ marginRight: 10,
+ },
+ stepStTotalPriceNum: {
+ fontSize: 16,
+ color: '#D8262F',
+ fontWeight: '700'
+ },
+ stepStTotalShip: {
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ stepStTotalShipText: {
+ color: '#999'
+ },
+ stepStTotalShupNum: {
+ color: '#D8262F',
+ },
+ stepStTotalGoStepNd: {
+ width: 96,
+ height: 36,
+ borderRadius: 5,
+ backgroundColor: '#D8262F',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ stepStTotalGoStepNdText: {
+ fontSize: 14,
+ color: '#fff',
+ },
+ countVoucherSelect: {
+ width: '100%',
+ marginBottom: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ flexWrap: 'wrap'
+ },
});
diff --git a/screens/CartPayInstallment.tsx b/screens/CartPayInstallment.tsx
new file mode 100644
index 0000000..61a9838
--- /dev/null
+++ b/screens/CartPayInstallment.tsx
@@ -0,0 +1,248 @@
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, ImageBackground, Modal, Pressable } from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View } from '../components/Themed';
+import { TextInput } from 'react-native-gesture-handler';
+import { useNavigation } from '@react-navigation/native';
+
+export default function CartPayInstallment() {
+ return (
+
+
+
+
+
+
+
+
+
+ );
+}
+
+const HeaderCart = () => {
+ const navigation = useNavigation();
+ return (
+
+ navigation.navigate('Cart')}>
+
+
+ Mua trả góp
+
+ )
+}
+
+const CartItemPayInstall = () => {
+ return(
+
+
+
+
+
+
+
+
+
+ ĐIỀU HÒA 1 CHIỀU 9000 BTU/H NAGAKAWA NS-C09R1M05 - MADE IN MALAYSIA - BẢO HÀNH 2 NĂM()
+ 10.000.000đ
+
+
+
+
+
+
+
+
+
+
+ ĐIỀU HÒA 1 CHIỀU 9000 BTU/H NAGAKAWA NS-C09R1M05 - MADE IN MALAYSIA - BẢO HÀNH 2 NĂM()
+ 10.000.000đ
+
+
+
+ )
+}
+
+const BoxPayInstallForm = () => {
+ return(
+
+
+ Trả góp 0% bằng thẻ tín dụng
+
+
+
+ Giá trị sản phẩm (*)
+
+
+
+ Số tiền trả góp (*)
+
+
+
+ Tiền tệ (*)
+
+
+
+ Họ tên (*)
+
+
+
+ Địa chỉ (*)
+
+
+
+ Số tiền trả trước (*)
+
+
+
+ Số lượng (*)
+
+
+
+ Email (*)
+
+
+
+ Số điện thoại (*)
+
+
+
+ Thành phố (*)
+
+
+
+
+ Thanh toán trả góp
+
+
+
+ )
+}
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ headerCartStep: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 10,
+ },
+ goBack: {
+ width: 50,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ goBackIcon: {
+ fontSize: 24,
+ },
+ headerCartStepTitle: {
+ fontWeight: '700',
+ width: winWidth - 70,
+ textAlign: 'center'
+ },
+ boxItemCartPayInstall: {
+ marginBottom: 10,
+ backgroundColor: '#f2f2f2',
+ },
+ boxItemCartPayInstallItem: {
+ width: '100%',
+ padding: 10,
+ backgroundColor: '#fff',
+ flexDirection: 'row',
+ },
+ boxItemCartPayInstallItemLeft: {
+ width: 65,
+ paddingRight: 15,
+ flexDirection: 'column',
+ alignItems: 'center'
+ },
+ boxItemCartPayInstallItemImg: {
+ width: '100%',
+ height: 50,
+ marginBottom: 10,
+ },
+ boxItemCartPayInstallItemDelete: {
+ padding: 5,
+ borderColor: '#e1e1e1',
+ borderWidth: 1,
+ borderRadius: 3,
+ },
+ boxItemCartPayInstallItemDeleteIcon: {
+ fontSize: 16,
+ color: '#999'
+ },
+ boxItemCartPayInstallItemInfo: {
+ width: winWidth - 85,
+ },
+ boxItemCartPayInstallItemName: {
+ marginBottom: 10,
+ fontWeight: '700'
+ },
+ boxItemCartPayInstallItemPrice: {
+ fontSize: 18,
+ fontWeight: '700',
+ color: '#D8262F',
+ },
+ boxPayForm: {
+ width: winWidth,
+ padding: 10,
+ },
+ boxPayFormHeader: {
+ marginBottom: 10,
+ padding: 10,
+ borderRadius: 5,
+ borderWidth: 1,
+ borderColor: '#008445',
+ backgroundColor: '#DBF1E6',
+ flexDirection: 'column',
+ alignItems: 'center',
+ },
+ boxPayFormHeaderText: {
+ marginBottom: 10,
+ fontWeight: '700',
+ fontSize: 16,
+ },
+ boxPayFormHeaderImg: {
+ width: 149,
+ height: 24,
+ },
+ boxPayFormItem: {
+ marginBottom: 15,
+ },
+ boxPayFormItemText: {
+ fontSize: 16,
+ marginBottom: 5,
+ },
+ boxPayFormItemInput: {
+ width: '100%',
+ height: 40,
+ paddingHorizontal: 10,
+ borderColor: '#ABABAB',
+ borderWidth: 1,
+ borderRadius: 3,
+ },
+ boxPayFormItemSend: {
+ width: '100%',
+ height: 40,
+ backgroundColor: '#D8262F',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderRadius: 5,
+ },
+ boxPayFormItemSendText: {
+ fontSize: 14,
+ color: '#fff',
+ textTransform: 'uppercase',
+ fontWeight: 'bold',
+ },
+});
diff --git a/screens/CartStep.tsx b/screens/CartStep.tsx
new file mode 100644
index 0000000..fe56108
--- /dev/null
+++ b/screens/CartStep.tsx
@@ -0,0 +1,872 @@
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, ImageBackground, Modal } from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View } from '../components/Themed';
+import { TextInput } from 'react-native-gesture-handler';
+import Swiper from 'react-native-swiper';
+import { Asset } from 'expo-asset';
+import { RadioButton, Checkbox } from 'react-native-paper';
+import { Picker } from '@react-native-picker/picker';
+import { useNavigation } from '@react-navigation/core';
+
+export default function CartStep() {
+ return (
+
+
+
+
+
+ );
+}
+
+const CustommerInfo = () => {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+const HeaderCart = () => {
+ const navigation = useNavigation();
+ return (
+
+ navigation.navigate('Cart')}>
+
+
+ Thanh toán
+
+ )
+}
+
+const CustommerInfoCart = () => {
+ const [selecSex, setSelecSex] = React.useState('male');
+ const [checkedInfo, setCheckedInfo] = React.useState(false);
+ const [selectedProvince, setSelectedProvince] = React.useState();
+ const [selectedDistrict, setSelectedDistrict] = React.useState();
+ return (
+
+
+ 1
+ Thông tin khách hàng
+
+
+ Thông tin người mua
+ (*) Thông tin bắt buộc
+
+
+
+
+ setSelecSex('male')} />
+
+ Anh
+
+
+
+ setSelecSex('female')} />
+
+ Chị
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Thông tin người nhận
+ (*) Thông tin bắt buộc
+
+
+
+ setCheckedInfo(!checkedInfo)} />
+
+ Lấy thông tin người mua
+
+
+
+
+
+
+
+
+
+
+
+ setSelectedProvince(itemValue)
+ }
+ >
+
+
+
+
+
+
+
+
+
+ setSelectedDistrict(itemValue)
+ }
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+const SelecPayOption = () => {
+ const [checkedPayment, setCheckedPayment] = React.useState('pay1');
+ const listPayment = [
+ {
+ id: 1,
+ name: 'COD - Thanh toán khi nhận hàng',
+ description: '',
+ image: require('../assets/images/pay_1.png'),
+ },
+ {
+ id: 2,
+ name: 'Thanh toán trực tuyến (bằng thẻ ATM, VISA, MASTER) ',
+ description: '',
+ image: require('../assets/images/pay_2.png'),
+ },
+ {
+ id: 3,
+ name: 'Trả góp qua Alepay (Ngân Lượng)',
+ description: '',
+ image: require('../assets/images/pay_2.png'),
+ },
+ ]
+ return (
+
+
+ 1
+ Phương thức thanh toán
+
+ Chọn phương thức thanh toán
+
+ {
+ listPayment.map(item => {
+ let idpay = 'pay' + item.id;
+ return (
+
+
+
+
+ {item.name}
+
+ setCheckedPayment(idpay)} />
+
+
+ )
+ })
+ }
+
+
+ )
+}
+
+const Bill = () => {
+ const [checkedBill, setCheckedBill] = React.useState(false);
+ return (
+
+
+
+ setCheckedBill(!checkedBill)} />
+
+ Yêu cầu xuất hóa đơn GTGT cho đơn hàng này
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
+
+
+const TotalCart = () => {
+ const navigation = useNavigation();
+ return (
+
+
+
+
+ Bạn chưa có Naga Xu
+
+
+
+
+ Tổng cộng
+ 5.000.000đ
+
+
+ Giảm giá Voucher
+ 00đ
+
+
+ Phí giao hàng
+ 00đ
+
+
+ Thanh toán
+ 5.000.000đ
+
+
+ Nhận thêm 500 xu
+
+
+ Tổng cộng:
+ 5.000.000 đ
+
+
+ navigation.navigate('CartPayInstallment')} style={styles.boxTotalCartSubmitButtonTragop}>
+ Mua trả góp
+
+
+ Đặt hàng
+
+
+
+ )
+}
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+
+
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: '#fff',
+ },
+ headerCartStep: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 10,
+ },
+ goBack: {
+ width: 50,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ goBackIcon: {
+ fontSize: 24,
+ },
+ headerCartStepTitle: {
+ fontWeight: '700',
+ width: winWidth - 70,
+ textAlign: 'center'
+ },
+ boxCustommerInfoCart: {
+ width: winWidth,
+ backgroundColor: '#fff',
+ paddingHorizontal: 10,
+ },
+ green: {
+ color: '#008445',
+ },
+ boxInfoCusCart: {
+ width: '100%',
+ backgroundColor: 'rgba(0,0,0,0)',
+ display: 'none',
+ },
+ boxInfoCusCartTitle: {
+ fontSize: 18,
+ fontWeight: 'bold',
+ textTransform: 'uppercase',
+ color: '#008445',
+ },
+ boxInfoCusCartTitleAll: {
+ width: '100%',
+ marginBottom: 10,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ borderBottomColor: '#ababab',
+ borderBottomWidth: 1,
+ paddingBottom: 5,
+ },
+ boxInfoCusCartTitleAllNum: {
+ width: 30,
+ height: 30,
+ textAlign: 'center',
+ lineHeight: 30,
+ borderColor: '#008445',
+ borderWidth: 1,
+ borderRadius: 15,
+ marginRight: 10,
+ },
+ boxInfoCusCartHeading: {
+ marginBottom: 10,
+ backgroundColor: 'rgba(0,0,0,0)',
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ boxInfoCusCartHeadingText: {
+ fontSize: 16,
+ fontWeight: 'bold',
+ marginRight: 5,
+ },
+ boxInfoCusCartHeadingNote: {},
+ boxInfoCusCartItemSex: {
+ padding: 10,
+ marginBottom: 10,
+ width: '100%',
+ flexDirection: 'row',
+ },
+ boxInfoCusCartItemSexIt: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginRight: 20,
+ },
+ itemRadio: {
+ width: 36,
+ height: 36,
+ borderRadius: 18,
+ borderWidth: 1,
+ borderColor: '#e1e1e1',
+ marginRight: 5,
+ },
+ boxInfoCusCartContent: {
+ width: '100%',
+ marginBottom: 10,
+ backgroundColor: 'rgba(0,0,0,0)',
+ },
+ boxInfoCusCartItem: {
+ width: '100%',
+ marginBottom: 10,
+ backgroundColor: 'rgba(0,0,0,0)',
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ boxInfoCusCartItemInput: {
+ width: '100%',
+ height: 42,
+ borderRadius: 5,
+ borderWidth: 1,
+ borderColor: '#e1e1e1',
+ paddingHorizontal: 10,
+ backgroundColor: '#fff',
+ },
+ red: {
+ color: '#d9282f'
+ },
+ boxInfoCusCartItemHalf: {
+ width: winWidth / 2 - 15,
+ backgroundColor: 'rgba(0,0,0,0)',
+ },
+ boxInfoCusCartItemArea: {
+ width: '100%',
+ height: 85,
+ borderRadius: 5,
+ borderWidth: 1,
+ borderColor: '#e1e1e1',
+ paddingHorizontal: 10,
+ backgroundColor: '#fff',
+ },
+ boxInfoCusCartItemCheckInfo: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 10,
+ backgroundColor: 'rgba(0,0,0,0)'
+ },
+ picker: {
+ height: 42,
+ width: '100%',
+ backgroundColor: '#fff',
+ borderRadius: 5,
+ },
+ onePickerItem: {
+ height: 46,
+ color: '#222',
+ fontSize: 14,
+ textAlign: 'center',
+ width: '100%',
+ backgroundColor: '#fff',
+ },
+ active: {
+ display: 'flex',
+ },
+ noBg: {
+ width: '100%',
+ backgroundColor: 'rgba(0,0,0,0)'
+ },
+ boxPayment: {
+ width: '100%',
+ marginBottom: 20,
+ backgroundColor: 'rgba(0,0,0,0)'
+ },
+ boxPaymentHead: {
+ width: '100%',
+ marginBottom: 10,
+ backgroundColor: '#008445',
+ lineHeight: 40,
+ paddingHorizontal: 10,
+ fontSize: 18,
+ fontWeight: 'bold',
+ textTransform: 'uppercase',
+ color: '#fff',
+ },
+ boxPaymentTitle: {
+ marginBottom: 10,
+ fontSize: 16,
+ fontWeight: 'bold',
+ },
+ boxPaymentList: {},
+ paymentItem: {
+ width: '100%',
+ padding: 10,
+ borderBottomWidth: 1,
+ borderBottomColor: '#e1e1e1',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ paymentItemImage: {
+ width: 31,
+ height: 31,
+ borderRadius: 15.5,
+ overflow: 'hidden',
+ marginRight: 10,
+ },
+ paymentItemImageCt: {
+ width: 31,
+ height: 31,
+ },
+ paymentItemText: {
+ width: winWidth - 130,
+ },
+ paymentItemRadio: {
+ width: 36,
+ height: 36,
+ borderRadius: 18,
+ borderWidth: 1,
+ borderColor: '#e1e1e1',
+ marginLeft: 10,
+ },
+ boxBill: {
+ width: '100%',
+ paddingVertical: 10,
+ marginBottom: 20,
+ },
+ boxBillList: {
+ display: 'none',
+ },
+ boxBillText: {
+ fontSize: 12,
+ },
+ boxCartItem: {
+ width: '100%',
+ marginBottom: 20,
+ backgroundColor: 'rgba(0,0,0,0)'
+ },
+ boxCartItemBuyOther: {
+ marginBottom: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ boxCartItemBuyOtherIcon: {
+ fontSize: 15,
+ color: '#d9282f',
+ marginRight: 5,
+ },
+ boxCartItemBuyOtherIconText: {
+ fontSize: 15,
+ color: '#d9282f',
+ marginRight: 5,
+ textTransform: 'uppercase'
+ },
+ boxVoucher: {
+ width: '100%',
+ marginBottom: 20,
+ backgroundColor: 'rgba(0,0,0,0)'
+ },
+ boxVoucherForm: {
+ marginBottom: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ borderRadius: 5,
+ },
+ boxVoucherFormInput: {
+ width: winWidth - 98,
+ height: 40,
+ paddingHorizontal: 10,
+ backgroundColor: '#fff',
+ borderTopLeftRadius: 5,
+ borderBottomLeftRadius: 5,
+ overflow: 'hidden',
+ },
+ boxVoucherFormButton: {
+ width: 78,
+ height: 40,
+ backgroundColor: '#6c757d',
+ borderTopRightRadius: 5,
+ borderBottomRightRadius: 5,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ boxVoucherFormButtonText: {
+ color: '#fff',
+ },
+ boxVoucherShowPop: {
+ width: '100%',
+ backgroundColor: 'rgba(0,0,0,0)'
+ },
+ boxVoucherShowPopButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ padding: 10,
+ borderBottomWidth: 1,
+ borderBottomColor: '#e1e1e1'
+ },
+ boxVoucherShowPopButtonCt: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ boxVoucherShowPopImg: {
+ marginRight: 10,
+ },
+ boxVoucherShowPopText: {
+ color: '#d9282f',
+ },
+ boxVoucherShowPopIcon: {},
+ boxXuShowPopButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 10,
+ borderBottomWidth: 1,
+ borderBottomColor: '#e1e1e1'
+ },
+ boxXuShowPopButtonImg: {
+ marginRight: 10,
+ },
+ boxXuShowPopButtonText: {
+ marginRight: 10,
+ },
+ boxXuShowPopButtonIcon: {},
+ boxVoucherNote: {
+ backgroundColor: '#f2f2f2',
+ padding: 10,
+ },
+ boxVoucherNoteText: {
+ marginBottom: 10,
+ fontStyle: 'italic',
+ },
+ TextBold: {
+ fontWeight: 'bold',
+ },
+ boxCloseModalVoucher: {
+ width: winWidth,
+ backgroundColor: 'rgba(0,0,0,0.5)'
+ },
+ boxCloseModalVoucherPress: {
+ width: '100%',
+ },
+ contentPopVoucher: {
+ width: winWidth,
+ padding: 10,
+ height: winHeight,
+ paddingTop: 50,
+ },
+ contentPopVoucherHeader: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 10,
+ },
+ contentPopVoucherBack: {
+ width: 50,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ contentPopVoucherBackIcon: {
+ fontSize: 24,
+ height: 24,
+ },
+ contentPopVoucherTitle: {
+ width: winWidth - 70,
+ fontSize: 18,
+ lineHeight: 25,
+ textAlign: 'center',
+ fontWeight: '700'
+ },
+ contentPopVoucherForm: {
+ width: '100%',
+ padding: 10,
+ borderRadius: 5,
+ backgroundColor: '#f5f5f5',
+ marginBottom: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ contentPopVoucherFormText: {
+ width: 78,
+ },
+ contentPopVoucherFormInput: {
+ width: winWidth - 205,
+ height: 40,
+ borderRadius: 5,
+ paddingHorizontal: 10,
+ backgroundColor: '#fff',
+ borderWidth: 1,
+ borderColor: '#ababab'
+ },
+ contentPopVoucherFormButton: {
+ width: 72,
+ height: 40,
+ borderRadius: 5,
+ backgroundColor: '#d9282f',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ contentPopVoucherFormButtonText: {
+ fontSize: 12,
+ textTransform: 'uppercase',
+ color: '#fff',
+ fontWeight: 'bold'
+ },
+ contentPopVoucherPop: {
+ width: '100%',
+ height: winHeight - 350,
+ },
+ contentPopVoucherPopTitle: {
+ marginBottom: 10,
+ },
+ contentPopVoucherPopList: {
+ width: '100%',
+ height: winHeight - 370,
+ },
+ contentPopVoucherPopItem: {
+ width: '100%',
+ marginBottom: 10,
+ borderWidth: 1,
+ borderColor: '#999',
+ flexDirection: 'row',
+ borderRadius: 5,
+ overflow: 'hidden',
+ alignItems: 'center',
+ paddingRight: 8,
+ },
+ contentPopVoucherPopItemLeft: {
+ width: 130,
+ padding: 10,
+ backgroundColor: '#999',
+ flexDirection: 'column',
+ alignItems: 'center',
+ },
+ contentPopVoucherPopItemHasUse: {
+ borderColor: '#008445',
+ },
+ contentPopVoucherPopItemLeftHasUse: {
+ backgroundColor: '#008445'
+ },
+ contentPopVoucherPopItemLeftSt: {
+ color: '#fff',
+ marginBottom: 5,
+ fontSize: 15,
+ },
+ contentPopVoucherPopItemLeftNd: {
+ color: '#fff',
+ marginBottom: 5,
+ fontSize: 15,
+ textTransform: 'uppercase',
+ fontWeight: 'bold'
+ },
+ contentPopVoucherPopItemCenter: {
+
+ },
+ contentPopVoucherPopItemCenterText: {
+ width: winWidth - 194,
+ paddingHorizontal: 10,
+ },
+ contentPopVoucherPopItemCheck: {
+ width: 36,
+ height: 36,
+ borderRadius: 18,
+ borderWidth: 1,
+ borderColor: '#999',
+ },
+ contentPopVoucherPopBot: {
+ width: '100%',
+ height: 60,
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ contentPopVoucherPopBotBack: {
+ width: winWidth / 2 - 15,
+ backgroundColor: '#ebebeb',
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: 5,
+ height: 40,
+ },
+ contentPopVoucherPopBotBackText: {
+ fontSize: 18,
+ textTransform: 'uppercase',
+ },
+ contentPopVoucherPopBotOk: {
+ width: winWidth / 2 - 15,
+ backgroundColor: '#d9282f',
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: 5,
+ height: 40,
+ },
+ contentPopVoucherPopBotOkText: {
+ fontSize: 18,
+ textTransform: 'uppercase',
+ color: '#fff',
+ fontWeight: 'bold',
+ },
+ boxTotalCart: {
+ },
+ boxTotalCartXu: {
+ width: '100%',
+ paddingVertical: 15,
+ borderBottomColor: '#e1e1e1',
+ borderBottomWidth: 1,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ boxTotalCartXuImg: {
+ width: 20,
+ height: 20,
+ marginRight: 10,
+ },
+ boxTotalCartXuButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ boxTotalCartButtonTex: {},
+ boxTotalCartButtonIcon: {},
+ boxTotalCartItem: {
+ width: '100%',
+ paddingVertical: 15,
+ borderBottomColor: '#e1e1e1',
+ borderBottomWidth: 1,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ boxTotalCartItemLeft: {
+ fontSize: 14,
+ textTransform: 'uppercase',
+ },
+ boxTotalCartItemRight: {
+ fontSize: 14,
+ },
+ boxTotalCartItemCoin: {
+ color: '#FE9923',
+ textAlign: 'right',
+ width: '100%'
+ },
+ boxTotalCartSubmit: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ boxTotalCartSubmitButton: {
+ width: winWidth / 2 - 15,
+ height: 40,
+ backgroundColor: '#d9282f',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderRadius: 5,
+ },
+ boxTotalCartSubmitText: {
+ fontSize: 15,
+ color: '#fff',
+ textTransform: 'uppercase',
+ fontWeight: 'bold',
+ },
+ boxTotalCartItemAll: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ paddingVertical: 10,
+ },
+ boxTotalCartItemAllText: {
+ marginRight: 5,
+ },
+ boxTotalCartItemAllPrice: {
+ fontSize: 16,
+ color: '#D8262F',
+ },
+ boxTotalCartSubmitButtonTragop: {
+ width: winWidth / 2 - 15,
+ height: 40,
+ backgroundColor: '#FE9923',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ borderRadius: 5,
+ },
+ boxTotalCartSubmitTextTragop: {
+ fontSize: 15,
+ color: '#fff',
+ textTransform: 'uppercase',
+ fontWeight: 'bold',
+ },
+});
diff --git a/screens/CustomerInfo.tsx b/screens/CustomerInfo.tsx
new file mode 100644
index 0000000..fe584b7
--- /dev/null
+++ b/screens/CustomerInfo.tsx
@@ -0,0 +1,289 @@
+import 'react-native-gesture-handler';
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, Modal, Pressable, Share } from 'react-native';
+import Constants from 'expo-constants';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import { LinearGradient } from 'expo-linear-gradient';
+import { useNavigation } from '@react-navigation/native';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View, } from '../components/Themed';
+import useColorScheme from '../hooks/useColorScheme';
+import { TextInput } from 'react-native-gesture-handler';
+import { RadioButton, Checkbox } from 'react-native-paper';
+import { Picker } from '@react-native-picker/picker';
+
+export default function CustomerInfo() {
+ return (
+
+
+
+
+
+
+
+ )
+}
+
+const HeaderAccountOrderList = () => {
+ const navigation = useNavigation();
+ return (
+
+ navigation.goBack()} style={styles.headerAOLBack}>
+
+
+ Thông tin tài khoản
+
+ )
+}
+
+const CustomerInfoContent = () => {
+ const [openModalCusInfoChange, setOpenModalCusInfoChange] = useState(false);
+ return (
+
+
+ setOpenModalCusInfoChange(true)} style={styles.boxCustommerBt}>
+ Họ tên
+
+ Nguyễn Quỳnh
+
+
+
+
+
+
+ Giới tính
+
+ Nữ
+
+
+
+
+
+
+ Địa chỉ email
+
+ quynhnt@gmail.com
+
+
+
+
+
+
+ Địa chỉ nhà
+
+ 100 Láng Hạ, Đống Đa
+
+
+
+
+
+
+ Tỉnh / TP
+
+ Hà Nội
+
+
+
+
+
+
+ Điện thoại
+
+ 0912345678
+
+
+
+
+
+
+ Thay đổi mật khẩu
+
+
+
+
+
+
+ { setOpenModalCusInfoChange(!openModalCusInfoChange); }}>
+
+ setOpenModalCusInfoChange(!openModalCusInfoChange)} style={styles.cusInfoContentBg}>
+
+
+
+ Họ tên
+ setOpenModalCusInfoChange(!openModalCusInfoChange)}>
+
+
+
+
+ Họ tên
+
+
+
+ Thay đổi
+
+
+
+
+
+ )
+}
+
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+const winWidthP10 = winWidth - 20;
+const halfWinWidth = winWidth / 2;
+const ratio = winWidthP10 / 850; //541 is actual image width
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: '#fff',
+ },
+ headerAOL: {
+ width: winWidth,
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ headerAOLBack: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLBackIcon: {
+ fontSize: 24,
+ },
+ headerAOLSearch: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ headerAOLSearchIcon: {
+ fontSize: 24,
+ },
+ headerAOLTitle: {
+ width: winWidth - 60,
+ textAlign: 'center',
+ fontWeight: '700',
+ },
+ headerAOLChat: {
+ width: 40,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'flex-end',
+ },
+ headerAOLChatIcon: {
+ fontSize: 24,
+ },
+ GreenColor: {
+ color: '#008445',
+ },
+ OrangeColor: {
+ color: '#FE9923',
+ },
+ RedColor: {
+ color: '#D8262F',
+ },
+ boxCustommer: {
+ width: winWidth,
+ paddingTop: 10,
+ backgroundColor: '#f2f2f2',
+ },
+ boxCustommerItem: {
+ width: winWidth,
+ borderBottomWidth: 1,
+ borderBottomColor: '#f2f2f2',
+ },
+ boxCustommerBt: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ paddingHorizontal: 10,
+ height: 40,
+ },
+ boxCustommerTextLeft: {},
+ boxCustommerCtRight: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ boxCustommerTextRight: {
+ color: '#777777',
+ marginRight: 10,
+ },
+ boxCustommerIcon: {
+ fontSize: 18,
+ color: '#777'
+ },
+ cusInfoContent: {
+ width: winWidth,
+ height: winHeight,
+ backgroundColor: 'rgba(0,0,0,0)'
+ },
+ cusInfoContentBg: {
+ width: winHeight,
+ height: winHeight - 236,
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ },
+ cusInfoContentct: {
+ width: winWidth,
+ paddingHorizontal: 10,
+ backgroundColor: '#fff',
+ height: 236,
+ },
+ cusInfoContentctHead: {
+ marginBottom: 30,
+ position: 'relative',
+ padding: 10,
+ },
+ cusInfoContentctHeadText: {
+ width: '100%',
+ textAlign: 'center',
+ fontSize: 16,
+ fontWeight: '700'
+ },
+ cusInfoContentctHeadBt: {
+ position: 'absolute',
+ top: 10,
+ right: 10,
+ zIndex: 2,
+ },
+ cusInfoContentctHeadBtIcon: {
+ fontSize: 18,
+ },
+ cusInfoContentctIp: {
+ borderBottomColor: '#ababab',
+ borderBottomWidth: 1,
+ marginBottom: 20,
+ },
+ cusInfoContentctIpText: {
+ marginBottom: 10,
+ fontWeight: '500',
+ color: '#008445'
+ },
+ cusInfoContentctIpInput: {
+ width: '100%',
+ height: 40,
+ },
+ cusInfoContentctBtSubmit: {
+ width: '100%',
+ height: 40,
+ backgroundColor: '#D8262F',
+ borderRadius: 5,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ cusInfoContentctBtSubmitText: {
+ textTransform: 'uppercase',
+ fontWeight: '700',
+ color: '#fff'
+ },
+})
\ No newline at end of file
diff --git a/screens/ForgotPassword.tsx b/screens/ForgotPassword.tsx
new file mode 100644
index 0000000..2e54a10
--- /dev/null
+++ b/screens/ForgotPassword.tsx
@@ -0,0 +1,80 @@
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, ImageBackground, Modal, Pressable } from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View } from '../components/Themed';
+import { TextInput } from 'react-native-gesture-handler';
+import { useNavigation } from '@react-navigation/native';
+
+export default function ForgotPassword() {
+ const navigation = useNavigation();
+ return (
+
+
+ Bạn quên mật khẩu vào tài khoản?
+ Vui lòng nhập địa chỉ email đã đăng ký với chúng tôi để tạo mật khẩu mới. Chúng tôi sẽ gửi 1 email vào địa chỉ email cung cấp và yêu cầu xác minh trước khi có thể tạo mật khẩu mới
+
+
+
+
+ Lấy lại mật khẩu
+
+
+
+ );
+}
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ boxForgotPassword: {
+ width: winWidth,
+ padding: 10,
+ height: '100%',
+ },
+ boxForgotPasswordTitle: {
+ marginBottom: 20,
+ textAlign: 'center',
+ fontWeight: '700'
+ },
+ boxForgotPasswordNote: {
+ textAlign: 'center',
+ marginBottom: 20,
+ fontWeight: '300'
+ },
+ boxForgotPasswordInput: {
+ width: '100%',
+ marginBottom: 15,
+ borderBottomColor: '#ABABAB',
+ borderBottomWidth: 1,
+ paddingBottom: 5,
+ },
+ boxForgotPasswordInputCt: {
+ width: '100%',
+ height: 30,
+ },
+ boxForgotPasswordButton: {
+ width: '100%',
+ height: 40,
+ borderRadius: 5,
+ marginBottom: 10,
+ backgroundColor: '#D8262F',
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ boxForgotPasswordButtonText: {
+ fontWeight: '700',
+ color: '#fff',
+ textTransform: 'uppercase',
+ },
+
+});
diff --git a/screens/Login.tsx b/screens/Login.tsx
index 0f875da..0c59287 100644
--- a/screens/Login.tsx
+++ b/screens/Login.tsx
@@ -12,53 +12,51 @@ export default function Login() {
const navigation = useNavigation();
return (
-
-
-
- Chào mừng đến với Nagakawa!
- Đăng nhập ngay!
+
+
+
+
+
+
+
+
+
+
-
- Khách hàng mới?
- navigation.navigate('Register')}>
- Đăng ký
+
+
+
+ navigation.navigate('ForgotPassword')} style={styles.boxLoginItemForgitPas}>
+ Quên?
- tại đây
-
-
-
- Email đăng nhập
-
-
-
- Mật khẩu
-
-
-
-
- Quên mật khẩu?
-
-
- navigation.navigate('AccountHome')}>
- Đăng nhập
-
-
- Hoặc đăng nhập bằng
-
-
-
-
-
-
-
-
-
-
-
-
-
+ navigation.navigate('AccountHome')} style={styles.boxLoginButton}>
+ Đăng nhập
+
+
+ Khách hàng mới?
+ navigation.navigate('Register')}>
+ Đăng ký
+
+
+
+
+ Hoặc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
);
}
@@ -74,110 +72,120 @@ const styles = StyleSheet.create({
},
boxLogin: {
width: winWidth,
+ height: winHeight - 130,
padding: 10,
- backgroundColor: 'rgba(0,0,0,0)'
},
- boxLoginTitle: {
- width: '100%',
- backgroundColor: 'rgba(0,0,0,0)',
+ boxLoginTop: {
+ flexDirection: 'row',
+ justifyContent: 'center',
marginBottom: 20,
},
- boxLoginTitleText: {
- fontSize: 18,
- fontWeight: 'bold',
- },
- boxLoginToRegis: {
- width: '100%',
- backgroundColor: 'rgba(0,0,0,0)',
+ boxLoginLogo: {},
+ boxLoginItemList: {},
+ boxLoginItem: {
marginBottom: 10,
flexDirection: 'row',
alignItems: 'center',
+ borderBottomColor: '#ABABAB',
+ borderBottomWidth: 1,
+ paddingBottom: 5,
+ position: 'relative',
+ },
+ boxLoginItemIcon: {
+ fontSize: 24,
+ width: 32,
+ },
+ boxLoginItemInput: {
+ width: winWidth - 52,
+ height: 30,
+ },
+ boxLoginItemInputMk: {
+ paddingRight: 50,
+ },
+ boxLoginItemForgitPas: {
+ position: 'absolute',
+ right: 0,
+ borderLeftColor: '#e1e1e1',
+ borderLeftWidth: 1,
+ width: 50,
+ height: 30,
+ flexDirection: 'row',
justifyContent: 'flex-end',
+ alignItems: 'center',
},
- green: {
- color: '#008445',
+ boxLoginItemForgitPasText: {
+ color: '#0070C7'
},
- loginCartSocialForm: {
- marginBottom: 10,
- padding: 10,
- },
- loginCartSocialFormItem: {
- width: '100%',
- marginBottom: 10,
- },
- loginCartSocialFormItemText: {
- marginBottom: 5,
- fontWeight: 'bold'
- },
- loginCartSocialFormItemInput: {
+ boxLoginButton: {
width: '100%',
height: 40,
- borderWidth: 1,
- borderColor: '#e1e1e1',
borderRadius: 5,
- },
- loginCartSocialFormNote: {
marginBottom: 10,
- flexDirection: 'row',
- },
- boxLoginForgetPass: {
- width: '100%',
- flexDirection: 'row',
- marginBottom: 15,
- justifyContent: 'flex-end',
- },
- boxLoginForgetPassText: {
- color: '#008445',
- },
- boxLoginSubmit: {
- width: '100%',
- height: 40,
+ backgroundColor: '#D8262F',
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'center',
- borderRadius: 5,
- overflow: 'hidden',
- backgroundColor: '#d9282f',
- marginBottom: 20,
},
- boxLoginSubmitText: {
- fontWeight: 'bold',
+ boxLoginButtonText: {
+ fontWeight: '700',
+ color: '#fff',
+ textTransform: 'uppercase',
+ },
+ boxLoginButtonRegis: {
+ marginBottom: 20,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ boxLoginButtonRegisText: {
+ marginRight: 5,
+ },
+ boxLoginButtonRegisBt: {
+ color: '#0070C7',
+ },
+ boxLoginLineChia: {
+ marginBottom: 20,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'center'
+ },
+ boxLoginLine: {
+ width: 80,
+ height: 1,
+ backgroundColor: '#e1e1e1',
+ },
+ boxLoginLineChiaText: {
+ marginHorizontal: 5,
+ color: '#777',
+ fontWeight: '300',
+ },
+ loginSocial: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ loginSocialItem: {
+ width: 40,
+ height: 40,
+ borderRadius: 20,
+ backgroundColor: '#3B5998',
+ marginHorizontal: 8,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ loginSocialItemIcon: {
+ fontSize: 18,
color: '#fff'
},
- boxLoginOther: {
- marginBottom: 20,
- flexDirection: 'row',
- justifyContent: 'center',
+ loginSocialItemImg: {
+ width: 22,
+ height: 24,
},
- boxLoginOtherText: {},
- boxLoginSocial: {
- flexDirection: 'row',
- justifyContent: 'center',
- alignItems: 'center',
+ loginSocialItemFace: {},
+ loginSocialItemGoogle: {
+ backgroundColor: '#DF4A32',
},
- boxLoginSocialItem: {
- width: 34,
- height: 34,
- flexDirection: 'row',
- justifyContent: 'center',
- alignItems: 'center',
- borderRadius: 5,
- marginHorizontal: 5,
- backgroundColor: '#3b5998',
- },
- boxLoginSocialFace: {},
- boxLoginSocialGoogle: {
- backgroundColor: '#df4a32',
- },
- boxLoginSocialZalo: {
- backgroundColor: '#0f8edd',
- },
- boxLoginSocialIcon: {
- fontSize: 16,
- color: '#fff',
- },
- boxLoginSocialImg: {
- width: 16,
- height: 16,
+ loginSocialItemZalo: {
+ backgroundColor: '#0F8EDD'
},
});
diff --git a/screens/ProductHotList.tsx b/screens/ProductHotList.tsx
new file mode 100644
index 0000000..2db48a4
--- /dev/null
+++ b/screens/ProductHotList.tsx
@@ -0,0 +1,797 @@
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, ImageBackground, Modal, Pressable } from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View } from '../components/Themed';
+import { TextInput } from 'react-native-gesture-handler';
+import { useNavigation } from '@react-navigation/native';
+
+export default function ProductHotList() {
+ return (
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+const SortAndFilter = () => {
+ const [openSort, setopenSort] = useState(true);
+ const [openFilter, setOpenFilter] = useState(false);
+ return (
+
+
+ setopenSort(!openSort)}>
+ Sắp xếp:
+ Mới nhất
+
+
+
+
+ Mới nhất
+
+
+
+ Giá giảm dần
+
+
+ Giá tăng dần
+
+
+
+
+ setOpenFilter(true)}>
+
+ Lọc
+
+ { setOpenFilter(!openFilter); }}>
+
+ setOpenFilter(!openFilter)} style={styles.filterItemContentBg}>
+
+
+
+ setOpenFilter(!openFilter)}>
+
+
+ Bộ lọc
+
+
+
+
+
+
+
+
+
+
+
+
+ Xem 1020 sản phẩm
+
+
+
+
+
+
+
+ )
+}
+
+const PriceFilterList = () => {
+ const dataPriceFilter = [
+ {
+ url: '/',
+ name: 'Dưới 200.000',
+ is_current: 1,
+ },
+ {
+ url: '/',
+ name: 'Từ 200.000 đến 500.000',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: 'Từ 500.000 đến 1.000.000',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: 'Từ 1.000.000 đến 5.000.000',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: 'Từ 5.000.000 đến 15.000.000',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: 'Trên 15.000.000',
+ is_current: 0,
+ },
+ ]
+ return (
+
+ Khoảng giá
+
+ {
+ dataPriceFilter.map((item, index) =>
+
+ )
+ }
+
+
+ Hoặc nhập giá ở ô dưới đây
+
+
+
+
+
+
+ )
+}
+
+const OtherFilterList = () => {
+ const [openAllFilter, setOpenAllFilter] = useState(true);
+ const dataPriceFilter = [
+ {
+ url: '/',
+ name: '1 - 2 lít',
+ is_current: 1,
+ },
+ {
+ url: '/',
+ name: '2 - 3 lít',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: '3 - 4 lít',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: '4 - 9 lít',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: '9 - 12 lít',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: '12 - 15 lít',
+ is_current: 0,
+ },
+ ]
+ return (
+
+ Dung tích
+
+ {
+ dataPriceFilter.map((item, index) =>
+
+ )
+ }
+
+
+ setOpenAllFilter(!openAllFilter)} style={styles.filterItemBoxVmButton}>
+ Xem thêm
+
+
+
+ )
+}
+
+const OtherFilterListT = () => {
+ const [openAllFilter, setOpenAllFilter] = useState(true);
+ const dataPriceFilter = [
+ {
+ url: '/',
+ name: '30W - 100W',
+ is_current: 1,
+ },
+ {
+ url: '/',
+ name: '100W - 300W',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: '300W - 500W',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: '500W - 1000W',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: '1000W - 2000W',
+ is_current: 0,
+ },
+ {
+ url: '/',
+ name: '2000W - 5000W',
+ is_current: 0,
+ },
+ ]
+ return (
+
+ Công xuất
+
+ {
+ dataPriceFilter.map((item, index) =>
+
+ )
+ }
+
+
+ setOpenAllFilter(!openAllFilter)} style={styles.filterItemBoxVmButton}>
+ Xem thêm
+
+
+
+ )
+}
+
+const FilterItem = (props: { name: string, isCurrent: number }) => {
+ const { name, isCurrent } = props;
+ return (
+ 0 ? [styles.filterItem, styles.filterItemActive] : styles.filterItem} onPress={() => Alert.alert('danh muc sp')}>
+ {name}
+ {
+ isCurrent > 0 ?
+
+
+
+
+ :
+ }
+
+ );
+}
+
+const ListCatCategory = () => {
+ const dataCat = [
+ {
+ id: 1,
+ url: '/',
+ name: 'Ấm siêu tốc'
+ },
+ {
+ id: 2,
+ url: '/',
+ name: 'Bàn là'
+ },
+ {
+ id: 3,
+ url: '/',
+ name: 'Bếp từ'
+ },
+ {
+ id: 4,
+ url: '/',
+ name: 'Bếp hồng ngoại'
+ },
+ {
+ id: 5,
+ url: '/',
+ name: 'Bình thủy điện'
+ },
+ ]
+ let dataCatLength = dataCat.length;
+ return (
+
+
+ {
+ dataCat.map((item, index) =>
+
+ {item.name}
+
+ )
+ }
+
+
+ )
+}
+
+const ProductCategory = () => {
+ const navigation = useNavigation();
+ return (
+
+
+
+
+
+
+
+
+
+ navigation.navigate('ProductDetail')}>
+ Nồi áp suất inox 304 cao cấp Nagakawa NAG1452 (5L)
+
+ 1.292.000đ
+
+ 1.634.000đ
+ -30%
+
+
+ *3 khuyến mãi trị giá
+ 500.000đ
+
+
+
+
+
+
+
+
+
+
+
+
+ Nồi áp suất inox 304 cao cấp Nagakawa NAG1452 (5L)
+ 1.292.000đ
+
+ 1.634.000đ
+ -30%
+
+
+ *3 khuyến mãi trị giá
+ 500.000đ
+
+
+
+
+
+
+
+
+
+
+
+
+ Nồi áp suất inox 304 cao cấp Nagakawa NAG1452 (5L)
+ 1.292.000đ
+
+ 1.634.000đ
+ -30%
+
+
+ *3 khuyến mãi trị giá
+ 500.000đ
+
+
+
+
+
+
+
+
+
+
+
+
+ Nồi áp suất inox 304 cao cấp Nagakawa NAG1452 (5L)
+ 1.292.000đ
+
+ 1.634.000đ
+ -30%
+
+
+ *3 khuyến mãi trị giá
+ 500.000đ
+
+
+
+
+
+ )
+}
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ sortAndFilter: {
+ width: winWidth,
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ position: 'relative',
+ borderBottomColor: '#e1e1e1',
+ borderBottomWidth: 1,
+ zIndex: 5,
+ },
+ boxSort: {
+ zIndex: 1,
+ },
+ boxSortButton: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ height: 30,
+ },
+ boxSortButtonTextBold: {
+ fontSize: 14,
+ fontWeight: 'bold'
+ },
+ boxSortButtonActive: {},
+ boxSortButtonIcon: {
+ marginLeft: 5,
+ },
+ boxSortList: {
+ width: winWidth,
+ paddingHorizontal: 10,
+ position: 'absolute',
+ left: -10,
+ top: 40,
+ display: 'none',
+ },
+ boxSortListActive: {
+ display: 'flex',
+ },
+ boxSortItem: {
+ paddingVertical: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ boxSortItemActive: {
+ borderBottomColor: '#D8262F',
+ borderBottomWidth: 1,
+ },
+ boxSortItemText: {
+ fontSize: 14,
+ },
+ boxSortItemTextActive: {
+ color: '#D8262F'
+ },
+ boxSortItemTextIcon: {
+ color: '#D8262F'
+ },
+ boxFilter: {
+ width: 70,
+ height: 30,
+ alignItems: 'center',
+ flexDirection: 'row',
+ justifyContent: 'flex-end',
+ borderLeftWidth: 1,
+ borderLeftColor: '#e1e1e1'
+ },
+ boxFilterButton: {
+ flexDirection: 'row',
+ alignItems: 'center'
+ },
+ boxFilterIcon: {
+ fontSize: 18,
+ marginRight: 10,
+ },
+ boxFilterText: {
+ fontSize: 14,
+ },
+ filterItemContent: {
+ flex: 1,
+ justifyContent: 'flex-end',
+ alignItems: 'flex-end',
+ backgroundColor: 'rgba(0,0,0,0.5)',
+ position: 'relative',
+ zIndex: 1,
+ flexDirection: 'row',
+ },
+ filterItemContentBg: {
+ width: winWidth - 300,
+ height: winHeight,
+ },
+ headerPopFilter: {
+ width: '100%',
+ paddingTop: 30,
+ paddingHorizontal: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ borderBottomWidth: 1,
+ borderBottomColor: '#e1e1e1',
+ position: 'relative',
+ },
+ filterItemListClose: {
+ width: 40,
+ height: 40,
+ lineHeight: 40,
+ fontSize: 26,
+ },
+ headerPopFilterText: {
+ textAlign: 'center',
+ fontSize: 17,
+ fontWeight: 'bold',
+ width: '100%',
+ paddingRight: 40,
+ },
+ filterItemList: {
+ width: 300,
+ height: winHeight,
+ backgroundColor: '#fff',
+ shadowColor: "#000",
+ shadowOffset: {
+ width: 0,
+ height: 0,
+ },
+ shadowOpacity: 2.22,
+ shadowRadius: 2.22,
+ elevation: 3,
+ overflow: 'hidden',
+ position: 'relative',
+ zIndex: 2,
+ },
+ listBoxFilter: {
+ width: '100%',
+ height: winHeight - 130,
+ },
+ filterViewAll: {
+ width: '100%',
+ height: 60,
+ paddingHorizontal: 10,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ filterViewAllButton: {
+ width: '100%',
+ height: 40,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: '#D8262F',
+ borderRadius: 5,
+ },
+ filterViewAllButtonText: {
+ color: '#fff',
+ },
+ filterItemListTitleName: {
+ fontWeight: 'bold',
+ marginBottom: 10,
+ },
+ filterItemBoxList: {
+ width: '100%',
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ },
+ filterItem: {
+ width: 135,
+ height: 40,
+ alignItems: 'center',
+ flexDirection: 'row',
+ justifyContent: 'center',
+ backgroundColor: 'rgba(0,0,0,0.2)',
+ borderRadius: 3,
+ marginBottom: 10,
+ borderWidth: 1,
+ borderColor: 'rgba(0,0,0,0.2)',
+ position: 'relative',
+ },
+ filterItemActive: {
+ borderColor: '#D8262F'
+ },
+ filterItemName: {
+ width: '100%',
+ textAlign: 'center'
+ },
+ boxProductCategory: {
+ width: winWidth,
+ },
+ filterItemBox: {
+ width: '100%',
+ padding: 10,
+ borderBottomWidth: 1,
+ borderBottomColor: '#e1e1e1',
+ },
+ filterCurrent: {
+ backgroundColor: 'rgba(0,0,0,0)',
+ position: 'absolute',
+ right: 0,
+ top: 0,
+ },
+ filterCurrentImg: {
+ width: 24,
+ height: 22,
+ },
+ filterCurrentIcon: {
+ position: 'absolute',
+ zIndex: 1,
+ color: '#fff',
+ right: 0,
+ top: 0,
+ },
+ filterItemBoxInput: {
+ width: '100%',
+ marginTop: 10,
+ },
+ filterItemBoxInputText: {
+ marginBottom: 10,
+ },
+ filterItemBoxInputCtList: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ filterItemBoxInputCt: {
+ width: 135,
+ height: 40,
+ paddingHorizontal: 10,
+ borderColor: '#e1e1e1',
+ borderWidth: 1,
+ borderRadius: 3,
+ },
+ filterItemBoxListHeight: {
+ width: '100%',
+ flexDirection: 'row',
+ flexWrap: 'wrap',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ maxHeight: 100,
+ overflow: 'hidden'
+ },
+ filterItemBoxListHeightAuto: {
+ maxHeight: 'auto'
+ },
+ filterItemBoxVm: {
+ width: '100%',
+ marginBottom: 10,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ marginTop: 10,
+ },
+ filterItemBoxVmButton: {
+ width: 128,
+ height: 40,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderWidth: 1,
+ borderColor: '#56C4F5',
+ borderRadius: 3,
+ },
+ filterItemBoxVmButtonText: {
+ color: '#56C4F5',
+ fontSize: 14,
+ },
+ boxCatCategory: {
+ padding: 10,
+ },
+ boxCatCategoryItem: {
+ display: 'flex',
+ padding: 10,
+ backgroundColor: 'rgba(0,0,0,0.08)',
+ marginRight: 10,
+ },
+ boxCatCategoryItemLast: {
+ marginRight: 0,
+ },
+ boxCatCategoryItemText: {
+ fontSize: 14,
+ },
+ pContainer: {
+ width: '100%',
+ padding: 10,
+ },
+ pImgContent: {
+ width: '100%',
+ position: 'relative',
+ paddingTop: '100%',
+ marginBottom: 10,
+ },
+ pNew: {
+ width: 24,
+ height: 18,
+ position: 'absolute',
+ zIndex: 6,
+ top: 0,
+ left: 0,
+ },
+ pImg: {
+ width: '100%',
+ position: 'absolute',
+ zIndex: 5,
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ },
+ pTraGop: {
+ width: 68,
+ height: 16,
+ position: 'absolute',
+ zIndex: 6,
+ bottom: 0,
+ left: '50%',
+ transform: [{ translateX: -34 }],
+ },
+ pInfo: {
+ width: '100%',
+ },
+ pName: {
+ width: '100%',
+ fontSize: 14,
+ marginBottom: 10,
+ },
+ pPrice: {
+ width: '100%',
+ fontSize: 18,
+ marginBottom: 10,
+ color: '#D8262F',
+ fontWeight: 'bold',
+ },
+ pAllSale: {
+ width: '100%',
+ flexDirection: 'row',
+ alignItems: 'center',
+ marginBottom: 10,
+ },
+ pOldPrice: {
+ color: '#A1A1A1',
+ fontSize: 14,
+ textDecorationLine: 'line-through',
+ },
+ pDiscount: {
+ paddingVertical: 5,
+ backgroundColor: '#D8262F',
+ width: 50,
+ textAlign: 'center',
+ color: '#fff',
+ borderRadius: 5,
+ overflow: 'hidden',
+ marginLeft: 5,
+ },
+ pOffer: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ pOfferText: {
+ fontSize: 10,
+ color: '#A1A1A1',
+ },
+ pOfferPrice: {
+ fontSize: 10,
+ color: '#D8262F',
+ },
+ pItem: {
+ width: winWidth / 2 - 15,
+ marginBottom: 10,
+ borderRadius: 5,
+ overflow: 'hidden',
+ shadowColor: "#000",
+ shadowOffset: {
+ width: 0,
+ height: 3,
+ },
+ shadowOpacity: 0.27,
+ shadowRadius: 4.65,
+ elevation: 6,
+ },
+ boxProductCategoryList: {
+ width: winWidth,
+ padding: 10,
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ flexWrap: 'wrap',
+ backgroundColor: '#f2f2f2',
+ },
+});
diff --git a/screens/Register.tsx b/screens/Register.tsx
index 0fdf8d2..45ba724 100644
--- a/screens/Register.tsx
+++ b/screens/Register.tsx
@@ -8,81 +8,81 @@ import { Text, View } from '../components/Themed';
import { TextInput } from 'react-native-gesture-handler';
import { useNavigation } from '@react-navigation/native';
import { Checkbox } from 'react-native-paper';
+import Person from "react-native-bootstrap-icons/icons/person";
+import Telephone from "react-native-bootstrap-icons/icons/telephone";
+import Envelope from "react-native-bootstrap-icons/icons/envelope";
+import Geoalt from "react-native-bootstrap-icons/icons/geo-alt";
+import Lock from "react-native-bootstrap-icons/icons/lock";
export default function Register() {
const [checkedRegis, setCheckedRegis] = useState(false);
+ const [checkedRegisBaoMat, setCheckedRegisBaoMat] = useState(false);
const navigation = useNavigation();
return (
Tạo tài khoản Nagakawa
-
- Bạn đã có tài khoản?
- navigation.navigate('Login')}>
- Đăng nhập
-
- tại đây
+
+
+
-
-
- Số điện thoại*
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ setCheckedRegis(!checkedRegis)} />
-
- Email đăng ký*
-
+ Tôi muốn nhận các thông tin khuyến mãi từ Nagakawa
+
+
+ Đăng ký
+
+
+
+ setCheckedRegisBaoMat(!checkedRegisBaoMat)} />
-
- Địa chỉ*
-
-
-
- Mật khẩu*
-
-
-
- Nhập lại mật khẩu*
-
-
-
- Họ tên*
-
-
-
- Mã xác nhận
-
-
-
- [ Xem mã khác ]
-
-
-
-
-
-
- setCheckedRegis(!checkedRegis)} />
-
- Tôi muốn nhận các thông tin khuyến mãi từ Nagakawa
-
-
- Đăng ký
-
-
- Hoặc đăng nhập bằng
-
-
-
-
-
-
-
-
-
-
+
+ Tôi đồng ý với các
+
+ chính sách bảo mật Nagakawa
+
+
+ Hoặc
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -100,52 +100,36 @@ const styles = StyleSheet.create({
},
boxRegister: {
width: winWidth,
+ minHeight: winHeight - 130,
padding: 10,
- backgroundColor: 'rgba(0,0,0,0)',
+ backgroundColor: '#fff',
},
boxRegisterTitle: {
- marginBottom: 15,
- fontSize: 18,
- fontWeight: 'bold',
- },
- boxRegisterNote: {
- marginBottom: 10,
- flexDirection: 'row',
- justifyContent: 'flex-end',
- alignItems: 'center',
- backgroundColor: 'rgba(0,0,0,0)'
- },
- green: {
- color: '#008445',
- },
- boxRegisterList: {
- width: '100%',
- padding: 10,
+ marginBottom: 20,
+ textAlign: 'center',
+ fontWeight: '700'
},
boxRegisterItem: {
- width: '100%',
- marginBottom: 10,
- },
- boxRegisterItemText: {
- fontWeight: 'bold',
- marginBottom: 5,
- },
- boxRegisterItemInput: {
- width: '100%',
- height: 40,
- borderColor: '#e1e1e1',
- borderWidth: 1,
- borderRadius: 5,
- },
- boxRegisterCapcha: {
flexDirection: 'row',
alignItems: 'center',
+ borderBottomWidth: 1,
+ borderBottomColor: '#ABABAB',
+ paddingBottom: 5,
+ marginBottom: 10,
+ },
+ boxRegisterItemIcon: {
+ marginRight: 10,
+ color: '#999'
+ },
+ boxRegisterItemInput: {
+ width: winWidth - 49,
+ height: 30,
},
- boxRegisterCapchaOther: {},
checkKmRegis: {
flexDirection: 'row',
marginBottom: 10,
marginTop: 10,
+ alignItems: 'center',
},
checkKmRegisCheck: {
width: 36,
@@ -154,7 +138,9 @@ const styles = StyleSheet.create({
borderColor: '#e1e1e1',
marginRight: 10,
},
- checkKmRegisText: {},
+ checkKmRegisText: {
+ width: winWidth - 66,
+ },
boxLoginSubmit: {
width: '100%',
height: 40,
@@ -170,40 +156,53 @@ const styles = StyleSheet.create({
fontWeight: 'bold',
color: '#fff'
},
- boxLoginOther: {
+ colorGreen: {
+ color: '#008445',
+ },
+ boxLoginLineChia: {
marginBottom: 20,
flexDirection: 'row',
- justifyContent: 'center',
- },
- boxLoginOtherText: {},
- boxLoginSocial: {
- flexDirection: 'row',
- justifyContent: 'center',
alignItems: 'center',
+ justifyContent: 'center'
},
- boxLoginSocialItem: {
- width: 34,
- height: 34,
- flexDirection: 'row',
- justifyContent: 'center',
- alignItems: 'center',
- borderRadius: 5,
+ boxLoginLine: {
+ width: 80,
+ height: 1,
+ backgroundColor: '#e1e1e1',
+ },
+ boxLoginLineChiaText: {
marginHorizontal: 5,
- backgroundColor: '#3b5998',
+ color: '#777',
+ fontWeight: '300',
},
- boxLoginSocialFace: {},
- boxLoginSocialGoogle: {
- backgroundColor: '#df4a32',
+ loginSocial: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
},
- boxLoginSocialZalo: {
- backgroundColor: '#0f8edd',
+ loginSocialItem: {
+ width: 40,
+ height: 40,
+ borderRadius: 20,
+ backgroundColor: '#3B5998',
+ marginHorizontal: 8,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
},
- boxLoginSocialIcon: {
- fontSize: 16,
- color: '#fff',
+ loginSocialItemIcon: {
+ fontSize: 18,
+ color: '#fff'
},
- boxLoginSocialImg: {
- width: 16,
- height: 16,
+ loginSocialItemImg: {
+ width: 22,
+ height: 24,
+ },
+ loginSocialItemFace: {},
+ loginSocialItemGoogle: {
+ backgroundColor: '#DF4A32',
+ },
+ loginSocialItemZalo: {
+ backgroundColor: '#0F8EDD'
},
});
diff --git a/screens/SettingAccount.tsx b/screens/SettingAccount.tsx
new file mode 100644
index 0000000..9ffdf79
--- /dev/null
+++ b/screens/SettingAccount.tsx
@@ -0,0 +1,160 @@
+import * as React from 'react';
+import { useState } from 'react';
+import { Alert, Button, Image, StyleSheet, Dimensions, SafeAreaView, ScrollView, TouchableOpacity, ImageBackground, Modal, Pressable } from 'react-native';
+import { LinearGradient } from 'expo-linear-gradient';
+import { Ionicons, FontAwesome } from '@expo/vector-icons';
+import EditScreenInfo from '../components/EditScreenInfo';
+import { Text, View } from '../components/Themed';
+import { TextInput } from 'react-native-gesture-handler';
+import { useNavigation } from '@react-navigation/native';
+import { Switch } from 'react-native-paper';
+
+export default function SettingAccount() {
+ const navigation = useNavigation();
+ return (
+
+
+
+
+
+
+
+ );
+}
+
+const HeaderAll = () => {
+ const navigation = useNavigation();
+ return (
+
+ navigation.navigate('AccountHome')}>
+
+
+ Cài đặt
+
+ )
+}
+
+const ContentSettingAccount = () => {
+ const [isSwitchOn, setIsSwitchOn] = useState(false);
+ return (
+
+
+
+ Cho phép nhận thông báo
+ setIsSwitchOn(!isSwitchOn)} />
+
+
+
+
+
+ Chính sách
+
+
+
+
+ Trung tâm hỗ trợ
+
+
+
+
+ Phản hồi
+
+
+
+
+ Quy chế hoạt động
+
+
+
+
+ Giới thiệu Nagakawa
+
+
+
+
+
+ Đăng xuất
+
+
+
+ )
+}
+
+const winWidth = Dimensions.get('window').width; //full width
+const winHeight = Dimensions.get('window').height; //full height
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ headerAll: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 10,
+ },
+ goBack: {
+ width: 50,
+ height: 40,
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ goBackIcon: {
+ fontSize: 24,
+ },
+ headerAllTitle: {
+ fontWeight: '700',
+ width: winWidth - 70,
+ textAlign: 'center'
+ },
+ boxSettingAccountAll: {
+ width: winWidth,
+ height: winHeight,
+ paddingTop: 30,
+ },
+ boxSettingAccount: {
+ width: winWidth,
+ backgroundColor: '#f2f2f2',
+ height: '100%'
+ },
+ boxSettingAccountList: {
+ marginBottom: 10,
+ },
+ boxSettingAccountListToggleItem: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ padding: 10,
+ justifyContent: 'space-between',
+ },
+ boxSettingAccountItemTextToggle: {},
+ boxSettingAccountItemToggle: {},
+ boxSettingAccountItem: {
+ width: '100%',
+ borderBottomWidth: 1,
+ borderBottomColor: '#f2f2f2',
+ padding: 10,
+ },
+ boxSettingAccountItemText: {},
+ boxSettingAccountListLogout: {
+ padding: 10,
+ backgroundColor: 'rgba(0,0,0,0)',
+ },
+ boxSettingAccountLogout: {
+ width: '100%',
+ height: 40,
+ borderColor: '#D8262F',
+ borderWidth: 1,
+ borderRadius: 5,
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ backgroundColor: '#fff',
+ },
+ boxSettingAccountLogoutText: {
+ fontWeight: '700',
+ fontSize: 14,
+ textTransform: 'uppercase',
+ color: '#D8262F',
+ },
+});