import React, { useRef, useState, useEffect, useContext } from 'react'; import { LoadingButton } from '@material-ui/lab'; import { HeaderContext } from '../../context'; import Alert from '../../component/alert'; import Notification from '../../component/notification'; import PageLoader from '../../component/page_loader'; import copy from 'copy-to-clipboard'; const ParentChildAdd = () => { const [notice, setNotice] = useState(-1); const father_id = localStorage.getItem('father_id'); const [loaded, setLoaded] = useState(true); const [identity, setIdentity] = useState(''); const [_success, setSuccess] = useState(''); const [_400error, set400Error] = useState(''); const [_401error, set401Error] = useState(''); const [_422errors, set422Errors] = useState({identity: ''}); const [submit, setSubmit] = useState(false); const isMountedRef = useRef(true); const { isAuthenticate } = useContext(HeaderContext); const inviteurl = '「KIKI」の招待が届いています。' + '\n' + 'まずは以下より仮登録を行ってください。' + '\n' + '※スマホ本体を最新の状態にアップデートしてからURLをクリックしてください。' + '\n\n' + document.getElementById('inviteurl').value + '\n\n' + '▼公式サイトはこちら' + '\n' + 'https://kikikan.jp'; const lineText = `「KIKI」の招待が届いています。%0Aまずは以下より仮登録を行ってください。 %0A%0A※スマホ本体を最新の状態にアップデートしてからURLをクリックしてください。 %0A%0A${document.getElementById('inviteurl_html').value}%0A%0A▼公式サイトはこちら%0A${document.getElementById('siteurl').value}`; useEffect(() => { isMountedRef.current = false; return()=>{ isMountedRef.current = true; } }, []) const handleSubmit = (e) => { e.preventDefault(); if(isAuthenticate()){ set422Errors({identity: ''}); set401Error(''); const formdata = new FormData(); formdata.append('identity', identity); formdata.append('father_id', father_id); setSubmit(true); axios.post('/api/fathers/relations/register', formdata) .then(response => { if(isMountedRef.current) return; setSubmit(false); setNotice(response.data.notice); switch(response.data.status_code){ case 200: setSuccess(response.data.success_messages); break; case 400: set400Error(response.data.error_messages); break; case 401: set401Error(response.data.error_messages); set400Error(response.data.error_messages); break; case 422: window.scrollTo(0, 0); set422Errors(response.data.error_messages); break; } }); } } const handleCheckRelations = (type) => { if(isAuthenticate()){ set401Error(''); setLoaded(false); if(type == 'invite'){ if(!copy(inviteurl, {debug: true})){ set400Error('コピー失敗しました。'); return; } } axios.get('/api/fathers/relations/check', {params:{father_id: father_id}}) .then(response=>{ if(isMountedRef.current) return; switch(response.data.status_code){ case 200: { if(type == 'invite') setSuccess('コピー成功しました。'); else if(type == 'line') window.location.href = `http://line.naver.jp/R/msg/text/?${lineText}`; break; } case 400: set400Error(response.data.error_messages); break; case 401: set401Error(response.data.error_messages); set400Error(response.data.error_messages); break; } setNotice(response.data.notice); setLoaded(true); }) .catch(err=>console.log(err)); } } const contactMailText = 'mailto:56@zotman.jp?subject=KIKIメンバー追加について&body='+ '名前%3A%0A電話番号%3A%0AログインID%3A%0Aログインパスワード%3A%0A追加したいメンバー数%3A%0A「その他お問合せ内容」' return (

子追加

{ !loaded && }
{ _401error && 追加する場合はこちらよりお問い合わせお願いします。 }
setIdentity(e.target.value)} className={`input-default input-title input-h60 input-w480 ${ _422errors.identity && 'is-invalid c-input__target'} `} /> { _422errors.identity && {_422errors.identity} }
追加
{ _success && setSuccess('')}>{_success} } { _400error && set400Error('')}>{_400error} }
) } export default ParentChildAdd;