mirror of
https://github.com/supabase/supabase.git
synced 2026-05-10 02:39:56 -04:00
56de26fe22
This PR migrates the whole monorepo to use Tailwind v4: - Removed `@tailwindcss/container-queries` plugin since it's included by default in v4, - Bump all instances of Tailwind to v4. Made minimal changes to the shared config to remove non-supported features (`alpha` mentions), - Migrate all apps to be compatible with v4 configs, - Fix the `typography.css` import in 3 apps, - Add missing rules which were included by default in v3, - Run `pnpm dlx @tailwindcss/upgrade` on all apps, which renames a lot of classes - Rename all misnamed classes according to https://tailwindcss.com/docs/upgrade-guide#renamed-utilities in all apps. --------- Co-authored-by: Jordi Enric <jordi.err@gmail.com>
76 lines
2.4 KiB
TypeScript
76 lines
2.4 KiB
TypeScript
import { useParams } from 'common'
|
|
import { SimpleCodeBlock } from 'ui-patterns/SimpleCodeBlock'
|
|
|
|
import { Markdown } from '../Markdown'
|
|
import { DocsButton } from '@/components/ui/DocsButton'
|
|
import { useSendEventMutation } from '@/data/telemetry/send-event-mutation'
|
|
import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization'
|
|
|
|
interface ResourceContentProps {
|
|
selectedLanguage: 'js' | 'bash'
|
|
snippet: {
|
|
key: string
|
|
title: string
|
|
description?: string
|
|
docsUrl?: string
|
|
}
|
|
codeSnippets: any[]
|
|
}
|
|
|
|
const ResourceContent = ({ selectedLanguage, snippet, codeSnippets }: ResourceContentProps) => {
|
|
const { ref: projectRef } = useParams()
|
|
const { data: org } = useSelectedOrganizationQuery()
|
|
const { mutate: sendEvent } = useSendEventMutation()
|
|
|
|
const handleCopy = (title: string) => {
|
|
sendEvent({
|
|
action: 'api_docs_code_copy_button_clicked',
|
|
properties: {
|
|
title,
|
|
selectedLanguage,
|
|
},
|
|
groups: {
|
|
project: projectRef ?? 'Unknown',
|
|
organization: org?.slug ?? 'Unknown',
|
|
},
|
|
})
|
|
}
|
|
|
|
return (
|
|
<div id={snippet.key} className="space-y-4 py-6">
|
|
<div className="px-4 space-y-2">
|
|
<div className="flex items-center justify-between">
|
|
<h2 className="doc-heading">{snippet.title}</h2>
|
|
{snippet.docsUrl !== undefined && <DocsButton abbrev={false} href={snippet.docsUrl} />}
|
|
</div>
|
|
{snippet.description !== undefined && (
|
|
<div className="doc-section">
|
|
<article className="text text-sm text-foreground-light">
|
|
<Markdown
|
|
className="max-w-none"
|
|
content={snippet.description.replaceAll('[ref]', projectRef ?? '_')}
|
|
/>
|
|
</article>
|
|
</div>
|
|
)}
|
|
</div>
|
|
{codeSnippets.map((codeSnippet) => (
|
|
<div key={codeSnippet.key} className="px-4 space-y-2">
|
|
<p className="text-sm text-foreground-light">{codeSnippet.title}</p>
|
|
<div className="codeblock-container">
|
|
<div className="bg rounded-sm p-2">
|
|
<SimpleCodeBlock
|
|
className={selectedLanguage}
|
|
onCopy={() => handleCopy(codeSnippet.title)}
|
|
>
|
|
{codeSnippet[selectedLanguage]}
|
|
</SimpleCodeBlock>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
))}
|
|
</div>
|
|
)
|
|
}
|
|
export default ResourceContent
|