diff --git a/apps/web/app/(app)/[emailAccountId]/assistant/Rules.tsx b/apps/web/app/(app)/[emailAccountId]/assistant/Rules.tsx index e5e02eefff..2f6e373d5d 100644 --- a/apps/web/app/(app)/[emailAccountId]/assistant/Rules.tsx +++ b/apps/web/app/(app)/[emailAccountId]/assistant/Rules.tsx @@ -17,12 +17,7 @@ import { import { useMemo } from "react"; import { LoadingContent } from "@/components/LoadingContent"; import { Button } from "@/components/ui/button"; -import { - Card, - CardContent, - CardDescription, - CardHeader, -} from "@/components/ui/card"; +import { Card, CardDescription, CardHeader } from "@/components/ui/card"; import { DropdownMenu, DropdownMenuContent, @@ -494,7 +489,7 @@ export function Rules({ ) : ( - + )} @@ -551,21 +546,11 @@ export function ActionBadges({ ); } -function NoRules({ onCreateRule }: { onCreateRule: () => void }) { +function NoRules() { return ( - <> - - - You don't have any rules yet. -
- You can teach your AI assistant how to handle your emails by chatting - with it or create rules manually. -
-
- - - - + + You don't have any rules yet. + ); } diff --git a/apps/web/app/(app)/[emailAccountId]/setup/SetupContent.tsx b/apps/web/app/(app)/[emailAccountId]/setup/SetupContent.tsx index 8ce6998ae5..65e468daaa 100644 --- a/apps/web/app/(app)/[emailAccountId]/setup/SetupContent.tsx +++ b/apps/web/app/(app)/[emailAccountId]/setup/SetupContent.tsx @@ -10,6 +10,7 @@ import { type LucideIcon, ChromeIcon, } from "lucide-react"; +import { useLocalStorage } from "usehooks-ts"; import { PageHeading, SectionDescription } from "@/components/Typography"; import { Card } from "@/components/ui/card"; import { prefixPath } from "@/utils/path"; @@ -112,6 +113,8 @@ const StepItem = ({ completed, actionText, linkProps, + onMarkDone, + showMarkDone, }: { href: string; icon: React.ReactNode; @@ -122,12 +125,18 @@ const StepItem = ({ completed: boolean; actionText: string; linkProps?: { target?: string; rel?: string }; + onMarkDone?: () => void; + showMarkDone?: boolean; }) => { + const handleMarkDone = (e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + onMarkDone?.(); + }; + return ( -
@@ -144,7 +153,7 @@ const StepItem = ({
-
+
{completed ? (
) : ( -
- {actionText} -
+ <> + {showMarkDone && ( + + )} + + + {actionText} + + )}
- + ); }; @@ -182,6 +207,15 @@ function Checklist({ isBulkUnsubscribeConfigured: boolean; isAiAssistantConfigured: boolean; }) { + const [isExtensionInstalled, setIsExtensionInstalled] = useLocalStorage( + "inbox-zero-extension-installed", + false, + ); + + const handleMarkExtensionDone = () => { + setIsExtensionInstalled(true); + }; + return (
@@ -217,8 +251,8 @@ function Checklist({ icon={} iconBg="bg-purple-100 dark:bg-purple-900/50" iconColor="text-purple-500 dark:text-purple-400" - title="Unsubscribe from emails you don't read" - timeEstimate="5 minutes" + title="Unsubscribe from a newsletter you don't read" + timeEstimate="2 minutes" completed={isBulkUnsubscribeConfigured} actionText="View" /> @@ -243,8 +277,10 @@ function Checklist({ iconColor="text-orange-500 dark:text-orange-400" title="Install the Inbox Zero Tabs extension" timeEstimate="1 minute" - completed={false} + completed={isExtensionInstalled} actionText="Install" + onMarkDone={handleMarkExtensionDone} + showMarkDone={true} /> )} diff --git a/version.txt b/version.txt index 72bbbbb225..3e1f981c4d 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v2.9.19 +v2.9.20