Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.82 KB | None | 0 0
  1. import React from 'react';
  2.  
  3. /** @type {ICookie} */
  4. import cookie from 'react-cookie';
  5. import * as cookieNames from "../../../constants/cookies";
  6.  
  7. import ls from '../../../../../components/mp-cl/src/service/localization/LocalizationService';
  8.  
  9. /** @type {UserService} */
  10. import userService from '../../../../../components/mp-cl/src/service/user/UserService';
  11.  
  12. import {splitToLines} from '../../../helpers/CommonHelper';
  13.  
  14.  
  15. import RightSideBar from '../../../components/RightSideBar/RightSideBar';
  16. import ProjectCostCard from '../../../components/ProjectCostCard/ProjectCostCard';
  17. import ProjectStatisticCard from '../../../components/ProjectStatisticCard/ProjectStatisticCard';
  18. import ProjectInvitationsStatistic from '../../../components/ProjectInvitationsStatistic/ProjectInvitationsStatistic';
  19. import ProjectFreelancersList from '../../../components/ProjectFreelancersList/ProjectFreelancersList';
  20.  
  21. import ProjectFreelancersInvitationsList from '../../../components/ProjectFreelancersInvitationsList/ProjectFreelancersInvitationsList';
  22. import ProjectFreelancersDeclinedList from '../../../components/ProjectFreelancersInvitationsList/ProjectFreelancersDeclinedList';
  23.  
  24. import MPHeaderTabs from '../../../components/Common/MPHeaderTabs/MPHeaderTabs';
  25. import MPHeaderTab from '../../../components/Common/MPHeaderTab/MPHeaderTab';
  26.  
  27. const TO_PROJECT = 'to_project';
  28.  
  29. ls.requestDic("mp-project");
  30. ls.requestDic("mp-profile-customer");
  31.  
  32. export default class ProjectPage_Customer extends React.Component {
  33. /** @type {ProjectPageProps} */
  34. props;
  35.  
  36. /** @type {ProjectPage_CustomerRefs} */
  37. refs;
  38.  
  39. /** @type {ProjectPage_CustomerState} */
  40. state = new ProjectPage_CustomerState();
  41.  
  42. /** @param {ProjectPageProps} props */
  43. constructor(props) {
  44. super(props);
  45.  
  46. var dispatch = props.dispatch;
  47. var projectPage = props.projectPage;
  48. var project = projectPage.project;
  49. }
  50.  
  51. render() {
  52. var dispatch = this.props.dispatch;
  53. var ui = this.props.ui;
  54. var user = this.props.user;
  55. var projectPage = this.props.projectPage;
  56. var project = projectPage.project;
  57. var invitationGroups = projectPage.invitationGroups;
  58. var jobsGroups = projectPage.jobsGroups;
  59. var langDirectionStageGroups = projectPage.langDirectionStageGroups;
  60. var jobsForCustomerProjectPage = projectPage.jobsForCustomerProjectPage;
  61. var invitationsForCustomerProjectPage = projectPage.invitationsForCustomerProjectPage;
  62.  
  63. var langDirectionGroups = projectPage.langDirectionGroups;
  64.  
  65. /** @type {ProjectPage_CustomerState} */
  66. var state = this.state;
  67.  
  68. /** @type {LocationModel} */
  69. var location = this.props.location;
  70.  
  71. if (project != null) {
  72. var invitationList = (
  73. <ProjectFreelancersInvitationsList project={project}
  74. list={invitationsForCustomerProjectPage}
  75. jobsGroups={jobsGroups}
  76. /*openChatHandler={this.openChatHandler}*//>
  77. );
  78.  
  79. var declinedCanceledList = (
  80. <ProjectFreelancersDeclinedList project={project}
  81. list={invitationsForCustomerProjectPage}
  82. /* openChatHandler={this.openChatHandler}*/ />
  83. );
  84.  
  85. /** @type {InvitationModel} */
  86. var firstInvite = project.getFirstInvite();
  87.  
  88. return (
  89. <div className="layout horizontal flex container">
  90. <div className="flex g-sidebar-empty"></div>
  91. <div className="layout vertical flex three">
  92. <MPHeaderTabs className="header__tabs"
  93. value={state.activeTabValue}
  94. onChange={this.tabHandleChange}>
  95. <MPHeaderTab label={(<span><span className="icon icon_mp-arrow-left"></span>{ls.getL10n('to project label', 'mp-project')}</span>)}
  96. value={TO_PROJECT}></MPHeaderTab>
  97. <MPHeaderTab label={ls.getL10n('team tab label', 'mp-project')} value="team">
  98. <ProjectFreelancersList groups={jobsForCustomerProjectPage}
  99. invitationList={invitationList}
  100. declinedCanceledList={declinedCanceledList}
  101. project={project}
  102. /*openChatHandler={this.openChatHandler}*//>
  103. </MPHeaderTab>
  104.  
  105. <MPHeaderTab label={ls.getL10n('payments tab label', 'mp-project')} value="payments">
  106. <div className="tabs-container">
  107. <div className="page__title">{ls.getL10n('project payments', 'mp-project')}</div>
  108. <ProjectCostCard user={user} projectPage={projectPage} />
  109.  
  110. <div className="layout horizontal
  111. project-payments__remark">
  112. <div className="project-payments__remark-text">
  113. {splitToLines(ls.getL10n('note after job customer text', 'mp-profile-customer'))}
  114. </div>
  115. </div>
  116.  
  117. {
  118. langDirectionGroups != null && langDirectionGroups.length > 0 ?
  119. <ProjectStatisticCard user={user} projectPage={projectPage} initiallyOpenedNestedList={true}/>
  120. :
  121. <ProjectInvitationsStatistic user={user} projectPage={projectPage} initiallyOpenedNestedList={true}/>
  122. }
  123. </div>
  124. </MPHeaderTab>
  125. </MPHeaderTabs>
  126. </div>
  127.  
  128. <RightSideBar ui={ui}>
  129. <div className="layout vertical flex right-sidebar">
  130. </div>
  131. </RightSideBar>
  132. </div>
  133. );
  134. }
  135.  
  136. return null;
  137. }
  138.  
  139. tabHandleChange = (value) => {
  140. /** @type {ProjectModel} */
  141. var project = this.props.projectPage.project;
  142.  
  143. if (value == TO_PROJECT) {
  144. location.href = userService.getSmartcatLink(`/project/${project.catId}`);
  145. }
  146. else {
  147. /** @type {ProjectPage_CustomerState} */
  148. var state = /** @type {ProjectPage_CustomerState} */{};
  149. state.activeTabValue = value;
  150. this.setState(state);
  151. cookie.save(cookieNames.ProjectActiveTab, value, {path: '/'});
  152. }
  153. };
  154. }
  155.  
  156. class ProjectPage_CustomerState {
  157. /** @type {string} */
  158. activeTabValue = cookie.load(cookieNames.ProjectActiveTab);
  159. }
  160.  
  161. class ProjectPage_CustomerRefs {
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement