3dtours
8e984e609b
feat: Thêm nút định vị người dùng trên bản đồ điều hướng mobile
...
- Thêm nút 'Vị trí của tôi' ở góc dưới bên trái bản đồ
- Khi bật: map tự động center theo vị trí GPS của người dùng (dùng watchPosition)
- Cho phép thu phóng tự do ngay cả khi đang định vị
- Khi người dùng kéo thả bản đồ thủ công: tự động tắt chế độ định vị
- Nút hoạt động độc lập với nút la bàn (compass)
- Sửa import leaflet.css bị lỗi path
2026-06-25 11:34:09 +07:00
3dtours
b48502c34a
fix: Bản đồ không reset khi người dùng thay đổi zoom trên mobile
...
- Thêm MapInteractionWatcher lưu zoom/center khi người dùng tương tác
- MapSizeHandler dùng ResizeObserver thay vì setTimeout: chỉ gọi invalidateSize khi container thực sự thay đổi (>2px)
- Sau invalidateSize, tự động restore zoom mà người dùng đã chọn
- canFitRef đảm bảo fitBounds chỉ chạy 1 lần duy nhất khi route vừa load
- Áp dụng cho cả chế độ la bàn bật (xoay theo hướng) và tắt (hướng Bắc)
2026-06-25 11:22:29 +07:00
3dtours
978992057a
fix: Luôn giữ kích thước bản đồ người dùng chọn khi tìm đường ngắn nhất
...
- Thay userInteractedRef bằng canFitRef - chỉ fitBounds đúng 1 lần khi route vừa load
- Sau lần fit đầu, canFitRef = false mãi mãi, không bao giờ reset khi route đổi
- FitBounds chỉ chạy khi canFitRef còn true VÀ compass đang tắt
- MapSizeHandler chỉ gọi invalidateSize() mà không setView để không kích hoạt zoomend/moveend
- Loại bỏ useEffect chết đăng ký zoomend/moveend ở page level (đã có trong MapRefSetter)
- Áp dụng cho cả 2 chế độ: compass bật (xoay theo hướng) và tắt (hướng Bắc)
2026-06-25 11:15:09 +07:00
3dtours
ed0fb8dd64
fix: Giữ nguyên zoom/center của người dùng khi bản đồ resize trên mobile
...
- Thêm userInteractedRef để theo dõi người dùng đã zoom/drag chưa
- FitBounds chỉ chạy khi người dùng chưa tương tác
- MapSizeHandler lưu center/zoom trước khi invalidateSize, khôi phục sau nếu user đã tương tác
- MapRotationHandler xóa transform thay vì set rotate(0) khi compass tắt
- Ngăn map tự động reset về mức zoom ban đầu sau khi người dùng pinch-zoom
2026-06-25 11:08:13 +07:00
3dtours
828bc89890
fix: Sửa lỗi bản đồ mobile chỉ hiển thị kích thước mặc định và không zoom
...
- Xóa state viewportHeight phụ thuộc documentElement.clientHeight (không ổn định trên mobile)
- Xóa style dvh/-webkit-fill-available gây lỗi trên iOS Safari
- Đổi layout sang flex-1 thuần túy, không tính chiều cao bằng JS
- Xóa CSS transform khi rotation = 0 để tránh lỗi render trên mobile
- Tăng delay invalidateSize lên 100ms để Leaflet đo đúng kích thước container sau layout
2026-06-25 11:03:45 +07:00
3dtours
b8bf4f88cc
fix: Sửa lỗi bản đồ không full màn hình và không zoom được trên iOS
...
- Dùng viewportHeight từ JS thay vì CSS dvh để tránh vấn đề iOS Safari
- Thêm MapSizeHandler gọi invalidateSize() để Leaflet tính lại kích thước
- Bật scrollWheelZoom, touchZoom, doubleClickZoom, dragging, inertia
- Đặt maxZoom=20, minZoom=2 rõ ràng
- Loại bỏ max-width/overflow-x trong index.css để không ảnh hưởng trang khác
2026-06-25 10:33:01 +07:00
3dtours
f74587376e
feat: Tạo trang bản đồ chỉ đường độc lập TourNavigationPage
...
- Thêm trang TourNavigationPage.tsx hiển thị full màn hình với
top-bar, bản đồ fullscreen và nút la bàn nổi ở góc dưới bên phải
- Cập nhật ItineraryTimeline.tsx: thay thế LocationNavigationModal
bằng callback onOpenNavigationPage để chuyển đến trang mới
- Đăng ký trang tourNavigation trong App.tsx với navigationPayload
- Cập nhật TourDetailPage.tsx truyền onOpenNavigationPage xuống
- Thêm INSTALL_MAP.md hướng dẫn thực hiện tính năng
2026-06-25 10:17:23 +07:00
3dtours
a135196cb5
fix: tính năng tìm đường ngắn nhất và chỉ đường cho người dùng
2026-06-24 22:05:41 +07:00
3dtours
cfdcb573de
feat: khi người dùng click vào nút đầu mỗi điểm để tìm đường đi trên bản đồ
2026-06-24 21:53:52 +07:00
3dtours
f17215f236
feat: khi người dùng click vào nút Chi tiết hành trình thì sẽ tự cuộn đến mốc thời gian hiện tại
2026-06-24 21:25:04 +07:00
3dtours
5e60614588
feat: khi người dùng click vào nút Chi tiết hành trình thì sẽ dựa vào ngày của hệ thống mà chuyển đến Chặng đó
2026-06-24 21:17:26 +07:00
3dtours
e385049652
fix: in đậm cho tiêu đề của cột khi xuất pdf
2026-06-24 20:52:17 +07:00
3dtours
ef295e0994
fix: hiển thị ngày ở các chặng
2026-06-24 20:43:49 +07:00
3dtours
c3382a422d
fix: hiển thị ngày ở các chặng
2026-06-24 20:41:15 +07:00
3dtours
5d47e6d291
fix: lỗi nút xuất PDF và chèn link ở Địa điểm khi xuất PDF
2026-06-24 19:54:14 +07:00
3dtours
957ba6c72c
fix: lỗi font Bold của xuất pdf
2026-06-24 18:17:42 +07:00
3dtours
4b551ccc31
fix: thêm múi giờ vào docker-compose.prod.yml để sửa lỗi hiển thị sai giờ
2026-06-24 17:45:02 +07:00
3dtours
9dc1faee6f
fix: lưu ghi chú ở địa điểm vào ghi chú
2026-06-24 17:05:21 +07:00
3dtours
b998833371
fix: thay đổi màu theme tổi của timeline hành trình
2026-06-24 10:40:59 +07:00
3dtours
13cd68707e
fix: sửa lỗi hiển thị trong itineraryTimeline và MemberDashboard
2026-06-24 09:56:05 +07:00
3dtours
f355b9471a
fix: chọn camera hay thư viện
2026-06-23 18:42:56 +07:00
3dtours
a64af5f9cf
feat: apply theme colors to all pages and modals - implement light/dark theme CSS variables across UI components
2026-06-23 18:28:05 +07:00
3dtours
7182391241
fix: paste trực tiếp tọa độ vào kinh độ vĩ độ
2026-06-23 17:50:05 +07:00
3dtours
28ea9abccd
fix: tạo tags cho ảnh public của guest
2026-06-23 16:01:46 +07:00
3dtours
9f41400bd8
fix: hiển thị 2 nút google sheets và pdf
2026-06-23 14:58:07 +07:00
3dtours
78c5754655
fix: lỗi xem ảnh trong Tour
2026-06-23 12:46:59 +07:00
3dtours
5145835c8a
fix: gửi vị trí khẩn cấp trong Dashboard
2026-06-23 12:44:38 +07:00
3dtours
6b15e7ff02
fix: lỗi hiển thị trong itineraryTimeline
2026-06-23 11:40:41 +07:00
3dtours
a65be48d36
fix: lướt xem ảnh ở màn hình index của người dùng public
2026-06-22 22:16:51 +07:00
3dtours
ac91f6e4c8
fix: admin login khi close tự động logout
2026-06-22 20:22:13 +07:00
3dtours
09b1ee882d
fix: login với Google Oauth lỗi token invite
2026-06-22 20:08:11 +07:00
3dtours
acf867a375
fix: guest hiển thị lời mời này không tồn tại
2026-06-22 16:54:32 +07:00
3dtours
dd2635a44d
fix: guest reload page to accessed MemberDashboard 2
2026-06-22 15:00:42 +07:00
3dtours
29c19c6372
fix: guest reload page to accessed MemberDashboard
2026-06-22 12:45:29 +07:00
3dtours
01d6d7439f
fix: admin empty thùng rác
2026-06-22 12:28:21 +07:00
3dtours
860395cb14
fix: guest and admin logic
2026-06-22 11:41:34 +07:00
3dtours
b1a539235b
fix: lỗi hiển thị ở frontend
2026-06-21 21:53:14 +07:00
3dtours
403c169ddd
feat: tính năng chia sẻ khẩn cấp
2026-06-21 12:52:47 +07:00
3dtours
8d79cd76f6
feat: tíng năng trò chuyện giữa các thành viên và tin nhắn trực tiếp cho bạn bè
2026-06-21 09:46:37 +07:00
3dtours
392a4d4766
fix: khách mời join vào tour gán với tên thêm thủ công
2026-06-21 07:37:20 +07:00
3dtours
55fba75fda
fix: khách mời join vào tour thông qua link mời
2026-06-21 07:11:26 +07:00
3dtours
36157bd53b
bugs: lỗi khi người dùng link để tham gia tour nhưng không xuất hiện trong danh sách thành viên
2026-06-20 20:59:01 +07:00
3dtours
52706cab7d
fix: thêm thành viên ngoài hệ thống vào Tour
2026-06-20 17:56:56 +07:00
3dtours
ae97f061e8
fix: sửa lỗi hiển thị logo trên trang pdf
2026-06-20 17:02:26 +07:00
3dtours
e34d197dd0
fix: sửa lỗi hiển thị thumbnail khi chia sẻ trên facebook
2026-06-20 14:44:31 +07:00
3dtours
fdf41e05fc
fix: sửa lỗi hiển thị trên browser của điện thoại
2026-06-20 12:19:30 +07:00
3dtours
ae74035ad5
fix: cho phép người đã tải ảnh lên được quyền chỉnh sửa
2026-06-20 08:27:58 +07:00
3dtours
ac11bb56db
fix: bố cục lại cách hiển thị thông tin ảnh
2026-06-20 08:04:12 +07:00
3dtours
5081546cdf
feat: cho phép người dùng chọn tọa độ trên bản đồ khi sửa ảnh
2026-06-20 07:40:50 +07:00
3dtours
9da8a9494d
feat: cho phép người dùng chỉnh sửa thông tin ảnh đã upload
2026-06-20 07:37:01 +07:00
3dtours
4373ed684a
fix: ảnh phải giữ nguyên hướng chụp
2026-06-20 07:28:28 +07:00
3dtours
def0e0d0f9
fix: sửa lỗi các nút bị che dưới thanh địa chỉ của chrome, hỗ trợ iphone upload ảnh heic
2026-06-20 07:05:25 +07:00
3dtours
36e8658dad
fix: sửa lỗi iphone ko thể upload
2026-06-19 22:49:51 +07:00
3dtours
6c1b77d7d2
feat: tải ảnh lên bằng tài khoản public và cho phép bình luận
2026-06-19 22:38:16 +07:00
3dtours
4640526e4b
fix: thay đổi ảnh nền trang chủ
2026-06-19 12:38:17 +07:00
3dtours
c7692ab9b6
fix: thay đổi giao diện trang chủ
2026-06-19 12:00:19 +07:00
3dtours
36fbbb9386
fix: remove leaflet liên kết trên bản đồ
2026-06-19 10:34:03 +07:00
3dtours
ef11309399
feat: chuẩn bị backend cho tính năng anonymous user upload ảnh không cần đăng nhập
2026-06-19 08:46:59 +07:00
3dtours
6f2dd0fc01
fix: lỗi đọc nhầm .env ở thư mục backend
2026-06-19 08:13:35 +07:00
3dtours
623f0164c8
feat: cài đặt tính năng gửi mã OTP qua mail xác thực
2026-06-18 23:00:12 +07:00
3dtours
88b47099b1
feat: cài đặt tính năng gửi mã OTP qua mail xác thực
2026-06-18 23:00:03 +07:00
3dtours
659d2a0840
fix: hiển thị market chỉ hướng người dùng di chuyển trên iOS
2026-06-18 21:24:08 +07:00
3dtours
68950dba10
fix: hiển thị market chỉ hướng người dùng di chuyển
2026-06-18 10:51:47 +07:00
3dtours
3e215ae8e8
fix: xoay màn hình theo hướng người nhìn trong màn hình bản đồ đã mượt
2026-06-17 22:41:45 +07:00
3dtours
e7b8c672e0
fix: xoay màn hình theo hướng người nhìn trong màn hình bản đồ đã mượt nhưng đến góc là xoay tròn
2026-06-17 22:36:05 +07:00
3dtours
2462850e2e
fix: xoay màn hình theo hướng người nhìn trong màn hình bản đồ vẫn còn xoay tròn
2026-06-17 22:23:01 +07:00
3dtours
abb61f65cd
feat: xoay màn hình theo hướng người nhìn trong màn hình bản đồ vẫn còn lag
2026-06-17 22:20:57 +07:00
3dtours
da32d59161
feat: nhấn nút toggle status full bản đồ, nhấn nút bản đồ thì giao diện cũ
2026-06-17 21:53:46 +07:00
3dtours
40b1c4f2ab
feat: nhấn nút toggle status bản đồ sẽ hiển thị toàn màn hình
2026-06-17 21:41:43 +07:00
3dtours
55de887f87
feat: nhấn nút toggle status để chuyển đến bản đồ di chuyển
2026-06-17 21:30:41 +07:00
3dtours
ffe3cb6ecd
fix: tạm dừng thuật toán tìm đường đi
2026-06-17 21:16:31 +07:00
3dtours
69c67a1636
fix: sửa lại các tuyến đường đề xuất trên bản đồ
2026-06-17 20:49:30 +07:00
3dtours
f181009fa5
fix: sửa lại các nút hiển thị trên màn hình gom lại thành 1 nút
2026-06-17 20:08:28 +07:00
3dtours
b6551da147
fix: sửa lại cho phép chỉnh sửa thời gian bắt đầu và kết thúc của điểm xuất phát và điểm kết thúc
2026-06-17 19:46:55 +07:00
3dtours
2afb2971da
fix: sửa lại hiển thị của các nút trên bản đồ
2026-06-17 19:37:29 +07:00
3dtours
14ffbb8657
fix: xóa bảng hiển thị mẹo trên bản đồ
2026-06-17 19:34:13 +07:00
3dtours
fbe5ef873b
feat: thêm tính năng hiển thị tooltip mẹo nhấn chuột phải
2026-06-17 19:30:58 +07:00
3dtours
d6ee1dde74
feat: thêm tính năng nút la bàn để xoay map theo hướng Bắc hoặc theo hướng người dùng di chuyển
2026-06-17 19:19:29 +07:00
3dtours
288b40ad12
feat: thêm tính năng tìm tôi để tự động di chuyển bản đồ về vị trí của người dùng
2026-06-17 19:14:18 +07:00
3dtours
3a3296c340
feat: thêm tính năng hiển thị vị trí người dùng trên bản đồ
2026-06-17 18:27:52 +07:00
3dtours
e664a3797e
feat: thêm tính năng đường dành cho xe máy và đi bộ
2026-06-17 18:00:45 +07:00
3dtours
36418673db
feat: thêm tính năng vẽ đường di chuyển trên bản đồ
2026-06-17 17:44:51 +07:00
3dtours
98e4a4a340
fix: lỗi không xuất hiện nút sửa cho điểm bắt đầu và điểm kết thúc
2026-06-17 17:39:53 +07:00
3dtours
bfbbb66747
fix: lỗi bong bóng Tour vẫn xuất hiện và điểm kết thúc
2026-06-17 17:33:47 +07:00
3dtours
1933b58f84
fix: lỗi bong bóng Tour vẫn xuất hiện và điểm bắt đầu là điểm xuất phát
2026-06-17 17:29:40 +07:00
3dtours
05dc80bb6d
fix: lỗi bong bóng Tour vẫn hiển thị sau khi xóa
2026-06-17 17:15:11 +07:00
3dtours
4d63bff214
feat: thêm nút xóa tour trong phần cài đặt của Tour
2026-06-17 15:48:00 +07:00
3dtours
c5474f1ff6
fix: sửa tính năng hiển thị quãng đường tại điểm đến kế tiếp
2026-06-17 15:37:18 +07:00
3dtours
7ad785fed9
feat: thêm tính năng ghi note cho Tour
2026-06-17 12:28:24 +07:00
3dtours
e66f242c2c
fix: click vào nút bình luận không load dược page
2026-06-16 21:44:49 +07:00
3dtours
6026c2227a
fix: UI của trang MyPhotoPage lỗi
2026-06-16 21:25:08 +07:00
3dtours
1eed9b00de
feat: xem ảnh theo cấu trúc của lightroom
2026-06-16 20:38:40 +07:00
3dtours
1709638bfd
optimize: xác nhận redis đã nén dữ liệu
2026-06-16 20:22:53 +07:00
3dtours
37b5d14d7e
optimize: sử dụng redis để cache cho các response từ server
2026-06-16 20:17:17 +07:00
3dtours
2fabdb79df
fix: lỗi các thành viên không thể upload ảnh và không có nút xóa ảnh của user
2026-06-16 18:54:55 +07:00
3dtours
00554224a1
fix: lỗi các thành viên không thể upload ảnh và không có nút xóa ảnh của user
2026-06-16 18:54:24 +07:00
3dtours
88b2182789
feat: thêm chức năng upload ảnh
2026-06-16 17:14:22 +07:00
3dtours
989d60643b
feat: thêm nút tìm kiếm địa điểm cho phần tạo tour, phần thêm địa điểm
2026-06-16 15:45:26 +07:00
3dtours
1772ced959
feat: nút lọc filter tags dropdown
2026-06-16 15:35:45 +07:00
3dtours
c005009da2
feat: Chuyển khám phá địa điểm thành box tìm kiếm địa điểm trên bản đồ
2026-06-16 15:28:10 +07:00