mirror of
https://github.com/supabase/supabase.git
synced 2026-05-07 17:30:25 -04:00
f107437ae0
Convert realtime error codes to the new format. This makes them available through the shared ErrorCode component and via the Content API.
60 lines
2.1 KiB
TypeScript
60 lines
2.1 KiB
TypeScript
import Link from 'next/link'
|
|
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from 'ui'
|
|
import _authErrorCodes from '~/content/errorCodes/authErrorCodes.toml'
|
|
import _realtimeErrorCodes from '~/content/errorCodes/realtimeErrorCodes.toml'
|
|
import { type ErrorCodeDefinition } from '~/resources/error/errorTypes'
|
|
|
|
const errorCodesByService = {
|
|
auth: _authErrorCodes as Record<string, ErrorCodeDefinition>,
|
|
realtime: _realtimeErrorCodes as Record<string, ErrorCodeDefinition>,
|
|
}
|
|
|
|
interface ErrorCodesProps {
|
|
service: keyof typeof errorCodesByService
|
|
}
|
|
|
|
export function ErrorCodes({ service }: ErrorCodesProps) {
|
|
const errorCodes = errorCodesByService[service]
|
|
const hasResolutions = Object.values(errorCodes).some((code) => code.resolution)
|
|
return (
|
|
<Table>
|
|
<TableHeader>
|
|
<TableRow>
|
|
<TableHead>Error code</TableHead>
|
|
<TableHead>Description</TableHead>
|
|
{hasResolutions && <TableHead>Action</TableHead>}
|
|
</TableRow>
|
|
</TableHeader>
|
|
<TableBody>
|
|
{Object.entries(errorCodes)
|
|
.sort(([aCode], [bCode]) => aCode.localeCompare(bCode))
|
|
.map(([code, definition]) => (
|
|
<TableRow key={code}>
|
|
<TableCell>
|
|
<code className="whitespace-nowrap">{code}</code>
|
|
</TableCell>
|
|
<TableCell>
|
|
<p>{definition.description}</p>
|
|
{!!definition.references && (
|
|
<>
|
|
<p>Learn more:</p>
|
|
<ul>
|
|
{definition.references.map((reference) => (
|
|
<li key={reference.href}>
|
|
<Link href={reference.href}>{reference.description}</Link>
|
|
</li>
|
|
))}
|
|
</ul>
|
|
</>
|
|
)}
|
|
</TableCell>
|
|
{hasResolutions && (
|
|
<TableCell>{!!definition.resolution && <p>{definition.resolution}</p>}</TableCell>
|
|
)}
|
|
</TableRow>
|
|
))}
|
|
</TableBody>
|
|
</Table>
|
|
)
|
|
}
|