diff --git a/assets/js/EditProfile.jsx b/assets/js/EditProfile.jsx index c27ba0569ddcff2c0d895c189f47718245c8f31d..a6510952e1120c85d675826da84b50d5c7d8476c 100644 --- a/assets/js/EditProfile.jsx +++ b/assets/js/EditProfile.jsx @@ -11,10 +11,9 @@ import { import Server from './lib/Server'; import Storage from './lib/Storage'; import ModalAlert from './components/ModalAlert'; -import Dumper from './lib/Dumper'; -import { isFromGithubLinkValid } from './Utils'; +import ProfileHandler from './ProfileHandler'; -export default class EditProfile extends React.Component { +export default class EditProfile extends ProfileHandler { static propTypes = { route: PropTypes.object.isRequired, params: PropTypes.object.isRequired, @@ -157,72 +156,6 @@ export default class EditProfile extends React.Component { return dateIndexArray.reverse().join(' '); } - handleSubmit = (e) => { - e.preventDefault(); - if (!isFromGithubLinkValid(this.state.form.github_url)) { - this.modalAlert.open( - 'Pembaharuan profil gagal', - 'Pastikan link github yang anda tulis benar.(Berpola : https://github.com/<username>', - ); - } else { - const submitForm = {}; - Object.keys(this.state.form).forEach((key) => { - if (this.state.form[key] !== '') { - submitForm[key] = this.state.form[key]; - } - }); - this.setState({ loading: true }); - Server.submit( - `/students/${this.state.id}/profile/`, - submitForm, - 'PATCH', - ).then( - () => { - this.setState({ loading: false }); - this.modalAlert.open( - 'Profil berhasil diperbaharui', - 'Silakan periksa kembali profil anda', - this.getProfile, - ); - }, - (error) => error.then((r) => { - this.setState({ loading: false }); - this.modalAlert.open('Pembaharuan profil gagal', Dumper.dump(r)); - }), - ); - } - }; - - handleFile = (e) => { - const { form } = this.state; - form[e.target.name] = e.target.files[0]; - this.setState({ form }); - }; - - handleChange = (e) => { - const { form } = this.state; - form[e.target.name] = e.target.value; - this.setState({ form }); - }; - - handleCheckbox = (e, d) => { - const { form } = this.state; - form[d.name] = d.checked; - this.setState({ form, show_transcript: d.checked }); - }; - - handleRadioGender = (e, { value }) => { - const { form } = this.state; - form.gender = value; - this.setState({ form }); - }; - - handleRadio = (e, { value }) => { - const { form } = this.state; - form.job_seeking_status = value; - this.setState({ form }); - }; - updateForm(show) { if (show) { return ( diff --git a/assets/js/ProfileHandler.jsx b/assets/js/ProfileHandler.jsx index e21b96aae3812298eba2b539d991dc8a28991e48..40cb8ae40cbf38f8808185d0766d863b7661cff8 100644 --- a/assets/js/ProfileHandler.jsx +++ b/assets/js/ProfileHandler.jsx @@ -1,4 +1,5 @@ import React from 'react'; +import Server from './lib/Server'; import Dumper from './lib/Dumper'; import { isFromGithubLinkValid } from './Utils';