import { Select, SelectContent, SelectItem, SelectTrigger } from '@ui/components/shadcn/ui/select' import CopyButton from 'components/ui/CopyButton' import type { WarehouseAccessTokensData } from 'data/analytics/warehouse-access-tokens-query' import type { WarehouseCollectionsData } from 'data/analytics/warehouse-collections-query' import { useRouter } from 'next/router' import { useEffect, useState } from 'react' import { Button, Checkbox_Shadcn_, CodeBlock, Input_Shadcn_, Label_Shadcn_, Separator, Sheet, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetSection, SheetTitle, SheetTrigger, Tooltip, TooltipContent, TooltipTrigger, } from 'ui' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' export function TestCollectionDialog({ accessTokens, collectionToken, collections, open, onOpenChange, onSubmit, }: { accessTokens: WarehouseAccessTokensData['data'] collections: WarehouseCollectionsData collectionToken: string projectRef: string open: boolean onOpenChange: (open: boolean) => void onSubmit: () => void }) { const router = useRouter() const BASE_WAREHOUSE_URL = `https://api.warehouse.tech/api/events` const [testAccessToken, setTestAccessToken] = useState('') const [selectedCollection, setSelectedCollection] = useState(collectionToken || '') const [showAccessToken, setShowAccessToken] = useState(false) useEffect(() => { setSelectedCollection(collectionToken) }, [collectionToken]) useEffect(() => { if (accessTokens.length > 0) { setTestAccessToken(accessTokens[0].token) } }, [accessTokens]) const selectedAccessToken = accessTokens.find((token) => token.token === testAccessToken) const selectedCollectionName = collections?.find((col) => col.token === selectedCollection)?.name function getcURL(accessToken: string) { return `curl -X "POST" "${BASE_WAREHOUSE_URL}?source=${selectedCollection}" \\ -H 'Content-Type: application/json' \\ -H 'Authorization: Bearer ${accessToken}' \\ -d $'{ "event_message": "Test event message", "metadata": { "ip_address": "100.100.100.100", "request_method": "POST", "custom_user_data": { "foo": "bar" }, "datacenter": "aws", "request_headers": { "connection": "close", "user_agent": "chrome" } } }' ` } return ( {accessTokens.length === 0 && ( Create an access token to connect to your collection )} Send events to this collection Use the following cURL command to send events to this collection
setShowAccessToken(!showAccessToken)} /> Show access token
{getcURL(showAccessToken ? testAccessToken : '********************')}

Once you send an event, refresh the page to see it in the collection.

) }