fix: subscription service error handling, SubscriptionsPage cleanup

This commit is contained in:
null 2026-06-07 00:11:00 -05:00
parent be95910ac2
commit 8c2ecdb313
2 changed files with 28 additions and 1 deletions

View File

@ -319,6 +319,30 @@ function SubscriptionRow({ item, onEdit, onToggle, moveControls, dragProps, busy
<TooltipContent>Paused not actively tracked</TooltipContent>
</Tooltip>
)}
{!!item.autopay_enabled && (
<Tooltip>
<TooltipTrigger asChild>
<span className="shrink-0 rounded border border-sky-500/25 bg-sky-500/10 px-1.5 py-0.5 text-[11px] font-semibold text-sky-600 dark:text-sky-300 cursor-default">AP</span>
</TooltipTrigger>
<TooltipContent>Autopay enabled</TooltipContent>
</Tooltip>
)}
{!!item.has_2fa && (
<Tooltip>
<TooltipTrigger asChild>
<span className="shrink-0 rounded bg-violet-500/20 px-1.5 py-0.5 text-[11px] font-semibold text-violet-300 cursor-default">2FA</span>
</TooltipTrigger>
<TooltipContent>Two-factor authentication configured</TooltipContent>
</Tooltip>
)}
{(!!item.has_merchant_rule || !!item.has_linked_transactions) && (
<Tooltip>
<TooltipTrigger asChild>
<span className="shrink-0 rounded border border-emerald-500/25 bg-emerald-500/10 px-1.5 py-0.5 text-[11px] font-semibold text-emerald-600 dark:text-emerald-400 cursor-default">L</span>
</TooltipTrigger>
<TooltipContent>Linked to bank transactions</TooltipContent>
</Tooltip>
)}
</TooltipProvider>
</div>
<div className="mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs font-medium text-muted-foreground">

View File

@ -509,7 +509,10 @@ function getSubscriptions(db, userId) {
SELECT b.*, b.catalog_id, c.name AS category_name,
CASE WHEN EXISTS(
SELECT 1 FROM bill_merchant_rules WHERE bill_id = b.id AND user_id = b.user_id
) THEN 1 ELSE 0 END AS has_merchant_rule
) THEN 1 ELSE 0 END AS has_merchant_rule,
CASE WHEN EXISTS(
SELECT 1 FROM transactions WHERE matched_bill_id = b.id AND match_status = 'matched'
) THEN 1 ELSE 0 END AS has_linked_transactions
FROM bills b
LEFT JOIN categories c ON c.id = b.category_id AND c.user_id = b.user_id AND c.deleted_at IS NULL
WHERE b.user_id = ?