Merge branch 'develop' of github.com:nakazawakan/kikikanri into develop

このコミットが含まれているのは:
守矢諏訪子 2021-12-18 12:14:33 +09:00
コミット 02987ca87c
37個のファイルの変更2620行の追加2568行の削除

817
backend/composer.lock generated

ファイル差分が大きすぎるため省略します 差分を読み込み

バイナリ
backend/public/assets/img/common/Group 2967.png ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 3.3 MiB

ファイルの表示

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#000;}
</style>
<path id="Icon_ionic-ios-star-outline" class="st0" d="M21.9,9h-7.1l-2.1-6.3c-0.2-0.4-0.6-0.6-1-0.4c-0.2,0.1-0.4,0.3-0.4,0.4
L9.1,9H2C1.6,9,1.2,9.3,1.2,9.7v0.1c0,0.2,0.2,0.4,0.4,0.5l5.8,4l-2.2,6.3c-0.1,0.3,0,0.6,0.3,0.9c0.1,0.2,0.3,0.2,0.4,0.3
c0.2,0,0.4-0.1,0.4-0.2l5.6-3.9l5.6,3.9c0.2,0.1,0.3,0.2,0.4,0.2s0.3-0.1,0.4-0.2c0.3-0.2,0.4-0.5,0.3-0.9l-2.2-6.3l5.7-4l0.2-0.1
c0.3-0.3,0.4-0.4,0.4-0.6C22.7,9.3,22.3,9,21.9,9z M15.8,13.4c-0.4,0.4-0.7,1-0.4,1.5l1.4,4.1c0,0.1,0,0.2-0.1,0.3
c-0.1,0-0.1,0-0.2,0l-3.7-2.6c-0.3-0.2-0.5-0.3-0.8-0.3s-0.5,0.1-0.8,0.3l-3.8,2.5c-0.1,0.1-0.2,0-0.3,0c0-0.1-0.1-0.1,0-0.2
l1.4-4.1c0.2-0.5,0-1.2-0.5-1.5l-3.8-2.7c-0.1-0.1-0.1-0.2,0-0.3c0-0.1,0.1-0.1,0.2-0.1h4.7c0.5,0,1.1-0.4,1.3-0.9l1.4-4.2
c0-0.1,0.2-0.2,0.3-0.1c0.1,0,0.1,0.1,0.1,0.1l1.3,4.1c0.2,0.5,0.7,0.9,1.3,0.9h4.6c0.1,0,0.2,0.1,0.2,0.2c0,0.1,0,0.1-0.1,0.2
L15.8,13.4z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 1.2 KiB

ファイルの表示

@ -11082,11 +11082,11 @@ h3 {
* notification...お知らせエリアのコンポーネントです * notification...お知らせエリアのコンポーネントです
* meeting...ミーティングエリアのコンポーネントです * meeting...ミーティングエリアのコンポーネントです
* article...詳細ページのコンポーネントです * article...詳細ページのコンポーネントです
* modal...モーダルのコンポーネントです * modal...モーダルのコンポーネントです
* search...検索ページのコンポーネントです * search...検索ページのコンポーネントです
* profile...プロフィールページのコンポーネントです * profile...プロフィールページのコンポーネントです
* edit...エディットページのコンポーネントです * edit...エディットページのコンポーネントです
* *
* SCOPE * SCOPE
* blog...ブログページのスタイルです * blog...ブログページのスタイルです
* *
@ -12255,14 +12255,15 @@ categories: [layout]
background-image: url(/assets/img/icon/list-black.svg); background-image: url(/assets/img/icon/list-black.svg);
} }
} }
.mypage-nav-list__item.nav-active .icon.star:before {
background-image: url(/assets/img/icon/star-outline-yellow02.svg);
}
@media screen and (min-width: 1068px) { @media screen and (min-width: 1068px) {
.mypage-nav-list__item.nav-active .icon.star:before { .mypage-nav-list__item.nav-active .icon.star:before {
background-image: url(/assets/img/icon/star-outline-black.svg); background-image: url(/assets/img/icon/star-outline-black.svg);
} }
}
@media screen and (max-width: 1067px) {
.mypage-nav-list__item.nav-active .icon.star:before {
background-image: url(/assets/img/icon/star-outline-yellow02.svg);
}
} }
.mypage-nav-list__item.nav-active .icon.parents:before { .mypage-nav-list__item.nav-active .icon.parents:before {
background-image: url(/assets/img/icon/people-yellow.svg); background-image: url(/assets/img/icon/people-yellow.svg);
@ -12929,7 +12930,7 @@ categories: [project]
@font-face { @font-face {
font-family: "iconfont"; font-family: "iconfont";
src: url(/fonts/iconfont.eot?9bd2f8e21fb68f3cb69f306c7a5a07d2); src: url(/fonts/iconfont.eot?9bd2f8e21fb68f3cb69f306c7a5a07d2);
src: url(/fonts/iconfont.eot?9bd2f8e21fb68f3cb69f306c7a5a07d2) format("eot"), url(/fonts/iconfont.woff?72290a51f520574be856b3621acc29a1) format("woff"), url(/fonts/iconfont.ttf?e240ce427caf7549e576c77b39a1d3f1) format("truetype"), url(/fonts/iconfont.svg?d812f238f7ec32f5cb5ebd322f320a02) format("svg"); src: url(/fonts/iconfont.eot?9bd2f8e21fb68f3cb69f306c7a5a07d2) format("eot"), url(/fonts/iconfont.woff?72290a51f520574be856b3621acc29a1) format("woff"), url(/fonts/iconfont.ttf?e240ce427caf7549e576c77b39a1d3f1) format("truetype"), url(/fonts/iconfont.svg?9e48c54f8bbb472c1c286234fdd6636f) format("svg");
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
} }
@ -13210,7 +13211,7 @@ Modifierは以下のとおりです。
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
} }
/* /*
.p-btn { .p-btn {
display: inline-block; display: inline-block;
margin: 0; margin: 0;
@ -14487,15 +14488,18 @@ categories: [project]
max-width: 700px; max-width: 700px;
} }
.p-file-for { .p-file-for {
padding: 50px 0;
border: 1px solid rgba(36, 77, 138, 0.1); border: 1px solid rgba(36, 77, 138, 0.1);
border-radius: 6px; border-radius: 6px;
margin-bottom: 15px; margin-bottom: 15px;
} }
@media screen and (min-width: 1068px) { .p-file-for figure {
.p-file-for { height: 350px;
padding: 80px 0; }
} .p-file-for figure img {
width: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain;
} }
.p-file-nav { .p-file-nav {
display: flex; display: flex;
@ -17385,16 +17389,6 @@ a {
border-radius: 50%; border-radius: 50%;
} }
.p-file-for figure {
height: 250px;
}
.p-file-for figure img {
width: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain;
}
.mypage-nav-list__item.nav-active .prof-wrap { .mypage-nav-list__item.nav-active .prof-wrap {
border: 1px solid #F0DE00 !important; border: 1px solid #F0DE00 !important;
} }

3979
backend/public/js/app.js vendored

ファイル差分が大きすぎるため省略します 差分を読み込み

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import axios from 'axios'; import axios from 'axios';
@ -25,8 +25,11 @@ const ChildDetail = (props) => {
const [_422errors, set422Errors] = useState({ image: '' }); const [_422errors, set422Errors] = useState({ image: '' });
const [_success, setSuccess] = useState(props.history.location.state); const [_success, setSuccess] = useState(props.history.location.state);
const [show_confirm_modal, setShowConfirmModal] = useState(false); const [show_confirm_modal, setShowConfirmModal] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get(`/api/admin/children/detail/${props.match.params?.child_id}`) axios.get(`/api/admin/children/detail/${props.match.params?.child_id}`)
.then(response => { .then(response => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import axios from 'axios'; import axios from 'axios';
import { LoadingButton } from '@material-ui/lab'; import { LoadingButton } from '@material-ui/lab';
@ -33,8 +33,10 @@ const ChildEdit = (props) => {
const [submit, setSubmit] = useState(false); const [submit, setSubmit] = useState(false);
const [loaded, setLoaded] = useState(false); const [loaded, setLoaded] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get(`/api/admin/children/detail/${props.match.params?.child_id}`) axios.get(`/api/admin/children/detail/${props.match.params?.child_id}`)
.then(response => { .then(response => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
import axios from 'axios'; import axios from 'axios';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
@ -22,7 +22,10 @@ const Child = (props) => {
const [_400error, set400Error] = useState(''); const [_400error, set400Error] = useState('');
const [_success, setSuccess] = useState(props.history.location.state); const [_success, setSuccess] = useState(props.history.location.state);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get('/api/admin/children/list') axios.get('/api/admin/children/list')
.then((response) => { .then((response) => {

ファイルの表示

@ -1,4 +1,4 @@
import { useEffect, useState } from 'react'; import { useRef, useEffect, useState } from 'react';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import moment from 'moment'; import moment from 'moment';
import axios from 'axios'; import axios from 'axios';
@ -25,8 +25,10 @@ const MeetingDetail = (props) => {
const [show_pdf_modal, setShowPDFModal] = useState(false); const [show_pdf_modal, setShowPDFModal] = useState(false);
const [show_memo_modal, setShowMemoModal] = useState(false); const [show_memo_modal, setShowMemoModal] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get(`/api/admin/meetings/detail/${props.match.params?.meeting_id}`) axios.get(`/api/admin/meetings/detail/${props.match.params?.meeting_id}`)
.then((response) => { .then((response) => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import axios from 'axios'; import axios from 'axios';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
@ -34,7 +34,9 @@ const MeetingEdit = (props) => {
const [check_radio, setCheckRadio] = useState(null); const [check_radio, setCheckRadio] = useState(null);
const [image_sending, setImageSending] = useState(false); const [image_sending, setImageSending] = useState(false);
const isMountedRef = useRef(true);
useEffect(()=>{ useEffect(()=>{
if(!loaded) return; //if dont load data if(!loaded) return; //if dont load data
var list = [...children_list]; var list = [...children_list];
@ -54,6 +56,7 @@ const MeetingEdit = (props) => {
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get(`/api/admin/meetings/detail/${meeting_id}`) axios.get(`/api/admin/meetings/detail/${meeting_id}`)
.then(response => { .then(response => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
import moment from 'moment'; import moment from 'moment';
import axios from 'axios'; import axios from 'axios';
@ -22,16 +22,19 @@ const Meeting = (props) => {
const [_422errors, set422errors] = useState({keyword:''}); const [_422errors, set422errors] = useState({keyword:''});
const [_success, setSuccess] = useState(props.history.location.state); const [_success, setSuccess] = useState(props.history.location.state);
const isMountedRef = useRef(true);
useEffect(()=>{ useEffect(()=>{
if(localStorage.getItem("from_login")){ if(localStorage.getItem("from_login")){
setSuccess("ログインに成功しました!"); setSuccess("ログインに成功しました!");
localStorage.removeItem("from_login"); localStorage.removeItem("from_login");
} }
},[]); },[]);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get('/api/admin/meetings/list').then(response => { axios.get('/api/admin/meetings/list').then(response => {
setLoaded(true); setLoaded(true);

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import axios from 'axios'; import axios from 'axios';
@ -32,7 +32,11 @@ const ParentDetail = (props) => {
const [_success, setSuccess] = useState(props.history.location.state); const [_success, setSuccess] = useState(props.history.location.state);
const [show_confirm_modal, setShowConfirmModal] = useState(false); const [show_confirm_modal, setShowConfirmModal] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get(`/api/admin/fathers/detail/${props.match.params?.father_id}`) axios.get(`/api/admin/fathers/detail/${props.match.params?.father_id}`)
.then(response => { .then(response => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import axios from 'axios'; import axios from 'axios';
import { LoadingButton } from '@material-ui/lab'; import { LoadingButton } from '@material-ui/lab';
@ -29,8 +29,10 @@ const ParentEdit = (props) => {
const [submit, setSubmit] = useState(false); const [submit, setSubmit] = useState(false);
const [loaded, setLoaded] = useState(false); const [loaded, setLoaded] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get(`/api/admin/fathers/detail/${props.match.params?.father_id}`) axios.get(`/api/admin/fathers/detail/${props.match.params?.father_id}`)
.then(response => { .then(response => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
import axios from 'axios'; import axios from 'axios';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
@ -21,7 +21,10 @@ const Parent = (props) => {
const [_400error, set400Error] = useState(''); const [_400error, set400Error] = useState('');
const [_success, setSuccess] = useState(props.history.location.state); const [_success, setSuccess] = useState(props.history.location.state);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get('/api/admin/fathers/list') axios.get('/api/admin/fathers/list')
.then((response) => { .then((response) => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios'; import axios from 'axios';
import { Link, useHistory } from 'react-router-dom'; import { Link, useHistory } from 'react-router-dom';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
@ -27,7 +27,11 @@ const MeetingDetail = (props) => {
const [_404error, set404Error] = useState(''); const [_404error, set404Error] = useState('');
const [_success, setSuccess] = useState(''); const [_success, setSuccess] = useState('');
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
let child_id = document.getElementById('child_id').value; let child_id = document.getElementById('child_id').value;
axios.get(`/api/children/meetings/detail/${props.match.params?.meeting_id}`, {params:{child_id: child_id}}) axios.get(`/api/children/meetings/detail/${props.match.params?.meeting_id}`, {params:{child_id: child_id}})

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios'; import axios from 'axios';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import moment from 'moment'; import moment from 'moment';
@ -25,56 +25,58 @@ const Meeting = () => {
const [_success, setSuccess] = useState(''); const [_success, setSuccess] = useState('');
const [_400error, set400Error] = useState(''); const [_400error, set400Error] = useState('');
const isMountedRef = useRef(true);
useEffect(()=>{ useEffect(()=>{
if(localStorage.getItem("from_login")){ if(localStorage.getItem("from_login")){
setSuccess("ログインに成功しました!"); setSuccess("ログインに成功しました!");
localStorage.removeItem("from_login"); localStorage.removeItem("from_login");
} }
},[]); },[]);
useEffect(()=>{ useEffect(()=>{
setLoaded(loaded1 && loaded2); setLoaded(loaded1 && loaded2);
},[loaded1, loaded2]) },[loaded1, loaded2])
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
let child_id = document.getElementById('child_id').value;
axios.get('/api/children/meetings/listOfNonApprovalOfChild', {params:{child_id: child_id}})
.then(response => {
setLoaded1(true);
setNotice(response.data.notice);
if(response.data.status_code==200){
setMettingListNonApproval(response.data.params);
var len = response.data.params.length;
if(len > INFINITE)
setFetchMettingListNonApproval(response.data.params.slice(0, INFINITE));
else setFetchMettingListNonApproval(response.data.params.slice(0, len));
}
else {
set400Error("失敗しました。");
}
})
useEffect( axios.get('/api/children/meetings/listOfApprovalOfChild', {params:{child_id: child_id}})
() => { .then(response => {
setLoaded(false); setLoaded2(true);
let child_id = document.getElementById('child_id').value; setNotice(response.data.notice);
if(response.data.status_code==200){
axios.get('/api/children/meetings/listOfNonApprovalOfChild', {params:{child_id: child_id}}) setMettingListApproval(response.data.params);
.then(response => { var len = response.data.params.length;
setLoaded1(true); if(len > INFINITE)
setNotice(response.data.notice); setFetchMettingListApproval(response.data.params.slice(0, INFINITE));
if(response.data.status_code==200){ else setFetchMettingListApproval(response.data.params.slice(0, len));
setMettingListNonApproval(response.data.params); }
var len = response.data.params.length; else {
if(len > INFINITE) set400Error("失敗しました。");
setFetchMettingListNonApproval(response.data.params.slice(0, INFINITE)); }
else setFetchMettingListNonApproval(response.data.params.slice(0, len)); })
} },[]);
else {
set400Error("失敗しました。");
}
})
axios.get('/api/children/meetings/listOfApprovalOfChild', {params:{child_id: child_id}})
.then(response => {
setLoaded2(true);
setNotice(response.data.notice);
if(response.data.status_code==200){
setMettingListApproval(response.data.params);
var len = response.data.params.length;
if(len > INFINITE)
setFetchMettingListApproval(response.data.params.slice(0, INFINITE));
else setFetchMettingListApproval(response.data.params.slice(0, len));
}
else {
set400Error("失敗しました。");
}
})
},[]
);
const fetchMoreListNonApproval = () => { const fetchMoreListNonApproval = () => {
setTimeout(() => { setTimeout(() => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios'; import axios from 'axios';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
@ -16,30 +16,31 @@ const ParentDetail = (props) => {
const [_400error, set400Error] = useState(''); const [_400error, set400Error] = useState('');
const [_404error, set404Error] = useState(''); const [_404error, set404Error] = useState('');
const [_success, setSuccess] = useState(''); const [_success, setSuccess] = useState('');
useEffect( const isMountedRef = useRef(true);
() => {
setLoaded(false); useEffect(() => {
axios.get('/api/children/fathers/detail/'+props.match.params.father_id) isMountedRef.current = false;
.then(response => { setLoaded(false);
setLoaded(true); axios.get('/api/children/fathers/detail/'+props.match.params.father_id)
setNotice(response.data.notice); .then(response => {
if(response.data.status_code==200){ setLoaded(true);
setParent(response.data.params); setNotice(response.data.notice);
} if(response.data.status_code==200){
else { setParent(response.data.params);
set400Error("失敗しました。"); }
} else {
}) set400Error("失敗しました。");
.catch(err=>{ }
setLoaded(true); })
setNotice(err.response.data.notice); .catch(err=>{
if(err.response.status==404){ setLoaded(true);
set404Error(err.response.data.message); setNotice(err.response.data.notice);
} if(err.response.status==404){
}) set404Error(err.response.data.message);
},[] }
); })
},[]);
useEffect(()=>{ useEffect(()=>{
var navbar_list = document.getElementsByClassName("mypage-nav-list__item"); var navbar_list = document.getElementsByClassName("mypage-nav-list__item");

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios'; import axios from 'axios';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
@ -20,8 +20,10 @@ const Parent = () => {
const [_400error, set400Error] = useState(''); const [_400error, set400Error] = useState('');
const [_success, setSuccess] = useState(''); const [_success, setSuccess] = useState('');
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
let child_id = document.getElementById('child_id').value; let child_id = document.getElementById('child_id').value;
axios.get('/api/children/fathers/listOfChild', {params: {child_id: child_id}}) axios.get('/api/children/fathers/listOfChild', {params: {child_id: child_id}})

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import axios from 'axios'; import axios from 'axios';
import { LoadingButton } from '@material-ui/lab'; import { LoadingButton } from '@material-ui/lab';
@ -36,8 +36,10 @@ const ProfileEdit = () => {
const [submit, setSubmit] = useState(false); const [submit, setSubmit] = useState(false);
const [loaded, setLoaded] = useState(false); const [loaded, setLoaded] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
let child_id = document.getElementById('child_id').value; let child_id = document.getElementById('child_id').value;
axios.get('/api/children/detail/'+child_id) axios.get('/api/children/detail/'+child_id)

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import axios from 'axios'; import axios from 'axios';
@ -21,9 +21,11 @@ const Profile = (props) => {
const [_422errors, set422Errors] = useState({ image: '' }); const [_422errors, set422Errors] = useState({ image: '' });
const [_success, setSuccess] = useState(props.history.location.state); const [_success, setSuccess] = useState(props.history.location.state);
const [submit_image, setSubmitImage] = useState(false); const [submit_image, setSubmitImage] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
let child_id = document.getElementById('child_id').value; let child_id = document.getElementById('child_id').value;
axios.get('/api/children/detail/'+child_id) axios.get('/api/children/detail/'+child_id)

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useState } from 'react';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { LoadingButton } from '@material-ui/lab'; import { LoadingButton } from '@material-ui/lab';
import axios from 'axios'; import axios from 'axios';

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useState } from 'react';
import axios from 'axios'; import axios from 'axios';
import { LoadingButton } from '@material-ui/lab'; import { LoadingButton } from '@material-ui/lab';

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useState } from 'react';
import { import {
Box, Box,
Dialog, Dialog,

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import axios from 'axios'; import axios from 'axios';
import Dialog from '@mui/material/Dialog'; import Dialog from '@mui/material/Dialog';
@ -28,7 +28,10 @@ export default function ModalSettingNotify({show, handleClose, meetingId}){
const [loaded2, setLoaded2] = useState(false); const [loaded2, setLoaded2] = useState(false);
const [loaded, setLoaded] = useState(false); const [loaded, setLoaded] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded1(false); setLoaded1(false);
axios.get('/api/fathers/meeting/approvals/listChildrenOfApprovel', {params: { meeting_id: meetingId }}) axios.get('/api/fathers/meeting/approvals/listChildrenOfApprovel', {params: { meeting_id: meetingId }})
.then((response) => { .then((response) => {
@ -37,9 +40,6 @@ export default function ModalSettingNotify({show, handleClose, meetingId}){
setApproval(response.data.params); setApproval(response.data.params);
} }
}); });
}, []);
useEffect(() => {
setLoaded2(false); setLoaded2(false);
axios.get('/api/fathers/meeting/approvals/listChildrenOfUnapprovel', {params: { meeting_id: meetingId }}) axios.get('/api/fathers/meeting/approvals/listChildrenOfUnapprovel', {params: { meeting_id: meetingId }})
.then((response) => { .then((response) => {
@ -50,10 +50,12 @@ export default function ModalSettingNotify({show, handleClose, meetingId}){
}); });
}, []); }, []);
useEffect(()=>{ useEffect(()=>{
setLoaded(loaded1 && loaded2); setLoaded(loaded1 && loaded2);
},[loaded1, loaded2]); },[loaded1, loaded2]);
const settingNotify = (email) => { const settingNotify = (email) => {
const formdata = new FormData(); const formdata = new FormData();
formdata.append('email', JSON.stringify(new Array(email))); formdata.append('email', JSON.stringify(new Array(email)));

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios'; import axios from 'axios';
import { Link, useHistory } from 'react-router-dom'; import { Link, useHistory } from 'react-router-dom';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
@ -21,8 +21,10 @@ const ChildDetail = (props) => {
const father_id = document.getElementById('father_id').value; const father_id = document.getElementById('father_id').value;
const child_id = props.match.params.child_id; const child_id = props.match.params.child_id;
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get('/api/fathers/children/detail/'+child_id, {params:{father_id: father_id}}) axios.get('/api/fathers/children/detail/'+child_id, {params:{father_id: father_id}})
.then(response => { .then(response => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import ja from "date-fns/locale/ja"; import ja from "date-fns/locale/ja";
import DatePicker, { registerLocale } from "react-datepicker"; import DatePicker, { registerLocale } from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css"; import "react-datepicker/dist/react-datepicker.css";
@ -27,7 +27,10 @@ const ChildEdit = (props) => {
const father_id = document.getElementById('father_id').value; const father_id = document.getElementById('father_id').value;
const child_id = props.match.params.child_id; const child_id = props.match.params.child_id;
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get('/api/fathers/children/detail/'+child_id, {params:{father_id: father_id}}) axios.get('/api/fathers/children/detail/'+child_id, {params:{father_id: father_id}})
.then(response => { .then(response => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios'; import axios from 'axios';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
@ -20,7 +20,10 @@ const Child = (props) => {
const [_success, setSuccess] = useState(props.history.location.state); const [_success, setSuccess] = useState(props.history.location.state);
const [_400error, set400Error] = useState(''); const [_400error, set400Error] = useState('');
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
let father_id = document.getElementById('father_id').value; let father_id = document.getElementById('father_id').value;
axios.get('/api/fathers/children/listOfFather', {params: {father_id: father_id}}) axios.get('/api/fathers/children/listOfFather', {params: {father_id: father_id}})

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios'; import axios from 'axios';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import moment from 'moment'; import moment from 'moment';
@ -26,13 +26,16 @@ const Favorite = (props) => {
const [fetch_meeting_list_favorite, setFetchMeetingListOfFavorite] = useState([]); const [fetch_meeting_list_favorite, setFetchMeetingListOfFavorite] = useState([]);
const [_success, setSuccess] = useState(props.history.location.state); const [_success, setSuccess] = useState(props.history.location.state);
const [_400error, set400Error] = useState(''); const [_400error, set400Error] = useState('');
const isMountedRef = useRef(true);
useEffect(()=>{ useEffect(()=>{
setLoaded(loaded1 && loaded2); setLoaded(loaded1 && loaded2);
},[loaded1, loaded2]) },[loaded1, loaded2])
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
let father_id = document.getElementById('father_id').value; let father_id = document.getElementById('father_id').value;
axios.get('/api/fathers/meetings/listOfNonFavoriteOfFather', {params:{father_id: father_id}}) axios.get('/api/fathers/meetings/listOfNonFavoriteOfFather', {params:{father_id: father_id}})

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import axios from 'axios'; import axios from 'axios';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
@ -33,8 +33,10 @@ const MeetingAdd = (props) => {
const [check_radio, setCheckRadio] = useState(''); const [check_radio, setCheckRadio] = useState('');
const state = props.history.location.state; const state = props.history.location.state;
const isMountedRef = useRef(true);
useEffect(()=>{
useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
if(state){ if(state){
setLoaded(true); setLoaded(true);

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import moment from 'moment'; import moment from 'moment';
import axios from 'axios'; import axios from 'axios';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
@ -10,7 +10,6 @@ import ModalPdf from '../../component/pdf/modal_pdf';
import Notification from '../notification'; import Notification from '../notification';
import ModalSettingNotify from '../../component/modal_setting_notify'; import ModalSettingNotify from '../../component/modal_setting_notify';
import Alert from '../../component/alert'; import Alert from '../../component/alert';
import { memo } from 'react';
const MeetingDetail = (props) => { const MeetingDetail = (props) => {
@ -32,8 +31,10 @@ const MeetingDetail = (props) => {
const [meeting, setMeeting] = useState(null); const [meeting, setMeeting] = useState(null);
const [thumbnail, setThumbnail] = useState(null); const [thumbnail, setThumbnail] = useState(null);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
let father_id = document.getElementById('father_id').value; let father_id = document.getElementById('father_id').value;
setLoaded(false); setLoaded(false);
axios.get(`/api/fathers/meetings/detail/${props.match.params?.meeting_id}`, {params: { father_id: father_id}}) axios.get(`/api/fathers/meetings/detail/${props.match.params?.meeting_id}`, {params: { father_id: father_id}})

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import axios from 'axios'; import axios from 'axios';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
@ -41,8 +41,10 @@ const MeetingEdit = (props) => {
const [check_radio, setCheckRadio] = useState(null); const [check_radio, setCheckRadio] = useState(null);
const [image_sending, setImageSending] = useState(false); const [image_sending, setImageSending] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get(`/api/fathers/meetings/detail/${meeting_id}`, {params: { father_id: father_id}}) axios.get(`/api/fathers/meetings/detail/${meeting_id}`, {params: { father_id: father_id}})
.then(response => { .then(response => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios'; import axios from 'axios';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import moment from 'moment'; import moment from 'moment';
@ -27,6 +27,9 @@ const Meeting = (props) => {
const [_success, setSuccess] = useState(props.history.location?.state); const [_success, setSuccess] = useState(props.history.location?.state);
const [_400error, set400Error] = useState(''); const [_400error, set400Error] = useState('');
const isMountedRef = useRef(true);
useEffect(()=>{ useEffect(()=>{
if(localStorage.getItem("from_login")){ if(localStorage.getItem("from_login")){
setSuccess("ログインに成功しました!"); setSuccess("ログインに成功しました!");
@ -44,6 +47,7 @@ const Meeting = (props) => {
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
let father_id = document.getElementById('father_id').value; let father_id = document.getElementById('father_id').value;
if(localStorage.getItem('flag')=="true") return; if(localStorage.getItem('flag')=="true") return;

ファイルの表示

@ -1,4 +1,4 @@
import { useEffect, useState } from 'react'; import { useRef, useEffect, useState } from 'react';
import { CircularProgress } from '@material-ui/core'; import { CircularProgress } from '@material-ui/core';
import { LoadingButton } from '@material-ui/lab'; import { LoadingButton } from '@material-ui/lab';
import Notification from '../notification'; import Notification from '../notification';
@ -29,7 +29,10 @@ const ProfileEdit = () => {
const [loaded, setLoaded] = useState(false); const [loaded, setLoaded] = useState(false);
const [submit, setSubmit] = useState(false); const [submit, setSubmit] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get(`/api/fathers/detail/${father_id}`) axios.get(`/api/fathers/detail/${father_id}`)
.then(response => { .then(response => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react'; import React, { useRef, useEffect, useState } from 'react';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import axios from 'axios'; import axios from 'axios';
@ -22,8 +22,10 @@ const Profile = (props) => {
const [submit_image, setSubmitImage] = useState(false); const [submit_image, setSubmitImage] = useState(false);
const father_id = document.getElementById('father_id').value; const father_id = document.getElementById('father_id').value;
const isMountedRef = useRef(true);
useEffect(() => { useEffect(() => {
isMountedRef.current = false;
setLoaded(false); setLoaded(false);
axios.get('/api/fathers/detail/'+father_id) axios.get('/api/fathers/detail/'+father_id)
.then(response => { .then(response => {

ファイルの表示

@ -86,14 +86,6 @@ a{
border-radius: 50%; border-radius: 50%;
} }
.p-file-for figure{
height: 250px;
img{
width: 100%;
height: 100%;
object-fit: contain;
}
}
.mypage-nav-list__item{ .mypage-nav-list__item{
&.nav-active{ &.nav-active{

ファイルの表示

@ -112,6 +112,9 @@ categories: [layout]
} }
&.star{ &.star{
&:before{ &:before{
@include pc{
background-image: url(/assets/img/icon/star-outline-black.svg);
}
@include sp{ @include sp{
background-image: url(/assets/img/icon/star-outline-yellow02.svg); background-image: url(/assets/img/icon/star-outline-yellow02.svg);
} }
@ -153,9 +156,9 @@ categories: [layout]
} }
} }
&.-favorite{ &.-favorite{
@include pc{ // @include pc{
display: none; // display: none;
} // }
} }
a{ a{
display: flex; display: flex;

ファイルの表示

@ -96,12 +96,16 @@ categories: [project]
max-width: 700px; max-width: 700px;
} }
&-for{ &-for{
padding: 50px 0;
border: 1px solid rgba(36,77,138,.1); border: 1px solid rgba(36,77,138,.1);
border-radius: 6px; border-radius: 6px;
margin-bottom: 15px; margin-bottom: 15px;
@include pc{ figure{
padding: 80px 0; height: 350px;
img{
width: 100%;
height: 100%;
object-fit: contain;
}
} }
} }
&-nav{ &-nav{