feat: 添加评论、反应、离线编辑及主题定制功能
All checks were successful
test/timeline-frontend/pipeline/head This commit looks good

- 实现评论系统,包括评论输入、列表展示和集成指南
- 添加反应功能组件(ReactionBar、ReactionButton、ReactionPicker)
- 实现离线编辑支持,包括同步状态管理和冲突解决
- 添加主题定制功能,支持多种配色方案和主题预览
- 新增多视图布局选项(时间线、分组、砌体视图)
- 实现个人资料编辑器,支持头像、简介和自定义字段编辑
- 添加统计页面,展示存储使用情况和上传趋势
- 新增相册管理功能,支持相册创建、编辑和照片管理
- 实现响应式设计和加载骨架屏组件
- 扩展国际化支持,新增孟加拉语、波斯语、印尼语、日语、葡萄牙语等语言
- 添加错误边界组件和离线指示器
- 更新配置文件、路由和依赖项
- 新增完整的文档、测试用例和集成指南
This commit is contained in:
2026-02-25 15:02:05 +08:00
parent 97a5ad3a00
commit 5a0aa2b3c1
210 changed files with 23556 additions and 300 deletions

View File

@@ -1,5 +1,5 @@
// https://umijs.org/config/
import { defineConfig } from '@umijs/max';
import { defineConfig } from 'umi';
import { join } from 'path';
import defaultSettings from './defaultSettings';
import proxy from './proxy';
@@ -155,4 +155,61 @@ export default defineConfig({
esbuildMinifyIIFE: true,
requestRecord: {},
/**
* @name Webpack configuration
* @description Custom webpack configuration for code splitting and optimization
*/
chainWebpack: (config: any) => {
// Ignore Windows system files to prevent Watchpack errors
config.watchOptions({
ignored: [
'**/node_modules',
'**/.git',
'**/C:/DumpStack.log.tmp',
'**/C:/pagefile.sys',
'**/C:/swapfile.sys',
'**/C:/System Volume Information',
'**/C:/$*', // Ignore all system files starting with $
],
});
// Split large vendor libraries into separate chunks
config.optimization.splitChunks({
chunks: 'all',
cacheGroups: {
// Ant Design and related libraries
antd: {
name: 'antd',
test: /[\\/]node_modules[\\/](@ant-design|antd|@antv|rc-)/,
priority: 20,
},
// React and related libraries
react: {
name: 'react',
test: /[\\/]node_modules[\\/](react|react-dom|react-router|react-router-dom)/,
priority: 20,
},
// Other vendor libraries
vendors: {
name: 'vendors',
test: /[\\/]node_modules[\\/]/,
priority: 10,
},
},
});
// Optimize images
config.module
.rule('images')
.test(/\.(png|jpe?g|gif|webp|svg)$/)
.use('url-loader')
.loader('url-loader')
.options({
limit: 8192, // Inline images smaller than 8KB
name: 'static/images/[name].[hash:8].[ext]',
});
return config;
},
});