mirror of
https://github.com/supabase/supabase.git
synced 2026-10-19 08:09:11 +03:00
* add event collection ui, queries, routing * fix alignment issue * renaming * wip * feat: initial data hooks and integration with feature flagging * update with naming, correct mocks, etc * feat: add source crud integration * mock data, fix form, add motion to drawer * feat: optimize warehouse fetch behaviour * feat: add in valid query * chore: ermove collection mocks * feat: optimize tenant fetching * cleanup + update openapi client + fix fetch calls * cleanup imporst * on delete success, redirect to main logs page * fix dropdown event propagating to link and opening page * Refactor code to use useParams and useRouter in CreateWarehouseCollection.tsx, WarehouseCollectionDetail.tsx, and LogsLayout.tsx * clean warehouse query * warehouse access tokens create, list * add warehouse access token revokal * fix access tokens table, fix access tokens revoke feature * format date in access tokens table * fix some state issues and warnings in access tokens forms * warehouse/feat: introduction when creating event collections (#23244) feat: add introduction for event collections * warehouse/feat: rename headers and nav items (#23243) * feat: rename headers * feat: use feature flag for navigation bar * move header name flag to component * fix typeerror in create collection query --------- Co-authored-by: Jordi Enric <jordi.err@gmail.com> * ui fixes, rm deprecated icons * render table with events * fix typeerror results arr * add pagination * some ui fixes * fix loading states, format dates, test connection dialog * patch type errors * Fix access token selection in TestCollectionDialog and update column name in WarehouseAccessTokens * rm unused querytype * rm unused querytype in logtable * patch type errors in warhouse collection mutations * rm unused component * mr unused import * show connection dialog in staging * fix Run btn now showing up * fix undef argument * show pagination only when there are results * fix issues in connection dialog, improve ux * Update apps/studio/components/interfaces/DataWarehouse/CreateWarehouseAccessToken.tsx Co-authored-by: Ziinc <Ziinc@users.noreply.github.com> * Update apps/studio/components/interfaces/DataWarehouse/CreateWarehouseAccessToken.tsx Co-authored-by: Ziinc <Ziinc@users.noreply.github.com> * fix infinite render loop, adapt component to render log metadata on log selection * rm unused import, prevent ui from breaking when some data may be missing from an event * update WAT create mutation to use template * follow mutation template in delete access token mutation * refactor naming, improve code in some areas * rm unused mocks for msw * skip tests - this will get fixed on the vitest PR * Update apps/studio/components/interfaces/Settings/Logs/LogsQueryPanel.tsx Co-authored-by: Joshen Lim <joshenlimek@gmail.com> * fix loading compo * rm unused import * use correct alert title * rm unnecessary div * fix layout in projectpaused alert * fix type err, refactor to new method * rm observer * rm observer * refactor warehouse collections update * use correct get method, comment out so it doesnt err * use correct method * fix formatting issues * ref imports * ref imports * clean up imports * clean imports * clean imports * rename props * destructure props * cleanup imports * Update apps/studio/components/interfaces/DataWarehouse/CreateWarehouseCollection.tsx Co-authored-by: Ziinc <Ziinc@users.noreply.github.com> * ref scale class * cleanup divs * Update apps/studio/components/interfaces/DataWarehouse/TestCollectionDialog.tsx Co-authored-by: Ziinc <Ziinc@users.noreply.github.com> * refactor to rhf * reuse types, cleanup, refactor to react query hooks instead of el events * refactor table component to handle empty state * Update TestCollectionDialog to use unique keys for SelectItem components * Update TestCollectionDialog to use unique keys for SelectItem components * Update TestCollectionDialog to use unique keys for SelectItem components * fix empty state ui * use destructured queries * rename query types * Update apps/studio/components/interfaces/DataWarehouse/WarehouseAccessTokens.tsx Co-authored-by: Ziinc <Ziinc@users.noreply.github.com> * chore: Refactor WarehouseCollectionDetail component * rm unused imports * rename loadolder * rm typcast * rhf in create token * improve err handling * refactor to rhf, refactor queries, use cn utils, cleanup * fix loading logselection * add correct type to warehouse access tokens query * use correct types in err & clean unused types * toggle token in curl exampel * use product empty state component in warehouse * add client side validation of collection name, temp fix * add New badge * update testcolldialog * cleanup unnecessary div and rm double border * code style fixes * handle err * code style fix * add correct type * add correct err type * fix type error * fix type err * fix missing type --------- Co-authored-by: TzeYiing <ty@tzeyiing.com> Co-authored-by: Ziinc <Ziinc@users.noreply.github.com> Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
70 lines
2.0 KiB
TypeScript
70 lines
2.0 KiB
TypeScript
import { useMutation, UseMutationOptions, useQueryClient } from '@tanstack/react-query'
|
|
import toast from 'react-hot-toast'
|
|
import { handleError, post } from 'data/fetchers'
|
|
import type { ResponseError } from 'types'
|
|
import { analyticsKeys } from './keys'
|
|
|
|
export type CreateCollectionArgs = {
|
|
projectRef: string
|
|
name: string
|
|
}
|
|
|
|
export async function createCollection({ projectRef, name }: CreateCollectionArgs) {
|
|
const { data, error } = await post('/platform/projects/{ref}/analytics/warehouse/collections', {
|
|
params: { path: { ref: projectRef } },
|
|
body: { name },
|
|
} as any)
|
|
|
|
if (error) handleError(error)
|
|
return data
|
|
}
|
|
|
|
type CreateCollectionData = Awaited<ReturnType<typeof createCollection>>
|
|
|
|
export const useCreateCollection = ({
|
|
onSuccess,
|
|
onError,
|
|
...options
|
|
}: Omit<
|
|
UseMutationOptions<CreateCollectionData, ResponseError, CreateCollectionArgs>,
|
|
'mutationFn'
|
|
> = {}) => {
|
|
const queryClient = useQueryClient()
|
|
|
|
return useMutation<CreateCollectionData, ResponseError, CreateCollectionArgs>(
|
|
(vars) => {
|
|
// temporal fix
|
|
// prevent users from creating collections with the same name
|
|
// this will be handled by the backend
|
|
// - jordi
|
|
|
|
const existingCollectionNames = queryClient
|
|
.getQueryData<CreateCollectionData[]>(analyticsKeys.warehouseCollections(vars.projectRef))
|
|
?.map((c) => c.name)
|
|
|
|
if (existingCollectionNames?.includes(vars.name)) {
|
|
throw new Error(`Collection with the name ${vars.name} already exists`)
|
|
}
|
|
|
|
return createCollection(vars)
|
|
},
|
|
{
|
|
async onSuccess(data, variables, context) {
|
|
const { projectRef } = variables
|
|
|
|
await queryClient.invalidateQueries(analyticsKeys.warehouseCollections(projectRef))
|
|
|
|
await onSuccess?.(data, variables, context)
|
|
},
|
|
async onError(data, variables, context) {
|
|
if (onError === undefined) {
|
|
toast.error(`Failed to create collection: ${data.message}`)
|
|
} else {
|
|
onError(data, variables, context)
|
|
}
|
|
},
|
|
...options,
|
|
}
|
|
)
|
|
}
|