Rebrand the entire application from "胡萝卜社区" (Carrot BBS) to "威友" (WithYou), including:
Some checks failed
Frontend CI / build-and-push-web (push) Failing after 2m51s
Frontend CI / ota-android (push) Successful in 11m16s
Frontend CI / build-android-apk (push) Failing after 12m54s

- Update app name, package name (skin.carrot.bbs → cn.qczlit.withyou), and bundle identifier
- Update API endpoints (bbs.littlelan.cn → withyou.littlelan.cn)
- Update URL scheme (carrotbbs:// → withyou://)
- Rename database from carrot_bbs to with_you
- Update CI/CD pipeline image names and artifact naming
- Add Android signing configuration for release builds
- Update all UI text and comments throughout the codebase
- Refactor registerStore to use in-memory state instead of AsyncStorage persistence
- Improve WebRTC track handling and call stream management
- Add metro platform resolution for native platform support

BREAKING app package, database, and URLs are no longer valid
This commit is contained in:
lafay
2026-04-22 16:54:51 +08:00
parent 1c3797ea7d
commit 437dab3b6e
47 changed files with 221 additions and 235 deletions

View File

@@ -1,6 +1,6 @@
/**
/**
* 忘记密码页 ForgotPasswordScreen简洁表单样式
* 胡萝卜BBS - 找回密码
* 威友 - 找回密码
*
* 设计风格:
* - 纯白背景,扁平化设计

View File

@@ -1,6 +1,6 @@
/**
/**
* 登录页 LoginScreen简洁表单样式
* 胡萝卜BBS - 用户登录
* 威友 - 用户登录
*
* 设计风格:
* - 纯白背景,扁平化设计

View File

@@ -1,13 +1,13 @@
/**
/**
* 注册页面(分步向导版)
* 胡萝卜BBS - 用户注册流程
* 威友 - 用户注册流程
*
* 步骤:
* 1. 输入邮箱
* 2. 填写验证码
* 3. 设置用户信息
*
* 使用 registerStore 持久化存储步骤数据
* 使用 registerStore 纯内存状态管理
*/
import React, { useEffect, useMemo, useRef } from 'react';
@@ -42,7 +42,7 @@ import { RegisterStep1Email } from './RegisterStep1Email';
import { RegisterStep2Verification } from './RegisterStep2Verification';
import { RegisterStep3Profile } from './RegisterStep3Profile';
// 胡萝卜橙主题色
// 威友橙主题色
const THEME_COLORS = {
primary: '#FF6B35',
primaryLight: '#FF8C5A',
@@ -87,16 +87,9 @@ export const RegisterScreen: React.FC = () => {
const fadeAnim = useRef(new Animated.Value(0)).current;
const slideAnim = useRef(new Animated.Value(20)).current;
// 恢复持久化的数据
const [isHydrated, setIsHydrated] = React.useState(false);
// 页面挂载时重置倒计时,避免上次残留的倒计时导致无法重新获取验证码
useEffect(() => {
const hydrateData = async () => {
const { hydrate } = useRegisterStore.getState();
await hydrate();
setIsHydrated(true);
};
hydrateData();
setCountdown(0);
}, []);
// 检查是否已登录

View File

@@ -1,9 +1,9 @@
/**
/**
* 欢迎页 WelcomeScreen
* 胡萝卜BBS - 用户欢迎页
* 威友 - 用户欢迎页
*
* 亮色模式:白色主色调 + 胡萝卜橙辅色
* 暗色模式:深色背景 + 胡萝卜橙辅色
* 亮色模式:白色主色调 + 威友橙辅色
* 暗色模式:深色背景 + 威友橙辅色
*/
import React, { useEffect, useRef, useMemo } from 'react';
@@ -89,7 +89,7 @@ export const WelcomeScreen: React.FC = () => {
{/* 品牌区域 */}
<View style={styles.brandSection}>
<Text style={styles.welcomeEn}>Welcome To</Text>
<Text style={styles.brandName}></Text>
<Text style={styles.brandName}></Text>
<View style={styles.brandUnderline} />
<Text style={styles.subtitle}>
@@ -139,7 +139,7 @@ function createWelcomeStyles(colors: AppColors) {
paddingBottom: 40,
},
// 装饰性背景元素 - 使用胡萝卜橙的淡色
// 装饰性背景元素 - 使用威友橙的淡色
decorCircle1: {
position: 'absolute',
top: -100,
@@ -147,7 +147,7 @@ function createWelcomeStyles(colors: AppColors) {
width: 400,
height: 400,
borderRadius: 200,
backgroundColor: colors.primary.main + '08', // 非常淡的胡萝卜
backgroundColor: colors.primary.main + '08', // 非常淡的威友
},
decorCircle2: {
position: 'absolute',

View File

@@ -1,6 +1,6 @@
/**
/**
* 认证屏幕导出
* 胡萝卜BBS - 登录注册模块
* 威友 - 登录注册模块
*/
export { LoginScreen } from './LoginScreen';

View File

@@ -1,6 +1,6 @@
/**
/**
* 发帖页 CreatePostScreen响应式适配
* 胡萝卜BBS - 发布新帖子
* 威友 - 发布新帖子
* 参考微博发帖界面设计
* 表单在宽屏下居中显示
* 图片选择器在宽屏下显示更大的预览

View File

@@ -1,6 +1,6 @@
/**
/**
* 首页 HomeScreen
* 胡萝卜BBS - 首页展示
* 威友 - 首页展示
* 支持列表和多列网格模式(响应式布局)
*/

View File

@@ -1,6 +1,6 @@
/**
/**
* 帖子详情页 PostDetailScreen - QQ频道风格响应式版本
* 胡萝卜BBS - 显示完整帖子内容和评论
* 威友 - 显示完整帖子内容和评论
* 桌面端使用双栏布局,移动端使用单栏布局
*/

View File

@@ -1,6 +1,6 @@
/**
/**
* 搜索页 SearchScreen响应式版本
* 胡萝卜BBS - 搜索帖子、用户
* 威友 - 搜索帖子、用户
* 支持响应式布局,宽屏下显示更大的搜索结果区域
*/

View File

@@ -1,6 +1,6 @@
/**
/**
* 聊天页 ChatScreen
* 胡萝卜BBS - 私信/群聊聊天界面
* 威友 - 私信/群聊聊天界面
* 高级现代化设计
* 支持群聊功能:显示发送者头像和昵称、@提及功能
* 支持响应式布局(桌面端宽屏优化)

View File

@@ -1,6 +1,6 @@
/**
/**
* 消息列表页 MessageListScreen
* 胡萝卜BBS - 消息列表
* 威友 - 消息列表
*
* 【重构后】使用MessageManager架构
* - 纯渲染组件,不直接管理数据

View File

@@ -1,6 +1,6 @@
/**
/**
* 通知页 NotificationsScreen扁平化风格
* 胡萝卜BBS - 系统消息列表
* 威友 - 系统消息列表
* 【游标分页】使用 messageService.getSystemMessagesCursor
* 支持响应式布局
*

View File

@@ -1,6 +1,6 @@
/**
/**
* PrivateChatInfoScreen 私聊聊天管理页面
* 胡萝卜BBS - 私聊设置界面
* 威友 - 私聊设置界面
* 参考QQ和微信的实现提供聊天管理功能
*/

View File

@@ -1,6 +1,6 @@
/**
/**
* 关于我们页面 AboutScreen
* 胡萝卜BBS - 应用信息、版本检查与更新
* 威友 - 应用信息、版本检查与更新
* 扁平化设计风格,参考登录、注册、设置页面
*/
@@ -39,7 +39,7 @@ const THEME_COLORS = {
primaryDark: '#E55A2B',
};
const APP_NAME = '萝卜社区';
const APP_NAME = '威友';
const APP_SLOGAN = '连接校园,分享生活';
const APP_VERSION = Constants.expoConfig?.version || '1.0.0';
const BUILD_NUMBER = Constants.expoConfig?.android?.versionCode || Constants.expoConfig?.ios?.buildNumber || '1';

View File

@@ -1,6 +1,6 @@
/**
/**
* 聊天设置页 ChatSettingsScreen
* 胡萝卜BBS - 聊天个性化设置
* 威友 - 聊天个性化设置
*/
import React, { useMemo, useCallback, useRef } from 'react';

View File

@@ -1,6 +1,6 @@
/**
/**
* 数据与存储设置页 DataStorageScreen响应式适配
* 胡萝卜BBS - 缓存管理、存储统计
* 威友 - 缓存管理、存储统计
*/
import React, { useState, useEffect, useCallback, useMemo } from 'react';

View File

@@ -1,6 +1,6 @@
/**
/**
* 编辑资料页 EditProfileScreen响应式适配
* 胡萝卜BBS - 编辑用户资料
* 威友 - 编辑用户资料
* 与用户资料页样式完全一致
* 表单在宽屏下居中显示
*/

View File

@@ -1,6 +1,6 @@
/**
/**
* 通知设置页 NotificationSettingsScreen响应式适配
* 胡萝卜BBS - 通知相关设置
* 威友 - 通知相关设置
* 在宽屏下居中显示
*/

View File

@@ -1,6 +1,6 @@
/**
/**
* 隐私政策页面 PrivacyPolicyScreen
* 胡萝卜BBS - 隐私政策
* 威友 - 隐私政策
* 扁平化设计风格
*/
@@ -22,7 +22,7 @@ import { useResponsive, useResponsiveSpacing } from '../../hooks';
// 内容最大宽度
const CONTENT_MAX_WIDTH = 400;
// 胡萝卜橙主题色
// 威友橙主题色
const THEME_COLORS = {
primary: '#FF6B35',
};
@@ -34,7 +34,7 @@ const LAST_UPDATED = '2026年4月4日';
const PRIVACY_SECTIONS = [
{
title: '引言',
content: `萝卜社区(以下简称"我们"或"本应用")非常重视用户的隐私和个人信息保护。我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。
content: `威友(以下简称"我们"或"本应用")非常重视用户的隐私和个人信息保护。我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。
本隐私政策旨在帮助您了解我们如何收集、使用、存储、共享和保护您的个人信息,以及您享有的相关权利。请您在使用我们的服务前,仔细阅读并理解本隐私政策的全部内容。
@@ -293,7 +293,7 @@ export const PrivacyPolicyScreen: React.FC = () => {
<View style={styles.highlightBox}>
<Text style={styles.highlightTitle}></Text>
<Text style={styles.highlightText}>
</Text>
</View>

View File

@@ -1,6 +1,6 @@
/**
/**
* 个人主页 ProfileScreen
* 胡萝卜BBS - 当前用户个人主页
* 威友 - 当前用户个人主页
* 使用统一的 UserProfileScreen 组件mode='self'
*/

View File

@@ -1,6 +1,6 @@
/**
/**
* 设置页 SettingsScreen响应式适配
* 胡萝卜BBS - 应用设置
* 威友 - 应用设置
* 在宽屏下居中显示,最大宽度限制
*/
@@ -363,7 +363,7 @@ export const SettingsScreen: React.FC = () => {
<View style={styles.footer}>
<Text variant="caption" color={colors.text.hint}>
v{APP_VERSION}
v{APP_VERSION}
</Text>
<Text variant="caption" color={colors.text.hint} style={styles.copyright}>
© 2026

View File

@@ -1,6 +1,6 @@
/**
/**
* 用户协议页面 TermsOfServiceScreen
* 胡萝卜BBS - 用户服务协议
* 威友 - 用户服务协议
* 扁平化设计风格
*/
@@ -22,7 +22,7 @@ import { useResponsive, useResponsiveSpacing } from '../../hooks';
// 内容最大宽度
const CONTENT_MAX_WIDTH = 400;
// 胡萝卜橙主题色
// 威友橙主题色
const THEME_COLORS = {
primary: '#FF6B35',
};
@@ -34,7 +34,7 @@ const LAST_UPDATED = '2026年4月4日';
const TERMS_SECTIONS = [
{
title: '一、协议的范围',
content: `1.1 本协议是您与萝卜社区(以下简称"我们"或"本应用")之间关于您使用本应用服务所订立的协议。
content: `1.1 本协议是您与威友(以下简称"我们"或"本应用")之间关于您使用本应用服务所订立的协议。
1.2 本协议内容包括协议正文及所有我们已经发布或将来可能发布的各类规则、公告或通知。所有规则为本协议不可分割的组成部分,与协议正文具有同等法律效力。

View File

@@ -1,6 +1,6 @@
/**
/**
* 统一的用户主页组件
* 胡萝卜BBS - 支持两种模式self当前用户和 other其他用户
* 威友 - 支持两种模式self当前用户和 other其他用户
* 采用现代卡片式设计,优化视觉层次和交互体验
* 支持桌面端双栏布局
*/

View File

@@ -1,6 +1,6 @@
/**
/**
* 用户主页 UserScreen
* 胡萝卜BBS - 查看其他用户资料
* 威友 - 查看其他用户资料
* 使用统一的 UserProfileScreen 组件mode='other'
*/