3
3
import { useEffect , useState } from "react" ;
4
4
import usePageContext from "@/store/usePageContext" ;
5
5
import { Form , useForm } from "@mantine/form" ;
6
- import { CommitModel , DataProductPostParam } from "@/server/types" ;
6
+ import { BranchModel , CommitModel , DataProductPostParam } from "@/server/types" ;
7
7
import { RepoApi } from "@/server/RepoApi" ;
8
8
import { AppWrite } from "@/server/Client" ;
9
9
import {
@@ -20,6 +20,7 @@ import {
20
20
} from "@mantine/core" ;
21
21
import { notifications } from "@mantine/notifications" ;
22
22
import { ProductApi } from "@/server/ProductApi" ;
23
+ import { debounce } from "lodash" ;
23
24
24
25
export default function ProductPostPage ( ) {
25
26
const context = usePageContext ( ) ;
@@ -28,29 +29,36 @@ export default function ProductPostPage(){
28
29
const [ Publishing , setPublishing ] = useState ( false ) ;
29
30
const repo_api = new RepoApi ( ) ;
30
31
const product_api = new ProductApi ( ) ;
31
- useEffect ( ( ) => {
32
+ const Init = debounce ( async ( ) => {
32
33
if ( context . repoCtx ) {
33
34
const { owner, repoName} = context . repoCtx ;
34
35
setParma ( { owner, repo : repoName } )
35
- for ( const idx in context . repoCtx . branches ) {
36
- const branch = context . repoCtx . branches [ idx ] ;
36
+ const btch = await repo_api . Bhtc ( owner , repoName ) ;
37
+ const branches = Object . keys ( btch ) . map ( ( value ) => {
38
+ return JSON . parse ( value ) as BranchModel
39
+ } ) ;
40
+ for ( const idx in branches ) {
41
+ const branch = branches [ idx ] ;
37
42
repo_api . OneCommit ( owner , repoName , branch . name , branch . head )
38
- . then ( ( res ) => {
39
- if ( res . status === 200 ) {
40
- const json :AppWrite < CommitModel > = JSON . parse ( res . data ) ;
41
- if ( json . code === 200 && json . data ) {
42
- setHeads ( ( prev ) => {
43
- if ( prev . find ( ( item ) => item . id === json . data ! . id ) ) {
44
- return prev ;
45
- } else {
46
- return [ ...prev , json . data ! ] ;
47
- }
48
- } ) ;
43
+ . then ( ( res ) => {
44
+ if ( res . status === 200 ) {
45
+ const json :AppWrite < CommitModel > = JSON . parse ( res . data ) ;
46
+ if ( json . code === 200 && json . data ) {
47
+ setHeads ( ( prev ) => {
48
+ if ( prev . find ( ( item ) => item . id === json . data ! . id ) ) {
49
+ return prev ;
50
+ } else {
51
+ return [ ...prev , json . data ! ] ;
52
+ }
53
+ } ) ;
54
+ }
49
55
}
50
- }
51
- } )
56
+ } )
52
57
}
53
58
}
59
+ } , 300 )
60
+ useEffect ( ( ) => {
61
+ Init ( )
54
62
} , [ ] ) ;
55
63
const form = useForm ( {
56
64
mode : "uncontrolled" ,
0 commit comments