1import Link from "next/link";
6} from "@urbit/foundation-design-system";
8export function Name({ children, className }) {
9 return <b className={`font-normal ${className || ""}`}>{children}</b>;
12export function Patp({ children, className }) {
14 <Link href={`/ids/${children}`} passHref>
16 <code className={`font-mono ${className || ""}`}>{children}</code>
22// Used to render a human name alongside their @p
23export function Person({
34 <Name className={nameClassNames}>{name}</Name>{" "}
35 <Patp className={patpClassNames + " opacity-60"}>{patp}</Patp>
38 <Patp className={patpClassNames}>{patp}</Patp>
40 <Name className={nameClassNames}>{name}</Name>
46// This goes inside a <p/> tag
47export function ReadableList({ children, serial = ",", conjunction = "and" }) {
50 {children.map((Child, index) => {
51 if (index < children.length - 2) {
58 } else if (index < children.length - 1) {
61 {Child} {conjunction}{" "}
71export function ShowOrHide({ children, condition }) {
78export function DateRange({ starts, ends, className, short }) {
79 // For events which have no end datetime
83 <p className={className}>
84 {`${formatDate(starts)} • ${formatTime(starts)} ${formatTimeZone(
91 // For events which start and end on the same day
92 if (starts.hasSame(ends, "day")) {
95 <p className={className}>
96 {`${formatDate(starts)} • ${formatTime(starts)} to ${formatTime(
98 )} ${formatTimeZone(starts)}`}
103 // For multi-day events
106 <p className={className}>{`${starts.toFormat(
108 )} to ${formatDate(ends)}`}</p>
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list