feat: add Sheet component for bottom sheet UI with drag-to-dismiss and snap points

test: implement DialogStyleContext tests for preference management and style recommendations

test: create tests for useAutoSelection hook, including countdown and pause functionality

feat: implement useAutoSelection hook for enhanced auto-selection with sound notifications

feat: create Zustand store for managing issue submission wizard state

feat: add Zod validation schemas for issue-related API requests

feat: implement issue service for CRUD operations and validation handling

feat: define TypeScript types for issue submission and management
This commit is contained in:
catlog22
2026-02-16 11:51:21 +08:00
parent 374a1e1c2c
commit 2202c2ccfd
35 changed files with 3717 additions and 145 deletions

View File

@@ -11,6 +11,7 @@ import type {
CliToolConfig,
ApiEndpoints,
UserPreferences,
A2UIPreferences,
} from '../types/store';
// Default CLI tools configuration
@@ -75,12 +76,25 @@ const defaultUserPreferences: UserPreferences = {
defaultSortDirection: 'desc',
};
// Default A2UI preferences
const defaultA2uiPreferences: A2UIPreferences = {
dialogStyle: 'modal',
smartModeEnabled: true,
autoSelectionDuration: 30,
autoSelectionSoundEnabled: false,
pauseOnInteraction: true,
showA2UIButtonInToolbar: true,
drawerSide: 'right',
drawerSize: 'md',
};
// Initial state
const initialState: ConfigState = {
cliTools: defaultCliTools,
defaultCliTool: 'gemini',
apiEndpoints: defaultApiEndpoints,
userPreferences: defaultUserPreferences,
a2uiPreferences: defaultA2uiPreferences,
featureFlags: {
orchestratorEnabled: true,
darkModeEnabled: true,
@@ -158,6 +172,16 @@ export const useConfigStore = create<ConfigStore>()(
set({ userPreferences: defaultUserPreferences }, false, 'resetUserPreferences');
},
// ========== A2UI Preferences Actions ==========
setA2uiPreferences: (prefs: A2UIPreferences) => {
set({ a2uiPreferences: prefs }, false, 'setA2uiPreferences');
},
resetA2uiPreferences: () => {
set({ a2uiPreferences: defaultA2uiPreferences }, false, 'resetA2uiPreferences');
},
// ========== Feature Flags Actions ==========
setFeatureFlag: (flag: string, enabled: boolean) => {