Commit Graph

855 Commits

Author SHA1 Message Date
8f02db22fa feat(creater): realise problem-editor interactive with database logic
- 在 edit-code-panel、edit-description-panel、edit-detail-panel、edit-solution-panel 和 edit-testcase-panel 组件中添加保存逻辑
- 实现与后端 API 的交互,包括保存代码模板、题目描述、详情、解析和测试用例
-优化错误处理和用户提示,使用 toast 组件显示操作结果
- 调整界面布局和交互细节,提升用户体验
2025-06-20 11:42:10 +08:00
e6b18884d6
Merge pull request #33 from massbug/fix-pr-29
Fix pr 29
2025-06-19 17:58:44 +08:00
7d4e4ae2e4 feat(admin): Implement admin problem editing and protected routing 2025-06-19 17:54:35 +08:00
Dioxide
845a26239a The window is basically complete, but there are some issues need to fix.
1. The window won't scroll when complete.
2. The AI needs the context to generate new inputs, I don't know
how to write.
2025-06-18 21:14:50 +08:00
3ac6337f96
Merge pull request #27 from massbug/refactor/problem_creater
Refactor/problem creater
2025-06-18 02:14:38 +08:00
73f96d9c84 feat(creater): add feature to display multi-language description and solution in problem-creater
- 在编辑题目描述和解析面板中添加语言切换功能
- 实现获取题目支持的语言列表和对应语言的题目数据
- 增加添加新语言的功能(仅前端)
-优化题目描述和解析的编辑、预览和对比功能
- 在预览中添加 Accordion 和 VideoEmbed 组件支持
2025-06-17 16:18:59 +08:00
2899629848 feat(problem-editor): add feature to preload problem information if there already has had data in database
- 添加了数据预加载功能,通过 getProblemData API 获取题目信息
- 优化了各个编辑面板的实现,提高了代码复用性和可维护性- 新增了测试用例编辑功能,支持多输入参数的管理
- 改进了题解编辑面板,增加了预览和对比功能
- 统一了表单元素的样式和交互方式,提升了用户体验
2025-06-17 15:24:43 +08:00
207c0502f7 feat(problem-editor): realize backend for save problem edit
- 在编辑面板组件中添加 onUpdate属性,用于处理数据更新
- 新增 updateProblem 函数,实现问题数据的更新逻辑
- 在问题编辑页面中集成更新功能,实现即时保存
2025-06-17 01:35:04 +08:00
1d7a44dcd5 refactor(creater): optimize problem-creater
-为 edit-description-panel 和 edit-solution-panel 组件添加 Card 组件包装,提升视觉效果
- 用 CoreEditor 组件替换原有的 Textarea,增强编辑功能
- 优化组件结构,提高可维护性和可扩展性
2025-06-16 22:41:48 +08:00
69d377403a feat(问题编辑): add problem-editor page
- 添加了编辑问题描述、解决方案、详细信息、代码模板和测试用例的组件
- 实现了问题编辑页面的基本布局和功能
- 增加了富文本预览和对比功能
- 支持多种编程语言的代码编辑- 提供了测试用例的添加和删除功能
2025-06-16 18:37:25 +08:00
57f52b67fa refactor(components): 重构 AI优化编辑器
- 将 AIProblemEditor 组件改为 AIEditorWrapper 组件
- 移除与语言服务器相关的逻辑和状态管理- 简化了代码结构,提高了组件的可复用性和可维护性
- 优化了 AI 代码优化功能,增加了应用优化结果的按钮
-调整了样式,使界面更加直观
2025-06-14 13:33:26 +08:00
2cbc13e441 feat: migrate prototype of ai-optimized-editor feature 2025-06-14 11:33:17 +08:00
941f1a74fa feat: replace dockview with flexlayout-react 2025-06-13 14:03:17 +08:00
03f150214d chore(prisma): make TestcaseResult.output nullable in migration 2025-05-16 10:43:48 +08:00
23a7e2e69e fix(prisma): make TestcaseResult.output field optional 2025-05-16 10:42:20 +08:00
9443ab6d6d refactor(api): extract OpenAI client to shared module 2025-05-14 22:30:45 +08:00
1c031ce24e refactor(judge-button): migrate run code button to standalone component
- Replace RunCodeButton with new JudgeButton component
- Use problem-specific stores instead of playground stores
- Implement new judge toast notification system
- Simplify authentication check logic
- Utilize new TooltipButton component
2025-05-14 17:04:03 +08:00
4ca6840bbd refactor(problems): consolidate judge status toast
- Migrate status toast from shared hooks to problems feature
- Remove deprecated show-status-toast.tsx and status.ts
- Implement self-contained JudgeToast component with built-in status mapping
2025-05-14 16:09:13 +08:00
9003e4b5a4 refactor(components): simplify BackButton by using TooltipButton 2025-05-13 17:38:26 +08:00
2e74ffbac3 refactor(config): migrate editor options to standalone editor config
- Rename `editor-language.ts` to `editor.ts`
- Update interface from `IEditorConstructionOptions` to `IStandaloneEditorConstructionOptions`
- Keep all existing editor options unchanged
2025-05-13 16:57:35 +08:00
49419654a0 feat(problemset): enhance header component with back button and className prop
- Replace problem-header.tsx with new header.tsx implementation
- Add BackButton functionality to navigate to home page
- Make className prop configurable using cn utility
- Maintain existing user avatar functionality
2025-05-13 16:47:11 +08:00
9766dea138 refactor(back-button): relocate and rename back button component
- Move from features/problems/components to shared components directory
- Rename NavigateBackButton to simpler BackButton
- Update component interface naming to BackButtonProps
- Keep all existing functionality intact
2025-05-13 16:43:01 +08:00
ad8a3e646e feat(code-panel): add code editor panel components
- Add CodePanel component as container for editor interface
- Add CodeContent component with Prisma data fetching
- Include CodeContentSkeleton for loading state
- Implement ProblemEditor integration with templates
2025-05-13 16:37:35 +08:00
33930e7a33 chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
2025-05-13 16:34:28 +08:00
bcdd72317c feat(store): add problem editor state management
- Create problem-editor store with Zustand
- Manage editor state including problem, language, value and path
- Implement localStorage persistence for editor content
- Provide utility functions for language and value retrieval
2025-05-13 16:31:38 +08:00
5aec2ec323 refactor(mdx-render): simplify theme configuration and change export style
- Remove custom Monaco theme imports
- Use github default themes for rehypePrettyCode
- Change component export from default to named export
2025-05-13 16:27:46 +08:00
ba1937ecbb refactor(problems): update ProblemHeader import path to new location 2025-05-13 16:14:57 +08:00
aec8393d2d feat(dockview): export Dockview component and create ProblemDockview wrapper
- Export Dockview component from src/components/dockview.tsx to make it reusable
- Create new ProblemDockview component in src/features/problems/components/dockview.tsx that:
  - Integrates with next-intl for locale handling
  - Connects to problem-dockview store
  - Wraps Dockview with problem-specific configuration
  - Adds locale-based key for proper re-rendering
- Maintain existing Dockview functionality including:
  - Layout persistence
  - Panel management
  - API handling
2025-05-13 16:08:33 +08:00
148ae677d7 refactor(problemset): move components to separate files and improve structure
- Move ProblemsetHeader component from 'problemset-header' to 'header'
- Extract problemset table logic into dedicated ProblemsetTable component
- Add Suspense and skeleton loading for better UX
- Update layout and page structure
2025-05-13 16:03:46 +08:00
0e3daefe48 feat(config): add LANGUAGES constant for language enum values 2025-05-13 16:00:52 +08:00
f6ed0baaf0 refactor(prisma): simplify prisma client initialization and remove caching
Removed all caching and logging functionality from prisma.ts, keeping only
the basic Prisma client initialization logic. This includes:
- Removal of getProblems, getCachedProblems, getProblem, getCachedProblem functions
- Removal of related logger and cache imports
- Simplified the global prisma client instantiation
2025-05-13 15:59:57 +08:00
f9cbc5e085 refactor(code-toolbar): standardize component exports and simplify reset logic
- Changed all toolbar action components from named exports with curly braces to default exports
- Simplified ResetButton by moving template logic to useProblemEditorActions hook
- Updated useProblemEditorActions to handle template selection internally using store data
- Renamed problem-editor-store import to problem-editor for consistency
2025-05-13 15:56:28 +08:00
eea16a8224 feat(problems): add localization support for problem descriptions and solutions
- Replace cached problem data with direct Prisma queries for localized content
- Implement locale-based content selection for both descriptions and solutions
- Refactor skeleton loading components structure
- Change all exports from named to default exports
2025-05-13 15:36:07 +08:00
ad2aca2f67 refactor(language-selector): migrate to new location and implementation
- Remove old language selector from `src/components/features/playground/workspace/editor/components`
- Add new implementation in `src/features/problems/code/components/toolbar/controls`
- Update toolbar exports to include the new selector
2025-05-13 15:18:59 +08:00
cea0027799 refactor(shiki): migrate to shiki/core with lazy initialization
- Replace shiki with shiki/core for better tree-shaking
- Change highlighter initialization to explicit theme/lang imports
- Export getHighlighter function instead of direct highlighter instance
- Add error handling for uninitialized highlighter access
2025-05-13 14:48:32 +08:00
2efdc21419 refactor(i18n): replace language-settings with locale-switcher
- Replace react-world-flags with next/image for better optimization
- Simplify locale handling logic and remove unused getUserLocale
- Rename component to be more descriptive (language-settings -> locale-switcher)
- Update all references to use the new component
- Add proper SVG flag assets for supported locales
- Remove react-world-flags dependency from package.json
2025-05-13 00:19:01 +08:00
2e2e0315a8 refactor(hooks): remove theme config and simplify theme hook
- Delete src/config/monaco-theme.ts and src/types/monaco-theme.ts
- Simplify useMonacoTheme hook to directly return theme strings
- Format use-mobile.ts with consistent semicolons and quotes
2025-05-12 21:19:05 +08:00
01b72209ae refactor(i18n): migrate locale configuration to generated types
- Replace hardcoded locale strings with generated Locale enum from client
- Update cookie key name to be more specific (LOCALE_COOKIE_NAME -> JUDGE4C_LOCALE_KEY)
- Rename defaultLocale to DEFAULT_LOCALE for consistency
- Add 'server-only' imports to ensure server-side usage
- Simplify locale validation using Object.values(Locale)
- Clean up accept-language header parsing logic
2025-05-12 21:07:43 +08:00
4cc6456151 refactor(prisma): simplify schema and remove zod-prisma-types
- Reorganized Prisma schema structure with simplified models and relations
- Removed zod-prisma-types generator as it's no longer needed
- Consolidated problem content types into a single ProblemLocalization model
- Simplified testcase and template structures
- Removed unused prisma types file
2025-05-12 19:41:28 +08:00
15b3f630d5 refactor(prisma): simplify schema and remove zod-prisma-types
- Reorganized Prisma schema structure with simplified models and relations
- Removed zod-prisma-types generator as it's no longer needed
- Consolidated problem content types into a single ProblemLocalization model
- Simplified testcase and template structures
- Removed unused prisma types file
2025-05-12 18:32:46 +08:00
0e9207bfce chore(scripts): remove --turbopack flag from dev script 2025-05-12 11:22:31 +08:00
9ec8768393 chore(shiki): convert function to arrow function 2025-05-09 09:42:24 +08:00
baf377b722 refactor(loading): change to named export and arrow function
- Switch from default export to named export
- Convert component to arrow function
- Remove unused props parameter
2025-05-09 09:40:25 +08:00
7e45010487 fix(styles): adjust tabs overflow container height in abyss theme
Changed height property from 'unset !important' to '100%' for .dv-tabs-overflow-container and .dv-tabs-overflow-dropdown-default in the abyss-spaced theme to fix layout issues.
2025-05-08 11:27:10 +08:00
25fd9b5f46 chore(prisma/migrations): add migration for multilingual problem support 2025-05-07 21:09:35 +08:00
cfbbdbf821 feat(prisma/schema): add multilingual support for problem descriptions and solutions
BREAKING CHANGE:
- Removed `description` and `solution` fields from Problem model
- Added new models `ProblemDescription` and `ProblemSolution` with language support (EN/ZH)
- Updated seed data structure to support multilingual content
- Requires database migration and data migration from old structure
2025-05-07 21:04:46 +08:00
f0beb69b2c fix(page): add missing return statement in RootPage component 2025-05-07 16:42:39 +08:00
f93224f56e chore(components): remove unused problem-related components
- Delete footer.tsx from problem/description
- Delete solution.tsx from problem/description
- Delete header.tsx from problem/workspace/editor/components
2025-05-07 14:59:17 +08:00
b67b13d7bf refactor(route): rename [id] to [problemId] in problems route 2025-05-07 14:59:17 +08:00
1db666a2ab refactor(structure): reorganize page and component exports
- Move root page from /(app) to / directory
- Convert default exports to named exports in components
- Rename MainView component to HeroSection for better semantics
2025-05-07 14:06:31 +08:00