File tree Expand file tree Collapse file tree 5 files changed +94
-1
lines changed
Expand file tree Collapse file tree 5 files changed +94
-1
lines changed Original file line number Diff line number Diff line change 4646 >
4747 </div >
4848 <div class =" mt-20 ml-10 mr-10 by-days-chart" >
49- <ByDaysChart :data =" tabInfoByDays!" />
49+ <by-days-chart :data =" tabInfoByDays!" />
50+ </div >
51+ <div >
52+ <website-stats-details :details =" tabInfoByDays!" />
5053 </div >
5154 </div >
5255 </div >
@@ -64,6 +67,7 @@ import { useI18n } from 'vue-i18n';
6467import Favicon from ' ./Favicon.vue' ;
6568import NoDataByDays from ' ./NoDataByDays.vue' ;
6669import ByDaysChart from ' ../components/ByDaysChart.vue' ;
70+ import WebsiteStatsDetails from ' ../components/WebsiteStatsDetails.vue' ;
6771import { openPage } from ' ../utils/open-page' ;
6872import { computed , onMounted , ref } from ' vue' ;
6973import { SettingsTab } from ' ../utils/enums' ;
Original file line number Diff line number Diff line change 1+ <template >
2+ <div class =" container" >
3+ <div class =" block" >
4+ <p class =" title" >Total time</p >
5+ <p class =" value" >
6+ {{ convertSummaryTimeToString(details.summaryTime) }}
7+ </p >
8+ </div >
9+ <div class =" block" >
10+ <p class =" title" >Total sessions</p >
11+ <p class =" value" >
12+ {{ details.sessions }}
13+ </p >
14+ </div >
15+ <div class =" block" >
16+ <p class =" title" >Average daily time</p >
17+ <p class =" value" >
18+ {{ convertSummaryTimeToString(details.averageTime) }}
19+ </p >
20+ </div >
21+ </div >
22+ </template >
23+
24+ <script lang="ts">
25+ export default {
26+ name: ' WebsiteStatsDetails' ,
27+ };
28+ </script >
29+
30+ <script lang="ts" setup>
31+ import { useI18n } from ' vue-i18n' ;
32+ import { TabListByDays } from ' ../dto/tabListSummary' ;
33+ import { convertSummaryTimeToString } from ' ../utils/converter' ;
34+
35+ defineProps <{
36+ details: TabListByDays ;
37+ }>();
38+
39+ const { t } = useI18n ();
40+ </script >
41+
42+ <style scoped>
43+ .title {
44+ font-weight : 600 ;
45+ font-size : 16px ;
46+ }
47+ .container {
48+ display : flex ;
49+ width : auto ;
50+ }
51+ .block {
52+ padding : 10px ;
53+ background-color : rgb (237 237 237 );
54+ border-radius : 10px ;
55+ margin-right : 30px ;
56+ box-shadow : 12px 12px 2px 1px rgb (185 255 171 );
57+ }
58+ .block p .title {
59+ font-size : 15px ;
60+ color : grey ;
61+ }
62+ .block p .value {
63+ margin : 5px ;
64+ font-size : 20px ;
65+ font-weight : 600 ;
66+ }
67+ </style >
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ export async function useTabListByDays(
2626 days : [ ] ,
2727 averageTime : 0 ,
2828 summaryTime : 0 ,
29+ sessions : 0 ,
2930 } ;
3031
3132 unSortedTabsByDays . forEach ( tab => {
@@ -40,6 +41,7 @@ export async function useTabListByDays(
4041 day : day . date ,
4142 tabs : [ ] ,
4243 time : day . summary ,
44+ sessions : day . counter ,
4345 } ;
4446 dayTab . tabs . push ( {
4547 favicon : tab . favicon ,
@@ -50,6 +52,7 @@ export async function useTabListByDays(
5052 daysTabs . push ( dayTab ) ;
5153 } else {
5254 dayTab . time += day . summary ;
55+ dayTab . sessions += day . counter ;
5356 dayTab . tabs . push ( {
5457 favicon : tab . favicon ,
5558 url : tab . url ,
@@ -77,11 +80,18 @@ export async function useTabListByDays(
7780 return a + b ;
7881 } ) ;
7982
83+ const totalSessions = daysTabs
84+ . map ( x => x . sessions )
85+ . reduce ( function ( a , b ) {
86+ return a + b ;
87+ } ) ;
88+
8089 const averageTime = Math . round ( summaryTime / daysTabs . length ) ;
8190
8291 return {
8392 days : daysTabs ,
8493 summaryTime : summaryTime ,
8594 averageTime : averageTime ,
95+ sessions : totalSessions ,
8696 } ;
8797}
Original file line number Diff line number Diff line change @@ -25,6 +25,7 @@ export async function useTabStatsByDays(
2525 days : [ ] ,
2626 averageTime : 0 ,
2727 summaryTime : 0 ,
28+ sessions : 0 ,
2829 } ;
2930
3031 unSortedTabsByDays . forEach ( tabDay => {
@@ -38,6 +39,7 @@ export async function useTabStatsByDays(
3839 day : tabDay . date ,
3940 tabs : [ ] ,
4041 time : tabDay . summary ,
42+ sessions : tabDay . counter ,
4143 } ;
4244 dayTab . tabs . push ( {
4345 favicon : tab . favicon ,
@@ -48,6 +50,7 @@ export async function useTabStatsByDays(
4850 daysTabs . push ( dayTab ) ;
4951 } else {
5052 dayTab . time += tabDay . summary ;
53+ dayTab . sessions += tabDay . counter ;
5154 dayTab . tabs . push ( {
5255 favicon : tab . favicon ,
5356 url : tab . url ,
@@ -74,11 +77,18 @@ export async function useTabStatsByDays(
7477 return a + b ;
7578 } ) ;
7679
80+ const totalSessions = daysTabs
81+ . map ( x => x . sessions )
82+ . reduce ( function ( a , b ) {
83+ return a + b ;
84+ } ) ;
85+
7786 const averageTime = Math . round ( summaryTime / daysTabs . length ) ;
7887
7988 return {
8089 days : daysTabs ,
8190 summaryTime : summaryTime ,
8291 averageTime : averageTime ,
92+ sessions : totalSessions ,
8393 } ;
8494}
Original file line number Diff line number Diff line change @@ -33,10 +33,12 @@ export interface TabListByDays {
3333 days : DayTabs [ ] ;
3434 averageTime : number ;
3535 summaryTime : number ;
36+ sessions : number ;
3637}
3738
3839export interface DayTabs {
3940 day : string ;
4041 tabs : CurrentTabItem [ ] ;
4142 time : number ;
43+ sessions : number ;
4244}
You can’t perform that action at this time.
0 commit comments