Files
ccs/ui/src/pages/settings/hooks/use-settings-tab.ts
T
kaitranntt 104a404144 refactor(ui): modularize settings page into directory structure
- split settings.tsx (1,781 lines) into modular components
- extract hooks into separate files (context-hooks, use-*-config)
- create sections: websearch, proxy, globalenv with subcomponents
- add tab-navigation and section-skeleton components
- add settings-context.ts for state management
2025-12-21 03:26:40 -05:00

24 lines
629 B
TypeScript

/**
* Settings Tab URL Sync Hook
*/
import { useCallback } from 'react';
import { useSearchParams } from 'react-router-dom';
import type { SettingsTab } from '../types';
export function useSettingsTab() {
const [searchParams, setSearchParams] = useSearchParams();
const tabParam = searchParams.get('tab');
const activeTab: SettingsTab =
tabParam === 'globalenv' ? 'globalenv' : tabParam === 'proxy' ? 'proxy' : 'websearch';
const setActiveTab = useCallback(
(tab: SettingsTab) => {
setSearchParams({ tab }, { replace: true });
},
[setSearchParams]
);
return { activeTab, setActiveTab };
}