Merge branch 'dev-devlopment' of github.com:nakazawakan/kikikanri into newbackend

このコミットが含まれているのは:
守矢諏訪子 2022-01-17 15:09:04 +09:00
コミット e00b6e2470
13個のファイルの変更520行の追加165行の削除

ファイルの表示

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="19.996" height="20" viewBox="0 0 19.996 20"><defs><style>.a{fill:none;}.b{fill:#797152;}</style></defs><g transform="translate(0)"><rect class="a" width="19.996" height="20" transform="translate(0 0)"/><path class="b" d="M9.452,1.289,9.117.954H0V20H13.627V5.462l-.335-.335Zm3.03,17.562H1.145V2.1H7.619c1.7,0,.88,4.029.88,4.029s3.932-.956,3.982.846ZM19.662,3.733,15.946.019H10.159L11.3,1.163H14.58c0,.013,0,.025,0,.038.51,0,.764.414.873.958a8.161,8.161,0,0,1-.1,2.551l.016,0-.009.041s3.069-.746,3.465.491c0,.013.007.028.011.041s.006.028.009.041a.907.907,0,0,1,.013.134V15.909H14.829v1.144H20V4.068Z" transform="translate(0 -0.019)"/></g></svg>

変更後

幅:  |  高さ:  |  サイズ: 689 B

ファイルの表示

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><defs><style>.a{fill:none;}.b{fill:#00b900;}.b,.c{fill-rule:evenodd;}.c{fill:#fff;}</style></defs><rect class="a" width="20" height="20"/><path class="b" d="M16.35.118H3.677A3.608,3.608,0,0,0,.05,3.692V16.278a3.608,3.608,0,0,0,3.6,3.6H16.322a3.608,3.608,0,0,0,3.627-3.575V3.72a3.607,3.607,0,0,0-3.6-3.6"/><path class="c" d="M17.212,9.13c0-3.22-3.25-5.839-7.245-5.839S2.722,5.911,2.722,9.13c0,2.886,2.577,5.3,6.059,5.761.236.05.557.154.638.355a1.469,1.469,0,0,1,.023.651l-.1.616c-.032.182-.146.711.628.388a23.38,23.38,0,0,0,5.692-4.177h0A5.176,5.176,0,0,0,17.212,9.13"/><path class="b" d="M8.5,7.574H7.987a.141.141,0,0,0-.141.14v3.135a.141.141,0,0,0,.141.14H8.5a.141.141,0,0,0,.141-.14V7.714a.141.141,0,0,0-.141-.14"/><path class="b" d="M11.993,7.574h-.508a.141.141,0,0,0-.141.14V9.577L9.9,7.637l-.011-.014h0l-.008-.009,0,0L9.866,7.6l0,0-.007,0,0,0-.007,0,0,0-.008,0,0,0-.008,0h0l-.008,0H9.271a.141.141,0,0,0-.141.14v3.135a.141.141,0,0,0,.141.14H9.78a.141.141,0,0,0,.141-.14V8.987l1.448,1.943a.137.137,0,0,0,.036.034h0l.009.005,0,0,.007,0,.007,0,0,0,.01,0h0a.134.134,0,0,0,.036,0h.508a.14.14,0,0,0,.141-.14V7.714a.141.141,0,0,0-.141-.14"/><path class="b" d="M7.27,10.2H5.889V7.714a.141.141,0,0,0-.141-.14H5.24a.141.141,0,0,0-.141.14v3.135h0a.139.139,0,0,0,.039.1l0,0,0,0a.141.141,0,0,0,.1.039H7.27a.14.14,0,0,0,.141-.14v-.5a.14.14,0,0,0-.141-.14"/><path class="b" d="M14.8,8.359a.141.141,0,0,0,.141-.14v-.5a.141.141,0,0,0-.141-.14h-2.03a.14.14,0,0,0-.1.04h0l0,0a.139.139,0,0,0-.039.1h0v3.134h0a.138.138,0,0,0,.039.1l0,0,0,0a.14.14,0,0,0,.1.039H14.8a.141.141,0,0,0,.141-.14v-.5a.141.141,0,0,0-.141-.14H13.419v-.53H14.8a.141.141,0,0,0,.141-.14v-.5a.141.141,0,0,0-.141-.14H13.419v-.53Z"/></svg>

変更後

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

ファイルの表示

@ -12897,7 +12897,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;
}
@ -17482,6 +17482,32 @@ a {
right: 10px;
}
.invite-btn__wrapper {
display: flex;
justify-content: center;
}
.invite-btn__wrapper .copy-btn, .invite-btn__wrapper .line-btn {
width: 120px;
border: 1px solid #cac4a4;
border-radius: 5px;
font-size: 12px;
font-weight: bold;
padding: 35px 0 10px;
text-align: center;
display: block;
cursor: pointer;
}
.invite-btn__wrapper .copy-btn:hover, .invite-btn__wrapper .line-btn:hover {
background-color: #F0F0F0;
}
.invite-btn__wrapper .copy-btn {
background: url(/assets/img/icon/icon-copy.svg) no-repeat 50% 12px;
margin-right: 10px;
}
.invite-btn__wrapper .line-btn {
background: url(/assets/img/icon/icon-line.svg) no-repeat 50% 12px;
}
@media screen and (min-width: 1068px) {
.p-meetingAdd-btn {
width: 200px !important;

ファイルの表示

@ -30979,18 +30979,23 @@ var ChildLogin = function ChildLogin() {
password = _useState6[0],
setPassword = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState8 = _slicedToArray(_useState7, 2),
remember_token = _useState8[0],
setRememberToken = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
tel: '',
password: ''
}),
_useState8 = _slicedToArray(_useState7, 2),
_422errors = _useState8[0],
set422Errors = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState10 = _slicedToArray(_useState9, 2),
_400error = _useState10[0],
set400Error = _useState10[1];
_422errors = _useState10[0],
set422Errors = _useState10[1];
var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState12 = _slicedToArray(_useState11, 2),
_400error = _useState12[0],
set400Error = _useState12[1];
var isMountedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(true);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
@ -31010,6 +31015,7 @@ var ChildLogin = function ChildLogin() {
var formdata = new FormData();
formdata.append('tel', tel);
formdata.append('password', password);
formdata.append('remember_token', remember_token);
axios.post('/api/children/login/', formdata).then(function (response) {
if (isMountedRef.current) return;
setSubmit(false);
@ -31098,9 +31104,11 @@ var ChildLogin = function ChildLogin() {
htmlFor: "remember_me",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("input", {
id: "remember_me",
name: "remember",
type: "checkbox",
value: "remember"
value: remember_token,
onChange: function onChange() {
return setRememberToken(!remember_token);
}
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
className: "lbl padding-16",
children: "\u30ED\u30B0\u30A4\u30F3\u60C5\u5831\u3092\u4FDD\u6301\u3059\u308B"
@ -34948,13 +34956,13 @@ function ModalEditMemo(_ref) {
borderBottom: '1px solid rgb(239 236 236)'
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
className: "ft-18 text-center font-weight-bold",
className: "ft-16 text-center font-weight-bold",
children: "\u30E1\u30E2"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__["default"], {
sx: {
p: '15px',
pb: '15px'
p: '10px',
pb: '10px'
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__["default"], {
id: "alert-dialog-slide-description",
@ -34967,7 +34975,8 @@ function ModalEditMemo(_ref) {
height: '300px',
borderRadius: 5,
background: '#F0F0F0',
padding: '12px'
padding: '12px',
fontSize: '15px'
}
})
})
@ -35028,13 +35037,13 @@ function ModalMemo(_ref) {
borderBottom: '1px solid rgb(239 236 236)'
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
className: "ft-18 text-center font-weight-bold",
className: "ft-16 text-center font-weight-bold",
children: "\u30E1\u30E2"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__["default"], {
sx: {
p: '15px',
pb: '15px'
p: '10px',
pb: '10px'
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__["default"], {
id: "alert-dialog-slide-description",
@ -35046,7 +35055,7 @@ function ModalMemo(_ref) {
bgcolor: '#F0F0F0',
p: '15px'
},
className: "ft-16 text-black",
className: "ft-15 text-black",
children: content ? content : '未入力'
})
})
@ -35219,7 +35228,11 @@ function ModalSettingNotify(_ref) {
TransitionComponent: Transition,
keepMounted: true,
"aria-describedby": "alert-dialog-slide-description",
onClose: handleClose,
onClose: function onClose() {
setSuccess('');
set400Error('');
handleClose();
},
id: "SettingNotifyModal",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_mui_material_DialogTitle__WEBPACK_IMPORTED_MODULE_5__["default"], {
className: "px-0 pt-3",
@ -37523,18 +37536,23 @@ var ParentLogin = function ParentLogin() {
password = _useState6[0],
setPassword = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState8 = _slicedToArray(_useState7, 2),
remember_token = _useState8[0],
setRememberToken = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
email: '',
password: ''
}),
_useState8 = _slicedToArray(_useState7, 2),
_422errors = _useState8[0],
set422Errors = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState10 = _slicedToArray(_useState9, 2),
_400error = _useState10[0],
set400Error = _useState10[1];
_422errors = _useState10[0],
set422Errors = _useState10[1];
var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState12 = _slicedToArray(_useState11, 2),
_400error = _useState12[0],
set400Error = _useState12[1];
var isMountedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(true);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
@ -37554,6 +37572,7 @@ var ParentLogin = function ParentLogin() {
var formdata = new FormData();
formdata.append('email', email);
formdata.append('password', password);
formdata.append('remember_token', remember_token);
axios.post('/api/fathers/login/', formdata).then(function (response) {
if (isMountedRef.current) return;
setSubmit(false);
@ -37642,9 +37661,11 @@ var ParentLogin = function ParentLogin() {
htmlFor: "remember_me",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("input", {
id: "remember_me",
name: "remember",
type: "checkbox",
value: "remember"
value: remember_token,
onChange: function onChange() {
return setRememberToken(!remember_token);
}
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
className: "lbl padding-16",
children: "\u30ED\u30B0\u30A4\u30F3\u60C5\u5831\u3092\u4FDD\u6301\u3059\u308B"
@ -38091,12 +38112,17 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
/* harmony import */ var _material_ui_lab__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material-ui/lab */ "./node_modules/@material-ui/lab/LoadingButton/LoadingButton.js");
/* harmony import */ var _material_ui_lab__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @material-ui/lab */ "./node_modules/@material-ui/lab/LoadingButton/LoadingButton.js");
/* harmony import */ var _component_alert__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../component/alert */ "./resources/js/component/alert.jsx");
/* harmony import */ var _component_notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/notification */ "./resources/js/component/notification.jsx");
/* harmony import */ var _component_page_loader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../component/page_loader */ "./resources/js/component/page_loader.jsx");
/* harmony import */ var copy_to_clipboard__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! copy-to-clipboard */ "./node_modules/copy-to-clipboard/index.js");
/* harmony import */ var copy_to_clipboard__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(copy_to_clipboard__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ "./node_modules/@mui/material/Slide/Slide.js");
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/material */ "./node_modules/@mui/material/Dialog/Dialog.js");
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/material */ "./node_modules/@mui/material/DialogTitle/DialogTitle.js");
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @mui/material */ "./node_modules/@mui/material/Box/Box.js");
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mui/material */ "./node_modules/@mui/material/Typography/Typography.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
@ -38110,6 +38136,11 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@ -38119,55 +38150,169 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var Transition = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function Transition(props, ref) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__["default"], _objectSpread({
direction: "up",
ref: ref
}, props));
});
var LineModal = function LineModal(_ref) {
var show = _ref.show,
handleClose = _ref.handleClose;
var inviteurl = '「KIKI」の招待が届いています。' + '\n' + 'まずは以下より仮登録を行ってください。' + '\n' + '※スマホ本体を最新の状態にアップデートしてからURLをクリックしてください。' + '\n\n' + document.getElementById('inviteurl').value + '\n\n' + '▼公式サイトはこちら' + '\n' + 'https://kikikan.jp';
var inviteUrl = document.getElementById('inviteurl_html').value;
var siteUrl = document.getElementById('siteurl').value;
var lineText = "\u300CKIKI\u300D\u306E\u62DB\u5F85\u304C\u5C4A\u3044\u3066\u3044\u307E\u3059\u3002%0A\u307E\u305A\u306F\u4EE5\u4E0B\u3088\u308A\u4EEE\u767B\u9332\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002\n %0A%0A\u203B\u30B9\u30DE\u30DB\u672C\u4F53\u3092\u6700\u65B0\u306E\u72B6\u614B\u306B\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u3066\u304B\u3089URL\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n %0A%0A".concat(inviteUrl, "%0A%0A\u25BC\u516C\u5F0F\u30B5\u30A4\u30C8\u306F\u3053\u3061\u3089%0A").concat(siteUrl);
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState2 = _slicedToArray(_useState, 2),
_success = _useState2[0],
setSuccess = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState4 = _slicedToArray(_useState3, 2),
_400error = _useState4[0],
set400Error = _useState4[1];
var copyInviteURL = function copyInviteURL() {
if (copy_to_clipboard__WEBPACK_IMPORTED_MODULE_4___default()(inviteurl, {
debug: true
})) {
setSuccess('招待用URLをコピーしました。');
} else {
set400Error('コピー失敗しました。');
}
};
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_7__["default"], {
open: show,
TransitionComponent: Transition,
keepMounted: true,
"aria-describedby": "alert-dialog-slide-description",
onClose: function onClose() {
setSuccess('');
set400Error('');
handleClose();
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_8__["default"], {
sx: {
padding: '20px 10px',
textAlign: 'center',
borderBottom: '1px solid rgb(239 236 236)'
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
className: "ft-16 text-center font-weight-bold",
children: "\u62DB\u5F85\u7528URL"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_9__["default"], {
sx: {
p: '10px',
pb: '10px'
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_10__["default"], {
component: "p",
sx: {
minHeight: '175px',
whiteSpace: 'pre-wrap',
bgcolor: '#F0F0F0',
p: '10px'
},
className: "ft-14 text-black",
children: inviteurl
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_9__["default"], {
sx: {
p: '10px',
pt: '0px'
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("ul", {
className: "invite-btn__wrapper",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("li", {
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("a", {
className: "copy-btn",
onClick: copyInviteURL,
children: "\u30B3\u30D4\u30FC"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("li", {
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("a", {
className: "line-btn",
href: "http://line.naver.jp/R/msg/text/?".concat(lineText),
children: "\u9001\u4FE1"
})
})]
})
}), _success && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_component_alert__WEBPACK_IMPORTED_MODULE_1__["default"], {
type: "success",
hide: function hide() {
return setSuccess('');
},
children: _success
}), _400error && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_component_alert__WEBPACK_IMPORTED_MODULE_1__["default"], {
type: "fail",
hide: function hide() {
return set400Error('');
},
children: _400error
})]
});
};
var ParentChildAdd = function ParentChildAdd() {
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(localStorage.getItem('notice')),
_useState2 = _slicedToArray(_useState, 2),
notice = _useState2[0],
setNotice = _useState2[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(localStorage.getItem('notice')),
_useState6 = _slicedToArray(_useState5, 2),
notice = _useState6[0],
setNotice = _useState6[1];
var father_id = localStorage.getItem('kiki_acc_id');
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true),
_useState4 = _slicedToArray(_useState3, 2),
loaded = _useState4[0],
setLoaded = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState6 = _slicedToArray(_useState5, 2),
identity = _useState6[0],
setIdentity = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true),
_useState8 = _slicedToArray(_useState7, 2),
_success = _useState8[0],
setSuccess = _useState8[1];
loaded = _useState8[0],
setLoaded = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState10 = _slicedToArray(_useState9, 2),
_400error = _useState10[0],
set400Error = _useState10[1];
identity = _useState10[0],
setIdentity = _useState10[1];
var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState12 = _slicedToArray(_useState11, 2),
_401error = _useState12[0],
set401Error = _useState12[1];
_success = _useState12[0],
setSuccess = _useState12[1];
var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState14 = _slicedToArray(_useState13, 2),
_400error = _useState14[0],
set400Error = _useState14[1];
var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState16 = _slicedToArray(_useState15, 2),
_401error = _useState16[0],
set401Error = _useState16[1];
var _useState17 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
identity: ''
}),
_useState14 = _slicedToArray(_useState13, 2),
_422errors = _useState14[0],
set422Errors = _useState14[1];
var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState16 = _slicedToArray(_useState15, 2),
submit = _useState16[0],
setSubmit = _useState16[1];
var _useState17 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState18 = _slicedToArray(_useState17, 2),
_copyFlag = _useState18[0],
setCopyFlag = _useState18[1];
_422errors = _useState18[0],
set422Errors = _useState18[1];
var _useState19 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState20 = _slicedToArray(_useState19, 2),
submit = _useState20[0],
setSubmit = _useState20[1];
var _useState21 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState22 = _slicedToArray(_useState21, 2),
_copyFlag = _useState22[0],
setCopyFlag = _useState22[1];
var _useState23 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState24 = _slicedToArray(_useState23, 2),
show_lineModal = _useState24[0],
setShowLineModal = _useState24[1];
var isMountedRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(true);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
@ -38214,29 +38359,16 @@ var ParentChildAdd = function ParentChildAdd() {
});
};
var handleCheckRelations = function handleCheckRelations(type) {
var handleCheckRelations = function handleCheckRelations() {
set401Error('');
setLoaded(false);
if (type == 'invite') {
var inviteurl = document.getElementById('inviteurl').value;
var sentence = '「KIKI」の招待が届いています。' + '\n' + 'まずは以下より仮登録を行ってください。' + '\n' + '※スマホ本体を最新の状態にアップデートしてからURLをクリックしてください。' + '\n\n' + inviteurl + '\n\n' + '▼公式サイトはこちら' + '\n' + 'https://kikikan.jp';
if (!copy_to_clipboard__WEBPACK_IMPORTED_MODULE_4___default()(sentence, {
debug: true
})) {
set400Error('コピー失敗しました。');
return;
}
}
axios.get('/api/fathers/relations/check').then(function (response) {
if (isMountedRef.current) return;
switch (response.data.status_code) {
case 200:
{
if (type == "invite") setSuccess('招待用URLをコピーしました。');else if (type == 'line') sendLineMsg();
setShowLineModal(true);
break;
}
@ -38257,26 +38389,6 @@ var ParentChildAdd = function ParentChildAdd() {
});
};
var copyInviteURL = function copyInviteURL() {
var inviteurl = document.getElementById('inviteurl').value;
var sentence = '「KIKI」の招待が届いています。' + '\n' + 'まずは以下より仮登録を行ってください。' + '\n' + '※スマホ本体を最新の状態にアップデートしてからURLをクリックしてください。' + '\n\n' + inviteurl + '\n\n' + '▼公式サイトはこちら' + '\n' + 'https://kikikan.jp' + '\n\n' + 'idの箇所は親のidを引っ張るようお願い致します。';
if (copy_to_clipboard__WEBPACK_IMPORTED_MODULE_4___default()(sentence, {
debug: true
})) {
setSuccess('招待用URLをコピーしました。');
} else {
set400Error('コピー失敗しました。');
}
};
var sendLineMsg = function sendLineMsg() {
var inviteUrl = document.getElementById('inviteurl_html').value;
var siteUrl = document.getElementById('siteurl').value;
var lineText = "\u300CKIKI\u300D\u306E\u62DB\u5F85\u304C\u5C4A\u3044\u3066\u3044\u307E\u3059\u3002%0A\u307E\u305A\u306F\u4EE5\u4E0B\u3088\u308A\u4EEE\u767B\u9332\u3092\u884C\u3063\u3066\u304F\u3060\u3055\u3044\u3002%0A%0A\u203B\u30B9\u30DE\u30DB\u672C\u4F53\u3092\u6700\u65B0\u306E\u72B6\u614B\u306B\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u3066\u304B\u3089URL\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002%0A%0A".concat(inviteUrl, "%0A%0A\u25BC\u516C\u5F0F\u30B5\u30A4\u30C8\u306F\u3053\u3061\u3089%0A").concat(siteUrl);
window.location.href = 'http://line.naver.jp/R/msg/text/?' + lineText;
};
var contactMailText = 'mailto:56@zotman.jp?subject=KIKIメンバー追加について&body=' + '名前%3A%0A電話番号%3A%0AログインID%3A%0Aログインパスワード%3A%0A追加したいメンバー数%3A%0A「その他お問合せ内容」';
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
className: "l-content",
@ -38292,9 +38404,9 @@ var ParentChildAdd = function ParentChildAdd() {
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_component_notification__WEBPACK_IMPORTED_MODULE_2__["default"], {
notice: notice
})]
}), !loaded && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_component_page_loader__WEBPACK_IMPORTED_MODULE_3__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
}), !loaded && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_component_page_loader__WEBPACK_IMPORTED_MODULE_3__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
className: "l-content-wrap",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("section", {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("section", {
className: "edit-container",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
className: "edit-wrap",
@ -38333,7 +38445,7 @@ var ParentChildAdd = function ParentChildAdd() {
className: "l-alert__text--error ft-16 ft-md-14",
children: _422errors.identity
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_6__["default"], {
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_11__["default"], {
type: "submit",
fullWidth: true,
loading: submit,
@ -38356,7 +38468,7 @@ var ParentChildAdd = function ParentChildAdd() {
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("a", {
onClick: function onClick() {
return handleCheckRelations('invite');
return handleCheckRelations();
},
children: "\u62DB\u5F85\u7528URL\u3092\u30B3\u30D4\u30FC\u3059\u308B"
})
@ -38370,14 +38482,19 @@ var ParentChildAdd = function ParentChildAdd() {
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("a", {
onClick: function onClick() {
return handleCheckRelations('line');
return handleCheckRelations();
},
children: "\u62DB\u5F85\u7528URL\u3092LINE\u3067\u9001\u4FE1"
})
})]
})
})
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(LineModal, {
show: show_lineModal,
handleClose: function handleClose() {
return setShowLineModal(false);
}
})]
})]
}), _success && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_component_alert__WEBPACK_IMPORTED_MODULE_1__["default"], {
type: "success",
@ -40699,7 +40816,7 @@ var ParentMeetingDetail = function ParentMeetingDetail() {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("a", {
children: "\u3053\u306E\u6848\u4EF6\u306EURL\u3092\u30B3\u30D4\u30FC\u3059\u308B"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("img", {
src: "/assets/img/icon/icon-copy.png",
src: "/assets/img/icon/icon-copy.svg",
alt: "kiki"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("ul", {

141
backend/public/js/index.js.LICENSE.txt ノーマルファイル
ファイルの表示

@ -0,0 +1,141 @@
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <http://feross.org>
* @license MIT
*/
/*!
* cookie
* Copyright(c) 2012-2014 Roman Shtylman
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/**
* @license
* Lodash <https://lodash.com/>
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/
/**
* @licstart The following is the entire license notice for the
* Javascript code in this page
*
* Copyright 2021 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @licend The above is the entire license notice for the
* Javascript code in this page
*/
/**
* React Router DOM v6.2.1
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/
/**
* React Router v6.2.1
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/
/** @license MUI v5.2.6
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license Material-UI v5.0.0-beta.4
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v0.20.2
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.2
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.2
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.2
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
//! moment.js
//! moment.js locale configuration

ファイルの表示

@ -14,6 +14,7 @@ const ChildLogin = () => {
const [tel, setTel] = useState('');
const [password, setPassword] = useState('');
const [remember_token, setRememberToken] = useState(false);
const [_422errors, set422Errors] = useState({tel: '', password: ''});
const [_400error, set400Error] = useState('');
@ -35,6 +36,7 @@ const ChildLogin = () => {
const formdata = new FormData();
formdata.append('tel', tel);
formdata.append('password', password);
formdata.append('remember_token', remember_token);
axios.post('/api/children/login/', formdata)
.then(response => {
@ -96,7 +98,7 @@ const ChildLogin = () => {
<div className="edit-set text-center mt-5">
<label htmlFor="remember_me">
<input id="remember_me" name="remember" type="checkbox" value="remember"/>
<input id="remember_me" type="checkbox" value={remember_token} onChange={()=>setRememberToken(!remember_token)}/>
<span className="lbl padding-16">ログイン情報を保持する</span>
</label>
</div>

ファイルの表示

@ -29,11 +29,11 @@ export default function ModalEditMemo({ show, content, handleClose, handleUpdate
onClose={handleClose}
>
<DialogTitle sx={{padding:'20px 10px',textAlign:'center', borderBottom:'1px solid rgb(239 236 236)'}}>
<span className="ft-18 text-center font-weight-bold">メモ</span>
<span className="ft-16 text-center font-weight-bold">メモ</span>
</DialogTitle>
<Box sx={{ p:'15px', pb:'15px'}}>
<Box sx={{ p:'10px', pb:'10px'}}>
<Box id="alert-dialog-slide-description">
<textarea value={ memo } onChange={e=>handleChange(e.target.value)} style={{ height: '300px', borderRadius:5, background:'#F0F0F0', padding:'12px' }} />
<textarea value={ memo } onChange={e=>handleChange(e.target.value)} style={{ height: '300px', borderRadius:5, background:'#F0F0F0', padding:'12px', fontSize:'15px' }} />
</Box>
</Box>
</Dialog>

ファイルの表示

@ -23,11 +23,11 @@ export default function ModalMemo({ show, content, handleClose}){
onClose={handleClose}
>
<DialogTitle sx={{padding:'20px 10px',textAlign:'center', borderBottom:'1px solid rgb(239 236 236)'}}>
<span className="ft-18 text-center font-weight-bold">メモ</span>
<span className="ft-16 text-center font-weight-bold">メモ</span>
</DialogTitle>
<Box sx={{ p:'15px', pb:'15px'}}>
<Box sx={{ p:'10px', pb:'10px'}}>
<Box id="alert-dialog-slide-description">
<Typography component='p' sx={{ minHeight:'175px', whiteSpace:'pre-wrap', bgcolor:'#F0F0F0', p:'15px' }} className="ft-16 text-black">
<Typography component='p' sx={{ minHeight:'175px', whiteSpace:'pre-wrap', bgcolor:'#F0F0F0', p:'15px' }} className="ft-15 text-black">
{content ? content : '未入力'}
</Typography>
</Box>

ファイルの表示

@ -86,7 +86,11 @@ export default function ModalSettingNotify({show, handleClose, meetingId, handle
TransitionComponent={Transition}
keepMounted
aria-describedby="alert-dialog-slide-description"
onClose={handleClose}
onClose={()=>{
setSuccess('');
set400Error('');
handleClose();
}}
id="SettingNotifyModal"
>
<DialogTitle className="px-0 pt-3">

ファイルの表示

@ -15,6 +15,7 @@ const ParentLogin = () => {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [remember_token, setRememberToken] = useState(false);
const [_422errors, set422Errors] = useState({email: '', password: ''});
const [_400error, set400Error] = useState('');
@ -37,6 +38,7 @@ const ParentLogin = () => {
const formdata = new FormData();
formdata.append('email', email);
formdata.append('password', password);
formdata.append('remember_token', remember_token);
axios.post('/api/fathers/login/', formdata)
.then(response => {
@ -99,7 +101,7 @@ const ParentLogin = () => {
<div className="edit-set text-center mt-5">
<label htmlFor="remember_me">
<input id="remember_me" name="remember" type="checkbox" value="remember"/>
<input id="remember_me" type="checkbox" value={remember_token} onChange={()=>setRememberToken(!remember_token)}/>
<span className="lbl padding-16">ログイン情報を保持する</span>
</label>
</div>

ファイルの表示

@ -4,6 +4,78 @@ import Alert from '../../component/alert';
import Notification from '../../component/notification';
import PageLoader from '../../component/page_loader';
import copy from 'copy-to-clipboard';
import {
Box,
Dialog,
DialogTitle,
Slide,
Typography
} from '@mui/material';
const Transition = React.forwardRef(function Transition(props, ref) {
return <Slide direction="up" ref={ref} {...props} />;
});
const LineModal = ({ show, handleClose }) => {
const inviteurl = '「KIKI」の招待が届いています。' + '\n' +
'まずは以下より仮登録を行ってください。' + '\n' +
'※スマホ本体を最新の状態にアップデートしてからURLをクリックしてください。' + '\n\n' +
document.getElementById('inviteurl').value + '\n\n' +
'▼公式サイトはこちら' + '\n' +
'https://kikikan.jp';
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}`;
const [_success, setSuccess] = useState('');
const [_400error, set400Error] = useState('');
const copyInviteURL = () => {
if(copy(inviteurl, {debug: true}))
{
setSuccess('招待用URLをコピーしました。');
} else {
set400Error('コピー失敗しました。');
}
}
return (
<Dialog
open={show}
TransitionComponent={Transition}
keepMounted
aria-describedby="alert-dialog-slide-description"
onClose={()=>{
setSuccess('');
set400Error('');
handleClose();
}}
>
<DialogTitle sx={{padding:'20px 10px',textAlign:'center', borderBottom:'1px solid rgb(239 236 236)'}}>
<span className="ft-16 text-center font-weight-bold">招待用URL</span>
</DialogTitle>
<Box sx={{ p:'10px', pb:'10px'}}>
<Typography component='p' sx={{ minHeight:'175px', whiteSpace:'pre-wrap', bgcolor:'#F0F0F0', p:'10px' }} className="ft-14 text-black">
{inviteurl}
</Typography>
</Box>
<Box sx={{ p:'10px', pt:'0px' }}>
<ul className="invite-btn__wrapper">
<li><a className="copy-btn" onClick={copyInviteURL}>コピー</a></li>
<li><a className="line-btn" href={`http://line.naver.jp/R/msg/text/?${lineText}`}>送信</a></li>
</ul>
</Box>
{ _success && <Alert type="success" hide={()=>setSuccess('')}>{_success}</Alert> }
{ _400error && <Alert type="fail" hide={()=>set400Error('')}>{_400error}</Alert> }
</Dialog>
)
}
const ParentChildAdd = () => {
@ -20,6 +92,8 @@ const ParentChildAdd = () => {
const [submit, setSubmit] = useState(false);
const [_copyFlag, setCopyFlag] = useState(false);
const [show_lineModal, setShowLineModal] = useState(false);
const isMountedRef = useRef(true);
useEffect(() => {
@ -54,32 +128,16 @@ const ParentChildAdd = () => {
const handleCheckRelations = (type) => {
const handleCheckRelations = () => {
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';
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') sendLineMsg();
setShowLineModal(true);
break;
}
case 400: set400Error(response.data.error_messages); break;
@ -92,37 +150,9 @@ const ParentChildAdd = () => {
}
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 sendLineMsg = () => {
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.naver.jp/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 (
<div className="l-content">
<div className="l-content-w560">
@ -170,14 +200,18 @@ const ParentChildAdd = () => {
</LoadingButton>
</form>
<div style={{color:"#49A3FC",display:"flex", justifyContent:"center", alignItems:"center", paddingTop:40}} >
<a onClick={()=>handleCheckRelations('invite')}>招待用URLをコピーする</a>
<a onClick={()=>handleCheckRelations()}>招待用URLをコピーする</a>
</div>
<div style={{color:"#49A3FC",display:"flex", justifyContent:"center", alignItems:"center", paddingTop:20}}>
<a onClick={()=>handleCheckRelations('line')}>招待用URLをLINEで送信</a>
<a onClick={()=>handleCheckRelations()}>招待用URLをLINEで送信</a>
</div>
</div>
</div>
</section>
<LineModal
show={show_lineModal}
handleClose={()=>setShowLineModal(false)}
/>
</div>
</div>
{ _success && <Alert type="success" hide={()=>setSuccess('')}>{_success}</Alert> }

ファイルの表示

@ -239,7 +239,7 @@ const ParentMeetingDetail = () => {
</time>
<div className="clip-copy" onClick={saveStorage}>
<a>この案件のURLをコピーする</a>
<img src="/assets/img/icon/icon-copy.png" alt="kiki"/>
<img src="/assets/img/icon/icon-copy.svg" alt="kiki"/>
</div>
<ul className="p-article-btn-list">
<li className="p-article-btn__item">

ファイルの表示

@ -269,6 +269,33 @@ a{
}
}
.invite-btn__wrapper{
display: flex;
justify-content: center;
.copy-btn, .line-btn{
width: 120px;
border: 1px solid #cac4a4;
border-radius: 5px;
font-size: 12px;
font-weight: bold;
padding: 35px 0 10px;
text-align: center;
display: block;
cursor: pointer;
&:hover{
background-color: #F0F0F0;
}
}
.copy-btn{
background: url(/assets/img/icon/icon-copy.svg) no-repeat 50% 12px;
margin-right: 10px;
}
.line-btn{
background: url(/assets/img/icon/icon-line.svg) no-repeat 50% 12px;
}
}
/////////////////////////////////////////////////////////////////////////
@media screen and (min-width: 1068px){