UNPKG

@azure-utils/storybooks

Version:

Utils to upload and manage Storybooks via Azure Functions and storage.

1 lines 4.03 kB
{"version":3,"file":"projects-table-B_qW44SW.mjs","names":[],"sources":["../src/components/projects-table.tsx"],"sourcesContent":["import { getStore } from \"../utils/store\";\nimport { Table } from \"./table\";\nimport { urlBuilder } from \"../utils/url-builder\";\nimport { ProjectType } from \"../models/projects\";\nimport { DEFAULT_GITHUB_BRANCH } from \"../utils/constants\";\n\nexport interface ProjectsTableProps {\n caption?: JSX.Element;\n toolbar?: JSX.Element;\n projects: Array<ProjectType>;\n}\n\nexport async function ProjectsTable({\n caption,\n toolbar,\n projects,\n}: ProjectsTableProps) {\n const { locale } = getStore();\n\n return (\n <Table\n caption={caption ?? `Projects (${projects.length})`}\n toolbar={toolbar}\n data={projects}\n columns={[\n {\n id: \"id\",\n header: \"ID\",\n cell: (item) => {\n return (\n <a safe href={urlBuilder.projectId(item.id)}>\n {item.id}\n </a>\n );\n },\n },\n { id: \"name\", header: \"Name\" },\n {\n id: \"gitHub\",\n header: \"GitHub\",\n cell: (item) => {\n const pathnames = item.gitHubPath\n ? [\n \"tree\",\n item.gitHubDefaultBranch || DEFAULT_GITHUB_BRANCH,\n item.gitHubPath,\n ]\n : [];\n const href = urlBuilder.gitHub(item.gitHubRepo, ...pathnames);\n\n return (\n <a safe href={href} target=\"_blank\" rel=\"noopener noreferrer\">\n {item.gitHubRepo}\n </a>\n );\n },\n },\n {\n id: \"build\",\n header: \"Latest build\",\n cell: (item) => {\n if (!item.buildSHA) {\n return <span class=\"description\">No build available</span>;\n }\n\n return (\n <div style={{ display: \"flex\", gap: \"1rem\", flexWrap: \"wrap\" }}>\n <span safe style={{ fontFamily: \"monospace\" }}>\n [{item.buildSHA.slice(0, 7)}]\n </span>\n <a href={urlBuilder.buildSHA(item.id, item.buildSHA)}>Build</a>\n <a href={urlBuilder.storybookIndexHtml(item.id, item.buildSHA)}>\n Storybook\n </a>\n </div>\n );\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":";;;;;;AAYA,eAAsB,cAAc,EAClC,SACA,SACA,UACmB,EAAE;CACrB,MAAM,EAAE,QAAQ,GAAG,UAAU;AAE7B,oDACG;EACC,SAAS,WAAW,CAAC,UAAU,EAAE,SAAS,OAAO,CAAC,CAAC;EAC1C;EACT,MAAM;EACN,SAAS;GACP;IACE,IAAI;IACJ,QAAQ;IACR,MAAM,CAAC,SAAS;AACd,wDACG;MAAE;MAAK,MAAM,WAAW,UAAU,KAAK,GAAG;gBACxC,KAAK;OACJ;IAEP;GACF;GACD;IAAE,IAAI;IAAQ,QAAQ;GAAQ;GAC9B;IACE,IAAI;IACJ,QAAQ;IACR,MAAM,CAAC,SAAS;KACd,MAAM,YAAY,KAAK,aACnB;MACE;MACA,KAAK,uBAAuB;MAC5B,KAAK;KACN,IACD,CAAE;KACN,MAAM,OAAO,WAAW,OAAO,KAAK,YAAY,GAAG,UAAU;AAE7D,wDACG;MAAE;MAAW;MAAM,QAAO;MAAS,KAAI;gBACrC,KAAK;OACJ;IAEP;GACF;GACD;IACE,IAAI;IACJ,QAAQ;IACR,MAAM,CAAC,SAAS;AACd,SAAI,CAAC,KAAK,SACR,oDAAQ;MAAK,OAAM;gBAAc;OAAyB;AAG5D,yDACG;MAAI,OAAO;OAAE,SAAS;OAAQ,KAAK;OAAQ,UAAU;MAAQ;;oDAC3D;QAAK;QAAK,OAAO,EAAE,YAAY,YAAa;;SAAE;SAC3C,KAAK,SAAS,MAAM,GAAG,EAAE;SAAC;;SACvB;mDACN;QAAE,MAAM,WAAW,SAAS,KAAK,IAAI,KAAK,SAAS;kBAAE;SAAS;mDAC9D;QAAE,MAAM,WAAW,mBAAmB,KAAK,IAAI,KAAK,SAAS;kBAAE;SAE5D;;OACA;IAET;GACF;GACD;IACE,IAAI;IACJ,QAAQ;IACR,MAAM,CAAC,SAAS;AACd,SAAI,CAAC,KAAK,UACR,QAAO;AAGT,wDACG;MAAK,UAAU,KAAK;MAAW;gBAC7B,IAAI,KAAK,KAAK,WAAW,eAAe,OAAO;OAC3C;IAEV;GACF;EACF;GACD;AAEL"}