1- import React , { Component } from "react" ;
1+ import React , { Component , Fragment } from "react" ;
22import { withTranslation } from "react-i18next" ;
3-
3+ import moment from "moment" ;
44import ComplianceRateSection from "./compliance-rate-section/compliance-rate.section" ;
55import BoardingsSection from "./boardings-section/boardings.section" ;
66import PatrolHoursSection from "./patrol-hours-section/patrol-hours.section" ;
77import SearchPanel from "./../partials/search-panel/search-panel.component" ;
8+ import DatesRange from "./../partials/dates-range/dates-range.component" ;
89
910import SearchService from "./../../services/search.service" ;
11+ import AuthService from "./../../services/auth.service" ;
1012
1113import "./home.css" ;
1214
15+ const authService = AuthService . getInstance ( ) ;
1316const searchService = SearchService . getInstance ( ) ;
1417
1518class Home extends Component {
@@ -19,6 +22,10 @@ class Home extends Component {
1922 crew : [ ] ,
2023 searchQuery : "" ,
2124 highlighted : [ ] ,
25+ isLoaded : true ,
26+ datesFilter :{
27+ date : { $gt : moment ( ) . subtract ( 1 , "week" ) . toDate ( ) }
28+ }
2229 } ;
2330
2431 search = ( value ) => {
@@ -33,9 +40,21 @@ class Home extends Component {
3340 this . setState ( { searchQuery : value } ) ;
3441 } ;
3542
43+ changeFilter = ( filter ) => {
44+ let filterObject =
45+ { $and : [ {
46+ date : { $gt : new Date ( filter . start ) }
47+ } , {
48+ date : { $lte : new Date ( filter . end ) }
49+ } ]
50+ } ;
51+ this . setState ( { datesFilter : filterObject } ) ;
52+ }
53+
3654 render ( ) {
37- const { vessels, boardings, crew, searchQuery, highlighted } = this . state ;
55+ const { vessels, boardings, crew, searchQuery, highlighted, isLoaded , datesFilter } = this . state ;
3856 const { t } = this . props ;
57+ const user = authService . user ;
3958
4059 return (
4160 < div className = "flex-column full-view align-center home" >
@@ -48,10 +67,18 @@ class Home extends Component {
4867 searchWords = { highlighted }
4968 isAutofill = { true }
5069 />
51- < h1 > { `${ t ( "HOME_PAGE.OVERVIEW" ) } April 01, 2020 - April 25, 2020` } </ h1 >
52- < ComplianceRateSection />
53- < BoardingsSection />
54- < PatrolHoursSection />
70+ < div className = "standard-view page-header" >
71+ < div className = "item-label" > { t ( "HOME_PAGE.DASHBOARD" ) } </ div >
72+ < div className = "flex-row full-view justify-between align-center" >
73+ < div className = "item-name" > { isLoaded && user ? user . agency . name : t ( "LOADING.LOADING" ) } </ div >
74+ < DatesRange onFilterChange = { this . changeFilter } > </ DatesRange >
75+ </ div >
76+ </ div >
77+ { isLoaded && < Fragment >
78+ < ComplianceRateSection filter = { datesFilter } />
79+ < BoardingsSection filter = { datesFilter } />
80+ < PatrolHoursSection filter = { datesFilter } />
81+ </ Fragment > }
5582 </ div >
5683 ) ;
5784 }
0 commit comments