1
1
import React , { useRef } from "react" ;
2
+ import axios from "axios" ;
3
+ import { globalAPIEndpoint } from "../../../../../../../util/env_config" ;
2
4
import { faCheck , faTimes } from "@fortawesome/free-solid-svg-icons" ;
3
5
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome" ;
4
6
5
7
export default function AddRemoteRepoFormComponent ( props ) {
8
+ const {
9
+ setReloadView,
10
+ setRemoteForm,
11
+ setFieldMissing,
12
+ setInvalidUrl,
13
+ setAddNewRemote,
14
+ setAddRemoteStatus,
15
+ repoId,
16
+ setStatusCheck,
17
+ setRemoteOperation,
18
+ } = props ;
6
19
const remoteNameRef = useRef ( ) ;
7
20
const remoteUrlRef = useRef ( ) ;
8
21
@@ -17,9 +30,9 @@ export default function AddRemoteRepoFormComponent(props) {
17
30
placeholder = { placeholder }
18
31
ref = { formId === "remoteName" ? remoteNameRef : remoteUrlRef }
19
32
onChange = { ( event ) => {
20
- props . setFieldMissing ( false ) ;
21
- props . setAddRemoteStatus ( false ) ;
22
- props . setInvalidUrl ( false ) ;
33
+ setFieldMissing ( false ) ;
34
+ setAddRemoteStatus ( false ) ;
35
+ setInvalidUrl ( false ) ;
23
36
const remoteNameVal = event . target . value ;
24
37
if (
25
38
event . target . id === "remoteName" &&
@@ -38,48 +51,73 @@ export default function AddRemoteRepoFormComponent(props) {
38
51
39
52
if ( remoteName && remoteUrl && remoteUrl . match ( / [ ^ ] * / g) ) {
40
53
if ( remoteUrl . match ( / ( \s ) / g) ) {
41
- props . setInvalidUrl ( true ) ;
54
+ setInvalidUrl ( true ) ;
42
55
} else {
43
- //TODO: Add axios
44
56
let status = "success" ;
45
- if ( status === "success" ) {
46
- localStorage . setItem (
47
- remoteName ,
48
- JSON . stringify ( {
49
- remoteName : remoteName ,
50
- remoteUrl : remoteUrl ,
51
- } )
52
- ) ;
53
- props . setRemoteForm ( false ) ;
54
- props . setAddNewRemote ( true ) ;
55
- props . setReloadView ( true ) ;
56
- remoteNameRef . current . value = "" ;
57
- remoteUrlRef . current . value = "" ;
58
- } else {
59
- props . setAddRemoteStatus ( true ) ;
60
- }
57
+
58
+ axios ( {
59
+ url : globalAPIEndpoint ,
60
+ method : "POST" ,
61
+ data : {
62
+ query : `
63
+ mutation {
64
+ addRemote(repoId: "${ repoId } ", remoteName: "${ remoteName } ", remoteUrl: ${ remoteUrl } "){
65
+ status
66
+ }
67
+ }
68
+ ` ,
69
+ } ,
70
+ } )
71
+ . then ( ( res ) => {
72
+ status = res . data . data ;
73
+ if ( status === "success" ) {
74
+ setRemoteForm ( false ) ;
75
+ setAddNewRemote ( true ) ;
76
+ setReloadView ( true ) ;
77
+ remoteNameRef . current . value = "" ;
78
+ remoteUrlRef . current . value = "" ;
79
+ } else {
80
+ setAddRemoteStatus ( true ) ; //status === "failed"
81
+ }
82
+ setStatusCheck ( false ) ;
83
+ setRemoteOperation ( " " ) ;
84
+ } )
85
+ . catch ( ( ) => {
86
+ setStatusCheck ( true ) ;
87
+ setRemoteOperation ( "add" ) ;
88
+ // setRemoteDetails([...remoteDetails, {
89
+ // remoteName: remoteName,
90
+ // remoteUrl: remoteUrl,
91
+ // }]);
92
+
93
+ // setRemoteForm(false);
94
+ // setAddNewRemote(true);
95
+ // setReloadView(true);
96
+ // remoteNameRef.current.value = "";
97
+ // remoteUrlRef.current.value = "";
98
+ } ) ;
61
99
}
62
100
} else {
63
- props . setAddNewRemote ( false ) ;
64
- props . setInvalidUrl ( false ) ;
65
- props . setFieldMissing ( true ) ;
101
+ setAddNewRemote ( false ) ;
102
+ setInvalidUrl ( false ) ;
103
+ setFieldMissing ( true ) ;
66
104
}
67
105
} ;
68
106
69
107
return (
70
- < form className = "form--data flex w-full items-center my-6" >
71
- < div className = "mx-auto w-1/4" >
108
+ < form className = "flex items-center w-full my-6 form--data " >
109
+ < div className = "w-1/4 mx-auto " >
72
110
{ formAddRemote ( "remoteName" , "Remote name" ) }
73
111
</ div >
74
- < div className = "mx-auto w-1/2" >
112
+ < div className = "w-1/2 mx-auto " >
75
113
{ formAddRemote ( "remoteURL" , "Remote URL" ) }
76
114
</ div >
77
115
< div
78
- className = "text-center flex items-center justify-evenly"
116
+ className = "flex items-center text -center justify-evenly"
79
117
style = { { outline : "none" , width : "22%" } }
80
118
>
81
119
< div
82
- className = "xl:text-lg lg:text-lg md:text-base text-base items-center p-1 py-2 rounded w-5/12 mx-auto cursor-pointer bg-blue-500 hover:bg-blue-700 font-semibold "
120
+ className = "items-center w-5/12 p-1 py-2 mx-auto text-base font-semibold bg-blue-500 rounded cursor-pointer xl:text-lg lg:text-lg md:text-base hover:bg-blue-700"
83
121
onClick = { ( ) => {
84
122
addRemote ( ) ;
85
123
} }
@@ -90,13 +128,13 @@ export default function AddRemoteRepoFormComponent(props) {
90
128
> </ FontAwesomeIcon >
91
129
</ div >
92
130
< div
93
- className = "xl:text-lg lg:text-lg md:text-base text-base items-center p-1 py-2 rounded w-5/12 mx-auto cursor-pointer bg-red-500 hover:bg-red-600 font-semibold "
131
+ className = "items-center w-5/12 p-1 py-2 mx-auto text-base font-semibold bg-red-500 rounded cursor-pointer xl:text-lg lg:text-lg md:text-base hover:bg-red-600"
94
132
onClick = { ( ) => {
95
- props . setAddNewRemote ( true ) ;
96
- props . setRemoteForm ( false ) ;
97
- props . setFieldMissing ( false ) ;
98
- props . setInvalidUrl ( false ) ;
99
- props . setAddRemoteStatus ( false ) ;
133
+ setAddNewRemote ( true ) ;
134
+ setRemoteForm ( false ) ;
135
+ setFieldMissing ( false ) ;
136
+ setInvalidUrl ( false ) ;
137
+ setAddRemoteStatus ( false ) ;
100
138
} }
101
139
>
102
140
< FontAwesomeIcon
0 commit comments