10export function Name({ children, className }) {
11 return <b className={`font-normal ${className || ""}`}>{children}</b>;
14export function Patp({ children, className }) {
15 return <code className={`font-mono ${className || ""}`}>{children}</code>;
18// Used to render a human name alongside their @p
19export function Person({
30 <Name className={nameClassNames}>{name}</Name>{" "}
31 <Patp className={patpClassNames + " opacity-60"}>{patp}</Patp>
34 <Patp className={patpClassNames}>{patp}</Patp>
36 <Name className={nameClassNames}>{name}</Name>
42// This goes inside a <p/> tag
43export function ReadableList({ children, serial = ",", conjunction = "and" }) {
46 {children.map((Child, index) => {
47 if (index < children.length - 2) {
54 } else if (index < children.length - 1) {
57 {Child} {conjunction}{" "}
67export function ShowOrHide({ children, condition }) {
74export function DateRange({ starts, ends, className, short }) {
75 // For events which have no end datetime
79 <p className={className}>
80 {`${formatDate(starts)} • ${formatTime(starts)} ${formatTimeZone(
87 // For events which start and end on the same day
88 if (starts.hasSame(ends, "day")) {
91 <p className={className}>
92 {`${formatDate(starts)} • ${formatTime(starts)} to ${formatTime(
94 )} ${formatTimeZone(starts)}`}
99 // For multi-day events
102 <p className={className}>{`${starts.toFormat(
104 )} 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