Commit Graph

860 Commits

Author SHA1 Message Date
5bfa5fd642 refactor: abandoned updateProblem
删除了 src/app/actions/updateProblem.ts 文件,移除了 updateProblem函数及其相关逻辑。这可能是为了简化代码结构或使用新的实现方法。
2025-06-20 17:37:00 +08:00
6e02c67013 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 17:37:00 +08:00
012ca82d76 feat(admin): Implement admin problem editing and protected routing 2025-06-20 17:37:00 +08:00
Dioxide
c9f8448721 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-20 17:37:00 +08:00
e0e19deb4e feat(creater): add feature to display multi-language description and solution in problem-creater
- 在编辑题目描述和解析面板中添加语言切换功能
- 实现获取题目支持的语言列表和对应语言的题目数据
- 增加添加新语言的功能(仅前端)
-优化题目描述和解析的编辑、预览和对比功能
- 在预览中添加 Accordion 和 VideoEmbed 组件支持
2025-06-20 17:37:00 +08:00
2f0547aa58 feat(problem-editor): add feature to preload problem information if there already has had data in database
- 添加了数据预加载功能,通过 getProblemData API 获取题目信息
- 优化了各个编辑面板的实现,提高了代码复用性和可维护性- 新增了测试用例编辑功能,支持多输入参数的管理
- 改进了题解编辑面板,增加了预览和对比功能
- 统一了表单元素的样式和交互方式,提升了用户体验
2025-06-20 17:37:00 +08:00
9c96e11ecc feat(problem-editor): realize backend for save problem edit
- 在编辑面板组件中添加 onUpdate属性,用于处理数据更新
- 新增 updateProblem 函数,实现问题数据的更新逻辑
- 在问题编辑页面中集成更新功能,实现即时保存
2025-06-20 17:37:00 +08:00
712813eee6 refactor(creater): optimize problem-creater
-为 edit-description-panel 和 edit-solution-panel 组件添加 Card 组件包装,提升视觉效果
- 用 CoreEditor 组件替换原有的 Textarea,增强编辑功能
- 优化组件结构,提高可维护性和可扩展性
2025-06-20 17:37:00 +08:00
794872105f feat(问题编辑): add problem-editor page
- 添加了编辑问题描述、解决方案、详细信息、代码模板和测试用例的组件
- 实现了问题编辑页面的基本布局和功能
- 增加了富文本预览和对比功能
- 支持多种编程语言的代码编辑- 提供了测试用例的添加和删除功能
2025-06-20 17:37:00 +08:00
acca25bd65 refactor(components): 重构 AI优化编辑器
- 将 AIProblemEditor 组件改为 AIEditorWrapper 组件
- 移除与语言服务器相关的逻辑和状态管理- 简化了代码结构,提高了组件的可复用性和可维护性
- 优化了 AI 代码优化功能,增加了应用优化结果的按钮
-调整了样式,使界面更加直观
2025-06-20 17:37:00 +08:00
fee5dfccdf feat: migrate prototype of ai-optimized-editor feature 2025-06-20 17:37:00 +08:00
56618fd335 refactor: flexlayout 2025-06-20 17:37:00 +08:00
598ac222ed refactor(auth): Relocate unauthorized page 2025-06-20 17:37:00 +08:00
Dioxide
a47dcc1354 Create the unauthorized page 2025-06-20 17:37:00 +08:00
058cb2d766 feat(ui): add all Shadcn components 2025-06-20 17:37:00 +08:00
0b9c338de4 refactor(run): rename trim to isTrim and simplify output comparison
- Change boolean parameter name from 'trim' to 'isTrim' for better clarity
- Simplify output comparison logic by inlining ternary expression
2025-06-16 16:59:48 +08:00
dioxide
7f79b901b7 Add trim function to ignore the whitespace character.
Add a trim key to mark whether the answer should be trimmed.
Add a judgement to determine whether the trim should work.
2025-06-15 17:16:39 +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