Commit Graph

617 Commits

Author SHA1 Message Date
cb940f8608 refactor(problemset): simplify layout by removing Suspense wrapper 2025-04-08 19:15:06 +08:00
d799578150 refactor(editor/header): adjust workspace header layout structure 2025-04-07 12:32:15 +08:00
a7419fe1ba fix(editor/footer): delay the import of Monaco's MarkerSeverity until window is defined 2025-04-07 12:05:17 +08:00
3e5e2d2a62 feat(dockview): support dynamic Lucide icons via string in tab headers 2025-04-07 10:32:58 +08:00
9a51c1547f feat(problems): add inactive state to dockview panels 2025-04-06 20:38:51 +08:00
01b19eadde feat(problem): enhance panels with icons using Lucide-react 2025-04-06 18:17:58 +08:00
da26648a9b feat(dockview): refactor component API and add customization options 2025-04-06 18:16:43 +08:00
67e1445f98 refactor(problemset): use Dockview components with dynamic params in description form 2025-04-06 17:40:29 +08:00
4c120388ab feat(problem): add ProblemPage with DockView layout 2025-04-06 17:34:07 +08:00
9598430c9a refactor(layout): use children prop instead of individual panel components 2025-04-06 15:58:12 +08:00
8d7d88511e refactor(app/problems/[id]): restructure components into features directory with index exports 2025-04-06 15:46:43 +08:00
787f91b743 style(problemset): increase odd row background opacity in tables 2025-04-05 23:34:48 +08:00
424f24694b feat(problemset): add metadata, description, and solution forms for new problem creation 2025-04-05 23:17:36 +08:00
ba676b3213 feat(problem): add Bot panel and adapt to new dockview API 2025-04-05 18:03:36 +08:00
b8576dbf10 feat(dockview): refactor to generic configurable dockview component 2025-04-05 17:50:07 +08:00
6c34fa0171 refactor(problems): restructure bot parallel routing 2025-04-05 16:21:35 +08:00
0d074a556d feat(store): add hydration logic and state management to new problem store 2025-04-04 21:13:12 +08:00
54ac7b3cd5 feat(editor): add Markdown editor component with Monaco editor integration 2025-04-04 20:24:11 +08:00
11ecdcc535 feat(shiki): add support for markdown highlighting 2025-04-04 19:43:33 +08:00
a8e243204b feat(layout): refactor problem layout to use DockView for organizing content sections 2025-04-04 18:13:14 +08:00
2f1a9767f1 feat(dockview): add Dockview component and panel layout management 2025-04-04 14:03:05 +08:00
ba11f1d5ba style(layout): update html and body class names for full-height layout 2025-04-04 13:36:34 +08:00
d61f3d9b0c refactor(styles): rename style folder to styles 2025-04-04 13:00:36 +08:00
30fd6fd386 refactor(actions): move actions from @/app/actions to @/actions 2025-04-04 10:04:38 +08:00
901e2aa487 feat(admin/problemset): add new problem creation pages 2025-04-02 09:29:18 +08:00
623e4929ac feat(admin/problemset): add Zustand store for new problem state 2025-04-02 09:28:09 +08:00
74e85edd33 feat(admin/problemset): add schema definition for new problem 2025-04-02 09:27:05 +08:00
1875e98106 feat(problemset/table): wrap Add Problem button with Next.js Link 2025-04-02 08:38:51 +08:00
548f0b7184 feat(components/ui): add Switch component from shadcn/ui 2025-04-01 17:33:09 +08:00
750fb74653 chore(imports): update imports to use @/generated/client instead of @prisma/client 2025-04-01 11:46:25 +08:00
f16363ae72 feat(auth): enable GitHub dangerous email account linking 2025-04-01 00:12:58 +08:00
aa9d6d5586 feat(judge): add stdin support with test cases and default timeLimit 2025-03-31 22:07:02 +08:00
7f3ac2e0ec style(problemset): refine table row styles for better UI consistency 2025-03-31 22:02:49 +08:00
653402614a feat(admin/problemset): add problem list table with Prisma query 2025-03-31 21:39:18 +08:00
ce41afa383 feat(admin/problemset): add interactive problemset data table
- Implement responsive data table with TanStack React Table

- Add dynamic filtering for difficulty and search

- Support server-side pagination controls

- Include row selection and batch delete functionality

- Add column visibility toggling

- Style table with custom hover states and accessibility features
2025-03-31 21:28:28 +08:00
139c0ba76d feat(components/ui): add Table component from shadcn/ui 2025-03-30 21:08:03 +08:00
6ab3e16598 refactor(utils): move getDifficultyColor function 2025-03-30 21:04:23 +08:00
daa7775862 chore(sidebar): simplify navigation structure 2025-03-30 20:51:38 +08:00
99f6696fa2 feat(nav-main): refactor sidebar menu to handle items without submenus 2025-03-30 20:43:12 +08:00
25920fcb68 feat(utils): add difficulty color utility and update type imports 2025-03-30 20:30:58 +08:00
192d882fdd fix(banner): update component to use 'flex-none' for flexbox layout 2025-03-30 20:21:59 +08:00
452174a946 chore(editor): update Monaco Editor configuration for improved UX 2025-03-28 15:45:15 +08:00
d859796755 refactor(theme): update Monaco theme configuration to use default light and dark themes 2025-03-28 13:08:14 +08:00
33e19d3318 fix(form): show error message when input is empty before submitting form 2025-03-28 10:42:59 +08:00
e490f1bcea fix(video-embed): refactor URL generation and prevent Bilibili autoplay 2025-03-28 10:38:46 +08:00
95eed59c26 feat(ai-bot): add Ctrl+Enter support and tooltip for message submission 2025-03-27 15:17:36 +08:00
869957de19 feat(mdx-components): add VideoEmbed component to MDX components map 2025-03-27 14:06:04 +08:00
535d8ec51a feat(mdx/content): add component for embedding YouTube and Bilibili videos 2025-03-27 14:05:16 +08:00
a86a42a483 feat(mdx-components): add AccordionComponent to MdxComponents 2025-03-27 13:33:36 +08:00
671f29b66a feat(mdx/content): add AccordionComponent for collapsible sections with lightbulb icon 2025-03-27 13:33:01 +08:00
fbe0ef63d8 refactor(playground): simplify chat layout and unify scroll area styles 2025-03-26 22:57:16 +08:00
4ec1943738 fix(chat-bubble): adjust message padding and layout styles 2025-03-26 22:51:03 +08:00
2605b211bc feat(pre): add horizontal scrolling support for code blocks 2025-03-26 22:48:46 +08:00
793db58e36 feat(mdx): add scroll support for tables 2025-03-26 22:48:00 +08:00
9e634853e8 fix(styles): remove default margin from markdown figures 2025-03-26 19:50:40 +08:00
b6f16becda feat(docker): support remote Docker client configuration 2025-03-26 14:49:27 +08:00
b9c843e33e chore(metadata): rename project to Judge4c and update description 2025-03-25 22:01:12 +08:00
d31edbaf08 refactor(playground): remove generateStaticParams function 2025-03-25 21:02:09 +08:00
1de4396eaa feat(workspace-editor-footer): add error and warning marker count 2025-03-25 13:18:41 +08:00
4736f77cbf fix(problem-editor): add editor validation handling 2025-03-25 13:08:29 +08:00
a55ef88745 feat(hook): add markers state and setter to useProblem hook 2025-03-25 13:05:22 +08:00
a7d0bc54bc feat(provider): initialize markers in problem store provider 2025-03-25 13:03:40 +08:00
2c013097a8 feat(problem-store): add markers to problem store state and actions 2025-03-25 13:01:34 +08:00
315a33bd95 fix(ai-bot): correct bot name from "Asi" to "Ask" 2025-03-25 12:22:17 +08:00
99f8407e2a feat(ai-bot): add empty state UI and improve message handling 2025-03-25 10:29:25 +08:00
d560904779 feat(api/chat): add OpenAI-based chat route with sarcastic AI personality 2025-03-25 10:03:04 +08:00
7d73118759 feat(ai-bot): enhance AI chat with code integration and optimizations 2025-03-25 00:27:56 +08:00
ef37451313 chore(ui): add eslint-disable for unused variables in ChatMessageList 2025-03-24 21:27:12 +08:00
c0783f0648 chore(ui): add eslint-disable for empty object type in ChatInputProps 2025-03-24 21:26:47 +08:00
cbe8ff9941 feat(ai-bot): integrate problem data into AI bot page initialization 2025-03-24 21:24:20 +08:00
8d8b6666b4 feat(playground): add AI chat interface for bot 2025-03-24 19:58:48 +08:00
c7e2b59ddf feat(playground): add AI bot layout with suspense fallback 2025-03-24 19:57:07 +08:00
6f26be6119 feat(playground): add AI layout with bot tab 2025-03-24 19:56:06 +08:00
da92cd49bc feat(playground): add AI panel to problem layout 2025-03-24 19:55:17 +08:00
599d44b341 refactor(globals): migrate global styles to components and adjust layout 2025-03-24 13:57:26 +08:00
378d568694 fix(toast): update ExitCodeToast styling and layout 2025-03-24 13:08:21 +08:00
2b4a4b527e feat(cli): add all components with shadcn-chat-cli 2025-03-24 11:38:00 +08:00
cc3fb8afc4 feat(playground): add generateStaticParams for problem static generation 2025-03-24 11:28:40 +08:00
45cbbc2978 refactor(PlaygroundLayout): separate templates from problemData 2025-03-24 10:39:56 +08:00
d0118eca65 refactor(playground): migrate problem description to client component 2025-03-24 10:33:14 +08:00
288a3cc4c5 feat(playground): include full problem data in provider 2025-03-24 10:32:20 +08:00
0c9ad2b8b0 refactor(mdx-preview): use MdxComponents and add className prop 2025-03-24 10:31:09 +08:00
7a0a13aa97 feat(hook): add problem field to useProblem hook 2025-03-24 10:29:46 +08:00
dcb666c12d feat(problem-store-provider): pass problem data to ProblemStoreProvider 2025-03-24 10:28:58 +08:00
2a90162c73 feat(problem-store): add problem field to ProblemState 2025-03-24 10:28:16 +08:00
c97613ac1d refactor(problem-editor): rename CodeEditor to ProblemEditor 2025-03-23 23:55:11 +08:00
9e4bcfaf96 refactor(lsp-status-button): update LSP status logic to use WebSocket state 2025-03-23 23:53:07 +08:00
09a8276d39 refactor(problem-editor): modify LSP connection logic to manage WebSocket state 2025-03-23 23:51:58 +08:00
1796d21a09 refactor(language-server): modify connectToLanguageServer to return both client and webSocket 2025-03-23 23:51:12 +08:00
f246ff1a6d feat(use-problem): integrate WebSocket into problem hook 2025-03-23 23:49:34 +08:00
cea8748a4e feat(problem-store-provider): update to include WebSocket in provider state 2025-03-23 23:48:19 +08:00
3fbec8cd24 feat(problem-store): add WebSocket to store and update actions 2025-03-23 23:47:36 +08:00
6df93de3ca feat(header): add LSP status button to workspace header 2025-03-23 22:05:59 +08:00
cd5f3c88dc refactor(problem-editor): optimize event handlers with useCallback 2025-03-23 21:03:53 +08:00
4842c9302c feat(problem-editor): add LSP support and language client connection 2025-03-23 18:50:07 +08:00
becb48f4d7 feat(use-problem): add monacoLanguageClient state management 2025-03-23 16:59:22 +08:00
0e5e683ef3 refactor(use-problem): pass problemId to getPath function 2025-03-23 15:36:53 +08:00
b339e407cf feat(utils): include problemId in getPath function 2025-03-23 15:34:57 +08:00
c5cf52168b refactor(problemset): remove force-dynamic export 2025-03-23 14:16:57 +08:00
45a9950ad3 fix(credentials-sign-in-form): redirect to dashboard after successful sign-in 2025-03-22 13:49:12 +08:00
985da4f804 feat(auth): modify signIn logic to prevent redirect after credentials sign-in 2025-03-22 13:18:06 +08:00
107f5d6670 feat(problemset): display sequential index instead of database id 2025-03-22 12:30:04 +08:00
e5ba5dd51a refactor(hooks): rename use-problem-editor.ts to use-problem.ts 2025-03-22 00:23:27 +08:00
695dabe821 refactor(problem-editor): rename problem-editor-provider.tsx to problem-store-provider.tsx 2025-03-22 00:00:49 +08:00
8904e13a68 refactor(problem-editor): replace Zustand store with useRef store 2025-03-21 23:59:07 +08:00
14bee1ade8 feat(store): add problem store for managing editor state 2025-03-21 23:58:50 +08:00
f43ba10a57 refactor(store): rename src/store to src/stores 2025-03-21 23:58:40 +08:00
69115c4ef0 feat(run-code): integrate exit code toast and update problem editor hook 2025-03-21 11:08:00 +08:00
b46a603f62 feat(toast): add custom exit code toast component with icons and messages 2025-03-21 11:07:10 +08:00
b19692ee4f feat(problem-editor): add MonacoLanguageClient to problem editor state 2025-03-20 16:44:34 +08:00
321a712bf9 feat(playground-layout): integrate problem data fetching and editor configuration 2025-03-20 16:12:23 +08:00
d79b88e0b6 refactor(page): simplify WorkspaceEditorPage by removing unnecessary database queries and state management 2025-03-20 16:10:11 +08:00
ceee810e14 refactor(page): update import paths for WorkspaceEditorHeader and WorkspaceEditorFooter 2025-03-20 15:58:05 +08:00
91d9344bc9 refactor(header): update import style for RunCode component 2025-03-20 15:51:59 +08:00
bb8d893419 chore(store): remove useCodeEditorStore.ts 2025-03-20 15:47:18 +08:00
bc541fc605 refactor(header): convert default exports to named exports for buttons and language selector 2025-03-20 15:46:09 +08:00
547c458a20 refactor(redo-button): replace useCodeEditorStore with useProblemEditor in RedoButton component 2025-03-20 15:43:14 +08:00
5db172fce3 feat(LanguageSelector): add loading state for hydration 2025-03-20 15:41:46 +08:00
7051f57204 refactor(WorkspaceEditorFooter): replace useCodeEditorStore with useProblemEditor 2025-03-20 15:39:10 +08:00
00f83d69f1 refactor(ResetButton): replace useCodeEditorStore with useProblemEditor 2025-03-20 15:35:53 +08:00
0ae01d35bc feat(UndoButton): replace useCodeEditorStore with useProblemEditor 2025-03-20 15:34:45 +08:00
a6595c51db feat(format-button): switch to useProblemEditor hook for editor state 2025-03-20 15:28:44 +08:00
12d0eed66a feat(copy-button): update to use useProblemEditor hook for editor state 2025-03-20 15:26:33 +08:00
74c8175153 feat(editor): refactor code editor component to problem editor 2025-03-20 15:15:37 +08:00
cc76648437 refactor(useProblemEditor): update hooks to support language-specific localStorage keys 2025-03-20 15:11:23 +08:00
458bdfbf42 fix(useMonacoTheme): return theme ID instead of the full theme object 2025-03-20 14:47:16 +08:00
783b8415ea refactor(editor): integrate ProblemEditorProvider for workspace editor 2025-03-20 14:44:17 +08:00
fae504b35d chore(components): remove unused core-editor component 2025-03-20 14:42:45 +08:00
9814358637 feat(problem-editor): add hydration state for better rehydration handling 2025-03-20 14:40:09 +08:00
7a29d751d3 chore(store): delete unused useProblemEditorStore.ts file 2025-03-20 14:19:23 +08:00
d2bafafc14 refactor(problem-editor-provider): Add editor state and actions 2025-03-20 14:18:15 +08:00
69dfb8cb12 refactor(useProblemEditor): refactor to use useProblemEditorStore for state management 2025-03-20 14:15:37 +08:00
298d2c1c86 refactor(WorkspaceEditorHeader): remove unused props and simplify component 2025-03-20 13:30:42 +08:00
6bd3a44d8d refactor(language-selector): update to use useProblemEditor hook 2025-03-20 13:25:47 +08:00
a44826990c refactor(hooks): improve useProblemEditor state management and persistence 2025-03-20 13:08:00 +08:00
2d83d3f143 feat(providers): add ProblemEditorProvider context for state management 2025-03-20 13:05:51 +08:00
8290634afd fix(utils): update function to use fileName instead of language 2025-03-19 18:18:44 +08:00
1c0ffb8cda feat(hooks): add useProblemEditor hook for managing problem-specific editor language 2025-03-19 15:14:11 +08:00
71227b0890 feat(store): add problem editor state management with zustand 2025-03-19 15:13:34 +08:00
154b66d524 refactor(hooks): rename monacoTheme to currentTheme in useMonacoTheme 2025-03-19 14:58:11 +08:00
24b5d96913 feat(core-editor): Add CoreEditor component with Monaco Editor integration 2025-03-19 13:18:00 +08:00
8ab8892388 fix(auth): improve credential validation and password verification 2025-03-19 08:34:15 +08:00
919016cf27 fix(auth): update error message for sign-in and sign-up functions 2025-03-18 23:24:36 +08:00
0e16b9ff6c feat(credentials-sign-up-form): add user registration with transition and toast notifications 2025-03-18 22:52:00 +08:00
7ecef7679f feat(credentials-sign-in-form): add loading state, error handling, and navigation after sign in 2025-03-18 22:50:59 +08:00
bef8dcee44 feat(auth): enhance signIn and signUp with error handling and form value types 2025-03-18 22:50:06 +08:00
c9c07664cf feat(layout): update Toaster position to top-right 2025-03-18 22:49:06 +08:00
a33bf167d4 rename(components): update file names for consistency 2025-03-18 22:14:12 +08:00
63c0656f25 feat(auth): assign ADMIN role to the first user on sign up 2025-03-18 21:53:59 +08:00
e25a97d698 feat(auth): add event to assign ADMIN role to the first user 2025-03-18 21:53:12 +08:00