From 2b48d32612e6ed4c33c199639939f86e24ebe2ed Mon Sep 17 00:00:00 2001 From: Timeo Williams Date: Wed, 25 Sep 2024 10:52:43 -0400 Subject: [PATCH] feat: added context for login vals to dynamically update NavBar options. --- electron.vite.config.ts | 6 +-- src/main/emailService.ts | 34 ++++++++++--- src/main/index.ts | 76 +++++++++++++++++----------- src/main/productivityUtils.ts | 33 ++++++++++-- src/main/worker.ts | 2 +- src/renderer/src/App.tsx | 25 +++++---- src/renderer/src/Login.tsx | 5 +- src/renderer/src/Signup.tsx | 6 +-- src/renderer/src/lib/AuthContext.tsx | 26 ++++++++++ src/renderer/src/lib/utils.ts | 4 +- tsconfig.node.json | 3 +- tsconfig.web.json | 4 +- 12 files changed, 163 insertions(+), 61 deletions(-) create mode 100644 src/renderer/src/lib/AuthContext.tsx diff --git a/electron.vite.config.ts b/electron.vite.config.ts index c777839..4b1d056 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -7,7 +7,7 @@ dotenv.config() export default defineConfig({ main: { - plugins: [externalizeDepsPlugin(), bytecodePlugin()], + plugins: [externalizeDepsPlugin()], build: { outDir: 'out/main', rollupOptions: { @@ -30,13 +30,13 @@ export default defineConfig({ } }, preload: { - plugins: [externalizeDepsPlugin(), bytecodePlugin()], + plugins: [externalizeDepsPlugin()], build: { outDir: 'out/preload', rollupOptions: { external: ['electron'], output: { - format: 'cjs' + format: 'es' } } } diff --git a/src/main/emailService.ts b/src/main/emailService.ts index 44b555f..c989f46 100644 --- a/src/main/emailService.ts +++ b/src/main/emailService.ts @@ -9,7 +9,7 @@ dotenv.config() interface TopSite { url: string - timeSpent: number + timeSpent: string } export class EmailService { @@ -31,6 +31,11 @@ export class EmailService { schedule.scheduleJob('59 23 * * *', () => { this.sendDailySummary() }) + + if (!app.isPackaged) { + // For testing, send the email immediately + this.sendDailySummary() + } } private async sendDailySummary(): Promise { @@ -92,6 +97,15 @@ export class EmailService { } } + private formatTime(timeSpentInMinutes: number): string { + if (timeSpentInMinutes >= 60) { + const hours = Math.floor(timeSpentInMinutes / 60) + const minutes = timeSpentInMinutes % 60 + return `${hours}h ${minutes}m` + } + return `${timeSpentInMinutes} minutes` + } + public composeEmailBody(deepWorkHours: number, topSites: TopSite[]): string { return `
@@ -99,13 +113,13 @@ export class EmailService {

deepFocus

Total Deep Work Hours: ${deepWorkHours}

-

Top 5 Sites Visited

+

Top 3 Sites Visited