@@ -16,48 +16,13 @@ export function Modal(props: {
1616} ) {
1717 const [ isAuthenticated , setIsAuthenticated ] = createSignal ( false ) ;
1818 const [ isLoading , setIsLoading ] = createSignal ( true ) ;
19- const [ repositories , setRepositories ] = createSignal < Repository [ ] > ( [ ] ) ;
20- const [ isLoadingRepos , setIsLoadingRepos ] = createSignal ( false ) ;
21- const [ selectedRepo , setSelectedRepo ] = createSignal < Repository | null > ( null ) ;
22-
23- async function loadRepositories ( ) {
24- const token = await getStoredToken ( ) ;
25- if ( ! token ) return ;
26-
27- setIsLoadingRepos ( true ) ;
28- try {
29- const response = await fetch ( "/api/repositories" , {
30- headers : { Authorization : `Bearer ${ token } ` } ,
31- } ) ;
32- if ( response . ok ) {
33- const repos = await response . json ( ) ;
34- setRepositories ( repos ) ;
35- }
36- } catch ( error ) {
37- console . error ( "Failed to load repositories:" , error ) ;
38- } finally {
39- setIsLoadingRepos ( false ) ;
40- }
41- }
4219
4320 onMount ( async ( ) => {
4421 const token = await getStoredToken ( ) ;
4522 setIsAuthenticated ( ! ! token ) ;
4623 setIsLoading ( false ) ;
47-
48- if ( token ) {
49- await loadRepositories ( ) ;
50- }
5124 } ) ;
5225
53- function handleExport ( ) {
54- const repo = selectedRepo ( ) ;
55- if ( repo ) {
56- props . selectedRepo ( repo ) ;
57- props . setIsOpen ( false ) ;
58- }
59- }
60-
6126 return (
6227 < Show when = { props . isOpen } >
6328 < Portal useShadow = { true } >
@@ -109,7 +74,6 @@ export function Modal(props: {
10974 < svg
11075 height = "20"
11176 viewBox = "0 0 16 16"
112- version = "1.1"
11377 width = "20"
11478 fill = "currentColor"
11579 >
@@ -122,76 +86,6 @@ export function Modal(props: {
12286 < p style = { { color : "#1a7f37" , "margin-bottom" : "1rem" } } >
12387 Connected to GitHub
12488 </ p >
125-
126- < Show
127- when = { ! isLoadingRepos ( ) }
128- fallback = { < p > Loading repositories...</ p > }
129- >
130- < Show
131- when = { repositories ( ) . length > 0 }
132- fallback = {
133- < p >
134- No repositories found. Install the app on a repository
135- first.
136- </ p >
137- }
138- >
139- < label
140- style = { {
141- display : "block" ,
142- "margin-bottom" : "0.5rem" ,
143- "font-weight" : "600" ,
144- } }
145- >
146- Select repository
147- </ label >
148- < select
149- style = { {
150- width : "100%" ,
151- padding : "0.5rem" ,
152- "border-radius" : "6px" ,
153- border : "1px solid #d0d7de" ,
154- "font-size" : "1rem" ,
155- "margin-bottom" : "1rem" ,
156- } }
157- onChange = { ( e ) => {
158- const fullName = e . currentTarget . value ;
159- const repo = repositories ( ) . find (
160- ( r ) => r . fullName === fullName ,
161- ) ;
162- setSelectedRepo ( repo || null ) ;
163- } }
164- >
165- < option value = "" > Choose a repository...</ option >
166- { repositories ( ) . map ( ( repo ) => (
167- < option value = { repo . fullName } >
168- { repo . fullName }
169- { repo . isPrivate ? " (private)" : "" }
170- </ option >
171- ) ) }
172- </ select >
173-
174- < button
175- style = { {
176- "background-color" : selectedRepo ( )
177- ? "#1a7f37"
178- : "#d0d7de" ,
179- color : "#ffffff" ,
180- border : "none" ,
181- padding : "0.75rem 1.5rem" ,
182- "border-radius" : "8px" ,
183- "font-size" : "1rem" ,
184- "font-weight" : "600" ,
185- cursor : selectedRepo ( ) ? "pointer" : "not-allowed" ,
186- width : "100%" ,
187- } }
188- onClick = { handleExport }
189- disabled = { ! selectedRepo ( ) }
190- >
191- Export Project
192- </ button >
193- </ Show >
194- </ Show >
19589 </ Show >
19690 </ Show >
19791
0 commit comments