Skip to content

Commit 52ebe01

Browse files
committed
[Add] Github Uploaded File Check
1 parent cc22c9c commit 52ebe01

File tree

2 files changed

+51
-16
lines changed

2 files changed

+51
-16
lines changed

src/components/CodeEditor.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ export default function CodeEditor(props) {
190190
</Tab.List>
191191
<Tab.Panels>
192192
{tabs.map(({ code, setter }, index) => (
193-
<Tab.Panel>
193+
<Tab.Panel key={index}>
194194
<div className="flex-1">
195195
<AceEditor
196196
value={code}

src/pages/index.js

+50-15
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,49 @@ import styles from './index.module.css';
99
export default function Home() {
1010
const [codes, setCodes] = useState([]);
1111
const [names, setNames] = useState([]);
12-
12+
const [files, setFiles] = useState([]);
13+
14+
const axios = require('axios');
15+
1316
useEffect(() => {
14-
fetch('https://raw.githubusercontent.com/junnei/codetree-TILs/main/240114/%EA%B7%B8%EB%9E%98%ED%94%84%20%ED%83%90%EC%83%89/graph-traversal.py')
15-
.then(response => {
16-
if (!response.ok) {
17-
throw new Error('Network response was not ok');
18-
}
19-
return response.text();
20-
})
21-
.then(data => {
22-
// Python 코드를 가져온 후 상태에 저장합니다.
23-
setCodes(["print(1)", "print(2)", "print(3)", "print(4)"]);
24-
setNames(["junnei", "junnei", "junnei", "junnei"]);
25-
})
26-
.catch(error => console.error('Error fetching Python code:', error));
17+
setCodes(["print(1)", "print(2)", "print(3)", "print(4)"]);
18+
setNames(["junnei1", "junnei2", "junnei3", "junnei4"]);
19+
fetchFiles()
2720
}, []);
28-
21+
22+
23+
const fetchTreeSHA = async (owner = "Code-Study", repo = "Code", branch = "main") => {
24+
try {
25+
const response = await axios.get(`https://api.github.com/repos/${owner}/${repo}/branches/${branch}`);
26+
return response.data;
27+
} catch (error) {
28+
console.error('Error fetching repository contents:', error);
29+
return [];
30+
}
31+
};
32+
33+
const fetchFiles = async (owner = "Code-Study", repo = "Code", branch = "main", recursive = true) => {
34+
try {
35+
const responseBranch = await fetchTreeSHA(owner, repo, branch)
36+
const treeSHA = responseBranch["commit"]["commit"]["tree"]["sha"]
37+
console.log(treeSHA)
38+
const response = await axios.get(`https://api.github.com/repos/${owner}/${repo}/git/trees/${treeSHA}`, {
39+
params: {
40+
recursive: recursive ? "true" : "false"
41+
}
42+
});
43+
const data = response.data;
44+
data.tree.forEach(item => {
45+
if (item.type === 'blob') {
46+
setFiles(prevFiles => [...prevFiles, { type: 'file', path: item.path }]);
47+
}
48+
})
49+
} catch (error) {
50+
console.error('Error fetching repository contents:', error);
51+
return [];
52+
}
53+
};
54+
2955
return (
3056
<Layout title="Code Study">
3157
<main>
@@ -36,6 +62,15 @@ export default function Home() {
3662
<div className={styles.codeEditorWrapper}>
3763
<CodeEditor names={names} codes={codes} showButtons/>
3864
</div>
65+
66+
<div>
67+
<h1>Files</h1>
68+
<ul>
69+
{files.map((file, index) => (
70+
<li key={index}>{file.path}</li>
71+
))}
72+
</ul>
73+
</div>
3974
</div>
4075
</main>
4176
</Layout>

0 commit comments

Comments
 (0)