11import styled from "styled-components" ;
22import { useState , useEffect } from "react" ;
33import { useRecoilState } from "recoil" ;
4+ import { repoDataAtomFamily } from "../../recoil/repoData" ;
5+ import { eachStepState } from "../../recoil/commonState" ;
46import { Box , Grid } from "@mui/material" ;
57import axios from "axios" ;
68import { TextInputContainer } from "../common/InputComponent" ;
79import { SelectAuto } from "../common/SelectAuto" ;
8- import { repoDataAtomFamily } from "../../recoil/repoData" ;
910import gifRepoName from "../../assets/images/repoName.gif" ;
1011import gifDescription from "../../assets/images/description.gif" ;
1112import { useNavigate } from "react-router-dom" ;
@@ -17,6 +18,7 @@ export const RequiredFieldContainer = () => {
1718 const [ repoName , setRepoName ] = useRecoilState (
1819 repoDataAtomFamily ( "repoName" ) ,
1920 ) ;
21+ const [ stepComplete , setStepComplted ] = useRecoilState ( eachStepState ( "1" ) ) ;
2022
2123 const navigate = useNavigate ( ) ;
2224
@@ -35,26 +37,41 @@ export const RequiredFieldContainer = () => {
3537 withCredentials : true ,
3638 } ,
3739 ) ;
38-
39- const initUserData = [
40- {
41- id : response . data . id ,
42- avatar : response . data . avatar ,
43- } ,
44- ] ;
45- response . data . org . forEach ( ( it ) => {
46- initUserData . push ( { id : it . id , avatar : it . avatar } ) ;
47- } ) ;
48-
49- setOwner ( response . data . id ) ;
50- setUserRepoData ( initUserData ) ;
40+ return response . data ;
5141 } catch ( e ) {
5242 console . error ( e ) ;
5343 }
5444 }
5545
46+ function refineData ( rawData ) {
47+ const data = [
48+ {
49+ id : rawData . id ,
50+ avatar : rawData . avatar ,
51+ } ,
52+ ] ;
53+ rawData . org . forEach ( ( it ) => {
54+ data . push ( { id : it . id , avatar : it . avatar } ) ;
55+ } ) ;
56+ return data ;
57+ }
58+
59+ async function initUserData ( ) {
60+ const refinedData = refineData ( await getUserRepoData ( ) ) ;
61+ setUserRepoData ( refinedData ) ;
62+ return refinedData ;
63+ }
64+
65+ async function initOwner ( ) {
66+ const refinedData = await initUserData ( ) ;
67+ setOwner ( refinedData [ 0 ] . id ) ;
68+ }
69+
5670 useEffect ( ( ) => {
57- getUserRepoData ( ) ;
71+ initUserData ( ) ;
72+ if ( ! stepComplete ) {
73+ initOwner ( ) ;
74+ }
5875 } , [ ] ) ;
5976
6077 async function checkRepoName ( ) {
@@ -125,7 +142,7 @@ export const RequiredFieldContainer = () => {
125142 }
126143 } , 300 ) ;
127144 return ( ) => clearTimeout ( debounce ) ;
128- } , [ owner , repoName ] ) ;
145+ } , [ owner , repoName ] ) ;
129146
130147 const [ helperText , setHelperText ] = useState ( " " ) ;
131148
0 commit comments