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...お知らせエリアのコンポーネントです
* meeting...ミーティングエリアのコンポーネントです
* article...詳細ページのコンポーネントです
* modal...モーダルのコンポーネントです
* search...検索ページのコンポーネントです
* modal...モーダルのコンポーネントです
* search...検索ページのコンポーネントです
* profile...プロフィールページのコンポーネントです
* edit...エディットページのコンポーネントです
*
*
* SCOPE
* blog...ブログページのスタイルです
*
@ -12255,14 +12255,15 @@ categories: [layout]
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) {
.mypage-nav-list__item.nav-active .icon.star:before {
background-image: url(/assets/img/icon/star-outline-black.svg);
}
.mypage-nav-list__item.nav-active .icon.star:before {
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 {
background-image: url(/assets/img/icon/people-yellow.svg);
@ -12929,7 +12930,7 @@ categories: [project]
@font-face {
font-family: "iconfont";
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-style: normal;
}
@ -13210,7 +13211,7 @@ Modifierは以下のとおりです。
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}
/*
/*
.p-btn {
display: inline-block;
margin: 0;
@ -14487,15 +14488,18 @@ categories: [project]
max-width: 700px;
}
.p-file-for {
padding: 50px 0;
border: 1px solid rgba(36, 77, 138, 0.1);
border-radius: 6px;
margin-bottom: 15px;
}
@media screen and (min-width: 1068px) {
.p-file-for {
padding: 80px 0;
}
.p-file-for figure {
height: 350px;
}
.p-file-for figure img {
width: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain;
}
.p-file-nav {
display: flex;
@ -17385,16 +17389,6 @@ a {
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 {
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 axios from 'axios';
@ -25,8 +25,11 @@ const ChildDetail = (props) => {
const [_422errors, set422Errors] = useState({ image: '' });
const [_success, setSuccess] = useState(props.history.location.state);
const [show_confirm_modal, setShowConfirmModal] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get(`/api/admin/children/detail/${props.match.params?.child_id}`)
.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 axios from 'axios';
import { LoadingButton } from '@material-ui/lab';
@ -33,8 +33,10 @@ const ChildEdit = (props) => {
const [submit, setSubmit] = useState(false);
const [loaded, setLoaded] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get(`/api/admin/children/detail/${props.match.params?.child_id}`)
.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 axios from 'axios';
import { useHistory, Link } from 'react-router-dom';
@ -22,7 +22,10 @@ const Child = (props) => {
const [_400error, set400Error] = useState('');
const [_success, setSuccess] = useState(props.history.location.state);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get('/api/admin/children/list')
.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 moment from 'moment';
import axios from 'axios';
@ -25,8 +25,10 @@ const MeetingDetail = (props) => {
const [show_pdf_modal, setShowPDFModal] = useState(false);
const [show_memo_modal, setShowMemoModal] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get(`/api/admin/meetings/detail/${props.match.params?.meeting_id}`)
.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 axios from 'axios';
import { CircularProgress } from '@material-ui/core';
@ -34,7 +34,9 @@ const MeetingEdit = (props) => {
const [check_radio, setCheckRadio] = useState(null);
const [image_sending, setImageSending] = useState(false);
const isMountedRef = useRef(true);
useEffect(()=>{
if(!loaded) return; //if dont load data
var list = [...children_list];
@ -54,6 +56,7 @@ const MeetingEdit = (props) => {
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get(`/api/admin/meetings/detail/${meeting_id}`)
.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 moment from 'moment';
import axios from 'axios';
@ -22,16 +22,19 @@ const Meeting = (props) => {
const [_422errors, set422errors] = useState({keyword:''});
const [_success, setSuccess] = useState(props.history.location.state);
const isMountedRef = useRef(true);
useEffect(()=>{
if(localStorage.getItem("from_login")){
setSuccess("ログインに成功しました!");
localStorage.removeItem("from_login");
}
if(localStorage.getItem("from_login")){
setSuccess("ログインに成功しました!");
localStorage.removeItem("from_login");
}
},[]);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get('/api/admin/meetings/list').then(response => {
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 axios from 'axios';
@ -32,7 +32,11 @@ const ParentDetail = (props) => {
const [_success, setSuccess] = useState(props.history.location.state);
const [show_confirm_modal, setShowConfirmModal] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get(`/api/admin/fathers/detail/${props.match.params?.father_id}`)
.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 axios from 'axios';
import { LoadingButton } from '@material-ui/lab';
@ -29,8 +29,10 @@ const ParentEdit = (props) => {
const [submit, setSubmit] = useState(false);
const [loaded, setLoaded] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get(`/api/admin/fathers/detail/${props.match.params?.father_id}`)
.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 axios from 'axios';
import { useHistory, Link } from 'react-router-dom';
@ -21,7 +21,10 @@ const Parent = (props) => {
const [_400error, set400Error] = useState('');
const [_success, setSuccess] = useState(props.history.location.state);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get('/api/admin/fathers/list')
.then((response) => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react';
import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios';
import { Link, useHistory } from 'react-router-dom';
import { CircularProgress } from '@material-ui/core';
@ -27,7 +27,11 @@ const MeetingDetail = (props) => {
const [_404error, set404Error] = useState('');
const [_success, setSuccess] = useState('');
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
let child_id = document.getElementById('child_id').value;
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 { useHistory, Link } from 'react-router-dom';
import moment from 'moment';
@ -25,56 +25,58 @@ const Meeting = () => {
const [_success, setSuccess] = useState('');
const [_400error, set400Error] = useState('');
const isMountedRef = useRef(true);
useEffect(()=>{
if(localStorage.getItem("from_login")){
setSuccess("ログインに成功しました!");
localStorage.removeItem("from_login");
setSuccess("ログインに成功しました!");
localStorage.removeItem("from_login");
}
},[]);
useEffect(()=>{
setLoaded(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(
() => {
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("失敗しました。");
}
})
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("失敗しました。");
}
})
},[]
);
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 = () => {
setTimeout(() => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react';
import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios';
import { useHistory, Link } from 'react-router-dom';
import { CircularProgress } from '@material-ui/core';
@ -16,30 +16,31 @@ const ParentDetail = (props) => {
const [_400error, set400Error] = useState('');
const [_404error, set404Error] = useState('');
const [_success, setSuccess] = useState('');
useEffect(
() => {
setLoaded(false);
axios.get('/api/children/fathers/detail/'+props.match.params.father_id)
.then(response => {
setLoaded(true);
setNotice(response.data.notice);
if(response.data.status_code==200){
setParent(response.data.params);
}
else {
set400Error("失敗しました。");
}
})
.catch(err=>{
setLoaded(true);
setNotice(err.response.data.notice);
if(err.response.status==404){
set404Error(err.response.data.message);
}
})
},[]
);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get('/api/children/fathers/detail/'+props.match.params.father_id)
.then(response => {
setLoaded(true);
setNotice(response.data.notice);
if(response.data.status_code==200){
setParent(response.data.params);
}
else {
set400Error("失敗しました。");
}
})
.catch(err=>{
setLoaded(true);
setNotice(err.response.data.notice);
if(err.response.status==404){
set404Error(err.response.data.message);
}
})
},[]);
useEffect(()=>{
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 { useHistory, Link } from 'react-router-dom';
import { CircularProgress } from '@material-ui/core';
@ -20,8 +20,10 @@ const Parent = () => {
const [_400error, set400Error] = useState('');
const [_success, setSuccess] = useState('');
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
let child_id = document.getElementById('child_id').value;
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 axios from 'axios';
import { LoadingButton } from '@material-ui/lab';
@ -36,8 +36,10 @@ const ProfileEdit = () => {
const [submit, setSubmit] = useState(false);
const [loaded, setLoaded] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
let child_id = document.getElementById('child_id').value;
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 IconButton from "@material-ui/core/IconButton";
import axios from 'axios';
@ -21,9 +21,11 @@ const Profile = (props) => {
const [_422errors, set422Errors] = useState({ image: '' });
const [_success, setSuccess] = useState(props.history.location.state);
const [submit_image, setSubmitImage] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
let child_id = document.getElementById('child_id').value;
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 { LoadingButton } from '@material-ui/lab';
import axios from 'axios';

ファイルの表示

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

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react';
import React, { useState } from 'react';
import {
Box,
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 axios from 'axios';
import Dialog from '@mui/material/Dialog';
@ -28,7 +28,10 @@ export default function ModalSettingNotify({show, handleClose, meetingId}){
const [loaded2, setLoaded2] = useState(false);
const [loaded, setLoaded] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded1(false);
axios.get('/api/fathers/meeting/approvals/listChildrenOfApprovel', {params: { meeting_id: meetingId }})
.then((response) => {
@ -37,9 +40,6 @@ export default function ModalSettingNotify({show, handleClose, meetingId}){
setApproval(response.data.params);
}
});
}, []);
useEffect(() => {
setLoaded2(false);
axios.get('/api/fathers/meeting/approvals/listChildrenOfUnapprovel', {params: { meeting_id: meetingId }})
.then((response) => {
@ -50,10 +50,12 @@ export default function ModalSettingNotify({show, handleClose, meetingId}){
});
}, []);
useEffect(()=>{
setLoaded(loaded1 && loaded2);
},[loaded1, loaded2]);
const settingNotify = (email) => {
const formdata = new FormData();
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 { Link, useHistory } from 'react-router-dom';
import { CircularProgress } from '@material-ui/core';
@ -21,8 +21,10 @@ const ChildDetail = (props) => {
const father_id = document.getElementById('father_id').value;
const child_id = props.match.params.child_id;
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get('/api/fathers/children/detail/'+child_id, {params:{father_id: father_id}})
.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 DatePicker, { registerLocale } from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
@ -27,7 +27,10 @@ const ChildEdit = (props) => {
const father_id = document.getElementById('father_id').value;
const child_id = props.match.params.child_id;
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get('/api/fathers/children/detail/'+child_id, {params:{father_id: father_id}})
.then(response => {

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react';
import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios';
import { useHistory, Link } from 'react-router-dom';
import { CircularProgress } from '@material-ui/core';
@ -20,7 +20,10 @@ const Child = (props) => {
const [_success, setSuccess] = useState(props.history.location.state);
const [_400error, set400Error] = useState('');
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
let father_id = document.getElementById('father_id').value;
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 { useHistory, Link } from 'react-router-dom';
import moment from 'moment';
@ -26,13 +26,16 @@ const Favorite = (props) => {
const [fetch_meeting_list_favorite, setFetchMeetingListOfFavorite] = useState([]);
const [_success, setSuccess] = useState(props.history.location.state);
const [_400error, set400Error] = useState('');
const isMountedRef = useRef(true);
useEffect(()=>{
setLoaded(loaded1 && loaded2);
setLoaded(loaded1 && loaded2);
},[loaded1, loaded2])
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
let father_id = document.getElementById('father_id').value;
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 axios from 'axios';
import { CircularProgress } from '@material-ui/core';
@ -33,8 +33,10 @@ const MeetingAdd = (props) => {
const [check_radio, setCheckRadio] = useState('');
const state = props.history.location.state;
useEffect(()=>{
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
if(state){
setLoaded(true);

ファイルの表示

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

ファイルの表示

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react';
import React, { useRef, useEffect, useState } from 'react';
import axios from 'axios';
import { useHistory, Link } from 'react-router-dom';
import moment from 'moment';
@ -27,6 +27,9 @@ const Meeting = (props) => {
const [_success, setSuccess] = useState(props.history.location?.state);
const [_400error, set400Error] = useState('');
const isMountedRef = useRef(true);
useEffect(()=>{
if(localStorage.getItem("from_login")){
setSuccess("ログインに成功しました!");
@ -44,6 +47,7 @@ const Meeting = (props) => {
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
let father_id = document.getElementById('father_id').value;
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 { LoadingButton } from '@material-ui/lab';
import Notification from '../notification';
@ -29,7 +29,10 @@ const ProfileEdit = () => {
const [loaded, setLoaded] = useState(false);
const [submit, setSubmit] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get(`/api/fathers/detail/${father_id}`)
.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 IconButton from "@material-ui/core/IconButton";
import axios from 'axios';
@ -22,8 +22,10 @@ const Profile = (props) => {
const [submit_image, setSubmitImage] = useState(false);
const father_id = document.getElementById('father_id').value;
const isMountedRef = useRef(true);
useEffect(() => {
isMountedRef.current = false;
setLoaded(false);
axios.get('/api/fathers/detail/'+father_id)
.then(response => {

ファイルの表示

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

ファイルの表示

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

ファイルの表示

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