import React, { useRef, useState, useEffect } from 'react'; import { LoadingButton } from '@material-ui/lab'; 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(localStorage.getItem('notice')); const father_id = localStorage.getItem('kiki_acc_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 [_copyFlag, setCopyFlag] = useState(false); const isMountedRef = useRef(true); useEffect(() => { isMountedRef.current = false; return()=>{ isMountedRef.current = true; } }, []) const handleSubmit = (e) => { e.preventDefault(); 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) => { set401Error(''); setLoaded(false); if(type == 'invite'){ let inviteurl = document.getElementById('inviteurl').value; let sentence = '「KIKI」の招待が届いています。' + '\n' + 'まずは以下より仮登録を行ってください。' + '\n' + '※スマホ本体を最新の状態にアップデートしてからURLをクリックしてください。' + '\n\n' + inviteurl + '\n\n' + '▼公式サイトはこちら' + '\n' + 'https://kikikan.jp' + '\n\n' + 'idの箇所は親のidを引っ張るようお願い致します。'; if(!copy(sentence, {debug: true})){ set400Error('コピー失敗しました。'); return; } } axios.get('/api/fathers/relations/check') .then(response=>{ if(isMountedRef.current) return; switch(response.data.status_code){ case 200: { if(type == "invite") setSuccess('招待用URLをコピーしました。'); else if(type=='line') copyLineText(); 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 copyInviteURL = () => { let inviteurl = document.getElementById('inviteurl').value; let sentence = '「KIKI」の招待が届いています。' + '\n' + 'まずは以下より仮登録を行ってください。' + '\n' + '※スマホ本体を最新の状態にアップデートしてからURLをクリックしてください。' + '\n\n' + inviteurl + '\n\n' + '▼公式サイトはこちら' + '\n' + 'https://kikikan.jp' + '\n\n' + 'idの箇所は親のidを引っ張るようお願い致します。'; if(copy(sentence, {debug: true})) { setSuccess('招待用URLをコピーしました。'); } else { set400Error('コピー失敗しました。'); } } const copyLineText = () => { const inviteUrl = document.getElementById('inviteurl_html').value; const siteUrl = document.getElementById('siteurl').value; const lineText = `「KIKI」の招待が届いています。%0Aまずは以下より仮登録を行ってください。%0A%0A※スマホ本体を最新の状態にアップデートしてからURLをクリックしてください。%0A%0A${inviteUrl}%0A%0A▼公式サイトはこちら%0A${siteUrl}`; window.location.href = 'http://line.me/R/msg/text/?'+lineText; } 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;