Files
supabase/apps/studio/components/interfaces/Organization/Documents/Documents.tsx
T
CharisandJoshen Lim d8f7cc0d57 feat(support form): attach dashboard logs (#39539)
* o11y: mirror and sanitize breadcrumbs

Mirror Sentry breadcrumbs as the basis for our own support logging. Also
adds more sanitization to breadcrumbs.

* feat(support form): toggle for attaching dashboard  logs

Add a toggle to the support form when the category is "Dashboard bug",
to attach recent dashboard logs. Users can preview the attached logs and
opt out.

* feat(support links): dedicated support link component

Add a new component for support links, which:
- Uses the serializer for support link params to ensure
serialization/deserialization pairs correctly
- Snapshots breadcrumbs so the attached log on the support form will be
cut off at the support link click (otherwise we will get support form
actions cluttering up the log)

* tests(support form): extend timeout on flaky test

* Minor clean up

* fix(support form): allow url to specifically indicate no specified project

* minor nits

* Fix tests

* Fix tests

---------

Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
2025-10-22 08:57:49 -04:00

72 lines
2.0 KiB
TypeScript

import { SupportLink } from 'components/interfaces/Support/SupportLink'
import { ScaffoldContainer, ScaffoldDivider, ScaffoldSection } from 'components/layouts/Scaffold'
import { InlineLinkClassName } from 'components/ui/InlineLink'
import { useCustomContent } from 'hooks/custom-content/useCustomContent'
import { Fragment } from 'react'
import { CustomDocument } from './CustomDocument'
import { DPA } from './DPA'
import { HIPAA } from './HIPAA'
import { SecurityQuestionnaire } from './SecurityQuestionnaire'
import { SOC2 } from './SOC2'
import { TIA } from './TIA'
const Documents = () => {
const { organizationLegalDocuments } = useCustomContent(['organization:legal_documents'])
if (Array.isArray(organizationLegalDocuments)) {
return organizationLegalDocuments.map((doc, idx) => {
return (
<Fragment key={doc.id}>
<CustomDocument doc={doc} />
{idx !== organizationLegalDocuments.length - 1 && <ScaffoldDivider />}
</Fragment>
)
})
}
return (
<>
<ScaffoldContainer id="dpa">
<DPA />
</ScaffoldContainer>
<ScaffoldDivider />
<ScaffoldContainer id="tia">
<TIA />
</ScaffoldContainer>
<ScaffoldDivider />
<ScaffoldContainer id="soc2">
<SOC2 />
</ScaffoldContainer>
<ScaffoldDivider />
<ScaffoldContainer id="hipaa">
<HIPAA />
</ScaffoldContainer>
<ScaffoldDivider />
<ScaffoldContainer id="security-questionnaire">
<SecurityQuestionnaire />
</ScaffoldContainer>
<ScaffoldDivider />
<ScaffoldContainer>
<ScaffoldSection>
<p className="sticky space-y-6 top-12 text-sm text-foreground-light m-0 whitespace-nowrap">
<SupportLink className={InlineLinkClassName}>Submit a support request</SupportLink> if
you require additional documents for financial or tax reasons, such as a W-9 form.
</p>
</ScaffoldSection>
</ScaffoldContainer>
</>
)
}
export default Documents