Seed: project-management template (23 files)
This commit is contained in:
@@ -75,7 +75,7 @@ export default function SettingsPage() {
|
||||
try {
|
||||
const res: any = await startCheckout({ plan: plan.name, amount: plan.amount });
|
||||
if (res?.url) { window.location.href = res.url; return; }
|
||||
toast(`Upgraded to \${plan.name}`);
|
||||
toast(`Upgraded to ${plan.name}`);
|
||||
} catch {
|
||||
toast("Checkout could not be started. Please try again.");
|
||||
}
|
||||
@@ -99,7 +99,7 @@ export default function SettingsPage() {
|
||||
<button
|
||||
key={tab.id}
|
||||
onClick={() => setActiveTab(tab.id)}
|
||||
className={`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-[1px] \${
|
||||
className={`flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors border-b-2 -mb-[1px] ${
|
||||
activeTab === tab.id
|
||||
? "border-violet-600 text-violet-600"
|
||||
: "border-transparent text-slate-500 hover:text-slate-700"
|
||||
@@ -165,7 +165,7 @@ export default function SettingsPage() {
|
||||
<Card key={member.email} className="border-0 shadow-sm">
|
||||
<CardContent className="p-4 flex items-center gap-4">
|
||||
<Avatar className="h-10 w-10">
|
||||
<AvatarFallback className={`text-sm text-white \${member.color}`}>{member.initials}</AvatarFallback>
|
||||
<AvatarFallback className={`text-sm text-white ${member.color}`}>{member.initials}</AvatarFallback>
|
||||
</Avatar>
|
||||
<div className="flex-1 min-w-0">
|
||||
<div className="flex items-center gap-2">
|
||||
@@ -198,7 +198,7 @@ export default function SettingsPage() {
|
||||
<Card key={integration.name} className="border-0 shadow-sm hover:shadow-md transition-all duration-200">
|
||||
<CardContent className="p-5">
|
||||
<div className="flex items-start justify-between mb-3">
|
||||
<div className={`h-10 w-10 rounded-lg \${integration.color} flex items-center justify-center`}>
|
||||
<div className={`h-10 w-10 rounded-lg ${integration.color} flex items-center justify-center`}>
|
||||
<span className="text-sm font-bold text-white">{integration.icon}</span>
|
||||
</div>
|
||||
{integration.connected && (
|
||||
@@ -210,7 +210,7 @@ export default function SettingsPage() {
|
||||
<Button
|
||||
variant={integration.connected ? "outline" : "default"}
|
||||
size="sm"
|
||||
className={`w-full \${!integration.connected ? "bg-violet-600 hover:bg-violet-700 text-white" : ""}`}
|
||||
className={`w-full ${!integration.connected ? "bg-violet-600 hover:bg-violet-700 text-white" : ""}`}
|
||||
>
|
||||
{integration.connected ? (
|
||||
<>
|
||||
@@ -232,7 +232,7 @@ export default function SettingsPage() {
|
||||
{activeTab === "billing" && (
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-4 animate-fade-up">
|
||||
{plans.map((plan) => (
|
||||
<Card key={plan.name} className={`border shadow-sm \${plan.popular ? "border-violet-500 ring-1 ring-violet-500" : "border-slate-100"}`}>
|
||||
<Card key={plan.name} className={`border shadow-sm ${plan.popular ? "border-violet-500 ring-1 ring-violet-500" : "border-slate-100"}`}>
|
||||
<CardHeader>
|
||||
<div className="flex items-center justify-between">
|
||||
<CardTitle className="text-lg">{plan.name}</CardTitle>
|
||||
@@ -256,9 +256,9 @@ export default function SettingsPage() {
|
||||
onClick={() => handleUpgrade(plan)}
|
||||
disabled={checkoutBusy || plan.current}
|
||||
variant={plan.popular ? "default" : "outline"}
|
||||
className={`w-full min-h-[48px] \${plan.popular ? "bg-violet-600 hover:bg-violet-700 text-white" : ""}`}
|
||||
className={`w-full min-h-[48px] ${plan.popular ? "bg-violet-600 hover:bg-violet-700 text-white" : ""}`}
|
||||
>
|
||||
{plan.current ? "Current Plan" : plan.name === "Enterprise" ? "Contact Sales" : `Upgrade to \${plan.name}`}
|
||||
{plan.current ? "Current Plan" : plan.name === "Enterprise" ? "Contact Sales" : `Upgrade to ${plan.name}`}
|
||||
</Button>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
Reference in New Issue
Block a user