mirror of
https://github.com/supabase/supabase.git
synced 2026-10-11 12:25:05 +03:00
## Context Main fix was to address the size of the `OrganizationCard` on the redeem code page - was taking up the height of the flex div when the number of cards is <= 3 (Main fix is `max-h-min` in `OrganizationCard`) ### Before <img width="1270" height="411" alt="image" src="https://github.com/user-attachments/assets/73228b62-f9db-43c8-813b-cb04c9f6cb2b" /> ### After <img width="1255" height="420" alt="image" src="https://github.com/user-attachments/assets/a1d82753-daba-4c3d-a64d-3bb913ded161" /> ## Other changes - Small improvement to perceived loading speed by only rendering the cards as loaders, text content on the left should render immediately on page load - Loading state to consider if the feature flag has been loaded as well to prevent flicker of UI - Hide the "Go to org" button when redeemed on the org page already <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved loading/gating so the redemption UI waits for feature flags and profile data before showing content. * Disabled submit when the redemption form is invalid to prevent empty submissions; submit button respects form validity, permissions, and loading state. * **UI** * Conditionally shows upgrade and "Go to organization" options based on organization plan and current path. * Adjusted card layout to better constrain content height. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Kevin Grüneberg <k.grueneberg1994@gmail.com>
Writing pages
Rough guidelines
- Try to break down your pages into smaller building blocks - components which are tightly coupled to a page can be placed within the folder
components/interfaces/xxx/...(Refer to the README.md under the components folder) - Keep to using
useStatehooks for any UI related logic, do not create MobX local stores to handle UI logic.
Template for building pages
import { NextPage } from 'next'
import { withAuth } from 'hooks/misc/withAuth'
// Import the corresponding layout based on the page
import { Layout } from 'components/layouts'
// Import the main building blocks of the page
import { ... } from 'components/interfaces/xxx'
// Import reusable UI components if needed
import { ... } from 'components/ui/xxx'
// Name your page accordingly
const Page: NextPage = () => {
return (
<Layout>
<div>Page content</div>
</Layout>
)
}
export default withAuth(Page)