diff --git a/src/common/hooks/ImageLayer2.js b/src/common/hooks/ImageLayer2.js index 504e491c..ae429bab 100644 --- a/src/common/hooks/ImageLayer2.js +++ b/src/common/hooks/ImageLayer2.js @@ -12,32 +12,25 @@ function ImageLayer2(props) { setShowImage(false) setImageSrc('') } - const onDelegateClick = (event) => { - const imageSrc = event.target.src || event.target.getAttribute('src') || event.target.getAttribute('href') - // 判断imageSrc是否是图片 - const fileName = event.target.innerHTML.trim() - if (isImageExtension((imageSrc && imageSrc.trim())) || isImageExtension(fileName) || event.target.tagName == 'IMG' || (imageSrc && imageSrc.indexOf('base64,')) != -1) { - // 非回复里的头像图片; 非emoticons - if (imageSrc.indexOf('/images/avatars/User') === -1 && - imageSrc.indexOf('kindeditor/plugins/emoticons') === -1 ) { - setShowImage(true) - setImageSrc(imageSrc) - } - event.stopPropagation() - event.preventDefault && event.preventDefault() - event.originalEvent.preventDefault() - // event.originalEvent.stopPropagation() - // event.originalEvent.cancelBubble = true - return false; - } - } useEffect(() => { - $(parentSel) - .delegate(childSel, "click", onDelegateClick); - - return () => { - $(parentSel).undelegate(childSel, "click", onDelegateClick ) - } + $(parentSel).delegate(childSel, "click", (event) => { + const imageSrc = event.target.src || event.target.getAttribute('src') || event.target.getAttribute('href') + // 判断imageSrc是否是图片 + const fileName = event.target.innerHTML.trim(); + + if (isImageExtension((imageSrc && imageSrc.trim())) || isImageExtension(fileName) || event.target.tagName == 'IMG' || (imageSrc && imageSrc.indexOf('base64,')) != -1) { + // 非回复里的头像图片; 非emoticons + if (imageSrc.indexOf('/images/avatars/User') === -1 && + imageSrc.indexOf('kindeditor/plugins/emoticons') === -1 ) { + setShowImage(true) + setImageSrc(imageSrc) + } + event.stopPropagation() + event.preventDefault && event.preventDefault() + event.originalEvent.preventDefault() + return false; + } + }) }) return ( diff --git a/src/forge/Activity/ActivityItem.js b/src/forge/Activity/ActivityItem.js index 40887fdd..819ed530 100644 --- a/src/forge/Activity/ActivityItem.js +++ b/src/forge/Activity/ActivityItem.js @@ -31,7 +31,7 @@ class ActivityItem extends Component { {item.trend_type}

} -

+

{item.user_name} diff --git a/src/forge/Activity/activity.css b/src/forge/Activity/activity.css index e9ba6eba..cc05dccf 100644 --- a/src/forge/Activity/activity.css +++ b/src/forge/Activity/activity.css @@ -66,6 +66,9 @@ display: flex; align-items: flex-start; } +.activity_list .activity_item:last-child{ + border-bottom: none; +} .prPercent > p{ position: absolute; height: 100%; diff --git a/src/forge/Main/CoderRootDirectory.js b/src/forge/Main/CoderRootDirectory.js index 28876b88..0d79eaa1 100644 --- a/src/forge/Main/CoderRootDirectory.js +++ b/src/forge/Main/CoderRootDirectory.js @@ -289,7 +289,7 @@ class CoderRootDirectory extends Component {

{readMeContent[0].content ? ( ) : ( diff --git a/src/forge/Main/CoderRootFileDetail.js b/src/forge/Main/CoderRootFileDetail.js index 2af19867..f0c9d06a 100644 --- a/src/forge/Main/CoderRootFileDetail.js +++ b/src/forge/Main/CoderRootFileDetail.js @@ -136,7 +136,7 @@ class CoderRootFileDetail extends Component { .then((result) => { if (result) { this.props.showNotification("删除成功!"); - this.props.history.push(`/projects/${projectsId}`); + this.props.history.push(`/projects/${owner}/${projectsId}`); } }) .catch((error) => { @@ -246,7 +246,7 @@ class CoderRootFileDetail extends Component { ) : ( md && readOnly ?
- +
:
) - }) : "" + }) : ) return (
diff --git a/src/forge/Merge/MergeItem.js b/src/forge/Merge/MergeItem.js index 3a8f6bd6..d34f5382 100644 --- a/src/forge/Merge/MergeItem.js +++ b/src/forge/Merge/MergeItem.js @@ -98,9 +98,7 @@ class MergeItem extends Component { {item.is_original diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js index 50189780..12432313 100644 --- a/src/forge/Merge/MessageCount.js +++ b/src/forge/Merge/MessageCount.js @@ -195,7 +195,7 @@ class MessageCount extends Component { }; commentCtx = (v) => { - return ; + return ; }; render() { @@ -359,7 +359,7 @@ class MessageCount extends Component { diff --git a/src/forge/Merge/NewMerge.js b/src/forge/Merge/NewMerge.js index 5fe2a0d3..4105f9c2 100644 --- a/src/forge/Merge/NewMerge.js +++ b/src/forge/Merge/NewMerge.js @@ -301,9 +301,6 @@ class NewMerge extends Component { )}
- {/*
- -
*/} ); } diff --git a/src/forge/Merge/merge.js b/src/forge/Merge/merge.js index ae01b110..9ae71994 100644 --- a/src/forge/Merge/merge.js +++ b/src/forge/Merge/merge.js @@ -273,7 +273,7 @@ class merge extends Component { ); return (
-
+
)} - {/*
-

-

  • this.openorder("1")}>{data && data.open_count ? data.open_count : 0}个开启中
  • -
  • this.openorder("2")}>{data && data.close_count ? data.close_count : 0}个已关闭
  • -

    - - -
    -
    -
    -
      -
    • - - {this.state.issue_tag_ids} - -
    • -
    • - - {this.state.fixed_version_ids} - -
    • -
    • - - {this.state.assigned_to_ids} - -
    • - -
    • - - {this.state.paix} - -
    • -
    -
    - { - data && data.search_count && data.search_count > 0 ? -
    - - - {Paginations} - -
    - : - - } */}
    ); } diff --git a/src/forge/Merge/merge_form.js b/src/forge/Merge/merge_form.js index 87bdc8b4..5c1b17c6 100644 --- a/src/forge/Merge/merge_form.js +++ b/src/forge/Merge/merge_form.js @@ -282,11 +282,9 @@ class MergeForm extends Component { diff --git a/src/forge/Newfile/UserSubmitComponent.js b/src/forge/Newfile/UserSubmitComponent.js index 5460d998..a76c70ab 100644 --- a/src/forge/Newfile/UserSubmitComponent.js +++ b/src/forge/Newfile/UserSubmitComponent.js @@ -117,18 +117,12 @@ class UserSubmitComponent extends Component { const { current_user, filepath, projectDetail } = this.props; const { editor_type } = this.props; - return (
    - + @@ -136,7 +130,6 @@ class UserSubmitComponent extends Component { {current_user && current_user.username}: - 提交变更 @@ -153,10 +146,8 @@ class UserSubmitComponent extends Component { })(
    diff --git a/src/forge/Newfile/upload_file.js b/src/forge/Newfile/upload_file.js index 2abf104a..40281a53 100644 --- a/src/forge/Newfile/upload_file.js +++ b/src/forge/Newfile/upload_file.js @@ -27,7 +27,7 @@ class UploadFile extends Component { const { pathname } = this.props.location; const { filename, editorValue, attachment_clean } = this.state; const urlroot = pathname.split("uploadfile/")[1]; - const file_path = !urlroot ? `${filename}` : `${urlroot}/${filename}`; + const file_path = !urlroot ? filename : `${urlroot}/${filename}`; return ( diff --git a/src/forge/Order/Detail.js b/src/forge/Order/Detail.js index c9c38610..c22013a3 100644 --- a/src/forge/Order/Detail.js +++ b/src/forge/Order/Detail.js @@ -3,7 +3,7 @@ import { Link } from "react-router-dom"; import axios from "axios"; import { getImageUrl } from "educoder"; -import { Form , Popconfirm , Tag , Spin } from "antd"; +import { Form, Popconfirm, Tag, Spin } from "antd"; import Attachments from "../Upload/attachment"; import RenderHtml from "../../components/render-html"; import Comments from "../comments/comments"; @@ -44,7 +44,7 @@ class Detail extends Component { }; getDetail = () => { - const { projectsId, orderId,owner } = this.props.match.params; + const { projectsId, orderId, owner } = this.props.match.params; const url = `/${owner}/${projectsId}/issues/${orderId}.json`; axios .get(url) @@ -52,7 +52,7 @@ class Detail extends Component { if (result) { this.setState({ data: result.data, - isSpins:false + isSpins: false }); } }) @@ -74,7 +74,7 @@ class Detail extends Component { //删除任务信息 deletedetail = (id) => { - const { projectsId, orderId,owner } = this.props.match.params; + const { projectsId, orderId, owner } = this.props.match.params; const url = `/${owner}/${projectsId}/issues/${orderId}.json`; axios .delete(url, { @@ -85,7 +85,7 @@ class Detail extends Component { }) .then((result) => { if (result) { - this.props.history.push(`/projects/${projectsId}/issues`); + this.props.history.push(`/projects/${owner}/${projectsId}/issues`); } }) .catch((error) => { @@ -95,7 +95,7 @@ class Detail extends Component { //关闭任务 closedetail = (id) => { - const { projectsId, orderId , owner } = this.props.match.params; + const { projectsId, orderId, owner } = this.props.match.params; const url = `/${owner}/${projectsId}/issues/${orderId}/close_issue.json`; axios .post(url, { @@ -122,7 +122,7 @@ class Detail extends Component { //复制 copydetail = () => { - const { projectsId, orderId , owner} = this.props.match.params; + const { projectsId, orderId, owner } = this.props.match.params; const url = `/${owner}/${projectsId}/issues/${orderId}/copy.json`; axios .post(url, { @@ -182,12 +182,12 @@ class Detail extends Component { }; commentCtx = (v) => { - return ; + return ; }; render() { - const { projectsId, orderId , owner } = this.props.match.params; - const { data , isSpins } = this.state; + const { projectsId, orderId, owner } = this.props.match.params; + const { data, isSpins } = this.state; const get_color = (type) => { if (type === "高") { return "#e67e22"; @@ -276,8 +276,8 @@ class Detail extends Component { ) : ( - "" - )} + "" + )}
    @@ -286,8 +286,8 @@ class Detail extends Component { {data && data.description && data.description.length > 0 ? ( this.commentCtx(data.description) ) : ( - 没有描述 - )} + 暂无描述 + )}
    {data && data.attachments && data.attachments.length > 0 ? ( ) : ( - "" - )} + "" + )}
    @@ -307,77 +307,66 @@ class Detail extends Component { />
    -
    -

    - 分支: - {data && data.branch_name ? data.branch_name : "--"} -

    - {/*

    - 是否上链: - {data && data.issue_type==="2" ? '是' : "--"} -

    - { - data && data.issue_type==="2" && -

    - token值: - {data && data.token ? data.token : "--"} -

    - } */} -

    - 标签: - - {data && data.issue_tags ? ( - - - {data.issue_tags[0].name} - - ) : ( - "--" - )} - -

    -

    - 里程碑: - - {data && data.version ? data.version : "--"} - -

    -

    - 状态: - - {data && data.issue_status ? data.issue_status : "--"} - -

    -

    - 分类: - {data && data.tracker ? data.tracker : "--"} -

    -

    - 负责人: - - {data && data.assign_user_name ? data.assign_user_name : "--"} - -

    -

    - 开始日期: - {data && data.start_date ? data.start_date : "--"} -

    -

    - 结束日期: - {data && data.due_date ? data.due_date : "--"} -

    +
    +

    + 分支: + {data && data.branch_name ? data.branch_name : "--"} +

    +

    + 标签: + + {data && data.issue_tags ? ( + + + {data.issue_tags[0].name} + + ) : ( + "--" + )} + +

    +

    + 里程碑: + + {data && data.version ? data.version : "--"} + +

    +

    + 状态: + + {data && data.issue_status ? data.issue_status : "--"} + +

    +

    + 分类: + {data && data.tracker ? data.tracker : "--"} +

    +

    + 负责人: + + {data && data.assign_user_name ? data.assign_user_name : "--"} + +

    +

    + 开始日期: + {data && data.start_date ? data.start_date : "--"} +

    +

    + 结束日期: + {data && data.due_date ? data.due_date : "--"} +

    -

    - 完成度: - {data && data.done_ratio ? data.done_ratio : "--"} -

    +

    + 完成度: + {data && data.done_ratio ? data.done_ratio : "--"} +

    +
    - - + ); } } diff --git a/src/forge/Order/Milepost.js b/src/forge/Order/Milepost.js index 5432df33..413b4edf 100644 --- a/src/forge/Order/Milepost.js +++ b/src/forge/Order/Milepost.js @@ -169,7 +169,7 @@ class Milepost extends Component { 里程碑{data && data.issue_tags_count}已创建 -
    +
  • this.opneMilelist(1)}>{data && data.open_count}个开启中
  • this.opneMilelist(2)}>{data && data.closed_count}个已关闭
  • @@ -223,15 +223,15 @@ class Milepost extends Component { { data && data.user_admin_or_member ?
    -
    +
    编辑
    -
    + -
    +
    this.closemile(item)}> 删除 diff --git a/src/forge/Order/MilepostDetail.js b/src/forge/Order/MilepostDetail.js index 89615035..9f4b61af 100644 --- a/src/forge/Order/MilepostDetail.js +++ b/src/forge/Order/MilepostDetail.js @@ -2,6 +2,7 @@ import React, { Component } from "react"; import { Link } from 'react-router-dom'; import { Dropdown, Menu, Icon, Pagination, Spin } from 'antd'; import './order.css'; +import { FlexAJ } from '../Component/layout' import NoneData from '../Nodata'; import OrderItem from './OrderItem'; @@ -198,92 +199,94 @@ class MilepostDetail extends Component { ) return ( -
    -
    -
    -

    {data && data.name}

    +
    +
    +

    {data && data.name}

    + + + + + + { + data && data.effective_date ? + {data && data.effective_date} + : + 暂无截止时间 + } + + {data && data.percent && data.percent.toFixed(2)}%完成 +
    编辑里程碑 创建任务
    -
    -
    - - - - { - data && data.effective_date ? - {data && data.effective_date} - : - 暂无截止时间 - } - - - {data && data.percent && data.percent.toFixed(2)}%完成 - -
    +
    -
    -
      -
    • this.openorder("1")}>{data && data.open_issues_count}个开启中
    • -
    • this.openorder("2")}>{data && data.close_issues_count}个已关闭
    • -
    -
      -
    • - - {this.state.issue_tag_ids} - -
    • -
    • - - {this.state.author_ids} - -
    • -
    • - - {this.state.assigned_to_ids} - -
    • -
    • - - {this.state.tracker_ids} - -
    • -
    • - - {this.state.status_ids} - -
    • -
    • - - {this.state.done_ratios} - -
    • -
    • - - {this.state.paix} - -
    • -
    +
    +
    +
      +
    • this.openorder("1")}>{data && data.open_issues_count}个开启中
    • +
    • this.openorder("2")}>{data && data.close_issues_count}个已关闭
    • +
    +
      +
    • + + {this.state.issue_tag_ids} + +
    • +
    • + + {this.state.author_ids} + +
    • +
    • + + {this.state.assigned_to_ids} + +
    • +
    • + + {this.state.tracker_ids} + +
    • +
    • + + {this.state.status_ids} + +
    • +
    • + + {this.state.done_ratios} + +
    • +
    • + + {this.state.paix} + +
    • +
    +
    +
    + { + search_count === 0 ? + + : + issues && issues.length>0 && issues.map((item,key)=>{ + return( + + ) + }) + } +
    + { + search_count > limit? +
    + +
    :"" + }
    - { - search_count === 0 ? - - : - issues && issues.length>0 && issues.map((item,key)=>{ - return( - - ) - }) - } - { - search_count > limit? -
    - -
    :"" - }
    ) diff --git a/src/forge/Order/Milepostitem.js b/src/forge/Order/Milepostitem.js index 665d9228..48bf65c1 100644 --- a/src/forge/Order/Milepostitem.js +++ b/src/forge/Order/Milepostitem.js @@ -37,7 +37,6 @@ class OrderItem extends Component {
    -
    @@ -64,15 +63,15 @@ class OrderItem extends Component { { data.user_admin_or_member ?
    -
    +
    编辑
    -
    + -
    +
    this.closemile(item)}> 删除 diff --git a/src/forge/Order/OrderItem.js b/src/forge/Order/OrderItem.js index b09a630e..f0f04be2 100644 --- a/src/forge/Order/OrderItem.js +++ b/src/forge/Order/OrderItem.js @@ -53,7 +53,7 @@ class OrderItem extends Component {
    {current_user && current_user.login && checkbox}
    -

    +

    {item.name} {TagInfo(item.priority,"mr10")}

    diff --git a/src/forge/Order/Tags.js b/src/forge/Order/Tags.js index 5183222b..0a4c10d3 100644 --- a/src/forge/Order/Tags.js +++ b/src/forge/Order/Tags.js @@ -80,9 +80,9 @@ class Tags extends Component { getList = (page, order_name, order_type) => { - const { projectsId } = this.props.match.params; + const { projectsId ,owner } = this.props.match.params; const { limit } = this.state; - const url = `/projects/${projectsId}/issue_tags.json`; + const url = `/projects/${owner}/${projectsId}/labels.json`; axios.get(url, { params: { page, limit, order_name, order_type @@ -101,8 +101,8 @@ class Tags extends Component { createtagpost = () => { this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { - const { projectsId } = this.props.match.params; - const url = `/projects/${projectsId}/issue_tags.json`; + const { projectsId , owner } = this.props.match.params; + const url = `/projects/${owner}/${projectsId}/labels.json`; axios.post(url, { ...values, project_id: projectsId, @@ -183,9 +183,9 @@ class Tags extends Component { this.updatetag(); } updatetag = () => { - const { projectsId } = this.props.match.params; + const { projectsId , owner } = this.props.match.params; let id = this.state.id; - const url = `/projects/${projectsId}/issue_tags/${id}.json`; + const url = `/projects/${owner}/${projectsId}/labels/${id}.json`; let name = this.state.name; let description = this.state.description; let modalcolor = this.state.newcolor @@ -208,8 +208,8 @@ class Tags extends Component { } deletetag = (id) => { - const { projectsId } = this.props.match.params; - const url = `/projects/${projectsId}/issue_tags/${id}.json`; + const { projectsId , owner } = this.props.match.params; + const url = `/projects/${owner}/${projectsId}/labels/${id}.json`; axios.delete(url, { data: { project_id: projectsId, diff --git a/src/forge/Order/order.css b/src/forge/Order/order.css index cedf4029..5db5aaf0 100644 --- a/src/forge/Order/order.css +++ b/src/forge/Order/order.css @@ -19,7 +19,6 @@ } .topmilepost { - padding: 20px 0; box-sizing: border-box; display: flex; justify-content: space-between; @@ -27,7 +26,7 @@ } .miledetail { - padding-bottom: 20px; + padding:15px 20px; box-sizing: border-box; justify-content: space-between; border-bottom: 1px solid #eeeeee; @@ -212,12 +211,18 @@ padding: 6px 30px; cursor: pointer; } +.setItemStyle .issueItem{ + padding:16px 0px; +} .issueItem { display: flex; flex-wrap: wrap; align-content: center; border-bottom: 1px solid #eee; - padding: 16px 0px 16px 20px; + padding: 16px 20px; +} +.issueItem:last-child{ + border-bottom: none; } .issueNo { padding: 0px 5px; @@ -424,7 +429,7 @@ } .milepostrighe { display: flex; - width: 80%; + flex:1; } .milepostleft { display: flex; @@ -640,7 +645,7 @@ a.issue-type-button.active:hover { .custom-comment-tabs .ant-tabs-top-bar{ border-bottom: none; - padding: 15px 0; + padding-top:15px; } .custom-comment-tabs .search-count-button{ line-height: 18px; diff --git a/src/forge/Order/order.js b/src/forge/Order/order.js index 784111fe..7e2715f2 100644 --- a/src/forge/Order/order.js +++ b/src/forge/Order/order.js @@ -316,8 +316,8 @@ class order extends Component { }; deletedetail = (id) => { - const { projectsId } = this.props.match.params; - const url = `/projects/${projectsId}/issues/${id}.json`; + const { projectsId , owner } = this.props.match.params; + const url = `/projects/${owner}/${projectsId}/issues/${id}.json`; axios.delete(url, { data: { project_id: projectsId, @@ -470,8 +470,8 @@ class order extends Component { isSpin: true }) const { checkedValue } = this.state; - const { projectsId } = this.props.match.params; - const url = `/projects/${projectsId}/issues/clean.json`; + const { projectsId , owner } = this.props.match.params; + const url = `/projects/${owner}/${projectsId}/issues/clean.json`; axios.post(url, { ids: checkedValue }).then(result => { diff --git a/src/forge/Settings/Collaborator.js b/src/forge/Settings/Collaborator.js index a266828f..049e3dae 100644 --- a/src/forge/Settings/Collaborator.js +++ b/src/forge/Settings/Collaborator.js @@ -238,7 +238,7 @@ class Collaborator extends Component { content: "确认将此成员从项目中移除?", onOk: () => { const { project_id } = this.props; - const url = `/${owner}/${projectsId}/members/remove.json`; + const url = `/${owner}/${projectsId}/collaborators/remove.json`; axios .delete(url, { data: { diff --git a/src/forge/Settings/Index.js b/src/forge/Settings/Index.js index 530085b1..542f12c7 100644 --- a/src/forge/Settings/Index.js +++ b/src/forge/Settings/Index.js @@ -41,7 +41,7 @@ class Index extends Component { const { projectsId , owner } = this.props.match.params; const { pathname } = this.props.history.location; - const flag = pathname === `/projects/${projectsId}/setting`; + const flag = pathname === `/projects/${owner}/${projectsId}/setting`; return ( @@ -49,9 +49,8 @@ class Index extends Component {
  • - 基本设置 - +

  • { - return ; + return ; }; Paginations =()=> { diff --git a/src/forge/comments/children_journals.js b/src/forge/comments/children_journals.js index 92ecde73..cb9756ff 100644 --- a/src/forge/comments/children_journals.js +++ b/src/forge/comments/children_journals.js @@ -51,7 +51,7 @@ class children_journals extends Component { }; commentCtx = (v) => { - return ; + return ; }; Paginations =()=> { diff --git a/src/forge/comments/comments.js b/src/forge/comments/comments.js index bd6fd748..8bff143c 100644 --- a/src/forge/comments/comments.js +++ b/src/forge/comments/comments.js @@ -263,7 +263,7 @@ class comments extends Component { } commentCtx = (v) => { - return ; + return ; }; Paginations = ()=>{ const { page, limit, search_count } = this.state; diff --git a/src/modules/comment/CommentsHOC.js b/src/modules/comment/CommentsHOC.js index 3b3a442e..6a9419ea 100644 --- a/src/modules/comment/CommentsHOC.js +++ b/src/modules/comment/CommentsHOC.js @@ -427,10 +427,6 @@ export function commentHOC(WrappedComponent) { }) } - // ----------------------------------------------------------------------------------------------评论 End - - // ----------------------------------------------------------------------------------------------评论 End - componentDidMount() { $(".commentsDelegateParent") .delegate(".J_Comment_Reply .comment_content img, .J_Comment_Reply .childrenCommentsView img", "click", (event) => { diff --git a/src/modules/page/layers/ImageLayerOfCommentHOC.js b/src/modules/page/layers/ImageLayerOfCommentHOC.js index 34fc6a79..7745c2d6 100644 --- a/src/modules/page/layers/ImageLayerOfCommentHOC.js +++ b/src/modules/page/layers/ImageLayerOfCommentHOC.js @@ -16,6 +16,7 @@ export function ImageLayerOfCommentHOC(options = {}) { } onDelegateClick = (event) => { + console.log("imgclick",event); const imageSrc = event.target.src || event.target.getAttribute('src') || event.target.getAttribute('href') // 判断imageSrc是否是图片 const fileName = event.target.innerHTML.trim() @@ -37,8 +38,8 @@ export function ImageLayerOfCommentHOC(options = {}) { componentDidMount() { this.props.wrappedComponentRef && this.props.wrappedComponentRef(this.refs['wrappedComponentRef']) - - setTimeout(() => { + + setTimeout(() => { $(options.parentSelector || ".commentsDelegateParent") .delegate(options.imgSelector || ".J_Comment_Reply .comment_content img, .J_Comment_Reply .childrenCommentsView img", "click", this.onDelegateClick); }, 1200)