Commit Graph

135 Commits

Author SHA1 Message Date
lafay
2321c2dc06 refactor(navigation): replace direct navigation with navigation service
Some checks failed
Frontend CI / ota-android (push) Has been cancelled
Frontend CI / build-android-apk (push) Has been cancelled
Frontend CI / build-and-push-web (push) Has been cancelled
Replace direct `navigation.navigate()` and `navigation.getParent()?.navigate()` calls with centralized `navigationService.navigate()` across multiple screens. Convert screen component functions from JSX elements to array-returning functions in RootNavigator to fix React key warnings and improve render consistency.

- HomeScreen: use navigationService for post and user navigation
- PrivateChatInfoScreen: use navigationService for profile navigation
- ChatScreen: use navigationService for avatar press and user profile navigation
- RootNavigator: convert PublicScreens and AuthenticatedScreens to getPublicScreens() and getAuthenticatedScreens() functions returning arrays with proper keys
2026-03-18 14:52:58 +08:00
lafay
a8f7e907b6 chore: update package-lock.json for expo-linking
Some checks failed
Frontend CI / ota-android (push) Successful in 11m14s
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / build-android-apk (push) Has been cancelled
2026-03-18 14:28:18 +08:00
lafay
937e8112f4 fix: 修复安卓端帖子卡片点击事件冲突问题
Some checks failed
Frontend CI / ota-android (push) Failing after 4m51s
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / build-android-apk (push) Has been cancelled
- 为嵌套TouchableOpacity添加stopPropagation防止事件冒泡
- 修复grid模式下图片和用户头像点击事件
- 修复列表模式下所有交互按钮点击事件
- 优化手势配置添加shouldCancelWhenOutside
2026-03-18 14:21:24 +08:00
lafay
a6cdb97e24 refactor: 架构重构 - 解耦过度耦合模块
主要改动:
1. 创建乐观更新工具函数 (optimisticUpdate.ts)
   - 消除 userStore.ts 中的重复代码

2. 拆分 useResponsive.ts (485行 -> 12个专注模块)
   - useBreakpoint: 断点检测
   - useOrientation: 方向检测
   - usePlatform: 平台检测
   - useScreenSize: 屏幕尺寸
   - useResponsiveValue: 响应式值
   - useResponsiveStyle: 响应式样式
   - useMediaQuery: 媒体查询
   - useColumnCount: 列数计算
   - useResponsiveSpacing: 响应式间距

3. 整理数据层 (Repository 层)
   - ApiDataSource: API数据源
   - LocalDataSource: 本地数据源
   - CacheDataSource: 缓存数据源
   - MessageRepository: 消息仓库

4. 重构 messageManager.ts (2194行 -> 4个模块)
   - MessageStateManager: 状态管理
   - WebSocketMessageHandler: WebSocket处理
   - MessageSyncService: 消息同步
   - ReadReceiptManager: 已读管理

5. 导航解耦 (MainNavigator.tsx: 1118行 -> 100行)
   - 创建 NavigationService 解耦层
   - 拆分多个 Navigator 组件

架构改进:
- 单一职责原则: 每个模块职责明确
- 依赖倒置: 通过接口解耦
- 代码复用: 工具函数可被多处使用
- 可测试性: 各模块可独立测试
2026-03-18 12:11:49 +08:00
lafay
1ffbb63753 fix: 统一修复所有屏幕的安全区域问题
Some checks failed
Frontend CI / ota-android (push) Successful in 10m56s
Frontend CI / build-android-apk (push) Failing after 33m45s
Frontend CI / build-and-push-web (push) Failing after 46s
- 有 header 的屏幕使用 edges={['bottom']}(React Navigation 自动处理顶部)
- 没有 header 的屏幕使用 edges={['top', 'bottom']}(需要自己处理顶部)
- 修复了以下屏幕:
  - HomeScreen: edges={['bottom']} → ['top', 'bottom']
  - MessageListScreen: edges={['top']} → ['top', 'bottom']
  - ScheduleScreen: edges={['top']} → ['top', 'bottom']
  - ProfileScreen: edges={['top', 'bottom']} ✓ 已正确
  - PostDetailScreen: 空状态添加 edges={['bottom']}
  - UserScreen: 空状态添加 edges={['bottom']}
  - NotificationsScreen: edges={[]} → ['bottom']
  - SearchScreen: edges={['left', 'right']} → ['bottom']
  - BlockedUsersScreen: 加载状态添加 edges={['bottom']}
  - GroupInfoScreen: edges={['bottom']} ✓ 已正确
  - PrivateChatInfoScreen: 加载状态添加 edges={['bottom']}
2026-03-18 10:58:41 +08:00
lafay
e230e35ca2 fix: 修复安卓端发帖界面未避让状态栏的问题
Some checks failed
Frontend CI / ota-android (push) Successful in 10m53s
Frontend CI / build-android-apk (push) Failing after 10m15s
Frontend CI / build-and-push-web (push) Failing after 3m28s
2026-03-18 10:22:41 +08:00
lafay
23931df1da Merge branch 'feature/adap-pc' into dev
Some checks failed
Frontend CI / ota-android (push) Successful in 11m5s
Frontend CI / build-and-push-web (push) Has been cancelled
Frontend CI / build-android-apk (push) Has been cancelled
2026-03-18 10:00:00 +08:00
lafay
01796ac695 fix(ci): optimize memory settings for CI stability
Some checks failed
Frontend CI / ota-android (push) Successful in 11m31s
Frontend CI / build-android-apk (push) Failing after 42m46s
Frontend CI / build-and-push-web (push) Failing after 1m47s
Reduce JVM heap and metaspace allocation to fit runner limits.
Add NODE_OPTIONS and restrict NDK/CMake parallelism to prevent
out-of-memory errors during build.
2026-03-18 01:54:14 +08:00
lan
6c032cefbf fix(ci): 移除 dependencyResolutionManagement 让项目使用 build.gradle 仓库配置
Some checks failed
Frontend CI / ota-android (push) Successful in 11m5s
Frontend CI / build-android-apk (push) Failing after 43m29s
Frontend CI / build-and-push-web (push) Failing after 1m37s
2026-03-18 00:51:58 +08:00
71b4f8a679 修复了课程表和发帖按钮 2026-03-18 00:25:46 +08:00
lan
9fb78bb5ee fix(ci): 修复 Gradle 配置,使用完整的 settings.gradle 和 build.gradle 文件替换
Some checks failed
Frontend CI / ota-android (push) Successful in 11m19s
Frontend CI / build-android-apk (push) Failing after 19m34s
Frontend CI / build-and-push-web (push) Failing after 1m12s
2026-03-18 00:19:22 +08:00
lan
8a95dbcb59 fix(ci): 修复 YAML 格式问题,使用 heredoc 正确配置 Maven 镜像
Some checks failed
Frontend CI / ota-android (push) Successful in 12m14s
Frontend CI / build-android-apk (push) Failing after 7m26s
Frontend CI / build-and-push-web (push) Failing after 1m39s
2026-03-17 23:48:57 +08:00
lan
6ba24c59aa fix(ci): 添加阿里云 Maven 镜像解决网络不可达问题 2026-03-17 23:44:54 +08:00
lan
544a7ea156 fix(ci): 只编译 arm64 APK 并修复构建问题
Some checks failed
Frontend CI / ota-android (push) Successful in 11m18s
Frontend CI / build-android-apk (push) Failing after 7m49s
Frontend CI / build-and-push-web (push) Successful in 5m19s
2026-03-17 23:18:07 +08:00
lan
530f54a4a3 fix(ci): 只编译 arm64 APK 并修复 codegen 构建问题 2026-03-17 23:15:36 +08:00
lafay
3d1d7857df ci: 增加Metaspace到1g,移除clean任务减少内存消耗
Some checks failed
Frontend CI / ota-android (push) Successful in 12m36s
Frontend CI / build-android-apk (push) Failing after 23m12s
Frontend CI / build-and-push-web (push) Failing after 1m2s
2026-03-17 20:03:57 +08:00
lafay
4f4c190c3a ci: 修复hermesEnabled属性未定义问题
Some checks failed
Frontend CI / ota-android (push) Successful in 12m39s
Frontend CI / build-android-apk (push) Failing after 19m35s
Frontend CI / build-and-push-web (push) Successful in 3m37s
2026-03-17 19:25:56 +08:00
lafay
b4e4f33e3b ci: 进一步限制Gradle内存使用,设置workers.max=1,添加NODE_ENV
Some checks failed
Frontend CI / ota-android (push) Successful in 10m50s
Frontend CI / build-android-apk (push) Failing after 12m5s
Frontend CI / build-and-push-web (push) Successful in 2m46s
2026-03-17 16:57:16 +08:00
lafay
b010aefbe2 ci: 修复Gradle构建崩溃问题,禁用并行和守护进程
Some checks failed
Frontend CI / ota-android (push) Successful in 11m2s
Frontend CI / build-android-apk (push) Failing after 18m20s
Frontend CI / build-and-push-web (push) Has been cancelled
2026-03-17 16:25:21 +08:00
lan
4ec56de988 ci: 修复Android APK构建前置步骤
Some checks failed
Frontend CI / ota-android (push) Successful in 10m55s
Frontend CI / build-android-apk (push) Failing after 22m57s
Frontend CI / build-and-push-web (push) Successful in 3m2s
在 CI 的 APK 构建任务中增加 expo prebuild 以生成 android 工程,避免仓库未包含原生目录时构建失败。

Made-with: Cursor
2026-03-17 15:43:46 +08:00
lan
f328b2fd31 ci: 修复前端镜像仓库登录凭据
将前端 workflow 的容器仓库登录凭据改为与后端一致的 GIT_USERNAME/GIT_TOKEN,避免登录步骤缺少用户名或密码导致失败。

Made-with: Cursor
2026-03-17 15:26:12 +08:00
lan
f7fd849cb1 ci: 优化Android APK构建环境
Some checks failed
Frontend CI / ota-android (push) Failing after 6m30s
Frontend CI / build-android-apk (push) Failing after 9m13s
Frontend CI / build-and-push-web (push) Failing after 14s
将 APK 构建任务切换到预装 Android SDK 的容器镜像,移除在线安装 SDK 步骤以提升稳定性并避免许可证管道失败。

Made-with: Cursor
2026-03-17 15:24:10 +08:00
lan
ef955db99f ci: 增加前端构建发布流水线
Some checks failed
Frontend CI / ota-android (push) Failing after 9m24s
Frontend CI / build-android-apk (push) Failing after 7m12s
Frontend CI / build-and-push-web (push) Failing after 23s
新增 Gitea CI,覆盖 Android OTA 发布与校验、Android Release APK 打包,以及 Web Docker 镜像构建推送。

Made-with: Cursor
2026-03-17 15:04:12 +08:00
e626eb182b Merge pull request 'PC端的部分适配。登录,注册,首页导航栏竞态条件,搜索栏,系统消息解耦,群聊部分界面' (#2) from feature/adap-pc into master
Reviewed-on: #2
2026-03-17 14:45:34 +08:00
b50bd9abb3 修复了课表周数硬编码 2026-03-17 12:29:04 +08:00
582589d252 Merge remote-tracking branch 'origin/master' into feature/adap-pc 2026-03-16 19:27:05 +08:00
cb2087f779 PC端的部分适配 2026-03-16 17:47:10 +08:00
eb24a3bbdf Merge pull request 'feat: 优化图片加载和展示功能' (#1) from feature/image-optimization into master
Reviewed-on: #1
2026-03-15 12:09:44 +08:00
lan
592167e667 feat: 优化图片加载和展示功能
- 新增 SmartImage 组件优化图片加载体验
- 新增 ImageGrid 组件支持多图布局展示
- 新增 imageHelper 工具函数
- 优化 PostCard 帖子卡片图片展示
- 优化消息页面 SegmentRenderer
- 优化日程页面 ScheduleScreen
- 优化上传服务 uploadService
2026-03-15 02:25:55 +08:00
lan
e9d42fdb01 feat(schedule): add academic system sync and course management improvements
- add educational system synchronization with username/password authentication
- implement long-press course deletion with single/all options
- add multi-lane course display for overlapping same-name courses
- refactor course detail screen with ScrollView and improved layout
- fix teacher display to show per-time-slot instructors instead of single field
- add settings modal with sync option and loading states
2026-03-13 20:40:32 +08:00
lan
798dd7c9a0 feat(navigation): add schedule tab and stack navigator
Add new ScheduleTab to main navigation with ScheduleStackNavigator for managing course schedule screens. Includes CourseDetailScreen with modal presentation. Also exports scheduleService and related types for the new schedule feature.

fix(message): add group_id parameter to invite and request handlers

Pass group_id from extra_data when calling respondInvite and reviewJoinRequest APIs, as the backend now requires this parameter.

refactor(message): extract mergeMessagesById helper method

Centralize message merging logic into a reusable private method to avoid duplication and ensure consistent message deduplication behavior.
2026-03-12 08:37:08 +08:00
lan
f10c9cc1d7 Switch frontend group and conversation requests to RESTful endpoints.
Update service API paths and message reply payload handling to match the backend route changes.

Made-with: Cursor
2026-03-10 20:52:50 +08:00
lan
be84c01abd Migrate frontend realtime messaging to SSE.
Switch service integrations and screen/store consumers from websocket events to SSE, and ignore generated dist-web artifacts.

Made-with: Cursor
2026-03-10 12:58:23 +08:00
lan
63e32b15a3 Reduce noisy runtime logging in frontend flows.
This keeps chat, notification, and post interactions cleaner in production while preserving error-level visibility.
2026-03-09 22:20:44 +08:00
lan
3968660048 Initial frontend repository commit.
Include app source and update .gitignore to exclude local release artifacts and signing files.

Made-with: Cursor
2026-03-09 21:29:03 +08:00