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;