Fakultas Ilmu Komputer UI
Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ppl-fasilkom-ui
PPL Sosial
tbcare
tbcare-mobile
Commits
31af6eba
Commit
31af6eba
authored
Jun 06, 2021
by
jahnsmichael
Browse files
[REFACTOR] rename for convention with backend
parent
e3872471
Pipeline
#81806
passed with stage
in 17 minutes and 6 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/scenes/EditProfileForm/index.test.tsx
View file @
31af6eba
...
...
@@ -68,28 +68,28 @@ describe("EditProfileForm", () => {
expect
(
formPage
).
toBeTruthy
()
const
nameField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
new_
name
"
)
const
nameField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
name
"
)
expect
(
nameField
).
toBeTruthy
()
const
usernameField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
new_
username
"
)
const
usernameField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
username
"
)
expect
(
usernameField
).
toBeTruthy
()
const
passwordField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
new_
password
"
)
const
passwordField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
password
"
)
expect
(
passwordField
).
toBeTruthy
()
const
confirmPasswordField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
confirm_
new_
password
"
)
const
confirmPasswordField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
confirm_password
"
)
expect
(
confirmPasswordField
).
toBeTruthy
()
const
emailField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
new_
email
"
)
const
emailField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
email
"
)
expect
(
emailField
).
toBeTruthy
()
const
phoneField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
new_
phone_number
"
)
const
phoneField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
phone_number
"
)
expect
(
phoneField
).
toBeTruthy
()
const
districtField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
new_
district
"
)
const
districtField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
district
"
)
expect
(
districtField
).
toBeTruthy
()
const
sub_districtField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
new_
sub_district
"
)
const
sub_districtField
=
formPage
.
root
.
find
(
elem
=>
elem
.
props
.
id
===
"
sub_district
"
)
expect
(
sub_districtField
).
toBeTruthy
()
// Set value
...
...
src/scenes/EditProfileForm/index.tsx
View file @
31af6eba
...
...
@@ -18,38 +18,38 @@ const EditProfileForm = () => {
const
imageSize
=
0.15
*
global
.
vh
;
const
[
form
,
setField
]
=
useFormState
({
new_
name
:
{
type
:
'
text
'
},
new_
username
:
{
type
:
'
any
'
},
new_
password
:
{
type
:
'
password
'
},
confirm_
new_
password
:
{
type
:
'
password
'
},
new_
email
:
{
type
:
'
email
'
},
new_
phone_number
:
{
type
:
'
phone
'
},
new_
district
:
{
type
:
'
any
'
},
new_
sub_district
:
{
type
:
'
any
'
},
name
:
{
type
:
'
text
'
},
username
:
{
type
:
'
any
'
},
password
:
{
type
:
'
password
'
},
confirm_password
:
{
type
:
'
password
'
},
email
:
{
type
:
'
email
'
},
phone_number
:
{
type
:
'
phone
'
},
district
:
{
type
:
'
any
'
},
sub_district
:
{
type
:
'
any
'
},
});
const
[
serverHasError
,
setServerHasError
]
=
useState
(
false
);
const
[
messageErrors
,
setMessageErrors
]
=
useState
({
new_
name
:
''
,
new_
username
:
''
,
new_
password
:
''
,
confirm_
new_
password
:
''
,
new_
email
:
''
,
new_
phone_number
:
''
,
new_
district
:
''
,
new_
sub_district
:
''
,
name
:
''
,
username
:
''
,
password
:
''
,
confirm_password
:
''
,
email
:
''
,
phone_number
:
''
,
district
:
''
,
sub_district
:
''
,
})
const
[
modalVisible
,
setModalVisible
]
=
useState
(
false
);
const
[
isLoading
,
setIsLoading
]
=
useState
(
false
);
const
initFieldValue
=
()
=>
{
setField
(
'
new_
name
'
,
global
.
user
.
name
);
setField
(
'
new_
username
'
,
global
.
user
.
username
);
setField
(
'
new_
email
'
,
global
.
user
.
email
);
setField
(
'
new_
phone_number
'
,
global
.
user
.
phone_number
);
setField
(
'
new_
district
'
,
global
.
user
.
district
);
setField
(
'
new_
sub_district
'
,
global
.
user
.
sub_district
);
setField
(
'
name
'
,
global
.
user
.
name
);
setField
(
'
username
'
,
global
.
user
.
username
);
setField
(
'
email
'
,
global
.
user
.
email
);
setField
(
'
phone_number
'
,
global
.
user
.
phone_number
);
setField
(
'
district
'
,
global
.
user
.
district
);
setField
(
'
sub_district
'
,
global
.
user
.
sub_district
);
}
useEffect
(
initFieldValue
,
[]);
...
...
@@ -102,103 +102,103 @@ const EditProfileForm = () => {
</
Modal
>
<
InputField
>
<
Field
id
=
"
new_
name"
id
=
"name"
name
=
"Nama"
placeholder
=
"Nama Lengkap Anda"
isRequired
=
{
true
}
information
=
{
messageErrors
.
new_
name
}
value
=
{
form
.
fields
.
new_
name
.
value
}
updateValue
=
{
val
=>
setField
(
'
new_
name
'
,
val
)
}
information
=
{
messageErrors
.
name
}
value
=
{
form
.
fields
.
name
.
value
}
updateValue
=
{
val
=>
setField
(
'
name
'
,
val
)
}
/>
</
InputField
>
<
InputField
>
<
Field
id
=
"
new_
username"
id
=
"username"
name
=
"Username"
placeholder
=
"Username Anda"
isRequired
=
{
true
}
information
=
{
messageErrors
.
new_
username
}
value
=
{
form
.
fields
.
new_
username
.
value
}
updateValue
=
{
val
=>
setField
(
'
new_
username
'
,
val
)
}
information
=
{
messageErrors
.
username
}
value
=
{
form
.
fields
.
username
.
value
}
updateValue
=
{
val
=>
setField
(
'
username
'
,
val
)
}
/>
</
InputField
>
<
InputField
>
<
Field
id
=
"
new_
password"
id
=
"password"
name
=
"Password"
placeholder
=
"Password Anda"
isRequired
=
{
true
}
shouldSecure
=
{
true
}
information
=
{
messageErrors
.
new_
password
}
value
=
{
form
.
fields
.
new_
password
.
value
}
updateValue
=
{
val
=>
setField
(
'
new_
password
'
,
val
)
}
information
=
{
messageErrors
.
password
}
value
=
{
form
.
fields
.
password
.
value
}
updateValue
=
{
val
=>
setField
(
'
password
'
,
val
)
}
/>
</
InputField
>
<
InputField
>
<
Field
id
=
"confirm_
new_
password"
id
=
"confirm_password"
name
=
"Konfirmasi Password"
placeholder
=
"Konfirmasi Password Anda"
isRequired
=
{
true
}
shouldSecure
=
{
true
}
information
=
{
messageErrors
.
confirm_
new_
password
}
value
=
{
form
.
fields
.
confirm_
new_
password
.
value
}
updateValue
=
{
val
=>
setField
(
'
confirm_
new_
password
'
,
val
)
}
information
=
{
messageErrors
.
confirm_password
}
value
=
{
form
.
fields
.
confirm_password
.
value
}
updateValue
=
{
val
=>
setField
(
'
confirm_password
'
,
val
)
}
/>
</
InputField
>
<
InputField
>
<
Field
id
=
"
new_
email"
id
=
"email"
name
=
"Email"
placeholder
=
"Email Anda"
isRequired
=
{
true
}
information
=
{
messageErrors
.
new_
email
}
value
=
{
form
.
fields
.
new_
email
.
value
}
updateValue
=
{
val
=>
setField
(
'
new_
email
'
,
val
)
}
information
=
{
messageErrors
.
email
}
value
=
{
form
.
fields
.
email
.
value
}
updateValue
=
{
val
=>
setField
(
'
email
'
,
val
)
}
/>
</
InputField
>
<
InputField
>
<
Field
id
=
"
new_
phone_number"
id
=
"phone_number"
name
=
"Nomor Handphone"
placeholder
=
"No HP Anda"
isRequired
=
{
true
}
information
=
{
messageErrors
.
new_
phone_number
}
value
=
{
form
.
fields
.
new_
phone_number
.
value
}
updateValue
=
{
val
=>
setField
(
'
new_
phone_number
'
,
val
)
}
information
=
{
messageErrors
.
phone_number
}
value
=
{
form
.
fields
.
phone_number
.
value
}
updateValue
=
{
val
=>
setField
(
'
phone_number
'
,
val
)
}
/>
</
InputField
>
<
InputField
>
<
Field
id
=
"
new_
district"
id
=
"district"
type
=
{
3
}
name
=
"Kecamatan"
placeholder
=
"Pilih Kecamatan"
isRequired
=
{
true
}
information
=
{
messageErrors
.
new_
district
}
value
=
{
form
.
fields
.
new_
district
.
value
||
KECAMATAN_VALUES
[
0
].
value
}
updateValue
=
{
val
=>
setField
(
'
new_
district
'
,
val
)
}
information
=
{
messageErrors
.
district
}
value
=
{
form
.
fields
.
district
.
value
||
KECAMATAN_VALUES
[
0
].
value
}
updateValue
=
{
val
=>
setField
(
'
district
'
,
val
)
}
values
=
{
KECAMATAN_VALUES
}
/>
</
InputField
>
<
InputField
>
<
Field
id
=
"
new_
sub_district"
id
=
"sub_district"
type
=
{
3
}
name
=
"Kelurahan"
placeholder
=
"Pilih Kelurahan"
isRequired
=
{
true
}
information
=
{
messageErrors
.
new_
sub_district
}
value
=
{
form
.
fields
.
new_
sub_district
.
value
||
KELURAHAN_VALUES
[
KECAMATAN_VALUES
[
0
].
value
][
0
].
value
}
updateValue
=
{
val
=>
setField
(
'
new_
sub_district
'
,
val
)
}
values
=
{
(
form
.
fields
.
new_
district
.
value
)
?
KELURAHAN_VALUES
[
form
.
fields
.
new_
district
.
value
]
:
KELURAHAN_VALUES
[
KECAMATAN_VALUES
[
0
].
value
]
}
information
=
{
messageErrors
.
sub_district
}
value
=
{
form
.
fields
.
sub_district
.
value
||
KELURAHAN_VALUES
[
KECAMATAN_VALUES
[
0
].
value
][
0
].
value
}
updateValue
=
{
val
=>
setField
(
'
sub_district
'
,
val
)
}
values
=
{
(
form
.
fields
.
district
.
value
)
?
KELURAHAN_VALUES
[
form
.
fields
.
district
.
value
]
:
KELURAHAN_VALUES
[
KECAMATAN_VALUES
[
0
].
value
]
}
/>
</
InputField
>
<
Button
...
...
@@ -208,14 +208,14 @@ const EditProfileForm = () => {
setIsLoading
(
true
)
const
response
=
await
global
.
services
.
main
.
editProfile
({
new_
name
:
form
.
fields
.
new_
name
.
value
,
new_
username
:
form
.
fields
.
new_
username
.
value
.
replace
(
/
\s
+$/
,
''
),
new_
password
:
form
.
fields
.
new_
password
.
value
,
confirm_
new_
password
:
form
.
fields
.
confirm_
new_
password
.
value
,
new_
email
:
form
.
fields
.
new_
email
.
value
,
new_
phone_number
:
form
.
fields
.
new_
phone_number
.
value
,
new_
district
:
form
.
fields
.
new_
district
.
value
,
new_
sub_district
:
form
.
fields
.
new_
sub_district
.
value
name
:
form
.
fields
.
name
.
value
,
username
:
form
.
fields
.
username
.
value
.
replace
(
/
\s
+$/
,
''
),
password
:
form
.
fields
.
password
.
value
,
confirm_password
:
form
.
fields
.
confirm_password
.
value
,
email
:
form
.
fields
.
email
.
value
,
phone_number
:
form
.
fields
.
phone_number
.
value
,
district
:
form
.
fields
.
district
.
value
,
sub_district
:
form
.
fields
.
sub_district
.
value
})
if
(
response
.
status
===
200
)
{
...
...
@@ -232,27 +232,27 @@ const EditProfileForm = () => {
});
}
else
if
(
response
.
status
===
400
)
{
const
errors
=
{
new_
name
:
response
.
data
.
new_
name
||
[],
new_
username
:
response
.
data
.
new_
username
||
[],
new_
password
:
response
.
data
.
new_
password
||
[],
confirm_
new_
password
:
response
.
data
.
confirm_
new_
password
||
[],
new_
email
:
response
.
data
.
new_
email
||
[],
new_
phone_number
:
response
.
data
.
new_
phone_number
||
[],
new_
district
:
response
.
data
.
new_
district
||
[],
new_
sub_district
:
response
.
data
.
new_
sub_district
||
[],
name
:
response
.
data
.
name
||
[],
username
:
response
.
data
.
username
||
[],
password
:
response
.
data
.
password
||
[],
confirm_password
:
response
.
data
.
confirm_password
||
[],
email
:
response
.
data
.
email
||
[],
phone_number
:
response
.
data
.
phone_number
||
[],
district
:
response
.
data
.
district
||
[],
sub_district
:
response
.
data
.
sub_district
||
[],
}
if
(
response
.
data
.
non_field_errors
)
{
switch
(
response
.
data
.
non_field_errors
[
0
])
{
case
"
Inconsistent password and confirmation
"
:
errors
.
confirm_
new_
password
=
[
...
errors
.
confirm_
new_
password
,
errors
.
confirm_password
=
[
...
errors
.
confirm_password
,
"
Password dan konfirmasinya tidak konsisten
"
]
break
;
case
"
Inconsistent district and sub district value
"
:
errors
.
new_
district
=
[
...
errors
.
new_
district
,
errors
.
district
=
[
...
errors
.
district
,
"
Kecamatan dan kelurahan tidak konsisten
"
]
break
;
...
...
@@ -262,14 +262,14 @@ const EditProfileForm = () => {
}
setMessageErrors
({
new_
name
:
translateError
(
errors
.
new_
name
[
0
]
||
""
),
new_
username
:
translateError
(
errors
.
new_
username
[
0
]
||
""
)
+
"
Username hanya boleh terdiri dari karakter alfanumerik atau salah satu dari {@, +, ., _, -}
"
,
new_
password
:
translateError
(
errors
.
new_
password
[
0
]
||
""
),
confirm_
new_
password
:
translateError
(
errors
.
confirm_
new_
password
[
0
]
||
""
),
new_
email
:
translateError
(
errors
.
new_
email
[
0
]
||
""
),
new_
phone_number
:
translateError
(
errors
.
new_
phone_number
[
0
]
||
""
),
new_
district
:
translateError
(
errors
.
new_
district
[
0
]
||
""
),
new_
sub_district
:
translateError
(
errors
.
new_
sub_district
[
0
]
||
""
),
name
:
translateError
(
errors
.
name
[
0
]
||
""
),
username
:
translateError
(
errors
.
username
[
0
]
||
""
),
password
:
translateError
(
errors
.
password
[
0
]
||
""
),
confirm_password
:
translateError
(
errors
.
confirm_password
[
0
]
||
""
),
email
:
translateError
(
errors
.
email
[
0
]
||
""
),
phone_number
:
translateError
(
errors
.
phone_number
[
0
]
||
""
),
district
:
translateError
(
errors
.
district
[
0
]
||
""
),
sub_district
:
translateError
(
errors
.
sub_district
[
0
]
||
""
),
})
}
else
if
(
response
.
status
===
500
)
{
if
(
response
.
data
.
includes
(
"
IntegrityError
"
))
{
...
...
src/services/hooks/useMainService/index.test.tsx
View file @
31af6eba
...
...
@@ -80,14 +80,14 @@ describe('Test API that needs token', () => {
test
(
'
Edit current user profile
'
,
async
()
=>
{
const
newUserProfile
=
{
"
new_
username
"
:
"
admin
"
,
"
new_
name
"
:
"
admin
"
,
"
new_
email
"
:
"
admin@email.com
"
,
"
new_
password
"
:
"
akupasskamu123
"
,
"
confirm_
new_
password
"
:
"
akupasskamu123
"
,
"
new_
phone_number
"
:
"
0812682163256
"
,
"
new_
district
"
:
"
Tapos
"
,
"
new_
sub_district
"
:
"
Sukatani
"
,
"
username
"
:
"
admin
"
,
"
name
"
:
"
admin
"
,
"
email
"
:
"
admin@email.com
"
,
"
password
"
:
"
akupasskamu123
"
,
"
confirm_password
"
:
"
akupasskamu123
"
,
"
phone_number
"
:
"
0812682163256
"
,
"
district
"
:
"
Tapos
"
,
"
sub_district
"
:
"
Sukatani
"
,
}
mockedAxios
.
request
.
mockImplementationOnce
(
...
...
src/services/hooks/useMainService/index.tsx
View file @
31af6eba
...
...
@@ -95,14 +95,14 @@ export default function useMainService(token: string) {
}
interface
EditProfileFormType
{
new_
name
:
string
;
new_
username
:
string
;
new_
password
:
string
;
confirm_
new_
password
:
string
;
new_
email
:
string
;
new_
phone_number
:
string
;
new_
district
:
string
;
new_
sub_district
:
string
;
name
:
string
;
username
:
string
;
password
:
string
;
confirm_password
:
string
;
email
:
string
;
phone_number
:
string
;
district
:
string
;
sub_district
:
string
;
}
async
function
editProfile
(
body
:
EditProfileFormType
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment