AccessTokenList() — supabase Function Reference
Architecture documentation for the AccessTokenList() function in AccessTokenList.tsx from the supabase codebase.
Entity Profile
Dependency Diagram
graph TD 8b5929c9_64c6_49c4_81bd_271e0e95ead9["AccessTokenList()"] 752b34ae_71ef_d259_90c3_f30c4e31af69["handleSortChange()"] 8b5929c9_64c6_49c4_81bd_271e0e95ead9 -->|calls| 752b34ae_71ef_d259_90c3_f30c4e31af69 78f2e2e0_dfde_4e37_37ce_ee59cb486ff8["filterAndSortTokens()"] 8b5929c9_64c6_49c4_81bd_271e0e95ead9 -->|calls| 78f2e2e0_dfde_4e37_37ce_ee59cb486ff8 style 8b5929c9_64c6_49c4_81bd_271e0e95ead9 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
apps/studio/components/interfaces/Account/AccessTokens/AccessTokenList.tsx lines 33–160
export const AccessTokenList = ({ searchString = '', onDeleteSuccess }: AccessTokenListProps) => {
const [isOpen, setIsOpen] = useState(false)
const [token, setToken] = useState<AccessToken | undefined>(undefined)
const [sort, setSort] = useQueryState(
'sort',
parseAsStringLiteral<AccessTokenSort>(ACCESS_TOKEN_SORT_VALUES).withDefault('created_at:desc')
)
const { data: tokens, error, isPending: isLoading, isError } = useAccessTokensQuery()
const { mutate: deleteToken } = useAccessTokenDeleteMutation({
onSuccess: (_, vars) => {
onDeleteSuccess(vars.id)
toast.success('Successfully deleted access token')
setIsOpen(false)
},
onError: (error) => {
toast.error(`Failed to delete access token: ${error.message}`)
},
})
const onSortChange = (column: AccessTokenSortColumn) => {
handleSortChange(sort, column, setSort)
}
const filteredTokens = useMemo(
() => filterAndSortTokens(tokens, searchString, sort),
[tokens, searchString, sort]
)
const empty = filteredTokens?.length === 0 && !isLoading
if (isError) {
return (
<TableContainer sort={sort} onSortChange={onSortChange}>
<TableRow>
<TableCell colSpan={4} className="p-0">
<AlertError
error={error}
subject="Failed to retrieve access tokens"
className="rounded-none border-0"
/>
</TableCell>
</TableRow>
</TableContainer>
)
}
if (isLoading) {
return (
<TableContainer sort={sort} onSortChange={onSortChange}>
<RowLoading />
<RowLoading />
</TableContainer>
)
}
if (empty) {
return (
<TableContainer sort={sort} onSortChange={onSortChange}>
<TableRow>
<TableCell colSpan={4} className="py-12">
<p className="text-sm text-center text-foreground">No access tokens found</p>
<p className="text-sm text-center text-foreground-light">
You do not have any tokens created yet
</p>
</TableCell>
</TableRow>
</TableContainer>
)
}
return (
<>
<TableContainer sort={sort} onSortChange={onSortChange}>
{filteredTokens?.map((x) => (
<TableRow key={x.token_alias}>
<TokenNameCell name={x.name} tokenAlias={x.token_alias} />
<LastUsedCell lastUsedAt={x.last_used_at} />
<ExpiresCell expiresAt={x.expires_at} />
<TableCell>
<div className="flex items-center justify-end gap-x-2">
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button
type="default"
title="More options"
className="w-7"
icon={<MoreVertical />}
/>
</DropdownMenuTrigger>
<DropdownMenuContent side="bottom" align="end" className="w-40">
<DropdownMenuItem
className="gap-x-2"
onClick={() => {
setToken(x)
setIsOpen(true)
}}
>
<Trash size={12} />
<p>Delete token</p>
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</div>
</TableCell>
</TableRow>
))}
</TableContainer>
<ConfirmationModal
visible={isOpen}
variant="destructive"
title="Confirm to delete"
confirmLabel="Delete"
confirmLabelLoading="Deleting"
onCancel={() => setIsOpen(false)}
onConfirm={() => {
if (token) deleteToken({ id: token.id })
}}
>
<p className="py-4 text-sm text-foreground-light">
This action cannot be undone. Are you sure you want to delete "{token?.name}" token?
</p>
</ConfirmationModal>
</>
)
}
Domain
Subdomains
Source
Frequently Asked Questions
What does AccessTokenList() do?
AccessTokenList() is a function in the supabase codebase.
What does AccessTokenList() call?
AccessTokenList() calls 2 function(s): filterAndSortTokens, handleSortChange.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free