PluginProbe
Code Snippets / 3.10.1
Code Snippets v3.10.1
4.0.0-beta.2 3.10.2 3.10.1 3.10.0 3.10.0-beta.2 3.10.0-beta.1 4.0.0-beta.1 3.9.6 trunk 2.10.0 2.10.1 2.12.0 2.12.1 2.13.0 2.13.1 2.13.2 2.13.3 2.14.0 2.14.1 2.14.2 2.14.3 2.14.4 2.14.5 2.14.6 3.0.0 All 65 releases
code-snippets / js / components / Import / FromOtherPlugins / hooks / useImporterSelection.ts

useImporterSelection.ts in Code Snippets 3.10.1, at js/components/Import/FromOtherPlugins/hooks/useImporterSelection.ts

43 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import { useState, useEffect } from 'react'
2 import { useImportersAPI, type Importer } from '../../../../hooks/useImportersAPI'
3
4 export const useImporterSelection = () => {
5 const [importers, setImporters] = useState<Importer[]>([])
6 const [selectedImporter, setSelectedImporter] = useState<string>('')
7 const [isLoading, setIsLoading] = useState(true)
8 const [error, setError] = useState<string | null>(null)
9 const [tagValue, setTagValue] = useState<string>('')
10
11 const importersAPI = useImportersAPI()
12
13 useEffect(() => {
14 const fetchImporters = async () => {
15 try {
16 const response = await importersAPI.fetchAll()
17 setImporters(response.data)
18 } catch (err) {
19 setError(err instanceof Error ? err.message : 'Unknown error')
20 } finally {
21 setIsLoading(false)
22 }
23 }
24
25 fetchImporters()
26 }, [importersAPI])
27
28 const handleImporterChange = (newImporter: string) => {
29 setSelectedImporter(newImporter)
30 setTagValue(`imported-${newImporter}`)
31 }
32
33 return {
34 importers,
35 selectedImporter,
36 isLoading,
37 error,
38 tagValue,
39 setTagValue,
40 handleImporterChange
41 }
42 }
43