@azure-utils/storybooks
Version:
Utils to upload and manage Storybooks via Azure Functions and storage.
1 lines • 7.65 kB
Source Map (JSON)
{"version":3,"file":"builds-table-D78yU-UW.mjs","names":["label"],"sources":["../src/components/raw-data.tsx","../src/components/builds-table.tsx"],"sourcesContent":["export function RawDataPreview({\n data,\n open,\n summary,\n}: {\n data: unknown;\n open?: boolean;\n summary?: JSX.Element;\n}) {\n if (summary) {\n return (\n <details open={open}>\n <summary>{summary}</summary>\n <pre safe class=\"raw-data\">\n {JSON.stringify(data, null, 2)}\n </pre>\n </details>\n );\n }\n\n return (\n <pre safe class=\"raw-data\">\n {JSON.stringify(data, null, 2)}\n </pre>\n );\n}\n","import { getStore } from \"../utils/store\";\nimport { Table } from \"./table\";\nimport { urlBuilder } from \"../utils/url-builder\";\nimport { BuildType } from \"../models/builds\";\nimport { ProjectType } from \"../models/projects\";\nimport { LabelType } from \"../models/labels\";\n\nexport interface BuildTableProps {\n caption?: JSX.Element;\n builds: Array<BuildType>;\n project: ProjectType;\n labels: LabelType[] | undefined;\n toolbar?: JSX.Element;\n}\n\nexport async function BuildTable({\n caption,\n toolbar,\n builds,\n project,\n labels,\n}: BuildTableProps) {\n const { locale } = getStore();\n\n return (\n <Table\n caption={caption ?? `Builds (${builds.length})`}\n toolbar={toolbar}\n data={builds}\n columns={[\n {\n id: \"sha\",\n header: \"SHA\",\n cell: (item) => {\n const labelSlug = item.label.split(\",\").at(0) || item.label;\n return (\n <a\n safe\n href={urlBuilder.buildSHA(project.id, item.sha, labelSlug)}\n >\n {item.sha.slice(0, 7)}\n </a>\n );\n },\n },\n labels\n ? {\n id: \"label\",\n header: \"Labels\",\n cell: (item) => {\n return (\n <div>\n {item.label.split(\",\").map((labelSlug, index, arr) => {\n const label = labels.find(\n (label) => label.slug === labelSlug\n );\n return (\n <>\n <a\n safe\n href={urlBuilder.labelSlug(project.id, labelSlug)}\n title={labelSlug}\n >\n {label\n ? `${label.value} (${label.type})`\n : labelSlug}\n </a>\n {index === arr.length - 1 ? null : <span>, </span>}\n </>\n );\n })}\n </div>\n );\n },\n }\n : undefined,\n {\n id: \"storybook\",\n header: \"Storybook\",\n cell: (item) => {\n return (\n <div style={{ display: \"flex\", gap: \"1rem\" }}>\n <a\n href={urlBuilder.storybookIndexHtml(project.id, item.sha)}\n target=\"_blank\"\n >\n View\n </a>\n <a\n href={urlBuilder.storybookZip(project.id, item.sha)}\n target=\"_blank\"\n download={`storybook-${project.id}-${item.sha}.zip`}\n >\n Download\n </a>\n </div>\n );\n },\n },\n {\n id: \"test\",\n header: \"Tests\",\n cell: (item) => {\n return (\n <div style={{ display: \"flex\", gap: \"1rem\" }}>\n <a\n href={urlBuilder.storybookTestReport(project.id, item.sha)}\n target=\"_blank\"\n >\n Test Report\n </a>\n <a\n href={urlBuilder.storybookCoverage(project.id, item.sha)}\n target=\"_blank\"\n >\n Coverage\n </a>\n </div>\n );\n },\n },\n {\n id: \"gitHub\",\n header: \"GitHub\",\n cell: (item) => {\n return (\n <div style={{ display: \"flex\", gap: \"1rem\" }}>\n <a\n href={urlBuilder.gitHub(\n project.gitHubRepo,\n \"commit\",\n item.sha\n )}\n target=\"_blank\"\n >\n Commit\n </a>\n </div>\n );\n },\n },\n { id: \"message\", header: \"Message\" },\n {\n id: \"authorName\",\n header: \"Author\",\n cell: (item) => (\n <span safe title={item.authorEmail}>\n {item.authorName || \"Unknown\"}\n </span>\n ),\n },\n {\n id: \"timestamp\",\n header: \"Last modified\",\n cell: (item) => {\n if (!item.timestamp) {\n return null;\n }\n\n return (\n <time datetime={item.timestamp} safe>\n {new Date(item.timestamp).toLocaleString(locale)}\n </time>\n );\n },\n },\n ]}\n />\n );\n}\n"],"mappings":"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"}