2025-03-08 10:02:19 +00:00
|
|
|
datasource db {
|
|
|
|
provider = "postgresql"
|
|
|
|
url = env("DATABASE_URL")
|
|
|
|
}
|
|
|
|
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
generator client {
|
|
|
|
provider = "prisma-client-js"
|
|
|
|
output = "../src/generated/client"
|
|
|
|
}
|
|
|
|
|
2025-03-08 10:02:19 +00:00
|
|
|
enum Role {
|
|
|
|
ADMIN
|
|
|
|
GUEST
|
|
|
|
}
|
|
|
|
|
|
|
|
enum Difficulty {
|
|
|
|
EASY
|
|
|
|
MEDIUM
|
|
|
|
HARD
|
|
|
|
}
|
|
|
|
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
enum Locale {
|
|
|
|
en
|
|
|
|
zh
|
2025-03-08 12:42:01 +00:00
|
|
|
}
|
|
|
|
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
enum Language {
|
|
|
|
c
|
|
|
|
cpp
|
2025-03-16 06:37:25 +00:00
|
|
|
}
|
|
|
|
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
enum Protocol {
|
2025-03-18 03:43:54 +00:00
|
|
|
ws
|
|
|
|
wss
|
|
|
|
}
|
|
|
|
|
2025-04-10 14:24:40 +00:00
|
|
|
enum Status {
|
|
|
|
PD // PENDING
|
|
|
|
QD // QUEUED
|
|
|
|
CP // COMPILING
|
2025-03-30 10:39:53 +00:00
|
|
|
CE // Compilation Error
|
2025-04-10 14:24:40 +00:00
|
|
|
CS // Compilation Success
|
|
|
|
RU // RUNNING
|
2025-03-16 09:11:29 +00:00
|
|
|
TLE // Time Limit Exceeded
|
|
|
|
MLE // Memory Limit Exceeded
|
2025-03-30 10:39:53 +00:00
|
|
|
RE // Runtime Error
|
|
|
|
AC // Accepted
|
|
|
|
WA // Wrong Answer
|
2025-04-10 14:24:40 +00:00
|
|
|
SE // System Error
|
2025-03-16 09:11:29 +00:00
|
|
|
}
|
|
|
|
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
enum ProblemContentType {
|
|
|
|
TITLE
|
|
|
|
DESCRIPTION
|
|
|
|
SOLUTION
|
|
|
|
}
|
|
|
|
|
|
|
|
model User {
|
|
|
|
id String @id @default(cuid())
|
|
|
|
name String?
|
|
|
|
email String @unique
|
|
|
|
password String?
|
|
|
|
emailVerified DateTime?
|
|
|
|
image String?
|
|
|
|
role Role @default(GUEST)
|
|
|
|
|
|
|
|
accounts Account[]
|
|
|
|
sessions Session[]
|
|
|
|
// Optional for WebAuthn support
|
|
|
|
Authenticator Authenticator[]
|
|
|
|
problems Problem[]
|
|
|
|
submissions Submission[]
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
}
|
|
|
|
|
|
|
|
model Problem {
|
|
|
|
id String @id @default(cuid())
|
|
|
|
displayId Int @unique
|
|
|
|
difficulty Difficulty @default(EASY)
|
|
|
|
isPublished Boolean @default(false)
|
|
|
|
timeLimit Int @default(1000)
|
|
|
|
memoryLimit Int @default(134217728)
|
|
|
|
|
|
|
|
localizations ProblemLocalization[]
|
|
|
|
templates Template[]
|
|
|
|
testcases Testcase[]
|
|
|
|
submissions Submission[]
|
|
|
|
|
|
|
|
userId String?
|
|
|
|
|
|
|
|
user User? @relation(fields: [userId], references: [id], onDelete: SetNull)
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
}
|
|
|
|
|
|
|
|
model ProblemLocalization {
|
|
|
|
problemId String
|
|
|
|
locale Locale
|
|
|
|
type ProblemContentType
|
|
|
|
|
|
|
|
content String
|
|
|
|
|
|
|
|
problem Problem @relation(fields: [problemId], references: [id], onDelete: Cascade)
|
|
|
|
|
|
|
|
@@id([problemId, locale, type])
|
|
|
|
}
|
|
|
|
|
|
|
|
model Template {
|
|
|
|
problemId String
|
|
|
|
language Language
|
|
|
|
|
|
|
|
content String
|
|
|
|
|
|
|
|
problem Problem @relation(fields: [problemId], references: [id], onDelete: Cascade)
|
|
|
|
|
|
|
|
@@id([problemId, language])
|
|
|
|
}
|
|
|
|
|
2025-04-10 14:24:40 +00:00
|
|
|
model Submission {
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
id String @id @default(cuid())
|
|
|
|
language Language
|
|
|
|
content String
|
|
|
|
status Status
|
|
|
|
message String?
|
|
|
|
timeUsage Int?
|
|
|
|
memoryUsage Int?
|
|
|
|
|
|
|
|
testcaseResults TestcaseResult[]
|
2025-04-10 14:24:40 +00:00
|
|
|
|
|
|
|
userId String
|
|
|
|
problemId String
|
|
|
|
|
|
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
|
|
problem Problem @relation(fields: [problemId], references: [id], onDelete: Cascade)
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
updatedAt DateTime @updatedAt
|
2025-03-16 11:05:16 +00:00
|
|
|
}
|
|
|
|
|
2025-04-09 11:28:00 +00:00
|
|
|
model Testcase {
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
id String @id @default(cuid())
|
2025-04-10 02:16:05 +00:00
|
|
|
expectedOutput String
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
|
|
|
|
inputs TestcaseInput[]
|
2025-04-14 03:33:19 +00:00
|
|
|
testcaseResults TestcaseResult[]
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
|
|
|
|
problemId String
|
|
|
|
|
|
|
|
problem Problem @relation(fields: [problemId], references: [id], onDelete: Cascade)
|
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
updatedAt DateTime @updatedAt
|
2025-04-09 11:28:00 +00:00
|
|
|
}
|
|
|
|
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
model TestcaseInput {
|
|
|
|
id String @id @default(cuid())
|
|
|
|
index Int
|
|
|
|
name String
|
|
|
|
value String
|
|
|
|
|
2025-04-09 11:28:00 +00:00
|
|
|
testcaseId String
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
|
|
|
|
testcase Testcase @relation(fields: [testcaseId], references: [id], onDelete: Cascade)
|
2025-04-09 11:28:00 +00:00
|
|
|
}
|
|
|
|
|
2025-04-11 07:53:56 +00:00
|
|
|
model TestcaseResult {
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
id String @id @default(cuid())
|
|
|
|
isCorrect Boolean
|
|
|
|
output String?
|
|
|
|
timeUsage Int?
|
|
|
|
memoryUsage Int?
|
2025-04-11 07:53:56 +00:00
|
|
|
|
|
|
|
submissionId String
|
|
|
|
testcaseId String
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
|
|
|
|
submission Submission @relation(fields: [submissionId], references: [id], onDelete: Cascade)
|
|
|
|
testcase Testcase @relation(fields: [testcaseId], references: [id], onDelete: Cascade)
|
2025-04-11 07:53:56 +00:00
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
}
|
|
|
|
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
model DockerConfig {
|
|
|
|
language Language @id
|
|
|
|
image String
|
|
|
|
tag String
|
|
|
|
workingDir String
|
|
|
|
compileOutputLimit Int @default(1048576)
|
|
|
|
runOutputLimit Int @default(1048576)
|
|
|
|
}
|
|
|
|
|
|
|
|
model LanguageServerConfig {
|
|
|
|
language Language @id
|
|
|
|
protocol Protocol
|
|
|
|
hostname String
|
|
|
|
port Int?
|
|
|
|
path String?
|
|
|
|
}
|
|
|
|
|
2025-03-12 07:09:01 +00:00
|
|
|
model Account {
|
|
|
|
userId String
|
|
|
|
type String
|
|
|
|
provider String
|
|
|
|
providerAccountId String
|
|
|
|
refresh_token String?
|
|
|
|
access_token String?
|
|
|
|
expires_at Int?
|
|
|
|
token_type String?
|
|
|
|
scope String?
|
|
|
|
id_token String?
|
|
|
|
session_state String?
|
|
|
|
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
|
|
|
2025-03-12 07:09:01 +00:00
|
|
|
createdAt DateTime @default(now())
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
|
|
|
|
@@id([provider, providerAccountId])
|
|
|
|
}
|
|
|
|
|
|
|
|
model Session {
|
|
|
|
sessionToken String @unique
|
|
|
|
userId String
|
|
|
|
expires DateTime
|
feat: update main branch (#45)
* chore(deps): add pino and pino-pretty packages
* feat(log): add pino logging support
* chore(tailwind): update config with features path and animate import
* chore(deps): add react-icons package
* refactor(auth)!: replace credentials with OAuth providers and add logging
BREAKING CHANGE:
- Removed credentials-based authentication
- Added Google OAuth provider
- Implemented detailed logging for auth events
- Removed custom JWT/session handling
- Added sign-in page configuration
- Marked as server-only
* refactor(auth)!: remove components and rewrite sign-in page
* feat(user-avatar): refactor avatar component into user-avatar with improved structure
* style(dockview): reduce tabs container height and center align items
- Changed --dv-tabs-and-actions-container-height from 44px to 36px
- Added align-items: center to .dv-tabs-container
- Improved CSS formatting for better readability
* refactor(stores): split dockview store into problem-specific store
- Remove generic dockview store (`src/stores/dockview.tsx`)
- Add problem-specific dockview store (`src/stores/problem-dockview.tsx`)
- Remove submission-related state as it's no longer needed
* feat(dockview): refactor dockview component and add problem-specific implementation
- Refactor Dockview component into more modular structure:
- Extract layout persistence logic to custom hook
- Extract component conversion logic to custom hook
- Make storageKey optional
- Improve type safety with PanelParams interface
- Add better error handling and duplicate panel detection
- Add new ProblemDockview wrapper component:
- Integrates with problem-dockview store
- Adds locale awareness
- Provides standardized storage key
- Update related type definitions and imports
* refactor(problems): migrate description and solution to feature-based structure
- Remove old parallel route implementations (@Description and @Solutions)
- Add new feature-based components for problem description and solution
- Create content and panel components for both features
- Implement skeleton loading states
- Use cached data fetching
- Update MDX rendering and scroll area implementations
* chore(problems): move problem-dockview to components directory
* refactor(layouts): overhaul problem and problemset page structures
- Simplify ProblemLayout to use children prop and remove ProblemStoreProvider
- Replace PlaygroundHeader with dedicated ProblemHeader component
- Streamline ProblemsetLayout with new ProblemsetHeader
- Remove deprecated BackButton in favor of NavigateBackButton
- Delete unused ProblemStoreProvider and related dependencies
* feat(prisma): add server-only caching for problems queries
- Add 'server-only' import to enforce server-side usage
- Implement cached problem queries with logging:
- Add getProblems/getCachedProblems for all problems
- Add getProblem/getCachedProblem for single problem by ID
- Use React cache and Next.js unstable_cache with tags
- Add detailed logging with timing metrics
* refactor(mdx-renderer): simplify component implementation
- Remove Suspense and Skeleton loading state
- Convert to arrow function syntax
- Reorganize import statements
- Simplify export syntax
* feat(components): add TooltipButton component
- A reusable button with tooltip functionality
- Supports customizable delay, tooltip content, and className
- Uses shadcn/ui Tooltip and Button components
* refactor(editor): consolidate editor toolbar actions into unified structure
- Moved all editor action buttons (copy, format, undo, redo, reset) from `src/components/features/playground/workspace/editor/components/` to new location `src/features/problems/code/components/toolbar/actions/`
- Introduced shared `TooltipButton` component to reduce duplication
- Created centralized `useProblemEditorActions` hook for common editor operations
- Updated imports and exports through new index file
- Maintained all existing functionality while improving code organization
* 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
* refactor(route): rename [id] to [problemId] in problems route
* 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
* fix(page): add missing return statement in RootPage component
* 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
* chore(prisma/migrations): add migration for multilingual problem support
* 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.
* 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
* chore(shiki): convert function to arrow function
* chore(scripts): remove --turbopack flag from dev script
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* feat(config): add LANGUAGES constant for language enum values
* 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
* 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
* refactor(problems): update ProblemHeader import path to new location
* 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
* 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
* chore(utils): remove unused utility functions
- Remove getPath function (moved to problem-editor store)
- Remove getDifficultyColorClass function (unused)
- Keep only core cn utility function
* 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
* 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
* 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
* 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
* refactor(components): simplify BackButton by using TooltipButton
* 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
* 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
* refactor(api): extract OpenAI client to shared module
* fix(prisma): make TestcaseResult.output field optional
* chore(prisma): make TestcaseResult.output nullable in migration
* feat: replace dockview with flexlayout-react
2025-06-21 06:09:57 +00:00
|
|
|
|
|
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
2025-03-12 07:09:01 +00:00
|
|
|
|
|
|
|
createdAt DateTime @default(now())
|
|
|
|
updatedAt DateTime @updatedAt
|
|
|
|
}
|
|
|
|
|
|
|
|
model VerificationToken {
|
|
|
|
identifier String
|
|
|
|
token String
|
|
|
|
expires DateTime
|
|
|
|
|
|
|
|
@@id([identifier, token])
|
|
|
|
}
|
|
|
|
|
|
|
|
// Optional for WebAuthn support
|
|
|
|
model Authenticator {
|
|
|
|
credentialID String @unique
|
|
|
|
userId String
|
|
|
|
providerAccountId String
|
|
|
|
credentialPublicKey String
|
|
|
|
counter Int
|
|
|
|
credentialDeviceType String
|
|
|
|
credentialBackedUp Boolean
|
|
|
|
transports String?
|
|
|
|
|
|
|
|
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
|
|
|
|
|
|
|
@@id([userId, credentialID])
|
2025-03-08 10:02:19 +00:00
|
|
|
}
|