feat(FN-217): lazy-load canvas-confetti via dynamic import to avoid bloating subscription bundle (+2 more)
Some checks failed
Sync dev → Gitea / Mirror dev to Gitea (push) Has been cancelled

Commits merged:
- fix(FN-217): fix import sort order (lint)
- fix(FN-217): convert @sase/shared to emit ESM for Vite/Rollup build compatibility
- fix(FN-217): lazy-load canvas-confetti via dynamic import to avoid bloating subscription bundle

Files changed:
apps/web/src/routes/dashboard/subscription/index.tsx | 13 +++++++------
 apps/web/src/routes/pricing.tsx                      |  2 +-
 packages/shared/package.json                         |  5 +++--
 packages/shared/tsconfig.json                        |  4 ++--
 4 files changed, 13 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-217
This commit is contained in:
Fusion
2026-05-12 22:57:19 +00:00
parent 3dfd0de0c6
commit 03e401b133
4 changed files with 13 additions and 11 deletions

View File

@@ -6,7 +6,7 @@ import { BRAND_SKELETON_KEYS } from "@/lib/keys";
import { capture, setPeopleProperties } from "@/lib/posthog";
import { toast } from "@/lib/toast";
import { getUserSettings } from "@/lib/user-settings";
import { formatTRY, FULL_PLAN_BRAND_LIMIT } from "@sase/shared";
import { FULL_PLAN_BRAND_LIMIT, formatTRY } from "@sase/shared";
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@sase/ui";
import { Badge } from "@sase/ui";
import { Button } from "@sase/ui";
@@ -22,7 +22,6 @@ import {
} from "@sase/ui";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { createFileRoute, useNavigate } from "@tanstack/react-router";
import confetti from "canvas-confetti";
import {
ArrowRight,
Check,
@@ -297,10 +296,12 @@ export function SubscriptionPage() {
setOnboardingPhase("completed");
queryClient.invalidateQueries({ queryKey: ["subscription"] });
confetti({
particleCount: 150,
spread: 80,
origin: { y: 0.6 },
import("canvas-confetti").then((mod) => {
mod.default({
particleCount: 150,
spread: 80,
origin: { y: 0.6 },
});
});
}, [onboardingPhase, animationEnded, trialMutation.isSuccess, queryClient.invalidateQueries]);

View File

@@ -1,6 +1,6 @@
import { usePageMeta } from "@/hooks/use-page-meta";
import { useTranslation } from "@/lib/i18n";
import { formatTRY, FULL_PLAN_BRAND_LIMIT } from "@sase/shared";
import { FULL_PLAN_BRAND_LIMIT, formatTRY } from "@sase/shared";
import { Button } from "@sase/ui";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@sase/ui";
import { Badge } from "@sase/ui";