diff --git a/src/components/DocumentationView.tsx b/src/components/DocumentationView.tsx index 4fe3f0b..f2b8a05 100644 --- a/src/components/DocumentationView.tsx +++ b/src/components/DocumentationView.tsx @@ -1,4 +1,3 @@ -import { useState } from 'react' import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' import { ScrollArea } from '@/components/ui/scroll-area' import { Input } from '@/components/ui/input' @@ -9,6 +8,7 @@ import { PwaTab } from './DocumentationView/PwaTab' import { ReadmeTab } from './DocumentationView/ReadmeTab' import { RoadmapTab } from './DocumentationView/RoadmapTab' import { SassTab } from './DocumentationView/SassTab' +import { useDocumentationViewState } from './DocumentationView/useDocumentationViewState' const tabs = [ { value: 'readme', label: 'README', icon: }, @@ -20,8 +20,7 @@ const tabs = [ ] export function DocumentationView() { - const [activeTab, setActiveTab] = useState('readme') - const [searchQuery, setSearchQuery] = useState('') + const { activeTab, setActiveTab, searchQuery, handleSearchChange } = useDocumentationViewState() return (
@@ -40,7 +39,7 @@ export function DocumentationView() { setSearchQuery(e.target.value)} + onChange={handleSearchChange} className="pl-10" />
diff --git a/src/components/DocumentationView/useDocumentationViewState.ts b/src/components/DocumentationView/useDocumentationViewState.ts new file mode 100644 index 0000000..8224155 --- /dev/null +++ b/src/components/DocumentationView/useDocumentationViewState.ts @@ -0,0 +1,18 @@ +import { useCallback, useState } from 'react' +import type { ChangeEvent } from 'react' + +export function useDocumentationViewState() { + const [activeTab, setActiveTab] = useState('readme') + const [searchQuery, setSearchQuery] = useState('') + + const handleSearchChange = useCallback((event: ChangeEvent) => { + setSearchQuery(event.target.value) + }, []) + + return { + activeTab, + setActiveTab, + searchQuery, + handleSearchChange + } +}