Bus UI Evidence And Files
Evidence UI without leaking storage policy.
Use the individual evidence pages for the public pkg/ui wrappers that
cover safe links, inline previews, and image galleries. The node-first APIs keep URL
policy and preview fallbacks explicit.
Public APIs
| Page | Use it for | Public API |
|---|---|---|
| Upload | File selection and drop affordances. | FileInput, DropZone |
| EvidenceLink | Safe open/download links with disabled states. | EvidenceLink(p EvidenceLinkProps) gx.Node |
| EvidencePreview | Inline previews or fallback panels when embedding is blocked. | EvidencePreview(p EvidencePreviewProps) gx.Node |
| ImageGallery | Allowlisted image sets with per-item diagnostics. | ImageGallery(p ImageGalleryProps) (ImageGalleryResult, error) |
| URL policy | Normalize public URLs and block unsafe or unavailable links. | EvidenceURLResolver |
Shared example
import (
gx "github.com/busdk/bus-gx/pkg/gx"
ui "github.com/busdk/bus-ui/pkg/ui"
)
node := ui.EvidencePreview(ui.EvidencePreviewProps{
Title: "Bank statement",
PreviewURL: "/modules/accounting/evidence/bank-statement.pdf",
OpenURL: "/modules/accounting/evidence/bank-statement.pdf",
ContentType: "application/pdf",
Fallback: "Preview is unavailable.",
})
html, err := gx.RenderHTML(node)
These shared evidence examples now use the public pkg/ui facade.