diff --git a/cloud/app/src/component/workspace/billing-section.module.css b/cloud/app/src/component/workspace/billing-section.module.css index 58589de7..0bb5709c 100644 --- a/cloud/app/src/component/workspace/billing-section.module.css +++ b/cloud/app/src/component/workspace/billing-section.module.css @@ -39,6 +39,10 @@ min-width: 14.5rem; width: fit-content; + @media (max-width: 30rem) { + width: 100%; + } + [data-slot="credit-card"] { padding: var(--space-3-5) var(--space-4); background-color: var(--color-bg-surface); @@ -50,6 +54,7 @@ [data-slot="card-icon"] { display: flex; align-items: center; + color: var(--color-text-muted); } [data-slot="card-details"] { @@ -78,6 +83,14 @@ gap: var(--space-2); align-items: center; + @media (max-width: 30rem) { + flex-direction: column; + + > button { + width: 100%; + } + } + [data-slot="create-form"] { margin: 0; } diff --git a/cloud/app/src/component/workspace/billing-section.tsx b/cloud/app/src/component/workspace/billing-section.tsx index c16208d3..ec314d9e 100644 --- a/cloud/app/src/component/workspace/billing-section.tsx +++ b/cloud/app/src/component/workspace/billing-section.tsx @@ -38,6 +38,7 @@ const getBillingInfo = query(async (workspaceID: string) => { export function BillingSection() { const params = useParams() + // ORIGINAL CODE - COMMENTED OUT FOR TESTING const balanceInfo = createAsync(() => getBillingInfo(params.id)) const createCheckoutUrlAction = useAction(createCheckoutUrl) const createCheckoutUrlSubmission = useSubmission(createCheckoutUrl) @@ -46,6 +47,44 @@ export function BillingSection() { const disableReloadSubmission = useSubmission(disableReload) const reloadSubmission = useSubmission(reload) + // DUMMY DATA FOR TESTING - UNCOMMENT ONE OF THE SCENARIOS BELOW + + // Scenario 1: User has not added billing details and has no balance + // const balanceInfo = () => ({ + // balance: 0, + // paymentMethodLast4: null as string | null, + // reload: false, + // reloadError: null as string | null, + // timeReloadError: null as Date | null, + // }) + + // Scenario 2: User has not added billing details but has a balance + // const balanceInfo = () => ({ + // balance: 1500000000, // $15.00 + // paymentMethodLast4: null as string | null, + // reload: false, + // reloadError: null as string | null, + // timeReloadError: null as Date | null + // }) + + // Scenario 3: User has added billing details (reload enabled) + // const balanceInfo = () => ({ + // balance: 750000000, // $7.50 + // paymentMethodLast4: "4242", + // reload: true, + // reloadError: null as string | null, + // timeReloadError: null as Date | null + // }) + + // Scenario 4: User has billing details but reload failed + // const balanceInfo = () => ({ + // balance: 250000000, // $2.50 + // paymentMethodLast4: "4242", + // reload: true, + // reloadError: "Your card was declined." as string, + // timeReloadError: new Date(Date.now() - 3600000) as Date // 1 hour ago + // }) + const balanceAmount = createMemo(() => { return ((balanceInfo()?.balance ?? 0) / 100000000).toFixed(2) }) diff --git a/cloud/app/src/component/workspace/monthly-limit-section.module.css b/cloud/app/src/component/workspace/monthly-limit-section.module.css index ebfd8e33..02de058e 100644 --- a/cloud/app/src/component/workspace/monthly-limit-section.module.css +++ b/cloud/app/src/component/workspace/monthly-limit-section.module.css @@ -15,6 +15,10 @@ min-width: 15rem; width: fit-content; + @media (max-width: 30rem) { + width: 100%; + } + [data-slot="amount"] { padding: var(--space-3-5) var(--space-4); background-color: var(--color-bg-surface); diff --git a/cloud/app/src/routes/workspace/[id].css b/cloud/app/src/routes/workspace/[id].css index e1047e15..8b318a19 100644 --- a/cloud/app/src/routes/workspace/[id].css +++ b/cloud/app/src/routes/workspace/[id].css @@ -26,7 +26,11 @@ section { display: flex; flex-direction: column; - gap: var(--space-6); + gap: var(--space-8); + + @media (max-width: 30rem) { + gap: var(--space-6); + } /* Section titles */ [data-slot="section-title"] { @@ -47,6 +51,20 @@ font-size: var(--font-size-md); } } + + p { + line-height: 1.5; + font-size: var(--font-size-md); + color: var(--color-text-muted); + + a { + color: var(--color-text-muted); + } + + @media (max-width: 30rem) { + font-size: var(--font-size-sm); + } + } } } section:not(:last-child) { diff --git a/cloud/app/src/routes/workspace/[id].tsx b/cloud/app/src/routes/workspace/[id].tsx index ed1434a6..cbd729f7 100644 --- a/cloud/app/src/routes/workspace/[id].tsx +++ b/cloud/app/src/routes/workspace/[id].tsx @@ -38,7 +38,8 @@ export default function () { - + + {/**/}