mirror of
https://github.com/supabase/supabase.git
synced 2026-10-12 21:05:06 +03:00
* Initial work on vector buckets. * Add more queries and UI. * chore(studio): vector buckets contents (#39705) * language * match analytics buckets * shared empty state * proper loading state * create dialog cleanup * simplify copywriting * proper details * filtering * use real data * chore(studio): vector buckets polish A (#39759) * empty state * better checks * bucket name in sheet * fix typo * sheet improvements * rename vector index to vector table * cleanup * More work on the vector indexes. * Add delete for bucket and indexes. Create index should now work. * chore(studio): vector buckets polish B (#39794) * loading * delete modal * fix modal behaviour * Add modal for deleting vector buckets. * Bring back the shimmering loader. * chore(studio): vector buckets polish C (#39887) * fix bucketname on deletion dialog * empty states * remove extraneous padding * proper loading and not-found cases * Minor fixes. * Minor updates to the vector components. * Add more instructions to the cursor rules. * Some refactors and shifting files around * Refactor analytics buckets detial to improve time to fcp * Fix * Refactors + simplify * Last few nits, just leaving comments * If the bucket is not empty, delete all indexes first. --------- Co-authored-by: Danny White <3104761+dnywh@users.noreply.github.com> Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
import { BucketAdd } from 'icons'
|
|
import { cn } from 'ui'
|
|
import { CreateAnalyticsBucketModal } from './AnalyticsBuckets/CreateAnalyticsBucketModal'
|
|
import { CreateBucketModal } from './CreateBucketModal'
|
|
import { BUCKET_TYPES } from './Storage.constants'
|
|
import { CreateVectorBucketDialog } from './VectorBuckets/CreateVectorBucketDialog'
|
|
|
|
interface EmptyBucketStateProps {
|
|
bucketType: keyof typeof BUCKET_TYPES
|
|
className?: string
|
|
}
|
|
|
|
export const EmptyBucketState = ({ bucketType, className }: EmptyBucketStateProps) => {
|
|
const config = BUCKET_TYPES[bucketType]
|
|
|
|
return (
|
|
<aside
|
|
className={cn(
|
|
'border border-dashed w-full bg-surface-100 rounded-lg px-4 py-10 flex flex-col gap-y-3 items-center text-center text-balance',
|
|
className
|
|
)}
|
|
>
|
|
<BucketAdd size={24} strokeWidth={1.5} className="text-foreground-muted" />
|
|
|
|
<div className="flex flex-col items-center text-center">
|
|
<h3>
|
|
Create {config.article} {config.singularName} bucket
|
|
</h3>
|
|
<p className="text-foreground-light text-sm">{config.valueProp}</p>
|
|
</div>
|
|
|
|
{bucketType === 'files' && (
|
|
<CreateBucketModal buttonSize="tiny" buttonType="primary" buttonClassName="w-fit" />
|
|
)}
|
|
{bucketType === 'analytics' && (
|
|
<CreateAnalyticsBucketModal
|
|
buttonSize="tiny"
|
|
buttonType="primary"
|
|
buttonClassName="w-fit"
|
|
/>
|
|
)}
|
|
{bucketType === 'vectors' && <CreateVectorBucketDialog />}
|
|
</aside>
|
|
)
|
|
}
|