diff --git a/app/page.tsx b/app/page.tsx index 64bca0d..00bede8 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -209,12 +209,12 @@ export default function Home() { - + Contact - + { @@ -232,12 +232,12 @@ export default function Home() { Pricing - + Upload File -
+
My Subscriptions @@ -357,13 +357,14 @@ export default function Home() { )} {/* Main Content */} -
+
@@ -425,7 +426,7 @@ export default function Home() { userSubscription && userSubscription.status === "ACTIVE" && (
-
+

@@ -448,20 +449,23 @@ export default function Home() { )} {/* Pricing Section */} -

+
-

+

Available Plans

-
+
{/* Basic Plan */} -
+
Basic
-
+
€9.99{" "} - + /month
@@ -471,7 +475,7 @@ export default function Home() { loading || (userSubscription && userSubscription.status === "ACTIVE") } - className="w-full bg-orange-500 text-white py-3 px-6 rounded-lg font-medium mb-6 hover:bg-orange-600 transition-colors hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed" + className="w-full bg-orange-500 text-white py-3 px-6 rounded-lg font-medium mb-4 sm:mb-6 hover:bg-orange-600 transition-colors hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed text-sm sm:text-base" > {loading ? "Processing..." @@ -479,7 +483,7 @@ export default function Home() { ? "Current Plan" : "Choose Basic"} -
    +
    • 250 GB storage @@ -504,13 +508,13 @@ export default function Home() {
{/* Standard Plan */} -
+
Standard
-
+
€19.99{" "} - + /month
@@ -520,7 +524,7 @@ export default function Home() { loading || (userSubscription && userSubscription.status === "ACTIVE") } - className="w-full bg-orange-500 text-white py-3 px-6 rounded-lg font-medium mb-6 hover:bg-orange-600 transition-colors hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed" + className="w-full bg-orange-500 text-white py-3 px-6 rounded-lg font-medium mb-4 sm:mb-6 hover:bg-orange-600 transition-colors hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed text-sm sm:text-base" > {loading ? "Processing..." @@ -528,7 +532,7 @@ export default function Home() { ? "Current Plan" : "Choose Standard"} -
    +
    • 500 GB storage @@ -561,13 +565,13 @@ export default function Home() {
{/* Premium Plan */} -
+
Premium
-
+
€39.99{" "} - + /month
@@ -577,7 +581,7 @@ export default function Home() { loading || (userSubscription && userSubscription.status === "ACTIVE") } - className="w-full bg-orange-500 text-white py-3 px-6 rounded-lg font-medium mb-6 hover:bg-orange-600 transition-colors hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed" + className="w-full bg-orange-500 text-white py-3 px-6 rounded-lg font-medium mb-4 sm:mb-6 hover:bg-orange-600 transition-colors hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed text-sm sm:text-base" > {loading ? "Processing..." @@ -585,7 +589,7 @@ export default function Home() { ? "Current Plan" : "Choose Premium"} -
    +
    • 1 TB storage diff --git a/app/renders/page.tsx b/app/renders/page.tsx index 60503ed..2d6f3e6 100644 --- a/app/renders/page.tsx +++ b/app/renders/page.tsx @@ -52,7 +52,7 @@ export default function RendersPage() { const res = await fetch( `/api/renders/in?page=${pageNum}&pageSize=${pageSize}`, { - headers: { "user-id": user?.id }, + headers: { "user-id": user?.id || "" }, } ); const data = await res.json(); @@ -102,12 +102,14 @@ export default function RendersPage() { const canNext = page < totalPages; return ( -
      -
      -

      My Renders

      +
      +
      +

      + My Renders +

      -
      -

      +
      +

      Uploaded Files

      {loading ? ( @@ -116,62 +118,104 @@ export default function RendersPage() {
      No files uploaded yet.
      ) : ( <> - - - - - - - - - - - - {files.map((f) => ( - - - - - + + + + {files.map((f) => ( + + + + + + + + ))} + +
      FilenameStatusUploaded AtDownloadActions
      {f.original_name} - - {f.upload_status} - - - {new Date(f.created_at).toLocaleString()} - - +
      +
      + + + + + + + - - ))} - -
      + Filename + + Status + + Uploaded At + Download - - - - -
      + +
      + Actions +
      + {f.original_name} + + {/* Mobile: Green checkmark */} + {f.upload_status === "COMPLETE" && ( + + ✓ + + )} + {f.upload_status !== "COMPLETE" && ( + + ○ + + )} + {/* Desktop: Text badge */} + + {f.upload_status} + + + {new Date(f.created_at).toLocaleString()} + + + Download + + + {/* Mobile: Red X icon - circular */} + + {/* Desktop: Text button */} + +
      +

      +
      @@ -225,10 +269,10 @@ export default function RendersPage() {
      -

      +

      Rendered Files (outputs)

      -
      +
      Placeholder: Your rendered products will appear here in the future!
      diff --git a/app/subscriptions/page.tsx b/app/subscriptions/page.tsx index ded4b6c..b587b25 100644 --- a/app/subscriptions/page.tsx +++ b/app/subscriptions/page.tsx @@ -141,21 +141,21 @@ export default function SubscriptionsPage() { }; return ( -
      +
      {/* Header */} -
      -

      +
      +

      My Subscriptions

      -

      +

      Manage your subscription and billing information

      {!subscription ? ( // No subscription -
      +
      📦 @@ -177,15 +177,17 @@ export default function SubscriptionsPage() {
      ) : ( // Active subscription -
      +
      {/* Subscription Card */} -
      -
      +
      +
      -

      +

      {getTierDisplayName(subscription.tier)} Plan

      -

      Current subscription details

      +

      + Current subscription details +

      {/* Subscription Details */} -
      +

      Plan

      @@ -223,7 +225,12 @@ export default function SubscriptionsPage() {

      Current Usage

      - {parseFloat(subscription.current_usage_gb).toFixed(2)} GB + {typeof subscription.current_usage_gb === "number" + ? subscription.current_usage_gb.toFixed(2) + : parseFloat( + String(subscription.current_usage_gb) + ).toFixed(2)}{" "} + GB

      @@ -258,17 +265,17 @@ export default function SubscriptionsPage() {
      {/* Upgrade/Downgrade Options */} -
      -

      +
      +

      Change Plan

      -

      +

      Looking to upgrade or downgrade? Cancel your current subscription and choose a new plan.