@@ -26,26 +26,22 @@ import { Storage } from '../storage/common_storage';
2626/** Storage keys for user settings. */
2727const USER_LANGUAGE_KEY = 'userLanguage' ;
2828const USER_THEME_KEY = 'userTheme' ;
29- const USER_OPEN_TABS_KEY_PREFIX = 'userOpenTabs' ;
3029
3130/** Default values for user settings. */
3231const DEFAULT_LANGUAGE = 'en' ;
3332const DEFAULT_THEME = 'dark' ;
34- const DEFAULT_OPEN_TABS : string [ ] = [ ] ;
3533
3634/** User settings interface. */
3735export interface UserSettings {
3836 language : string ;
3937 theme : string ;
40- openTabs : string [ ] ;
4138}
4239
4340/** User settings context interface. */
4441export interface UserSettingsContextType {
4542 settings : UserSettings ;
4643 updateLanguage : ( language : string ) => Promise < void > ;
4744 updateTheme : ( theme : string ) => Promise < void > ;
48- updateOpenTabs : ( tabs : string [ ] ) => Promise < void > ;
4945 isLoading : boolean ;
5046 error : string | null ;
5147 storage : Storage | null ;
@@ -70,47 +66,25 @@ export const UserSettingsProvider: React.FC<UserSettingsProviderProps> = ({
7066 const [ settings , setSettings ] = React . useState < UserSettings > ( {
7167 language : DEFAULT_LANGUAGE ,
7268 theme : DEFAULT_THEME ,
73- openTabs : DEFAULT_OPEN_TABS ,
7469 } ) ;
7570 const [ isLoading , setIsLoading ] = React . useState < boolean > ( true ) ;
7671 const [ error , setError ] = React . useState < string | null > ( null ) ;
7772
78- /** Generate project-specific storage key for open tabs. */
79- const getOpenTabsKey = ( projectName : string | null | undefined ) : string => {
80- if ( ! projectName ) {
81- return `${ USER_OPEN_TABS_KEY_PREFIX } _default` ;
82- }
83- return `${ USER_OPEN_TABS_KEY_PREFIX } _${ projectName } ` ;
84- } ;
85-
8673 /** Load user settings from storage on component mount. */
8774 React . useEffect ( ( ) => {
8875 const loadSettings = async ( validStorage : Storage ) : Promise < void > => {
8976 try {
9077 setIsLoading ( true ) ;
9178 setError ( null ) ;
9279
93- const openTabsKey = getOpenTabsKey ( currentProjectName ) ;
94- const [ language , theme , openTabsJson ] = await Promise . all ( [
80+ const [ language , theme ] = await Promise . all ( [
9581 validStorage . fetchEntry ( USER_LANGUAGE_KEY , DEFAULT_LANGUAGE ) ,
9682 validStorage . fetchEntry ( USER_THEME_KEY , DEFAULT_THEME ) ,
97- validStorage . fetchEntry ( openTabsKey , JSON . stringify ( DEFAULT_OPEN_TABS ) ) ,
9883 ] ) ;
9984
100- let openTabs : string [ ] ;
101- try {
102- openTabs = JSON . parse ( openTabsJson ) ;
103- if ( ! Array . isArray ( openTabs ) ) {
104- openTabs = DEFAULT_OPEN_TABS ;
105- }
106- } catch {
107- openTabs = DEFAULT_OPEN_TABS ;
108- }
109-
11085 setSettings ( {
11186 language,
11287 theme,
113- openTabs,
11488 } ) ;
11589 } catch ( err ) {
11690 setError ( `Failed to load user settings: ${ err } ` ) ;
@@ -160,27 +134,10 @@ export const UserSettingsProvider: React.FC<UserSettingsProviderProps> = ({
160134 }
161135 } ;
162136
163- /** Update open tabs setting. */
164- const updateOpenTabs = async ( tabs : string [ ] ) : Promise < void > => {
165- try {
166- setError ( null ) ;
167- const openTabsKey = getOpenTabsKey ( currentProjectName ) ;
168- if ( storage ) {
169- await storage . saveEntry ( openTabsKey , JSON . stringify ( tabs ) ) ;
170- setSettings ( prev => ( { ...prev , openTabs : tabs } ) ) ;
171- }
172- } catch ( err ) {
173- setError ( `Failed to save open tabs setting: ${ err } ` ) ;
174- console . error ( 'Error saving open tabs setting:' , err ) ;
175- throw err ;
176- }
177- } ;
178-
179137 const contextValue : UserSettingsContextType = {
180138 settings,
181139 updateLanguage,
182140 updateTheme,
183- updateOpenTabs,
184141 isLoading,
185142 error,
186143 storage : storage || null ,
0 commit comments