Skip to content

Commit e0f136c

Browse files
committed
Fix : initialize selected owner only when the step uncompleted #192
Signed-off-by: bentshrimp <[email protected]>
1 parent ec59dfb commit e0f136c

File tree

1 file changed

+33
-16
lines changed

1 file changed

+33
-16
lines changed

src/components/step1/RequiredFieldContainer.js

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import styled from "styled-components";
22
import { useState, useEffect } from "react";
33
import { useRecoilState } from "recoil";
4+
import { repoDataAtomFamily } from "../../recoil/repoData";
5+
import { eachStepState } from "../../recoil/commonState";
46
import { Box, Grid } from "@mui/material";
57
import axios from "axios";
68
import { TextInputContainer } from "../common/InputComponent";
79
import { SelectAuto } from "../common/SelectAuto";
8-
import { repoDataAtomFamily } from "../../recoil/repoData";
910
import gifRepoName from "../../assets/images/repoName.gif";
1011
import gifDescription from "../../assets/images/description.gif";
1112
import { 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

Comments
 (0)