Commit Graph

481 Commits

Author SHA1 Message Date
07ffcf439b refactor(code-editor-store): replace DefaultEditorLanguageConfig with DEFAULT_EDITOR_LANGUAGE constant 2025-03-16 14:28:25 +08:00
b0bb5b5250 feat(editor-language): simplify language configuration to a constant 2025-03-16 14:27:28 +08:00
ee4020f50f feat(workspace): pass editorLanguageConfigs to LanguageSelector and WorkspaceEditorHeader 2025-03-16 14:18:14 +08:00
b0e00e7d69 feat(language-selector): integrate icons for languages in language selector 2025-03-16 13:33:16 +08:00
02f4fc1c3f feat(config): add mapping for EditorLanguage to icons 2025-03-16 13:31:08 +08:00
82d85d3b31 refactor(config): remove icon property from EditorLanguageConfig 2025-03-16 13:24:06 +08:00
939cd4b2f0 refactor(types): remove icon property from EditorLanguageMetadata type 2025-03-16 13:23:32 +08:00
d1188f5ea6 chore(components): move features to components/features 2025-03-16 12:05:59 +08:00
db4bc0dc73 chore(config): remove problem folder 2025-03-15 22:35:15 +08:00
672b627ed1 chore(app): remove playground folder 2025-03-15 22:34:23 +08:00
3e4c58d953 refactor(AuthLayout): replace <a> with <Link> for better navigation 2025-03-15 00:11:51 +08:00
740bc1e00b feat(problemset): optimize database query by selecting specific fields 2025-03-14 18:59:44 +08:00
cd50e73fc9 refactor(auth): extract saltRounds constant 2025-03-14 17:15:38 +08:00
116519a70b feat(auth): refactor sign up and sign in forms with react-hook-form and zod validation 2025-03-14 17:08:11 +08:00
468e72e9a8 feat(auth): add sign up and sign in functions with credentials 2025-03-14 17:06:19 +08:00
abae72118a feat(components/ui): add Form component from shadcn/ui 2025-03-14 15:55:37 +08:00
0215644e6c refactor(auth): extract credentials sign-in and sign-up forms into separate components 2025-03-14 15:54:32 +08:00
5f49d6841e feat(layout): add Sonner Toaster for toast notifications 2025-03-14 15:36:29 +08:00
18d9b28e1e feat(components/ui): add Sonner component from shadcn/ui 2025-03-14 15:33:07 +08:00
907d108714 feat(auth): implement custom credentials provider with session management 2025-03-14 14:39:26 +08:00
bfaaf25732 feat(auth): add layout for authentication pages with redirect logic 2025-03-14 14:38:51 +08:00
2d872da445 feat(auth): add sign-in and sign-up pages 2025-03-14 14:37:32 +08:00
095af823e4 feat(auth): add sign-in and sign-up forms with GitHub sign-in option 2025-03-14 14:36:35 +08:00
eadd276c29 feat(auth): add GitHubSignIn component 2025-03-14 14:35:07 +08:00
47c219bc4a refactor(avatar-button): replace sign-in handler with redirect to /sign-in 2025-03-14 14:34:05 +08:00
e6e5ea98ea feat(auth): add validation schema using Zod 2025-03-14 14:22:58 +08:00
17dd98c78c refactor(utils): remove type annotation from getPath function 2025-03-14 11:04:12 +08:00
e2dce21261 feat(components/ui): add Label component from shadcn/ui 2025-03-14 10:11:22 +08:00
60aef705d5 refactor(editor): replace loading skeleton with custom Loading component 2025-03-13 11:44:14 +08:00
2f037f8a78 feat(layout): add Suspense with fallback loading for problemset layout 2025-03-13 11:24:24 +08:00
b78547a992 feat(run-code): add tooltip to button for better UX 2025-03-13 10:48:01 +08:00
574a98e58e chore(auth): move auth.ts to src/lib directory 2025-03-12 22:46:01 +08:00
c6cba8f504 feat(playground-header): replace SettingsButton with AvatarButton 2025-03-12 21:17:50 +08:00
e6b4be4758 feat(problemset-layout): add AvatarButton to problemset layout 2025-03-12 21:17:14 +08:00
171ee8abdc refactor(settings-button): update to use dropdown menu item instead of button 2025-03-12 21:15:44 +08:00
d0235b0989 feat(avatar-button): add AvatarButton component with login/logout functionality 2025-03-12 21:14:18 +08:00
2679f52066 feat(RootLayout): add SettingsDialog component 2025-03-12 17:38:33 +08:00
118b96a7a8 fix(auth): change prisma import to default export 2025-03-12 15:55:42 +08:00
012e0f7d05 fix(problem): remove unnecessary parseInt conversion for problem id 2025-03-12 15:32:14 +08:00
24d94f3802 feat(prisma): add global Prisma client instance 2025-03-12 15:25:31 +08:00
bc7b7e3b8a feat(components/ui): add Avatar component from shadcn/ui 2025-03-12 15:19:41 +08:00
89d9dbd01e feat(auth): add GitHub provider for authentication 2025-03-12 15:18:31 +08:00
256a8614e3 feat(auth): integrate PrismaAdapter with NextAuth for database integration 2025-03-12 15:07:20 +08:00
d3d280e618 refactor(prisma): replace global with globalThis for cross-platform compatibility 2025-03-12 15:06:08 +08:00
18ab071ca6 feat(auth): create route.ts for NextAuth API handler 2025-03-12 15:02:02 +08:00
134cd38964 feat(auth): create auth.ts for authentication setup 2025-03-12 15:01:26 +08:00
eab62706e0 feat(problemset): add dynamic rendering for ProblemsetPage 2025-03-12 13:57:57 +08:00
c58ed38c03 feat(problemset): add sorting by id in problemset page 2025-03-12 12:52:50 +08:00
6d61e6e783 refactor(header): remove state management and add back button 2025-03-12 12:24:53 +08:00
97405a8657 feat(components): add back button component with tooltip 2025-03-12 12:22:41 +08:00
247e54c40c refactor(settings-dialog): integrate settings dialog state with store 2025-03-12 11:49:29 +08:00
83356993e9 refactor(settings-button): integrate settings dialog state with store 2025-03-12 11:48:41 +08:00
efa16c8b77 refactor(store): rename useSettingNavStore to useSettingsStore and update state structure 2025-03-12 11:47:31 +08:00
a7a50231d2 refactor(problems): use Suspense for lazy loading and adjust layout structure 2025-03-12 08:59:38 +08:00
ca2d663533 feat(playground): add min size constraints for resizable panels 2025-03-12 08:23:24 +08:00
2bc704a818 feat(loading): add Loading component 2025-03-11 22:40:21 +08:00
6a01fed089 refactor(prisma): move prisma initialization to default export 2025-03-11 14:58:36 +08:00
862fbf1379 fix(prisma): ensure single Prisma Client instance in development
- Reference: https://www.prisma.io/docs/orm/more/help-and-troubleshooting/nextjs-help#recommended-solution
2025-03-11 12:47:28 +08:00
4b0d238d37 fix(RunCode): update component with custom classes for background and hover states 2025-03-10 23:10:56 +08:00
84ac0a88dc feat(solution): add layout and page components for problem solution, including footer 2025-03-10 20:54:31 +08:00
4727c55bcc refactor(layout, page, description): update problem page layout and structure, including description fetching and TabsContent styling 2025-03-10 20:51:21 +08:00
aaa4c1def5 fix(mdx-components): restore list decoration for ordered and unordered lists
- Restored default list decorations (bullet points for `ul` and numbers for `ol`).
- Solution based on issue from `sindresorhus/github-markdown-css#103`.
2025-03-10 20:41:53 +08:00
13fd49fd18 style(mdx): update code highlighting styles for dark mode 2025-03-10 14:23:19 +08:00
8c847018f0 fix(theme): update code block styles to use useTheme hook value 2025-03-09 20:30:02 +08:00
0868f45a10 chore(playground): comment out the import and usage of ProblemDescriptionFooter 2025-03-09 18:59:55 +08:00
28c10ad590 fix(style): removing shadow 2025-03-09 18:58:48 +08:00
849c8bc609 feat(page): deprecate /playground and redirect to /problemset 2025-03-09 18:21:27 +08:00
0dbed9c284 feat(terminal): add TerminalTestcasePage with release info card 2025-03-09 18:17:18 +08:00
f3303fff3d feat(layout): add TerminalTestcaseLayout component for rendering testcase content 2025-03-09 18:16:28 +08:00
f4078cb985 feat(layout): add terminal layout with Tabs and ScrollArea for testcase display 2025-03-09 18:15:48 +08:00
a7506bed64 refactor(reset-button): remove unnecessary disabled state for button 2025-03-09 15:18:08 +08:00
b9ac439178 fix(header): improve layout and adjust z-index for settings button 2025-03-09 15:14:47 +08:00
dd2f4a733b feat(scroll-area): add horizontal scrollbar to problem description page 2025-03-09 15:04:54 +08:00
163dc4b57c feat(problem-description): add dynamic title to footer and fetch problem title 2025-03-09 14:49:59 +08:00
ef753dd6c8 style(problems, workspace): adjust ScrollArea height and flex layout 2025-03-09 14:46:43 +08:00
3a75c3d415 style(layout): update panel border-radius to rounded-xl 2025-03-09 14:31:26 +08:00
e224fae210 feat(layout): adjust resizable panel layout with equal distribution for workspace and terminal 2025-03-09 13:26:05 +08:00
e082aed9a1 feat(editor): add undo stack support for reset button 2025-03-09 12:13:29 +08:00
28a4b0631d refactor(code-editor): update editor change handler and remove unused event parameter 2025-03-09 11:50:23 +08:00
a691992404 fix(code-editor): improve template handling and default value logic 2025-03-09 11:22:40 +08:00
556fde6546 feat(editor): use problem templates in ResetButton and disable when empty 2025-03-09 11:18:36 +08:00
1766c4a632 feat(editor): add templates prop to WorkspaceEditorHeader and pass to ResetButton 2025-03-09 11:07:47 +08:00
f6fc01ae6a feat(workspace): fetch problem templates and pass to editor header 2025-03-09 11:06:10 +08:00
63bde8cafb feat(editor): fetch problem templates from database 2025-03-09 10:49:34 +08:00
6297419aad feat(code-editor): persist code changes and apply problem templates 2025-03-09 10:48:03 +08:00
5925ea8192 fix(store): initialize editor value as empty string 2025-03-09 10:39:53 +08:00
2ffb366c7c feat(workspace): add editor layout with header and editor page 2025-03-08 21:33:13 +08:00
a14087b395 feat(workspace): add editor layout with footer for problem page 2025-03-08 21:28:11 +08:00
7f94f6a15b feat(playground): add workspace editor footer with cursor position display 2025-03-08 21:27:02 +08:00
6b34110aad feat(workspace): add workspace layout component with tabs and editor 2025-03-08 21:19:27 +08:00
a78431fb61 fix(playground): update file path 2025-03-08 21:17:31 +08:00
c6ffc41d2f fix(playground): update file path from workspace to playground 2025-03-08 21:15:24 +08:00
a7799af2f4 refactor(layout): rename WorkspaceLayout to PlaygroundLayout and modify props 2025-03-08 21:11:18 +08:00
4f6a37df17 fix(prisma): update enum values for EditorLanguage to lowercase ('c' and 'cpp') 2025-03-08 21:03:32 +08:00
7a97e213fe refactor(config): use EditorLanguage from Prisma in language configuration 2025-03-08 20:43:46 +08:00
58bf991afd refactor(types): use EditorLanguage from Prisma instead of defining locally 2025-03-08 20:43:01 +08:00
944c5407bd fix(problem): change content to description for problem page rendering 2025-03-08 20:06:08 +08:00
bddbc03f3a chore(playground): update import path for ProblemDescriptionFooter 2025-03-08 19:52:39 +08:00
d697993e87 refactor(playground): replace Header with WorkspaceHeader 2025-03-08 19:50:21 +08:00
9ff39a0438 feat(problems): add problem description page with MDX rendering 2025-03-08 19:46:01 +08:00
c6ab92e1e7 feat(problems): add footer to problem description layout 2025-03-08 19:44:45 +08:00
e0adfa3075 refactor(workspace): move ProblemDescriptionFooter to features 2025-03-08 19:41:03 +08:00
f6f640927d style(layout): adjust layout to use flexbox in ProblemLayout component 2025-03-08 18:57:51 +08:00
a851223d9f feat(problem): add problem layout with tabs for description, solution, and submission 2025-03-08 18:31:54 +08:00
0644a9f71f feat(workspace): add WorkspaceLayout with resizable panels 2025-03-08 18:00:13 +08:00
70626d0499 rename(header): rename Header to WorkspaceHeader 2025-03-08 17:58:50 +08:00
0a8e2d49b4 fix(redirect): update redirect path to /problemset 2025-03-07 16:38:51 +08:00
9f619d71d1 fix(layout): remove layout.tsx 2025-03-07 16:38:44 +08:00
ba16523c03 feat(problemset): add difficulty color mapping based on problem difficulty 2025-03-07 16:34:51 +08:00
9a04d83f9e feat(problemset): add clickable links for problem IDs and titles 2025-03-07 16:26:00 +08:00
134046ff5a feat(problemset): add page to display published problems in a table 2025-03-07 15:52:11 +08:00
0e8639212e feat(layout): add ProblemsetLayout component with Banner and main content wrapper 2025-03-07 15:36:03 +08:00
b2e358de1b style(banner): update component with background color and layout changes 2025-03-07 15:31:22 +08:00
c12f734831 chore(layout): update layout to remove full height and adjust min-height 2025-03-07 15:11:41 +08:00
833a79d6d0 style(globals): update --sidebar-background to match --card 2025-03-07 15:00:06 +08:00
e504d92ad9 refactor(layout): remove Header from AppLayout and add Header to PlaygroundLayout 2025-03-07 11:45:18 +08:00
0159998234 refactor(components): replace custom pre component with shared Pre component for MDX preview 2025-03-07 11:43:41 +08:00
f1b6e86123 feat(components): add MdxRenderer for rendering MDX content with custom styling and syntax highlighting 2025-03-07 11:37:24 +08:00
9eb6f89587 feat(components): create MdxComponents for custom rendering of MDX content 2025-03-07 11:36:53 +08:00
c0a876322c refactor(component): migrate code block with copy feature to a more reusable pre component 2025-03-07 11:34:17 +08:00
58a25b8a9c feat(rehype-pretty-code): add support for multiple predefined themes (dark and light modes) 2025-03-07 11:31:40 +08:00
56507f0362 feat(monaco-theme): Add default light and dark theme configurations 2025-03-07 11:27:00 +08:00
56905f7e20 feat(settings-dialog): replace placeholder content with AppearanceSettings component 2025-03-06 23:25:23 +08:00
8f6a4aee20 feat(appearance-settings): add theme selection component 2025-03-06 23:22:40 +08:00
21c88fa8ab feat(store): change default activeNav value to "Appearance" and add partial persistence 2025-03-06 22:39:53 +08:00
2a42c711bf refactor(mdx-preview): replace next-themes with useMonacoTheme 2025-03-06 21:29:52 +08:00
af59e0f432 feat(components/ui): add Radio Group component from shadcn/ui 2025-03-06 21:25:18 +08:00
93c6e66d78 feat(components/ui): add Table component from shadcn/ui 2025-03-06 16:41:19 +08:00
214f4fabef chore(lib): add prisma client initialization 2025-03-06 11:29:10 +08:00
0d29c56750 feat(language-server): add logging for URL creation in connectToLanguageServer 2025-03-05 19:21:55 +08:00
5f79671aa5 refactor(code-editor): dynamically fetch lspConfig from LanguageServerConfig 2025-03-05 13:29:17 +08:00
353aff9b4d refactor(header, reset-button, useCodeEditorStore): remove unnecessary value prop and refactor related components 2025-03-05 10:18:06 +08:00
3336a9f1d0 feat(config/problem): add TEMP_DEFAULT_EDITOR_VALUE 2025-03-05 09:36:38 +08:00
a33033b48d refactor(config/judge.ts, types/judge.ts): split judge configuration and types 2025-03-05 09:27:00 +08:00
808dd96a50 feat(language-selector): update language selector logic and integrate LSP config 2025-03-05 08:46:44 +08:00
d33f214450 refactor(button): refactor ResetButton to accept value prop 2025-03-05 08:34:54 +08:00
2a47b469b0 feat(language-server): add environment variable support for configuration 2025-03-05 08:33:38 +08:00
470fa306c2 feat(editor): add language icon support 2025-03-05 08:32:33 +08:00
ca82b94b0f refactor: replace old SUPPORTED_LANGUAGES config with new EditorLanguageConfig config 2025-03-05 08:30:58 +08:00
753422ebf4 refactor: remove unused editor and language config files 2025-03-05 08:28:52 +08:00
527c52abbc feat(editor): refactor code editor with LSP support and state management 2025-03-05 00:33:19 +08:00
0c94bb2fa3 refactor(store): restructure code editor store and update configuration 2025-03-05 00:31:57 +08:00
a920cbc4b8 refactor(utils): rename languageServerConfigs to LanguageServerConfig 2025-03-04 21:28:47 +08:00
398928d933 style(editor): format code style for consistency 2025-03-04 21:27:53 +08:00
d89a45daa8 feat(editor): update loading state with padding and refactor dynamic import 2025-03-04 21:26:51 +08:00
0c1ecbcff2 feat(editor): initialize CoreEditorLsp component 2025-03-04 21:05:23 +08:00
598ca75829 feat(editor): add default editor options configuration 2025-03-04 21:02:16 +08:00
af23dd3289 feat(editor): add language server connection via WebSocket 2025-03-04 20:58:06 +08:00
742a827072 feat(language-server): add configuration for C and C++ 2025-03-04 20:53:19 +08:00
1f417fb4e6 feat(shiki): improve Shiki highlighter initialization with dynamic theme and language support 2025-03-04 20:29:21 +08:00
6d9c6701d4 feat(monaco-theme): update Monaco theme configuration with label metadata 2025-03-04 20:29:07 +08:00
ec9f3b2475 feat(editor-language): update language configurations and types for C and C++ 2025-03-04 20:28:41 +08:00
d8fa37dd8a feat(theme): add MonacoTheme enum, configuration and hook 2025-03-04 20:06:33 +08:00
6ebf8fe935 refactor(problem-submission-page): simplify result destructuring and memo dependencies 2025-03-03 18:36:22 +08:00
6cf241b57b refactor(settings-dialog): update sidebar navigation items and cleanup imports 2025-03-03 15:50:00 +08:00
70d30c6cc6 refactor(settings): integrate Zustand store for navigation state management 2025-03-03 15:39:32 +08:00
30f12d0cd7 feat(store): add Zustand store for setting navigation persistence 2025-03-03 15:38:06 +08:00
4f7f367320 feat(settings-dialog): improve scroll behavior with ScrollArea 2025-03-03 15:24:35 +08:00
07c625d310 feat(header): add SettingsDialog and toggle its visibility via SettingsButton 2025-03-03 15:10:06 +08:00
09ef2bf22a feat(components/ui): add Sidebar-13 component from shadcn/ui 2025-03-03 14:51:13 +08:00
aa255fc2e1 refactor(store): rename useCodeEditorState to useCodeEditorStore in imports 2025-03-03 14:20:25 +08:00
64655d8118 refactor(code-editor-store): rename and add hydration state, update storage handling 2025-03-03 14:18:32 +08:00
8bf109679d feat(tabs-store): persist only problemTab and workspaceTab in local storage 2025-03-03 14:17:22 +08:00
2b6b7c54d5 feat(workspace): add tabs state management with zustand and loading skeleton 2025-03-03 13:57:08 +08:00
faad41039a feat(problem): add tabs state management with zustand and loading skeleton 2025-03-03 13:56:25 +08:00
466caed5bd feat(store): add zustand store for tabs state management 2025-03-03 13:55:33 +08:00
dcbfe4c3d7 style(judge): align equal signs and comments for better readability 2025-03-03 12:10:16 +08:00
eab8743095 feat(header): add settings button to header 2025-03-03 11:40:05 +08:00
1d81013122 feat(components): add settings button component with tooltip 2025-03-03 11:39:02 +08:00
5045e6f8c6 feat(@workspace/@editor): add toolbar buttons to editor header 2025-03-03 10:41:57 +08:00
0e4f9e0be9 feat(@workspace/@editor): add ResetButton component 2025-03-03 10:40:56 +08:00
4dbe390e3f feat(@workspace/@editor): add UndoButton component 2025-03-03 10:40:44 +08:00
2ddfb02fe8 feat(@workspace/@editor): add RedoButton component 2025-03-03 10:40:31 +08:00
806509130c feat(@workspace/@editor): add FormatButton component 2025-03-03 10:40:17 +08:00
4aad78b671 feat(@workspace/@editor): add CopyButton component 2025-03-03 10:40:01 +08:00
4be37fdf1e feat(components/ui): add Tooltip component from shadcn/ui 2025-03-03 10:33:43 +08:00
11c2e2c317 fix(judge): modify timeout handling logic to resolve on time limit exceeded 2025-03-03 02:29:55 +08:00
03f3d9682a feat(judge): update container configuration and add limits for output and memory 2025-03-03 02:16:24 +08:00
578e33d4c4 feat(config/judge): update result codes and language configurations 2025-03-03 02:12:23 +08:00
524cce5a73 fix(code-editor): ensure localStorage access is safe in non-browser environments 2025-03-02 14:39:04 +08:00
8be38cee1d fix(store): ensure localStorage access is safe in non-browser environments 2025-03-02 14:37:44 +08:00
bc5c9cc699 feat(judge): enhance code execution handling with detailed results and error handling 2025-03-02 14:19:29 +08:00
180dc5e310 feat(editor): update result state type to JudgeResult 2025-03-02 13:40:33 +08:00
3d1ab62fe9 feat(judge): update configuration with exit codes and result type 2025-03-02 13:39:31 +08:00
efdf5089fa feat(judge): add memory usage monitoring and handling 2025-03-02 01:40:25 +08:00
9dede32073 feat(judge): add memory limit configuration to LanguageConfigs 2025-03-02 01:19:16 +08:00
8b744f54f4 feat(judge): add timeout handling to runCode and improve error handling 2025-03-02 00:52:24 +08:00
f4077d2f1d feat(judge): add timeout configuration to LanguageConfigs 2025-03-02 00:52:12 +08:00
6b7bd2c587 fix(submission): add newline to bash code block 2025-03-02 00:50:17 +08:00
2ebda52857 feat(code-editor): persist editor value in local storage 2025-03-02 00:05:42 +08:00
c52748734f fix(judge): replace 'let' with 'const' for variables that are never reassigned 2025-03-01 23:22:15 +08:00
4ad9bac50b refactor(editor): update Monaco editor type imports and state to use editor from monaco-editor 2025-03-01 23:19:35 +08:00
1893faad00 feat(store): persist language setting in code editor state 2025-03-01 23:14:29 +08:00
10a0c7ab99 feat(playground): add submission page for displaying code execution results 2025-03-01 22:29:14 +08:00
164eb3f0f5 feat(code-runner): implement execution result persistence 2025-03-01 21:23:44 +08:00
f63275334e feat(store): add result state to code editor store 2025-03-01 21:15:52 +08:00
38038dc7b1 fix(judge): ensure container remains running and capture stderr separately 2025-03-01 21:07:06 +08:00
83deae7a02 feat(playground): add submission layout component 2025-03-01 19:28:36 +08:00
dc6794b0ca feat(playground): add submission footer component 2025-03-01 19:25:50 +08:00
4a8ad24dcc feat(playground): add submission tab to problem layout 2025-03-01 19:18:24 +08:00