fix: subscription service error handling, SubscriptionsPage cleanup
This commit is contained in:
parent
be95910ac2
commit
8c2ecdb313
|
|
@ -319,6 +319,30 @@ function SubscriptionRow({ item, onEdit, onToggle, moveControls, dragProps, busy
|
||||||
<TooltipContent>Paused — not actively tracked</TooltipContent>
|
<TooltipContent>Paused — not actively tracked</TooltipContent>
|
||||||
</Tooltip>
|
</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>
|
</TooltipProvider>
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs font-medium text-muted-foreground">
|
<div className="mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs font-medium text-muted-foreground">
|
||||||
|
|
|
||||||
|
|
@ -509,7 +509,10 @@ function getSubscriptions(db, userId) {
|
||||||
SELECT b.*, b.catalog_id, c.name AS category_name,
|
SELECT b.*, b.catalog_id, c.name AS category_name,
|
||||||
CASE WHEN EXISTS(
|
CASE WHEN EXISTS(
|
||||||
SELECT 1 FROM bill_merchant_rules WHERE bill_id = b.id AND user_id = b.user_id
|
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
|
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
|
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 = ?
|
WHERE b.user_id = ?
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue