mirror of
https://github.com/supabase/supabase.git
synced 2026-10-09 11:25:06 +03:00
Task A: Add ExpirationMode (and/or) toggle between retention-days and max-versions fields in bucket settings. 'and' = single S3 lifecycle policy (both conditions must be met), 'or' = two independent rules (either triggers). Wired into form schema, create/edit bucket modals, and mock store. Task B: Move 'Show deleted versions' toggle from breadcrumb bar into the file explorer table header, right of the search input. Switch is on the left of the label text. Task C: Add noncurrent version rows beneath each deleted object in TrashList. Nested rows have left indentation with a CornerDownRight icon and lighter background. Added DeletedObjectVersion interface and mock data to protection-mocks.ts. Updated all user-facing terminology from 'files' to 'versions' across Trash, TrashList, TrashSelectionBar, DeletedFilesList, DeletedFilesHeaderSelection, DeletedFilePreviewPane, and bucket page tabs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TiUEvmC84bRsteqsWXHY2p
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)