diff --git a/app/auth/login.tsx b/app/auth/login.tsx index 474bb29..69a7983 100644 --- a/app/auth/login.tsx +++ b/app/auth/login.tsx @@ -10,9 +10,10 @@ import { } from "@/utils/storage"; import { parseJwtToken } from "@/utils/token"; import { useRouter } from "expo-router"; -import React, { useCallback, useEffect, useState } from "react"; +import { useCallback, useEffect, useState } from "react"; import { ActivityIndicator, + Image, KeyboardAvoidingView, Platform, ScrollView, @@ -74,7 +75,7 @@ export default function LoginScreen() { if (response?.data.token) { // Lưu token vào storage nếu cần (thêm logic này sau) console.log("Login Token "); - + await setStorageItem(TOKEN, response.data.token); console.log("Token:", response.data.token); router.replace("/(tabs)"); @@ -98,9 +99,23 @@ export default function LoginScreen() { {/* Header */} + {/* Logo */} + - SGW App + Hệ thống giám sát tàu cá + {/* Owner Logo */} + + + Đăng nhập để tiếp tục @@ -160,6 +175,13 @@ export default function LoginScreen() { Đăng ký ngay + + {/* Copyright */} + + + © {new Date().getFullYear()} - Sản phẩm của Mobifone + + @@ -181,8 +203,13 @@ const styles = StyleSheet.create({ marginBottom: 40, alignItems: "center", }, + logo: { + width: 120, + height: 120, + marginBottom: 20, + }, title: { - fontSize: 32, + fontSize: 28, fontWeight: "bold", marginBottom: 8, }, @@ -236,4 +263,20 @@ const styles = StyleSheet.create({ color: "#007AFF", fontWeight: "600", }, + ownerContainer: { + alignItems: "center", + }, + ownerLogo: { + width: 150, + height: 50, + }, + copyrightContainer: { + marginTop: 20, + alignItems: "center", + }, + copyrightText: { + fontSize: 12, + opacity: 0.6, + textAlign: "center", + }, }); diff --git a/assets/images/logo.png b/assets/images/logo.png new file mode 100644 index 0000000..f6d5b86 Binary files /dev/null and b/assets/images/logo.png differ diff --git a/assets/images/owner.png b/assets/images/owner.png new file mode 100644 index 0000000..9c3deb8 Binary files /dev/null and b/assets/images/owner.png differ diff --git a/components/tripInfo/CrewListTable.tsx b/components/tripInfo/CrewListTable.tsx index 00544f3..762fd96 100644 --- a/components/tripInfo/CrewListTable.tsx +++ b/components/tripInfo/CrewListTable.tsx @@ -17,6 +17,12 @@ interface CrewMember { // ⚓ Dữ liệu mẫu // --------------------------- const data: CrewMember[] = [ + { + id: "10", + maDinhDanh: "ChuTau", + ten: "Nguyễn Nhật Minh", + chucVu: "Chủ tàu", + }, { id: "1", maDinhDanh: "TV001", @@ -43,6 +49,10 @@ const CrewListTable: React.FC = () => { setCollapsed((prev) => !prev); }; + const handleCrewPress = (crewId: string) => { + console.log("Crew ID:", crewId); + }; + return ( {/* Header toggle */} @@ -77,7 +87,9 @@ const CrewListTable: React.FC = () => { Mã định danh - Tên + + Tên + Chức vụ @@ -87,7 +99,12 @@ const CrewListTable: React.FC = () => { {data.map((item) => ( {item.maDinhDanh} - {item.ten} + handleCrewPress(item.id)} + > + {item.ten} + {item.chucVu} ))} @@ -109,7 +126,9 @@ const CrewListTable: React.FC = () => { Mã định danh - Tên + + Tên + Chức vụ @@ -119,7 +138,12 @@ const CrewListTable: React.FC = () => { {data.map((item) => ( {item.maDinhDanh} - {item.ten} + handleCrewPress(item.id)} + > + {item.ten} + {item.chucVu} ))} diff --git a/components/tripInfo/NetListTable.tsx b/components/tripInfo/NetListTable.tsx index 6e097f4..1e0146c 100644 --- a/components/tripInfo/NetListTable.tsx +++ b/components/tripInfo/NetListTable.tsx @@ -37,6 +37,10 @@ const NetListTable: React.FC = () => { setCollapsed((prev) => !prev); }; + const handleStatusPress = (id: string) => { + console.log(`ID mẻ lưới: ${id}`); + }; + return ( {/* Header toggle */} @@ -79,7 +83,9 @@ const NetListTable: React.FC = () => { {/* Cột Trạng thái */} - {item.trangThai} + handleStatusPress(item.id)}> + {item.trangThai} + ))} @@ -102,7 +108,9 @@ const NetListTable: React.FC = () => { {/* Cột Trạng thái */} - {item.trangThai} + handleStatusPress(item.id)}> + {item.trangThai} + ))} diff --git a/components/tripInfo/TripCostTable.tsx b/components/tripInfo/TripCostTable.tsx index cb1baaa..76f3caf 100644 --- a/components/tripInfo/TripCostTable.tsx +++ b/components/tripInfo/TripCostTable.tsx @@ -73,6 +73,10 @@ const TripCostTable: React.FC = () => { setCollapsed((prev) => !prev); }; + const handleViewDetail = () => { + console.log("View trip cost details"); + }; + return ( { {tongCong.toLocaleString()} + + {/* View Detail Button */} + + Xem chi tiết + @@ -170,6 +182,14 @@ const TripCostTable: React.FC = () => { {tongCong.toLocaleString()} + + {/* View Detail Button */} + + Xem chi tiết + ); diff --git a/components/tripInfo/style/CrewListTable.styles.ts b/components/tripInfo/style/CrewListTable.styles.ts index bdb971d..4288a48 100644 --- a/components/tripInfo/style/CrewListTable.styles.ts +++ b/components/tripInfo/style/CrewListTable.styles.ts @@ -47,6 +47,11 @@ export default StyleSheet.create({ color: "#111", textAlign: "center", }, + cellWrapper: { + flex: 1.5, + justifyContent: "center", + alignItems: "center", + }, left: { textAlign: "center", }, @@ -64,4 +69,8 @@ export default StyleSheet.create({ color: "#ff6600", fontWeight: "800", }, + linkText: { + color: "#007AFF", + textDecorationLine: "underline", + }, }); diff --git a/components/tripInfo/style/NetListTable.styles.ts b/components/tripInfo/style/NetListTable.styles.ts index fa2fd10..88b2911 100644 --- a/components/tripInfo/style/NetListTable.styles.ts +++ b/components/tripInfo/style/NetListTable.styles.ts @@ -4,13 +4,13 @@ export default StyleSheet.create({ container: { width: "100%", backgroundColor: "#fff", - borderRadius: 10, - padding: 12, + borderRadius: 12, + padding: 16, marginVertical: 10, borderWidth: 1, borderColor: "#eee", shadowColor: "#000", - shadowOpacity: 0.05, + shadowOpacity: 0.1, shadowRadius: 4, elevation: 1, }, @@ -34,7 +34,7 @@ export default StyleSheet.create({ justifyContent: "space-between", alignItems: "center", paddingVertical: 8, - borderBottomWidth: 0.6, + borderBottomWidth: 0.5, borderBottomColor: "#eee", }, tableHeader: { @@ -52,7 +52,7 @@ export default StyleSheet.create({ flex: 0.3, fontSize: 15, color: "#111", - textAlign: "left", + textAlign: "center", paddingLeft: 10, }, headerText: { @@ -72,6 +72,7 @@ export default StyleSheet.create({ }, statusText: { fontSize: 15, - color: "#111", + color: "#4a90e2", + textDecorationLine: "underline", }, }); diff --git a/components/tripInfo/style/TripCostTable.styles.ts b/components/tripInfo/style/TripCostTable.styles.ts index 4cdd26d..914ec10 100644 --- a/components/tripInfo/style/TripCostTable.styles.ts +++ b/components/tripInfo/style/TripCostTable.styles.ts @@ -56,6 +56,17 @@ const styles = StyleSheet.create({ color: "#ff6600", fontWeight: "700", }, + viewDetailButton: { + marginTop: 12, + paddingVertical: 8, + alignItems: "center", + }, + viewDetailText: { + color: "#007AFF", + fontSize: 15, + fontWeight: "600", + textDecorationLine: "underline", + }, }); export default styles;