@@ -5,6 +5,7 @@ import { AlertTriangle, CheckCircle2, Loader2, X } from "@workspace/ui/icons";
55import { useEffect , useState , useTransition } from "react" ;
66import { config } from "../../../config" ;
77import { DEFAULT_CONFIG } from "../../constants/defaultConfig" ;
8+ import { useBranches } from "../../hooks/useBranches" ;
89import { useStore } from "../../store/store" ;
910import type { ConfigData } from "../../types/common/config" ;
1011import { SettingsForm } from "./SettingsForm" ;
@@ -17,8 +18,7 @@ export const SettingsDialog = () => {
1718 const [ localConfig , setLocalConfig ] = useState < ConfigData | null > ( null ) ;
1819 const [ isSynced , setIsSynced ] = useState ( false ) ;
1920 const [ isSaving , startSaving ] = useTransition ( ) ;
20- const [ isBranchesLoading , startBranchesTransition ] = useTransition ( ) ;
21- const [ branches , setBranches ] = useState < string [ ] > ( [ ] ) ;
21+ const branchesFetch = useBranches ( isSettingsOpen ) ;
2222
2323 const loadConfig = async ( ) => {
2424 if ( window . electronAPI ) {
@@ -39,33 +39,9 @@ export const SettingsDialog = () => {
3939 }
4040 } ;
4141
42- const loadBranches = ( signal : AbortSignal ) => {
43- startBranchesTransition ( async ( ) => {
44- try {
45- const res = await fetch (
46- "https://api.github.com/repos/hyperloop-upv/adj/branches?per_page=100" ,
47- { signal : AbortSignal . any ( [ signal , AbortSignal . timeout ( 2000 ) ] ) } ,
48- ) ;
49- const data = await res . json ( ) ;
50- setBranches ( data . map ( ( b : { name : string } ) => b . name ) ) ;
51- } catch ( error ) {
52- if (
53- error instanceof Error &&
54- error . name !== "AbortError" &&
55- error . name !== "TimeoutError"
56- ) {
57- console . error ( "Error loading branches:" , error ) ;
58- }
59- }
60- } ) ;
61- } ;
62-
6342 useEffect ( ( ) => {
6443 if ( isSettingsOpen ) {
65- const controller = new AbortController ( ) ;
6644 loadConfig ( ) ;
67- loadBranches ( controller . signal ) ;
68- return ( ) => controller . abort ( ) ;
6945 }
7046 } , [ isSettingsOpen ] ) ;
7147
@@ -120,8 +96,7 @@ export const SettingsDialog = () => {
12096 < SettingsForm
12197 config = { localConfig }
12298 onChange = { setLocalConfig }
123- branches = { branches }
124- branchesLoading = { isBranchesLoading }
99+ branchesFetch = { branchesFetch }
125100 />
126101 ) }
127102 </ div >
0 commit comments