diff --git a/.vite/deps/_metadata.json b/.vite/deps/_metadata.json new file mode 100644 index 0000000..d014430 --- /dev/null +++ b/.vite/deps/_metadata.json @@ -0,0 +1,8 @@ +{ + "hash": "051e2474", + "configHash": "e4c88079", + "lockfileHash": "d1d1ccd5", + "browserHash": "5d55767b", + "optimized": {}, + "chunks": {} +} \ No newline at end of file diff --git a/.vite/deps/package.json b/.vite/deps/package.json new file mode 100644 index 0000000..3dbc1ca --- /dev/null +++ b/.vite/deps/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/apps/web/src/ui/app/AppShell.tsx b/apps/web/src/ui/app/AppShell.tsx index 22e580c..41c8016 100644 --- a/apps/web/src/ui/app/AppShell.tsx +++ b/apps/web/src/ui/app/AppShell.tsx @@ -603,6 +603,7 @@ export function App() { onSelectCompany={selectCompany} onRemoveHolding={removeHolding} pendingTicker={settingActiveTicker ?? removingTicker ?? addingTicker} + profile={profile} onRunResearch={() => runPipeline("research")} runningResearch={runningPipeline === "research"} addToast={addToast} @@ -1157,17 +1158,28 @@ function Home(props: { onSelectCompany: (tickerOrId: string, screen?: Screen) => void; onRemoveHolding: (ticker: string) => void; pendingTicker: string | null; + profile: Partial; onRunResearch: () => void | Promise; runningResearch: boolean; addToast: (t: Omit) => void; }) { const holdings = props.holdings; + const hour = new Date().getHours(); + const timeGreeting = hour < 12 ? "Good morning" : hour < 17 ? "Good afternoon" : "Good evening"; + const initials = props.profile.name + ? props.profile.name + .split(" ") + .map((n) => n[0]) + .join("") + .toUpperCase() + .slice(0, 2) + : null; return (
-

Morning Briefing

-

Good morning, JD

+

{timeGreeting.replace("Good ", "")} Briefing

+

{timeGreeting}{initials ? `, ${initials}` : ""}