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
b55ed07004
fix(Loading): update loading state rendering with skeletons for better UX
2025-03-18 19:49:03 +08:00
91ce73d72b
feat(Loading): add skeletonClassName prop to customize Skeleton style
2025-03-18 19:46:19 +08:00
6c53c5ee32
refactor(page): replace accordion structure with LanguageServerAccordion component
2025-03-18 19:37:30 +08:00
bd085751b6
feat(component): add LanguageServerAccordion for language server settings
2025-03-18 19:36:36 +08:00
1acd915459
feat(store): add useAdminSettingsStore for managing admin settings
2025-03-18 19:34:45 +08:00
449dfd56f2
refactor(loading): add className prop and support additional props
2025-03-18 19:34:00 +08:00
7eb6eedf22
feat(settings): add Suspense with Loading fallback in language server layout
2025-03-18 19:33:14 +08:00
ceb01aec59
feat(dashboard): add admin dashboard page
2025-03-18 14:58:19 +08:00
2248645a38
feat(sidebar): update navigation links for settings page
2025-03-18 14:53:12 +08:00
827fb26966
feat(language-server): add settings page for language server configuration
2025-03-18 14:45:45 +08:00
06c711bdaf
feat(form): add language-server form for settings
2025-03-18 14:43:48 +08:00
494b899f09
feat(actions): add language server configuration handling
2025-03-18 14:33:51 +08:00
6ec039eeb5
feat(admin): add language server settings layout
2025-03-18 11:01:35 +08:00
168df31fad
refactor(admin): replace breadcrumb with Navbar in dashboard layout
2025-03-18 10:40:03 +08:00
0dec1e5697
feat(navbar): add breadcrumb navigation component
2025-03-18 10:36:26 +08:00
047cd04ea3
feat(components/ui): add Accordion component from shadcn/ui
2025-03-17 20:21:20 +08:00
6a4855086e
feat(component/ui): add Textarea component from shadcn/ui
2025-03-17 17:57:20 +08:00
f266d9cdf7
feat(dashboard): remove guest prop and return notFound for non-ADMIN users
2025-03-17 12:06:48 +08:00
4ef120178c
fix(nav-main): concatenate base URL with sub-item URL
2025-03-17 11:58:51 +08:00
b403a0f977
refactor(components): extract NavUserProps and NavMainProps type and optimize type definitions
2025-03-17 11:35:05 +08:00
cb966297e1
refactor(app-sidebar): support external user prop and remove internal user data
2025-03-17 10:45:23 +08:00
36c6dd138f
feat(dashboard): add layout component for dashboard
2025-03-17 10:07:00 +08:00
a5faab67c5
feat(components/ui): add Sidebar-07 component from shadcn/ui
2025-03-16 20:31:21 +08:00
aa10163c51
feat(code-editor): update component to set path based on language configuration
2025-03-16 20:00:55 +08:00
af0ece8952
feat(judge): integrate Prisma for editor language configurations
2025-03-16 19:32:34 +08:00
0cb5484fbd
chore(store): update result type and remove unused imports
2025-03-16 19:31:05 +08:00
2d4abc5141
chore(types): delete src/types/judge.ts file
2025-03-16 19:28:52 +08:00
f34a01e8f5
feat(judge): remove unused judge configuration file
2025-03-16 17:07:24 +08:00
f3b9ae64f4
feat(code-editor): refactor to support dynamic language and LSP configuration
2025-03-16 16:36:02 +08:00
332e019e70
feat(workspace/editor): add language server config support and optimize data fetching logic
2025-03-16 16:24:58 +08:00
4dc3b44bf0
feat(workspace-editor): add languageServerConfigs support to WorkspaceEditorHeader
2025-03-16 16:06:33 +08:00
004bdb510b
feat(language-selector): update to support multiple language server configurations
2025-03-16 15:59:59 +08:00
acfeee5a26
refactor(language-server): replace EditorLanguageMetadata with EditorLanguageConfig and LanguageServerConfig for better type safety
2025-03-16 15:49:46 +08:00
31c5d86f2c
chore(store): update CodeEditorStore for LSP config changes
2025-03-16 15:40:00 +08:00
ff8eff5891
chore(config, types): remove deprecated language server and editor language files
2025-03-16 15:39:07 +08:00
c1999bd386
refactor(utils): update getPath function to use EditorLanguageConfig from Prisma
2025-03-16 15:36:54 +08:00
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