fixed invite line url

このコミットが含まれているのは:
dragon1211 2022-01-17 03:13:24 -08:00
コミット f5a9c52787
5個のファイルの変更210行の追加157行の削除

ファイルの表示

@ -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;

ファイルの表示

@ -35220,7 +35220,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",
@ -38142,12 +38146,40 @@ 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: handleClose,
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',
@ -38156,12 +38188,12 @@ var LineModal = function LineModal(_ref) {
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
className: "ft-16 text-center font-weight-bold",
children: "\u30E1\u30C3\u30BB\u30FC\u30B8"
children: "\u62DB\u5F85\u7528URL"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_9__["default"], {
sx: {
p: '15px',
pb: '15px'
p: '10px',
pb: '10px'
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_10__["default"], {
component: "p",
@ -38176,76 +38208,95 @@ var LineModal = function LineModal(_ref) {
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_9__["default"], {
sx: {
borderTopColor: '1px solid rgb(239 236 236)'
p: '10px',
pt: '0px'
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("ul", {
className: "invite-btn-bar",
className: "invite-btn__wrapper",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("li", {
className: "copy-btn",
children: "\u30B3\u30D4\u30FC"
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", {
className: "line-btn",
children: "\u9001\u4FE1"
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),
show_lineModal = _useState20[0],
setShowLineModal = _useState20[1];
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 () {
@ -38292,30 +38343,15 @@ 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;
}
@ -38337,26 +38373,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",
@ -38436,7 +38452,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"
})
@ -38450,7 +38466,7 @@ 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"
})

ファイルの表示

@ -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">

ファイルの表示

@ -26,29 +26,54 @@ const LineModal = ({ show, handleClose }) => {
'▼公式サイトはこちら' + '\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={handleClose}
>
<DialogTitle sx={{padding:'20px 10px',textAlign:'center', borderBottom:'1px solid rgb(239 236 236)'}}>
<span className="ft-16 text-center font-weight-bold">メッセージ</span>
</DialogTitle>
<Box sx={{ p:'15px', pb:'15px'}}>
<Typography component='p' sx={{ minHeight:'175px', whiteSpace:'pre-wrap', bgcolor:'#F0F0F0', p:'10px' }} className="ft-14 text-black">
{inviteurl}
</Typography>
</Box>
<Box sx={{ borderTopColor:'1px solid rgb(239 236 236)' }}>
<ul className="invite-btn-bar">
<li className="copy-btn">コピー</li>
<li className="line-btn">送信</li>
</ul>
</Box>
</Dialog>
<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>
)
}
@ -103,32 +128,15 @@ 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;
}
@ -142,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">
@ -220,10 +200,10 @@ 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>

ファイルの表示

@ -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){