@@ -182,7 +182,7 @@ export class SummaryViewProvider implements vscode.WebviewViewProvider {
182182 th {
183183 font-weight: bold;
184184 background-color: var(--header-background);
185- color: var(--header-foreground);
185+ color: var (--header-foreground);
186186 }
187187 .container {
188188 padding: 0px;
@@ -618,8 +618,8 @@ export class SummaryViewProvider implements vscode.WebviewViewProvider {
618618 data: {
619619 labels: projectData.map(([project]) => project),
620620 datasets: [{
621- label: 'Coding Time (hours) ',
622- data: projectData.map(([_, time]) => time / 3600 ),
621+ label: 'Coding Time',
622+ data: projectData.map(([_, time]) => time/60 ),
623623 backgroundColor: chartColors.chartBlues,
624624 borderColor: chartColors.grid,
625625 borderWidth: 1
@@ -634,8 +634,9 @@ export class SummaryViewProvider implements vscode.WebviewViewProvider {
634634 ...commonChartConfig.plugins.tooltip,
635635 callbacks: {
636636 label: function(context) {
637- const hours = context.raw;
638- return \`\${Math.floor(hours)}h \${Math.round((hours % 1) * 60)}m\`;
637+ const hours = Math.floor(context.raw);
638+ const mins = Math.round((context.raw % 1) * 60);
639+ return \`\${context.label}: \${hours} hour\${hours !== 1 ? 's' : ''} and \${mins} minute\${mins !== 1 ? 's' : ''}\`;
639640 }
640641 }
641642 }
@@ -657,8 +658,8 @@ export class SummaryViewProvider implements vscode.WebviewViewProvider {
657658 return d.toLocaleDateString('en-US', { weekday: 'short', month: 'short', day: 'numeric' });
658659 }),
659660 datasets: [{
660- label: 'Coding Time (hours) ',
661- data: dailyData.map(([_, time]) => time / 3600 ),
661+ label: 'Coding Time',
662+ data: dailyData.map(([_, time]) => time / 60 ),
662663 fill: true,
663664 backgroundColor: \`\${chartColors.accent}33\`,
664665 borderColor: chartColors.accent,
@@ -683,13 +684,19 @@ export class SummaryViewProvider implements vscode.WebviewViewProvider {
683684 return \`\${value}h\`;
684685 }
685686 }
686- },
687- x: {
688- ...commonChartConfig.scales.x,
689- ticks: {
690- ...commonChartConfig.scales.x.ticks,
691- maxRotation: 45,
692- minRotation: 45
687+ }
688+ },
689+ plugins: {
690+ ...commonChartConfig.plugins,
691+ tooltip: {
692+ ...commonChartConfig.plugins.tooltip,
693+ callbacks: {
694+ label: function(context) {
695+ const hours = Math.floor(context.raw);
696+ const mins = Math.round((context.raw % 1) * 60);
697+ const date = new Date(context.label);
698+ return \`\${date.toLocaleDateString('en-US', { weekday: 'long' })}: \${hours} hour\${hours !== 1 ? 's' : ''} and \${mins} minute\${mins !== 1 ? 's' : ''}\`;
699+ }
693700 }
694701 }
695702 }
@@ -733,7 +740,11 @@ export class SummaryViewProvider implements vscode.WebviewViewProvider {
733740 data: {
734741 labels: searchChartData.map(([project]) => project),
735742 datasets: [{
736- data: searchChartData.map(([_, time]) => time / 60),
743+ data: searchChartData.map(([_, minutes]) => ({
744+ value: minutes,
745+ hours: Math.floor(minutes / 60),
746+ mins: Math.round(minutes % 60)
747+ })),
737748 backgroundColor: [
738749 'rgba(255, 99, 132, 0.7)', // Red
739750 'rgba(54, 162, 235, 0.7)', // Blue
@@ -775,10 +786,8 @@ export class SummaryViewProvider implements vscode.WebviewViewProvider {
775786 padding: 12,
776787 callbacks: {
777788 label: function(context) {
778- const minutes = context.raw;
779- const hours = Math.floor(minutes / 60);
780- const mins = Math.round(minutes % 60);
781- return \`\${context.label}: \${hours}h \${mins}m\`;
789+ const data = context.raw;
790+ return \`\${context.label}: \${data.hours} hour\${data.hours !== 1 ? 's' : ''} and \${data.mins} minute\${data.mins !== 1 ? 's' : ''}\`;
782791 }
783792 }
784793 }
0 commit comments